¿Necesitas obtener los genomas (ensambles) de todas las especies asociadas a algún taxid (cualquier nivel taxonómico)?, este es tu post.
Primero es necesario tener el taxid que nos interesa. En este caso usaré el taxid de una familia de virus llamada Birnaviridae. Si seguimos este link, veremos que a la fecha existen 23 ensambles asociados a esta familia, genomas que pertenecen a distintas especies de virus. El taxid es 10993. Mi objetivo es obtener las secuencias de estos 23 genomas.
Para obtener los genomas hay distintas formas, acá yo describo la forma que me funcionó luego de probar dinstintos tutoriales.
1. Instalar el software de NCBI
NCBI desarrolló varias herramientas que permiten conectarse a sus servidores usando línea de comandos y de esta forma obtener todo tipo de información en modo batch. El paquete de heramientas se llama entrez-direct y se pueden instalar usando Conda.
conda install -n base -c bioconda entrez-direct
Una vez creado el script lo ejecutamos de la siguiente manera
2. Obtener un listado de los directorios web de todos los ensambles relacionados con el taxid.
El siguiente comando consulta a NCBI por la ubicación de todas las carpetas que contienen los archivos generados en el ensamble de cada una de las especies relacionadas con el taxid. El listado de carpetas y su ubicación web queda guardada en el archivo genome_files.txt.
esearch -db "genome" -query "txid10993 [Organism]" | elink -target assembly | efetch -format docsum | xtract -pattern DocumentSummary -element FtpPath_GenBank > genome_files.txt
Al revisar el contenido del archivos verán qe tiene direcciones ftp de cada carpeta
cat genome_files.txt
echo "" && echo "number of ftp links" && cat genome_files.txt | wc -l
Los comantos anteriores entregan este resultado lo cual corresponde a 20 carpetas.
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/013/087/095/GCA_013087095.1_ASM1308709v1
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/013/087/085/GCA_013087085.1_ASM1308708v1
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/013/087/065/GCA_013087065.1_ASM1308706v1
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/013/086/835/GCA_013086835.1_ASM1308683v1
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/972/585/GCA_003972585.1_ASM397258v1
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/971/745/GCA_003971745.1_ASM397174v1
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/971/725/GCA_003971725.1_ASM397172v1
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/971/705/GCA_003971705.1_ASM397170v1
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/971/685/GCA_003971685.1_ASM397168v1
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/971/665/GCA_003971665.1_ASM397166v1
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/971/645/GCA_003971645.1_ASM397164v1
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/002/986/275/GCA_002986275.1_ASM298627v1
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/001/654/265/GCA_001654265.1_ViralMultiSegProj323862
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/001/433/565/GCA_001433565.1_ViralMultiSegProj301069
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/895/095/GCA_000895095.1_ViralMultiSegProj80737
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/856/525/GCA_000856525.1_ViralMultiSegProj15024
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/855/485/GCA_000855485.1_ViralMultiSegProj14990
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/853/685/GCA_000853685.1_ViralMultiSegProj14921
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/853/245/GCA_000853245.1_ViralMultiSegProj14852
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/851/665/GCA_000851665.1_ViralMultiSegProj14853
number of ftp links
20
3. Utilizar el listado anterior para realizar la descarga masiva de archivos usando wget
Cada carpeta ftp del listado tiene muchos archivos relacionados con cada ensamble. Por ejemplo, este es el contenido de la primera carpeta el cual pueden verificar en este link.
GCA_013087095.1_ASM1308709v1_assembly_report.txt 2020-05-24 18:58 1.0K
GCA_013087095.1_ASM1308709v1_assembly_stats.txt 2021-11-09 11:30 5.7K
GCA_013087095.1_ASM1308709v1_cds_from_genomic.fna.gz 2020-05-15 11:14 2.2K
GCA_013087095.1_ASM1308709v1_feature_count.txt.gz 2020-05-15 11:14 148
GCA_013087095.1_ASM1308709v1_feature_table.txt.gz 2020-05-15 11:14 330
GCA_013087095.1_ASM1308709v1_genomic.fna.gz 2020-05-15 11:14 2.2K
GCA_013087095.1_ASM1308709v1_genomic.gbff.gz 2020-05-24 18:58 5.4K
GCA_013087095.1_ASM1308709v1_genomic.gff.gz 2020-05-15 11:14 580
GCA_013087095.1_ASM1308709v1_genomic.gtf.gz 2021-11-09 11:30 407
GCA_013087095.1_ASM1308709v1_protein.faa.gz 2020-05-15 11:14 1.4K
GCA_013087095.1_ASM1308709v1_protein.gpff.gz 2020-05-24 18:58 3.0K
GCA_013087095.1_ASM1308709v1_translated_cds.faa.gz 2020-05-15 11:14 1.4K
README.txt 2020-09-02 16:26 43K
annotation_hashes.txt 2021-11-09 11:30 410
assembly_status.txt 2022-07-22 02:31 14
md5checksums.txt 2021-11-09 11:30 1.0K
Si queremos descargar el genoma entonces sólo debemos descargar el archivo GCA_013087095.1_ASM1308709v1_genomic.fna.gz, pero si queremos las proteínas tendríamos que descargar el archivo GCA_013087095.1_ASM1308709v1_protein.faa.gz.
El siguiente comando descargará desde los servidores de NCBI todos los archivos con extensión genomic_fna.gz dado que nos interesan los genomas de todas las especies relacionadas con el taxid .
cat genome_files.txt | xargs -n 1 sh -c 'wget "$0"/*_genomic.fna.gz'
#comando alternativo que permite evitar descargar archivos que no son genomas.
cat genome_files.txt | xargs -n 1 sh -c 'wget "$0"/*[0-9]_genomic.fna.gz'
Debido a un alcance de nombres tendremos archivos no deseados en la descarga (cds_from_genomic.fna.gz)
GCA_000851665.1_ViralMultiSegProj14853_cds_from_genomic.fna.gz
GCA_000851665.1_ViralMultiSegProj14853_genomic.fna.gz
GCA_000853245.1_ViralMultiSegProj14852_cds_from_genomic.fna.gz
GCA_000853245.1_ViralMultiSegProj14852_genomic.fna.gz
GCA_000853685.1_ViralMultiSegProj14921_cds_from_genomic.fna.gz
GCA_000853685.1_ViralMultiSegProj14921_genomic.fna.gz
GCA_000855485.1_ViralMultiSegProj14990_cds_from_genomic.fna.gz
GCA_000855485.1_ViralMultiSegProj14990_genomic.fna.gz
GCA_000856525.1_ViralMultiSegProj15024_cds_from_genomic.fna.gz
GCA_000856525.1_ViralMultiSegProj15024_genomic.fna.gz
GCA_000895095.1_ViralMultiSegProj80737_cds_from_genomic.fna.gz
GCA_000895095.1_ViralMultiSegProj80737_genomic.fna.gz
GCA_001433565.1_ViralMultiSegProj301069_cds_from_genomic.fna.gz
GCA_001433565.1_ViralMultiSegProj301069_genomic.fna.gz
GCA_001654265.1_ViralMultiSegProj323862_cds_from_genomic.fna.gz
GCA_001654265.1_ViralMultiSegProj323862_genomic.fna.gz
GCA_002986275.1_ASM298627v1_cds_from_genomic.fna.gz
GCA_002986275.1_ASM298627v1_genomic.fna.gz
GCA_003971645.1_ASM397164v1_cds_from_genomic.fna.gz
GCA_003971645.1_ASM397164v1_genomic.fna.gz
GCA_003971665.1_ASM397166v1_cds_from_genomic.fna.gz
GCA_003971665.1_ASM397166v1_genomic.fna.gz
GCA_003971685.1_ASM397168v1_cds_from_genomic.fna.gz
GCA_003971685.1_ASM397168v1_genomic.fna.gz
GCA_003971705.1_ASM397170v1_cds_from_genomic.fna.gz
GCA_003971705.1_ASM397170v1_genomic.fna.gz
GCA_003971725.1_ASM397172v1_cds_from_genomic.fna.gz
GCA_003971725.1_ASM397172v1_genomic.fna.gz
GCA_003971745.1_ASM397174v1_cds_from_genomic.fna.gz
GCA_003971745.1_ASM397174v1_genomic.fna.gz
GCA_003972585.1_ASM397258v1_cds_from_genomic.fna.gz
GCA_003972585.1_ASM397258v1_genomic.fna.gz
GCA_013086835.1_ASM1308683v1_cds_from_genomic.fna.gz
GCA_013086835.1_ASM1308683v1_genomic.fna.gz
GCA_013087065.1_ASM1308706v1_cds_from_genomic.fna.gz
GCA_013087065.1_ASM1308706v1_genomic.fna.gz
GCA_013087085.1_ASM1308708v1_cds_from_genomic.fna.gz
GCA_013087085.1_ASM1308708v1_genomic.fna.gz
GCA_013087095.1_ASM1308709v1_cds_from_genomic.fna.gz
GCA_013087095.1_ASM1308709v1_genomic.fna.gz
Algo que se resuelve de forma simple: eliminándolos
rm *cds_from_genomic.fna.gz
Listo, ahora tienes sólo los archivos de ensambles relacionados con el taxid 10993
fuente: modificado desde esta consulta en biostars.org