Un script pour télécharger les génomes bactériens et fongiques du NCBI après avoir restructuré leur FTP il y a quelque temps.
Idée volée sans vergogne aux scripts de téléchargement Kraken de Mick Watson qui peuvent également être trouvés dans le dépôt GitHub de Mick. Cependant, les scripts de Mick sont écrits en Perl spécifiquement pour créer une base de données Kraken (comme annoncé).
Il s’agit donc d’un ensemble de scripts axés sur le téléchargement réel du génome.
pip install ncbi-genome-download
Vous pouvez également cloner ce référentiel depuis GitHub, puis l'exécuter (dans un environnement virtuel python)
pip installer.
Si cela échoue sur les anciennes versions de Python, essayez d'abord de mettre à jour votre outil pip
:
pip install --upgrade pip
puis réexécutez l'installation ncbi-genome-download
.
Alternativement, ncbi-genome-download
est conditionné dans conda
. Référez-vous au site Anaconda/miniconda pour installer une distribution (fortement recommandé). Une fois installé, on peut faire :
conda install -c bioconda ncbi-genome-download
ncbi-genome-download
est uniquement développé et testé sur les versions Python toujours sous support actif par le projet Python. Pour le moment, cela signifie les versions 3.7, 3.8, 3.9, 3.10 et 3.11. Plus précisément, aucune tentative de test sous les versions Python antérieures à 3.7 n’est en cours.
Si votre système est bloqué sur une ancienne version de Python, pensez à utiliser un outil comme Homebrew pour obtenir une version plus à jour.
ncbi-genome-download
0.2.12 était la dernière version à prendre en charge Python 2.
Pour télécharger tous les génomes bactériens RefSeq au format GenBank à partir de NCBI, exécutez ce qui suit :
bactéries ncbi-genome-download
Le téléchargement de plusieurs groupes est également possible :
ncbi-genome-download bactéries, virales
Remarque : Pour voir tous les groupes disponibles, consultez ncbi-genome-download --help
, ou utilisez simplement all
pour vérifier tous les groupes. Nommer un groupe plus spécifique réduira la taille du téléchargement et le temps nécessaire pour trouver les séquences à télécharger.
Si vous disposez d'une connexion raisonnablement rapide, vous souhaiterez peut-être essayer d'exécuter plusieurs téléchargements en parallèle :
ncbi-genome-download bactéries --parallèle 4
Pour télécharger tous les génomes fongiques GenBank de NCBI au format GenBank, exécutez :
ncbi-genome-download --section champignons genbank
Pour télécharger tous les génomes viraux RefSeq au format FASTA, exécutez :
ncbi-genome-download --formats fasta viral
Il est possible de télécharger plusieurs formats en fournissant une liste de formats ou simplement en téléchargeant tous les formats :
ncbi-genome-download --formats fasta, rapport d'assemblage viral ncbi-genome-download --formate tous les virus
Pour télécharger uniquement les génomes bactériens RefSeq complets au format GenBank, exécutez :
ncbi-genome-download --assembly-levels bactéries complètes
Il est possible de télécharger plusieurs niveaux d'assemblage à la fois en fournissant une liste :
ncbi-genome-download --niveaux d'assemblage terminés, bactéries chromosomiques
Pour télécharger uniquement les génomes bactériens de référence depuis RefSeq au format GenBank, exécutez :
ncbi-genome-download --refseq-categories bactéries de référence
Pour télécharger les génomes bactériens RefSeq du genre Streptomyces , exécutez :
ncbi-genome-download --genres bactéries Streptomyces
Remarque : Il s'agit d'une simple correspondance de chaîne sur le nom de l'organisme fourni uniquement par NCBI.
Vous pouvez également l'utiliser avec une légère astuce pour télécharger également les génomes d'une certaine espèce :
ncbi-genome-download --genres bactéries "Streptomyces coelicolor"
Remarque : Les guillemets sont importants. Encore une fois, il s'agit d'une simple correspondance de chaîne sur le nom de l'organisme fourni par le NCBI.
Plusieurs genres sont également possibles :
ncbi-genome-download --genres bactéries "Streptomyces coelicolor, Escherichia coli"
Vous pouvez également mettre les noms de genre dans un fichier, un organisme par ligne, par exemple :
Streptomyces Amycolatopsis
Ensuite, transmettez le chemin d'accès à ce fichier (par exemple my_genera.txt
) à l'option --genera
, comme ceci :
ncbi-genome-download --genera my_genera.txt bactéries
Remarque : La commande ci-dessus téléchargera tous les génomes de Streptomyces et Amycolatopsis depuis RefSeq.
Vous pouvez rendre la correspondance de chaîne floue en utilisant l'option --fuzzy-genus
. Cela peut être pratique si vous devez faire correspondre une valeur au milieu du nom de l'organisme NCBI, comme ceci :
ncbi-genome-download --genera coelicolor --fuzzy-genus bactéries
Remarque : La commande ci-dessus téléchargera tous les génomes bactériens contenant « coelicolor » n'importe où dans le nom de leur organisme à partir de RefSeq.
Pour télécharger les génomes bactériens RefSeq en fonction de leur identifiant de taxonomie d’espèce NCBI, exécutez :
ncbi-genome-download --species-taxids 562 bactéries
Remarque : La commande ci-dessus téléchargera tous les génomes RefSeq appartenant à Escherichia coli .
Pour télécharger un génome RefSeq bactérien spécifique en fonction de son ID de taxonomie NCBI, exécutez :
ncbi-genome-download --taxids 511145 bactéries
Remarque : La commande ci-dessus téléchargera le génome RefSeq appartenant à Escherichia coli str. K-12 sous-classe. MG1655 .
Il est également possible de télécharger des taxidés ou des taxidés de plusieurs espèces en fournissant les numéros dans une liste séparée par des virgules :
ncbi-genome-download --taxids 9606,9685 --chromosome au niveau de l'assemblage vertébré_mammifère
Remarque : La commande ci-dessus téléchargera les génomes de référence du chat et de l'humain.
De plus, vous pouvez mettre plusieurs taxids ou taxids d'espèces dans un fichier, un par ligne et transmettre ce nom de fichier aux paramètres --species-taxids
ou --taxids
, respectivement.
En supposant que vous ayez un fichier my_taxids.txt
avec le contenu suivant :
9606
9685
Vous pouvez télécharger les génomes de référence du chat et de l’humain comme ceci :
ncbi-genome-download --taxids my_taxids.txt --assembly-levels chromosome vertebrate_mammalian
Il est également possible de créer une structure de répertoires lisible par l'homme en parallèle pour refléter la disposition utilisée par NCBI :
ncbi-genome-download - bactéries lisibles par l'homme
Cela utilisera des liens pour pointer vers les fichiers appropriés dans la structure de répertoires NCBI, économisant ainsi de l'espace fichier. Notez que les liens ne sont pas pris en charge sur certains systèmes de fichiers Windows et certaines anciennes versions de Windows.
Il est également possible de réexécuter un téléchargement précédent avec l'option --human-readable
. Dans ce cas, ncbi-genome-download
ne téléchargera aucun nouveau fichier génome et créera simplement une structure de répertoires lisible par l'homme. Notez que si des fichiers ont été modifiés côté NCBI, un téléchargement de fichier sera déclenché.
Il existe une option « à sec » pour afficher quelles accessions seraient téléchargées, compte tenu de vos filtres :
ncbi-genome-download - bactéries testées à sec
Si vous souhaitez filtrer la colonne « Relation avec le type de matériau » du fichier récapitulatif de l'assemblage, vous pouvez utiliser l'option --type-materials
. Les valeurs possibles sont "any", "all", "type", "reference", "synonym", "proxytype" et/ou "neotype". "any" inclura les assemblages sans relation avec le type de valeur matérielle définie, "all" téléchargera uniquement les assemblages avec une valeur définie. Plusieurs valeurs peuvent être données, séparées par une virgule :
ncbi-genome-download --type-materials type, référence
Par défaut, ncbi-genome-download met en cache les fichiers récapitulatifs d'assemblage pour les groupes taxonomiques respectifs pendant une journée. Vous pouvez ignorer l'utilisation du fichier cache en utilisant l'option --no-cache
. La sortie de --help
affiche également le répertoire de cache, si vous souhaitez supprimer l'un des fichiers mis en cache.
Pour avoir un aperçu de toutes les options, exécutez
ncbi-genome-download --help
Vous pouvez également l'utiliser comme appel de méthode :
importer ncbi_genome_download en tant que ngdngd.download()
Transmettez les arguments de mots-clés pythonisés comme décrit ci-dessus ou dans le --help
. Pour spécifier des groupes taxonomiques, comme les bactéries , utilisez le mot-clé groups
. Pour spécifier les formats de fichiers, comme pour l'option CLI --format
, utilisez file_formats
. Tous les autres mots-clés doivent correspondre aux options CLI, avec -
converti en _
. Notez que, comme l'appel de méthode suit la même logique que la CLI, les données des listes doivent toujours être transmises sous forme de chaînes, séparées par une virgule mais pas d'espaces, comme sur la ligne de commande.
gimme_taxa.py
Ce script vous permet de savoir quels TaxID transmettre à ngd
et écrira un simple fichier d'un élément par ligne à lui transmettre. Il utilise la boîte à outils ete3
, alors reportez-vous à leur site pour installer la dépendance si elle n'est pas déjà satisfaite.
Vous pouvez interroger la base de données en utilisant un TaxID particulier ou un nom scientifique. La fonction principale du script est de renvoyer tous les taxons enfants des taxons parents spécifiés. Le script propose diverses options quant aux informations écrites dans la sortie.
Une invocation de base peut ressembler à :
# Récupère tous les taxons descendants d'Escherichia (taxid 561) :python gimme_taxa.py -o ~/mytaxafile.txt 561# Alternativement, fournissez simplement le nom du taxonpython gimme_taxa.py -o all_descendent_taxids.txt Escherichia# Vous pouvez fournir plusieurs taxids et/ou nomspython gimme_taxa.py -o all_descendent_taxids.txt 561, Méthanobrevibacter
Lors de la première utilisation, une petite base de données sqlite sera créée par défaut dans votre répertoire personnel (changez l'emplacement avec l'indicateur --database
). Vous pouvez mettre à jour cette base de données en utilisant l'indicateur --update
. Notez que si la base de données ne se trouve pas dans votre répertoire personnel, vous devez la spécifier avec --database
sinon une nouvelle base de données sera créée dans votre répertoire personnel.
Pour voir toutes les aides :
python donne-moi_taxa.py python donne-moi_taxa.py -h python gimme_taxa.py --help
Pour utiliser le script gimme_taxa.py
avec l'option --taxids
de ncbi-genome-download
, vous devez appeler gimme_taxa.py
avec l'option -j
, comme ceci :
gimme_taxa.py -j -o my_taxids.txt Escherichia ncbi-genome-download --taxids my_taxids.txt bactéries
ncbi-genome-download
Vous pouvez citer ncbi-genome-download
via le dépôt Zenodo sous DOI : 10.5281/zenodo.8192432 ou le DOI spécifique à la version que vous avez utilisée.
Tout le code est disponible sous la licence Apache version 2, voir le fichier LICENSE
pour plus de détails.