Cítenos : Haoyu Chao, Zhuojin Li, Dijun Chen, Ming Chen, iSeq: una herramienta integrada para recuperar datos públicos de secuenciación, Bioinformatics , 2024;, btae641, https://doi.org/10.1093/bioinformatics/btae641
iSeq es un script Bash que le permite descargar datos y metadatos de secuenciación de bases de datos GSA , SRA , ENA y DDBJ . Consulte Canalización detallada para iSeq. Aquí está la canalización básica de iSeq:
Importante
Para utilizar iSeq, su sistema debe estar conectado a la red y admitir los protocolos FTP, HTTP y HTTPS .
-s
, --speed
para establecer el límite de velocidad de descarga (MB/s) (predeterminado: 1000 MB/s). Como iseq -i SRR7706354 -s 10
sra-tools=2.11
a sra-tools>=2.11.0
. Nueva opción -e
para fusionar archivos FASTQ : se agregó una opción -e
para fusionar múltiples archivos FASTQ en un solo archivo para cada Experiment (-e ex)
, Sample (-e sa)
o Study (-e st)
.
Nueva opción -i
para entrada : iSeq
ahora puede aceptar un file
que contenga múltiples números de acceso como entrada mediante -i fileName
.
Cambio de API para la descarga de metadatos de GSA : el punto final de API se actualizó de getRunInfo
a getRunInfoByCra
para descargar metadatos de GSA.
Guardar resultado en el directorio personal : los resultados de salida ahora se guardarán en el directorio personal del usuario mediante la opción -o
.
Expresión regular actualizada para la coincidencia de SAMC : el patrón de coincidencia para SAMC se ha cambiado de SAMC[AZ]?[0-9]+
a SAMC[0-9]+
.
Corregir algunos errores
conda install bioconda::iseq
# Use the following command to check whether dependent software is installed
iseq --version
iseq -i PRJNA211801
-a
para descargar directamente archivos FASTQ con formato gzip con -g
. iseq -i SRR_Acc_List.txt -a -g
$ iseq --help
Usage:
iseq -i accession [options]
Required option:
-i, --input [text|file] Single accession or a file containing multiple accessions.
Note: Only one accession per line in the file, all accessions must be from the same database.
Optional options:
-m, --metadata Skip the sequencing data downloads and only fetch the metadata for the accession.
-g, --gzip Download FASTQ files in gzip format directly (*.fastq.gz).
Note: if *.fastq.gz files are not available, SRA files will be downloaded and converted to *.fastq.gz files.
-q, --fastq Convert SRA files to FASTQ format.
-t, --threads int The number of threads to use for converting SRA to FASTQ files or compressing FASTQ files (default: 8).
-e, --merge [ex|sa|st] Merge multiple fastq files into one fastq file for each Experiment, Sample or Study.
-d, --database [ena|sra] Specify the database to download SRA sequencing data (default: ena).
Note: new SRA files may not be available in the ENA database, even if you specify "ena".
-p, --parallel int Download sequencing data in parallel, the number of connections needs to be specified, such as -p 10.
Note: breakpoint continuation cannot be shared between different numbers of connections.
-a, --aspera Use Aspera to download sequencing data, only support GSA/ENA database.
-s, --speed int Download speed limit (MB/s) (default: 1000 MB/s).
-o, --output text The output directory. If not exists, it will be created (default: current directory).
-h, --help Show the help information.
-v, --version Show the script version.
-i
, --input
Ingrese la entrada que desea descargar. También puede ingresar un archivo que contenga varias entradas (solo una entrada por línea en el archivo, todas las entradas deben ser de la misma base de datos).
iseq -i PRJNA211801
En primer lugar, iSeq recuperará los metadatos de la accesión y luego procederá a descargar cada ejecución contenida en ella.
Actualmente admite 6 formatos de acceso de las siguientes 5 bases de datos , con prefijos de acceso admitidos de la siguiente manera:
Bases de datos | BioProyecto | Estudiar | Biomuestra | Muestra | Experimento | Correr |
---|---|---|---|---|---|---|
GSA | PRJC | CRA | SAMC | CRX | RRC | |
SRA | PRJNA | SRP | SAMN | SRS | SRX | SRR |
ENA | PRJEB | ERP | MISMO | ERS | ERX | ERRAR |
DDBJ | PRJDB | DRP | SAMD | DRS | DRX | RRD |
GEO | GSE | GSM |
Además, para los dos formatos de datos ( GSE/GSM
) de la base de datos GEO, recuperará directamente el PRJNA/SAMN
asociado, luego procederá a obtener las ejecuciones contenidas y descargará los datos de secuenciación. Por lo tanto, esencialmente, todavía descarga datos de secuenciación de la base de datos SRA.
A continuación se muestran algunos ejemplos:
Tipo de adhesión | Prefijos | Ejemplo |
---|---|---|
BioProyecto | PRJEB, PRJNA, PRJDB, PRJC, GSE | PRJEB42779, PRJNA480016, PRJDB14838, PRJCA000613, GSE122139 |
Estudiar | ERP, DRP, SRP, CRA | ERP126685, DRP009283, SRP158268, CRA000553 |
Biomuestra | SAMD, MISMO, SAMN, SAMC | SAMD00258402, SAMEA7997453, SAMN06479985, SAMC017083 |
Muestra | ERS, DRS, SRS, GSM | ERS5684710, DRS259711, SRS2024210, GSM7417667 |
Experimento | ERX, DRX, SRX, CRX | ERX5050800, DRX406443, SRX4563689, CRX020217 |
Correr | ERR, RRD, SRR, CRR | ERR5260405, DRR421224, SRR7706354, CRR311377 |
En resumen, independientemente del formato de datos de su acceso entre las seis opciones, eventualmente descargará y verificará el valor MD5 de cada ejecución contenida. Si el valor MD5 no coincide con el de la base de datos pública, intentará un máximo de tres rondas de nueva descarga. Si tiene éxito después de tres intentos de descarga y verificación, el nombre del archivo se almacenará en success.log
; de lo contrario, si la descarga falla, el nombre del archivo se almacenará en fail.log
.
-m
, --metadata
Descargue solo la información de muestra de la accesión y omita la descarga de datos de secuenciación.
iseq -i PRJNA211801 -m
iseq -i CRR343031 -m
Por lo tanto, independientemente de si se utiliza el parámetro -m
o no, se obtendrá la información de muestra de la accesión. Si no se pueden recuperar los metadatos, el programa iSeq se cerrará sin continuar con la descarga posterior.
Nota
Nota 1 : Si la accesión recuperada está en las bases de datos SRA/ENA/DDBJ/GEO , iSeq buscará primero en la base de datos ENA. Si se puede recuperar información de muestra, descargará metadatos en formato TSV
a través de la API de ENA, que normalmente contiene 191 columnas. Sin embargo, es posible que algunos datos publicados recientemente en la base de datos de la SRA no se sincronicen rápidamente con la base de datos de la ENA. Por lo tanto, si no se pueden obtener metadatos de la base de datos de ENA, iSeq descargará directamente los metadatos en formato CSV
a través del backend de la base de datos SRA, que normalmente contiene 30 columnas. Para mantener la coherencia con el formato TSV, se convertirá al formato TSV usando sed -i 's/,/t/g'
. Sin embargo, si un solo campo contiene una coma, puede causar desorden en las columnas. Al final, obtendrá información de muestra denominada ${accession}.metadata.tsv
.
Nota
Nota 2 : si la entrada recuperada está en la base de datos de GSA , iSeq obtendrá información de muestra a través de la interfaz getRunInfo de GSA, descargando metadatos en formato CSV
, que normalmente contiene 25 columnas. Los metadatos obtenidos anteriormente se guardarán como ${accession}.metadata.csv
. Para complementar información de metadatos más detallada, iSeq obtendrá automáticamente información de metadatos para el proyecto al que pertenece la accesión a través de la interfaz exportExcelFile de GSA, descargando metadatos en formato XLSX
, generalmente con 3 hojas: Sample
, Experiment
, Run
. La información de metadatos final se guardará como ${accession}.metadata.xlsx
. En resumen, finalmente obtendrá información de muestra denominada ${accession}.metadata.csv
y CRA*.metadata.xlsx
.
-g
, --gzip
Descargue directamente archivos FASTQ en formato gzip . Si no es posible la descarga directa, los archivos SRA se descargarán y convertirán al formato gzip utilizando subprocesos múltiples para su descomposición y compresión.
iseq -i SRR1178105 -g
Dado que la mayoría de los formatos de datos almacenados directamente en la base de datos de GSA están en formato gzip, si la entrada que se busca proviene de la base de datos de GSA, ya sea que se use el parámetro -g
o no, puede descargar directamente archivos FASTQ en formato gzip.
Si la adhesión proviene de las bases de datos SRA/ENA/DDBJ/GEO , iSeq primero intentará acceder a la base de datos ENA. Si puede descargar directamente archivos FASTQ en formato gzip, lo hará; de lo contrario, descargará archivos SRA y los convertirá al formato FASTQ usando la herramienta fasterq-dump
, luego comprimirá los archivos FASTQ usando la herramienta pigz
y finalmente obtendrá archivos FASTQ en formato gzip.
Consejo
paralelo-fastq-dump también puede convertir SRA a archivos FASTQ comprimidos con gzip, normalmente 2 o 3 veces más rápido que fasterq-dump + pigz
. Sin embargo, teniendo en cuenta las limitaciones de IO , iSeq
actualmente no admite parallel-fastq-dump
.
-q
, --fastq
Después de descargar los archivos SRA, se descompondrán en varios archivos FASTQ sin comprimir .
iseq -i SRR1178105 -q
Este parámetro sólo es efectivo cuando la adhesión es de las bases de datos SRA/ENA/DDBJ/GEO y los archivos descargados son archivos SRA . Después de descargar los archivos SRA, iSeq utilizará la herramienta fasterq-dump
para convertirlos en archivos FASTQ. Además, puede especificar la cantidad de subprocesos para la conversión utilizando el parámetro -t
.
Nota
Nota 1 : -q
es particularmente útil para descargar datos de una sola celda , especialmente para datos scATAC-Seq, ya que puede descomponer efectivamente los archivos en cuatro partes: I1
, R1
, R2
, R3
. Sin embargo, si los archivos FASTQ se descargan directamente mediante el parámetro -g
, solo se obtendrán los archivos R1
y R3
(por ejemplo, SRR13450125), lo que puede causar problemas durante el análisis de datos posterior.
Nota
Nota 2 : Cuando -q
y -g
se usan juntos, el archivo SRA primero se descargará, luego se convertirá a archivos FASTQ
usando la herramienta fasterq-dump
y finalmente se comprimirá en formato gzip usando pigz
. No descarga directamente archivos FASTQ
en formato gzip, lo cual es muy útil para obtener datos completos de una sola celda.
-t
, --threads
Especifica la cantidad de subprocesos que se utilizarán para descomprimir archivos SRA en archivos FASTQ o comprimir archivos FASTQ. El valor predeterminado es 8
.
iseq -i SRR1178105 -q -t 10
Teniendo en cuenta que los archivos de datos de secuenciación son generalmente grandes, puede especificar la cantidad de subprocesos para la descomposición utilizando el parámetro -t
. Sin embargo, más subprocesos no significa necesariamente un mejor rendimiento porque un exceso de subprocesos puede generar altas cargas de CPU o IO , especialmente porque fasterq-dump
consume una cantidad considerable de IO, lo que potencialmente afecta la ejecución de otras tareas. Según la evaluación comparativa, recomendamos un número máximo de hilos de 15.
-e
, --merge
Combine varios archivos FASTQ en un archivo FASTQ para cada Experimento ( ex
), Muestra ( sa
) o Estudio ( st
).
iseq -i SRX003906 -g -e ex
Aunque en la mayoría de los casos un experimento contiene solo una ejecución, algunos datos de secuenciación pueden tener varias ejecuciones dentro de un experimento (por ejemplo, SRX003906, CRX020217). Por lo tanto, puede utilizar el parámetro -e
para fusionar varios archivos FASTQ de un experimento en uno solo. Teniendo en cuenta la secuenciación de extremos emparejados, donde los archivos fastq_1
y fastq_2
deben fusionarse simultáneamente y los nombres de secuencia en las líneas correspondientes deben permanecer consistentes, iSeq fusionará varios archivos FASTQ en el mismo orden . En última instancia, para los datos de secuenciación de un solo extremo , se generará un único archivo SRX*.fastq.gz
, y para los datos de secuenciación de dos extremos , se generarán dos archivos SRX*_1.fastq.gz
y SRX*_2.fastq.gz
.
Nota
Nota 1 : Si la entrada es un ID de ejecución , el parámetro -e
no se puede utilizar (ver más abajo). Actualmente, iSeq admite la combinación de archivos FASTQ comprimidos con gzip y sin comprimir , pero no admite la combinación de archivos como archivos BAM y archivos tar.gz.
-e ex
: fusiona todos los archivos fastq del mismo experimento en un archivo fastq. Formato de adhesión aceptado: ERX, DRX, SRX, CRX
.-e sa
: fusiona todos los archivos fastq del mismo ejemplo en un archivo fastq. Formato de adhesión aceptado: ERS, DRS, SRS, SAMC, GSM
.-e st
: fusiona todos los archivos fastq del mismo estudio en un archivo fastq. Formato de adhesión aceptado: ERP, DRP, SRP, CRA
. Nota
Nota 2 : Normalmente, cuando un experimento contiene solo una ejecución, las ejecuciones idénticas deben tener el mismo prefijo . Por ejemplo, SRR52991314_1.fq.gz
y SRR52991314_2.fq.gz
tienen el mismo prefijo SRR52991314
. En este caso, iSeq les cambiará el nombre directamente a SRX*_1.fastq.gz
y SRX*_2.fastq.gz
. Sin embargo, existen excepciones, como en CRX006713, donde una ejecución CRR007192
contiene archivos con diferentes prefijos. En tales casos, iSeq les cambiará el nombre a SRX*_original_filename
; por ejemplo, se les cambiará el nombre a CRX006713_CRD015671.gz
y CRX006713_CRD015672.gz
.
-d
, --database
Especifica la base de datos para descargar archivos SRA, compatible con bases de datos ENA y SRA .
iseq -i SRR1178105 -d sra
De forma predeterminada, iSeq detectará automáticamente las bases de datos disponibles, por lo que normalmente no es necesario especificar el parámetro -d
. Sin embargo, algunos archivos SRA pueden descargarse lentamente desde la base de datos de ENA. En tales casos, puede forzar la descarga desde la base de datos SRA especificando -d sra
.
Nota
Nota : Si el archivo SRA correspondiente no se encuentra en la base de datos de ENA , incluso si se especifica el parámetro -d ena
, iSeq cambiará automáticamente a la descarga desde la base de datos de SRA .
-p
, --parallel
Permite la descarga de subprocesos múltiples y requiere especificar el número de subprocesos.
iseq -i PRJNA211801 -p 10
Teniendo en cuenta que wget
puede ser lento en algunos casos, puede usar el parámetro -p
para permitir que iSeq utilice la herramienta axel
para descargas multiproceso.
Nota
Nota 1 : La función de descarga reanudable de la descarga de subprocesos múltiples solo es efectiva dentro del mismo subproceso . Es decir, si se usa el parámetro -p 10
para la primera descarga, también se debe usar para la segunda descarga para permitir la descarga reanudable.
Nota
Nota 2 : Como se mencionó, iSeq mantendrá 10 conexiones durante todo el proceso de descarga. Por lo tanto, verá varias veces que la misma Connection * finished
aparecer durante el proceso de descarga. Esto se debe a que algunas conexiones se liberan inmediatamente después de completar la descarga y luego se establecen nuevas conexiones para la descarga.
-a
, --aspera
Utilice Aspera para descargar.
iseq -i PRJNA211801 -a -g
Como Aspera ofrece velocidades de descarga más rápidas, puede utilizar el parámetro -a
para indicarle a iSeq que utilice la herramienta ascp
para la descarga. Desafortunadamente, la descarga de Aspera actualmente solo es compatible con las bases de datos GSA y ENA . La base de datos NCBI SRA no puede utilizar Aspera para la descarga, ya que emplea predominantemente tecnologías de Google Cloud y AWS Cloud y por otras razones; consulte Evitar el uso de ascp.
Nota
Nota 1 : Al acceder a la base de datos de GSA , si hay enlaces de descarga disponibles desde Huawei Cloud , iSeq dará prioridad a la descarga a través de Huawei Cloud, incluso si se utiliza el parámetro -a
. Esto se debe a que Huawei Cloud ofrece velocidades de descarga más rápidas y estables. Por lo tanto, al descargar datos de GSA, se recomienda utilizar el parámetro -a
. De esta manera, si el acceso a Huawei Cloud no está disponible, la descarga a través del canal Aspera sigue siendo relativamente rápida. De lo contrario, tendrás que recurrir a la descarga mediante wget
o axel
, que son métodos más lentos.
Nota
Nota 2 : Dado que Asper
a requiere un archivo de clave, iSeq buscará automáticamente el archivo de clave en el entorno conda
o en el directorio ~/.aspera
. Si no se encuentra el archivo clave, no será posible descargarlo.
-o
, --output
El directorio de salida. Si no existe, se creará (predeterminado: directorio actual).
-s
, --speed
Límite de velocidad de descarga (MB/s) (predeterminado: 1000 MB/s) para Wget
, AXEL
y Aspera
.
Producción | Descripción |
---|---|
Archivos SRA | Se puede convertir a archivos FASTQ usando la opción -q |
.metadatos.tsv | Metadatos para el acceso a consultas |
éxito.log | Guarde el nombre del archivo SRA que se ha descargado correctamente |
falla.log | No se pudo guardar el nombre del archivo SRA que se descargó |
Producción | Descripción |
---|---|
Archivos GSA | Principalmente en formato *.gz y algunos en formato bam/tar/bz2. |
.metadatos.csv | Metadatos para el acceso a consultas |
.metadatos.xlsx | Metadatos para el proyecto, incluido el acceso a consultas en formato xlsx |
éxito.log | Guarde el nombre del archivo GSA que se ha descargado correctamente |
falla.log | No se pudo guardar el nombre del archivo GSA que se descargó |
iSeq se inspiró en fastq-dl, fetchngs, pysradb, Kingfisher . Estas excelentes herramientas también pueden resultar muy útiles. A continuación se muestran múltiples comparaciones de diferentes software:
Nombre del programa | Idiomas del programa | Bases de datos soportadas | Adhesiones apoyadas | Formatos soportados | Métodos admitidos | Obtener metadatos | verificación MD5 | Descarga reanudable | Descarga paralela | Fusionar FASTQ | Saltar descargado | Conda instalable | URL |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
iSeq | Caparazón | GSA, SRA, ENA, DDBJ, GEO | Todo | fq, fq.gz, sra, bam | wget, axel, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ? |
bordeturbo | do | GSA | Todo negado | fq, fq.gz, bam | descargar edgeturbo | ✔ | ? | ||||||
Kit de herramientas de la SRA | do | SRA, ENA, DDBJ | Todo denegado espera ID de ejecución | fq, fq.gz, sra | captación previa | ✔ | ✔ | ✔ | ✔ | ? | |||
enaBrowserHerramientas | Pitón | SRA, ENA, DDBJ | Todos excepto GSA/GEO ID | fq, fq.gz, sra | urllib, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
fastq-dl | Pitón | SRA, ENA, DDBJ | Todos excepto GSA/GEO ID | fq, fq.gz, sra, sra.lite | obtener | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
buscando | Pitón | SRA, ENA, DDBJ, GEO | Todos excepto ID de GSA | fq, fq.gz | wget, aspera, captación previa | ✔ | ✔ | ✔ | ✔ | ? | |||
pysradb | Pitón | SRA, ENA, DDBJ, GEO | Todos excepto ID de GSA | fq, fq.gz, sra, bam | solicitudes, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
Martín pescador | Pitón | SRA, ENA, DDBJ | Todos excepto GSA/GEO ID | fq, fq.gz, sra | rizo, aria2c, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
ffq | Pitón | SRA, ENA, DDBJ, GEO | Todos excepto ID de GSA | fq, fq.gz, sra, bam | solicitudes | ✔ | ✔ | ✔ | ? |
¡Las contribuciones a iSeq son bienvenidas! Si tiene alguna sugerencia, informe de errores o solicitud de funciones, abra un problema en el repositorio de GitHub del proyecto. Si desea contribuir con código, bifurque el repositorio, realice los cambios y envíe una solicitud de extracción.
Cítenos : https://doi.org/10.1101/2024.05.16.594538
Este proyecto está bajo la licencia MIT.