Skip to content

[Feature Request] - Add option to build a Leviathan index from a Sylph database #33

Description

@jolespin

Here's what a Sylph database looks like:

2026-07-09T20:31:17.369Z INFO  [sylph::inspect] Database file genomes.syldb processed with 2029 genomes
- database_file: genomes.syldb
  c: 200
  k: 31
  min_spacing_parameter: 30
  genome_files:
  - file_name: ../Datasets/CAMI-I/CAMI_high_toy/H_S003/genomes/H_S003__939857.1.fa.gz
    genome_kmers_num: 4181
    first_contig_name: H|S3|C877963
    genome_size: 979114
  - file_name: ../Datasets/CAMI-I/CAMI_high_toy/H_S004/genomes/H_S004__1262820.1.fa.gz

Here's what a Leviathan database looks like:

data = pd.read_pickle("genome_to_data.pkl.gz")
data["H_S001__1077974.1"]
{'id_genome_cluster': 'PSLC-1b2cdae03ed629b53d94da147b3ac9ab',
 'filepath': '../Datasets/CAMI-I/CAMI_high_toy/H_S001/genomes/H_S001__1077974.1.fa.gz'}

Idea is that a user can do the following:

  • Download a big Sylph database (e.g., GlobDB)
  • Use the cds.fasta.gz with only relevant hits
  • --genomes will be mutually exclusive with --precomputed_sylph_database
  • leviathan-index.py will need to make sure that all the genomes in the --feature_mapping are present in the --precomputed_sylph_database and vice versa (or perhaps a subset in case there are genomes that don't have features annotated but the user still wants to perform taxonomic profiling)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions