Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 23 additions & 3 deletions gtranslate/tools.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
import hashlib
import json
import logging
import shutil
from typing import Optional

import math
import os
import random
import re
import time
import urllib.request
from itertools import islice

from tqdm import tqdm
Expand All @@ -23,6 +20,29 @@
############MISC UTILITIES########################
##################################################

RE_CANONICAL = re.compile(r'^(?:GB_)?(?:RS_)?(?:GCF_)?(?:GCA_)?(\d{9})\.\d')


def canonical_gid(gid: str) -> str:
"""Get canonical form of NCBI genome accession.

Example:
G005435135 -> G005435135
GCF_005435135.1 -> G005435135
GCF_005435135.1_ASM543513v1_genomic -> G005435135
RS_GCF_005435135.1 -> G005435135
GB_GCA_005435135.1 ->

:param gid: Genome accesion to conver to canonical form.
:return: Canonical form of accession.
"""

match = RE_CANONICAL.match(gid)
if match:
return f'G{match[1]}'
else:
return gid


def get_genomes_size(genome_path):
"""Returns the size of a specific genome file."""
Expand Down
218 changes: 0 additions & 218 deletions gtranslate/training/ground_truth_by_taxonomy.py

This file was deleted.

9 changes: 6 additions & 3 deletions gtranslate/training_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def __init__(self, cpus: int = 1 , seed: int | None = None) -> None:
self.seed = seed if seed is not None else np.random.randint(0, 1000)

# Ground truth from GTDB classifications
self.GTDB_TT25 = set(['c__JAEDAM01'])
self.GTDB_TT25 = set(['o__Absconditabacterales', 'o__BD1-5'])
self.GTDB_TT4 = set(['o__Mycoplasmatales', 's__Zinderia insecticola'])

# Eggerthellacea genera using table 4; will need to be updated to names in Parks et al., 2026
Expand All @@ -74,8 +74,11 @@ def __init__(self, cpus: int = 1 , seed: int | None = None) -> None:
# - https://pmc.ncbi.nlm.nih.gov/articles/PMC12213064

# Ground truth from NCBI classifications
self.NCBI_TT4 = set(['s__Candidatus Hodgkinia cicadicola', 's__Candidatus Nasuia deltocephalinicola', 's__Candidatus Stammera capleta'])
self.NCBI_TT4.update(set(['s__Hodgkinia cicadicola', 's__Nasuia deltocephalinicola', 's__Stammera capleta']))
self.NCBI_TT4 = set(['s__Candidatus Hodgkinia cicadicola', 's__Candidatus Nasuia deltocephalincola', 's__Candidatus Stammera capleta'])
self.NCBI_TT4.update(set(['s__Hodgkinia cicadicola', 's__Nasuia deltocephalincola', 's__Stammera capleta']))

# species appears to have incorrect spelling at NCBI
self.NCBI_TT4.update(set(['s__Candidatus Nasuia deltocephalinicola', 's__Nasuia deltocephalinicola']))

# These species clusters have an unclear ground truth, see https://doi.org/10.1093/gbe/evad164
self.GTDB_UNRESOLVED = set(['s__Providencia_A siddallii', 's__Providencia_A siddallii_A'])
Expand Down
6 changes: 6 additions & 0 deletions scripts/gtdb_training_files/gtdb_r232_manual_ground_truth.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Genome ID Translation table Taxonomy
G036689325 11 d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Enterobacterales_A;f__Enterobacteriaceae_A;g__Stammera;s__Stammera capleta_Y d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Enterobacterales;f__Enterobacteriaceae;g__Candidatus Stammera;s__Candidatus Stammera capleta
G036689305 11 d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Enterobacterales_A;f__Enterobacteriaceae_A;g__Stammera;s__Stammera capleta_AM d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Enterobacterales;f__Enterobacteriaceae;g__Candidatus Stammera;s__Candidatus Stammera capleta
G036689245 11 d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Enterobacterales_A;f__Enterobacteriaceae_A;g__Stammera;s__Stammera capleta_AD d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Enterobacterales;f__Enterobacteriaceae;g__Candidatus Stammera;s__Candidatus Stammera capleta
G036689255 11 d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Enterobacterales_A;f__Enterobacteriaceae_A;g__Stammera;s__Stammera capleta_T d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Enterobacterales;f__Enterobacteriaceae;g__Candidatus Stammera;s__Candidatus Stammera capleta
G036689265 11 d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Enterobacterales_A;f__Enterobacteriaceae_A;g__Stammera;s__Stammera capleta_AF d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Enterobacterales;f__Enterobacteriaceae;g__Candidatus Stammera;s__Candidatus Stammera capleta
Loading
Loading