Citez-nous : Haoyu Chao, Zhuojin Li, Dijun Chen, Ming Chen, iSeq : Un outil intégré pour récupérer des données de séquençage publiques, Bioinformatics , 2024 ;, btae641, https://doi.org/10.1093/bioinformatics/btae641
iSeq est un script Bash qui vous permet de télécharger des données de séquençage et des métadonnées à partir des bases de données GSA , SRA , ENA et DDBJ . Voir le pipeline détaillé pour iSeq. Voici le pipeline de base d'iSeq :
Important
Pour utiliser iSeq, votre système doit être connecté au réseau et prendre en charge les protocoles FTP, HTTP et HTTPS .
-s
, --speed
pour définir la limite de vitesse de téléchargement (Mo/s) (par défaut : 1 000 Mo/s). Tel que iseq -i SRR7706354 -s 10
sra-tools=2.11
à sra-tools>=2.11.0
. Nouvelle option -e
pour fusionner des fichiers FASTQ : Ajout d'une option -e
pour fusionner plusieurs fichiers FASTQ en un seul fichier pour chaque Experiment (-e ex)
, Sample (-e sa)
ou Study (-e st)
.
Nouvelle option -i
pour la saisie : iSeq
peut désormais accepter un file
contenant plusieurs numéros d'accession en entrée par -i fileName
.
Modification de l'API pour le téléchargement des métadonnées GSA : le point de terminaison de l'API a été mis à jour de getRunInfo
vers getRunInfoByCra
pour le téléchargement des métadonnées GSA.
Enregistrer le résultat dans le répertoire personnel : Les résultats de sortie seront désormais enregistrés dans le répertoire personnel de l'utilisateur par l'option -o
.
Regex mise à jour pour la correspondance SAMC : le modèle de correspondance pour SAMC a été modifié de SAMC[AZ]?[0-9]+
à SAMC[0-9]+
.
Correction de quelques bugs
conda install bioconda::iseq
# Use the following command to check whether dependent software is installed
iseq --version
iseq -i PRJNA211801
-a
pour télécharger directement des fichiers FASTQ au format gzip avec -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
Saisissez l'accession que vous souhaitez télécharger. Vous pouvez également saisir un fichier contenant plusieurs accessions (une seule accession par ligne dans le fichier, toutes les accessions doivent provenir de la même base de données).
iseq -i PRJNA211801
Tout d’abord, iSeq récupérera les métadonnées de l’adhésion, puis procédera au téléchargement de chaque Run qu’elle contient.
Prend actuellement en charge 6 formats d'accession à partir des 5 bases de données suivantes, avec les préfixes d'accession pris en charge comme suit :
Bases de données | BioProjet | Étude | Échantillon biologique | Échantillon | Expérience | Courir |
---|---|---|---|---|---|---|
GSA | PRJC | ARC | SAMC | CRX | CRR | |
SRA | PRJNA | PDS | SAMN | SRS | SRX | SRR |
ENA | PRJEB | ERP | MÊME | ERS | ERX | SE TROMPER |
DDBJ | PRJDB | PRD | SAMD | DRS | DRX | RRC |
GÉO | GSE | GSM |
De plus, pour les deux formats de données ( GSE/GSM
) de la base de données GEO, il récupérera directement le PRJNA/SAMN
associé, puis procédera à l'obtention des Runs contenus et téléchargera les données de séquençage. Par conséquent, il continue essentiellement à télécharger les données de séquençage à partir de la base de données SRA.
Voici quelques exemples :
Type d'adhésion | Préfixes | Exemple |
---|---|---|
BioProjet | PRJEB, PRJNA, PRJDB, PRJC, GSE | PRJEB42779, PRJNA480016, PRJDB14838, PRJCA000613, GSE122139 |
Étude | ERP, DRP, SRP, ARC | ERP126685, DRP009283, SRP158268, CRA000553 |
Échantillon biologique | SAMD, MÊME, SAMN, SAMC | SAMD00258402, SAMEA7997453, SAMN06479985, SAMC017083 |
Échantillon | ERS, DRS, SRS, GSM | ERS5684710, DRS259711, SRS2024210, GSM7417667 |
Expérience | ERX, DRX, SRX, CRX | ERX5050800, DRX406443, SRX4563689, CRX020217 |
Courir | ERR, DRR, SRR, CRR | ERR5260405, DRR421224, SRR7706354, CRR311377 |
En résumé, quel que soit le format de données de votre accession parmi les six options, il finira par télécharger et vérifier la valeur MD5 de chaque Run contenu. Si la valeur MD5 ne correspond pas à celle de la base de données publique, il tentera un maximum de trois cycles de retéléchargement. En cas de succès après trois tentatives de téléchargement et de vérification, le nom du fichier sera stocké dans success.log
; sinon, si le téléchargement échoue, le nom du fichier sera stocké dans fail.log
.
-m
, --metadata
Téléchargez uniquement les exemples d’informations de l’adhésion et ignorez le téléchargement des données de séquençage.
iseq -i PRJNA211801 -m
iseq -i CRR343031 -m
Par conséquent, que le paramètre -m
soit utilisé ou non, les informations d'échantillon de l'accession seront obtenues. Si les métadonnées ne peuvent pas être récupérées, le programme iSeq se fermera sans procéder au téléchargement suivant.
Note
Note 1 : Si l'accession récupérée se trouve dans les bases de données SRA/ENA/DDBJ/GEO , iSeq recherchera d'abord dans la base de données ENA. Si des exemples d'informations peuvent être récupérés, les métadonnées seront téléchargées au format TSV
via l'API ENA, contenant généralement 191 colonnes. Cependant, certaines données récemment publiées dans la base de données SRA peuvent ne pas être rapidement synchronisées avec la base de données ENA. Par conséquent, si les métadonnées ne peuvent pas être obtenues à partir de la base de données ENA, iSeq téléchargera directement les métadonnées au format CSV
via le backend de la base de données SRA, contenant généralement 30 colonnes. Pour maintenir la cohérence avec le format TSV, il sera converti au format TSV en utilisant sed -i 's/,/t/g'
. Cependant, si un seul champ contient une virgule, cela peut entraîner un désordre dans les colonnes. En fin de compte, vous obtiendrez des exemples d'informations nommées ${accession}.metadata.tsv
.
Note
Remarque 2 : Si l'adhésion récupérée se trouve dans la base de données GSA , iSeq obtiendra des exemples d'informations via l'interface getRunInfo de GSA, en téléchargeant les métadonnées au format CSV
, contenant généralement 25 colonnes. Les métadonnées obtenues ci-dessus seront enregistrées sous ${accession}.metadata.csv
. Pour compléter des informations de métadonnées plus détaillées, iSeq obtiendra automatiquement des informations de métadonnées pour le projet auquel appartient l'adhésion via l'interface exportExcelFile de GSA, en téléchargeant les métadonnées au format XLSX
, généralement avec 3 feuilles : Sample
, Experiment
, Run
. Les informations finales sur les métadonnées seront enregistrées sous ${accession}.metadata.xlsx
. En résumé, vous obtiendrez finalement des exemples d'informations nommées ${accession}.metadata.csv
et CRA*.metadata.xlsx
.
-g
, --gzip
Téléchargez directement les fichiers FASTQ au format gzip . Si le téléchargement direct n'est pas possible, les fichiers SRA seront téléchargés et convertis au format gzip en utilisant le multithread pour la décomposition et la compression.
iseq -i SRR1178105 -g
La majorité des formats de données stockés directement dans la base de données GSA étant au format gzip, si l'accession recherchée provient de la base de données GSA, que le paramètre -g
soit utilisé ou non, vous pouvez directement télécharger les fichiers FASTQ au format gzip.
Si l'adhésion provient des bases de données SRA/ENA/DDBJ/GEO , iSeq tentera d'abord d'accéder à la base de données ENA. S'il peut télécharger directement les fichiers FASTQ au format gzip, il le fera ; sinon, il téléchargera les fichiers SRA et les convertira au format FASTQ à l'aide de l'outil fasterq-dump
, puis compressera les fichiers FASTQ à l'aide de l'outil pigz
, obtenant finalement les fichiers FASTQ au format gzip.
Conseil
parallel-fastq-dump peut également convertir SRA en fichiers FASTQ compressés par gzip, généralement 2 à 3 fois plus rapidement que fasterq-dump + pigz
. Cependant, compte tenu des limitations d'E/S , iSeq
ne prend actuellement pas en charge parallel-fastq-dump
.
-q
, --fastq
Après avoir téléchargé les fichiers SRA, ils seront décomposés en plusieurs fichiers FASTQ non compressés .
iseq -i SRR1178105 -q
Ce paramètre n'est efficace que lorsque l'accession provient des bases de données SRA/ENA/DDBJ/GEO et que les fichiers téléchargés sont des fichiers SRA . Après avoir téléchargé les fichiers SRA, iSeq utilisera l'outil fasterq-dump
pour les convertir en fichiers FASTQ. De plus, vous pouvez spécifier le nombre de threads à convertir à l'aide du paramètre -t
.
Note
Remarque 1 : -q
est particulièrement utile pour télécharger des données unicellulaires , en particulier pour les données scATAC-Seq, car il peut décomposer efficacement les fichiers en quatre parties : I1
, R1
, R2
, R3
. Cependant, si les fichiers FASTQ sont directement téléchargés via le paramètre -g
, seuls les fichiers R1
et R3
seront obtenus (par exemple, SRR13450125), ce qui peut entraîner des problèmes lors de l'analyse ultérieure des données.
Note
Remarque 2 : Lorsque -q
et -g
sont utilisés ensemble, le fichier SRA sera d'abord téléchargé, puis converti en fichiers FASTQ
à l'aide de l'outil fasterq-dump
, et enfin compressé au format gzip à l'aide pigz
. Il ne télécharge pas directement les fichiers FASTQ
au format gzip, ce qui est très utile pour obtenir des données complètes sur une seule cellule.
-t
, --threads
Spécifie le nombre de threads à utiliser pour décompresser les fichiers SRA en fichiers FASTQ ou compresser les fichiers FASTQ. La valeur par défaut est 8
.
iseq -i SRR1178105 -q -t 10
Étant donné que les fichiers de données de séquençage sont généralement volumineux, vous pouvez spécifier le nombre de threads à décomposer à l'aide du paramètre -t
. Cependant, plus de threads ne signifie pas nécessairement de meilleures performances, car un nombre excessif de threads peut entraîner des charges CPU ou E/S élevées , d'autant plus que fasterq-dump
consomme une quantité considérable d'E/S, ce qui peut avoir un impact sur l'exécution d'autres tâches. Sur la base de l'évaluation de référence, nous recommandons un nombre maximum de fils de 15.
-e
, --merge
Fusionnez plusieurs fichiers FASTQ en un seul fichier FASTQ pour chaque expérience ( ex
), échantillon ( sa
) ou étude ( st
).
iseq -i SRX003906 -g -e ex
Bien que dans la plupart des cas, une expérience ne contienne qu'une seule analyse, certaines données de séquençage peuvent comporter plusieurs analyses au sein d'une expérience (par exemple, SRX003906, CRX020217). Par conséquent, vous pouvez utiliser le paramètre -e
pour fusionner plusieurs fichiers FASTQ d'une expérience en un seul. Compte tenu du séquençage par paires, où les fichiers fastq_1
et fastq_2
doivent être fusionnés simultanément et où les noms de séquence dans les lignes correspondantes doivent rester cohérents, iSeq fusionnera plusieurs fichiers FASTQ dans le même ordre . En fin de compte, pour les données de séquençage à une extrémité , un seul fichier SRX*.fastq.gz
sera généré, et pour les données de séquençage à extrémité paire , deux fichiers SRX*_1.fastq.gz
et SRX*_2.fastq.gz
seront générés. .
Note
Note 1 : Si l'adhésion est un Run ID , le paramètre -e
ne peut pas être utilisé (voir ci-dessous). Actuellement, iSeq prend en charge la fusion de fichiers FASTQ compressés avec gzip et non compressés , mais ne prend pas en charge la fusion de fichiers tels que les fichiers BAM et les fichiers tar.gz.
-e ex
: fusionne tous les fichiers fastq de la même expérience en un seul fichier fastq. Format d'adhésion accepté : ERX, DRX, SRX, CRX
.-e sa
: fusionne tous les fichiers fastq du même Sample en un seul fichier fastq. Format d'adhésion accepté : ERS, DRS, SRS, SAMC, GSM
.-e st
: fusionne tous les fichiers fastq de la même étude en un seul fichier fastq. Format d'adhésion accepté : ERP, DRP, SRP, CRA
. Note
Note 2 : Normalement, lorsqu'une Expérience ne contient qu'un seul Run, les Runs identiques doivent avoir le même préfixe . Par exemple, SRR52991314_1.fq.gz
et SRR52991314_2.fq.gz
ont le même préfixe SRR52991314
. Dans ce cas, iSeq les renommera directement SRX*_1.fastq.gz
et SRX*_2.fastq.gz
. Il existe cependant des exceptions, comme dans CRX006713 où un Run CRR007192
contient des fichiers avec des préfixes différents. Dans de tels cas, iSeq les renommera SRX*_original_filename
, par exemple, ils seront renommés CRX006713_CRD015671.gz
et CRX006713_CRD015672.gz
.
-d
, --database
Spécifie la base de données pour télécharger les fichiers SRA, prenant en charge les bases de données ENA et SRA .
iseq -i SRR1178105 -d sra
Par défaut, iSeq détectera automatiquement les bases de données disponibles, il est donc généralement inutile de spécifier le paramètre -d
. Cependant, certains fichiers SRA peuvent être téléchargés lentement à partir de la base de données ENA. Dans de tels cas, vous pouvez forcer le téléchargement depuis la base de données SRA en spécifiant -d sra
.
Note
Remarque : Si le fichier SRA correspondant n'est pas trouvé dans la base de données ENA , même si le paramètre -d ena
est spécifié, iSeq passera quand même automatiquement en téléchargement depuis la base de données SRA .
-p
, --parallel
Permet le téléchargement multithread et nécessite de spécifier le nombre de threads.
iseq -i PRJNA211801 -p 10
Étant donné que wget
peut être lent dans certains cas, vous pouvez utiliser le paramètre -p
pour permettre à iSeq d'utiliser l'outil axel
pour le téléchargement multithread.
Note
Remarque 1 : la fonctionnalité de téléchargement avec reprise du téléchargement multithread n'est efficace qu'au sein du même thread . Autrement dit, si le paramètre -p 10
est utilisé pour le premier téléchargement, il doit également être utilisé pour le deuxième téléchargement afin de permettre la reprise du téléchargement.
Note
Note 2 : Comme mentionné, iSeq maintiendra 10 connexions tout au long du processus de téléchargement. Par conséquent, vous verrez plusieurs occurrences de la même Connection * finished
pendant le processus de téléchargement. En effet, certaines connexions sont libérées immédiatement après la fin du téléchargement, puis de nouvelles connexions sont établies pour le téléchargement.
-a
, --aspera
Utilisez Aspera pour le téléchargement.
iseq -i PRJNA211801 -a -g
Comme Aspera offre des vitesses de téléchargement plus rapides, vous pouvez utiliser le paramètre -a
pour demander à iSeq d'utiliser l'outil ascp
pour le téléchargement. Malheureusement, le téléchargement Aspera n'est actuellement pris en charge que par les bases de données GSA et ENA . La base de données NCBI SRA ne peut pas utiliser Aspera pour le téléchargement car elle utilise principalement les technologies Google Cloud et AWS Cloud et pour d'autres raisons, voir Évitez d'utiliser ascp.
Note
Note 1 : Lors de l'accès à la base de données GSA , si des liens de téléchargement depuis Huawei Cloud sont disponibles, iSeq donnera la priorité au téléchargement via Huawei Cloud, même si le paramètre -a
est utilisé. En effet, Huawei Cloud offre des vitesses de téléchargement plus rapides et plus stables. Par conséquent, lors du téléchargement de données GSA, il est recommandé d'utiliser le paramètre -a
. De cette façon, si l'accès à Huawei Cloud n'est pas disponible, le téléchargement via le canal Aspera reste relativement rapide. Sinon, vous devrez recourir au téléchargement via wget
ou axel
, qui sont des méthodes plus lentes.
Note
Remarque 2 : Comme Asper
a nécessite un fichier de clé, iSeq recherchera automatiquement le fichier de clé dans l'environnement conda
ou dans le répertoire ~/.aspera
. Si le fichier clé n'est pas trouvé, le téléchargement ne sera pas possible.
-o
, --output
Le répertoire de sortie. S'il n'existe pas, il sera créé (par défaut : répertoire courant).
-s
, --speed
Limite de vitesse de téléchargement (Mo/s) (par défaut : 1 000 Mo/s) pour Wget
, AXEL
et Aspera
.
Sortir | Description |
---|---|
Fichiers SRA | Peut être converti en fichiers FASTQ à l'aide de l'option -q |
.metadonnées.tsv | Métadonnées pour l'adhésion aux requêtes |
succès.log | Enregistrez le nom du fichier SRA qui a été téléchargé avec succès |
échec.log | L'enregistrement du nom du fichier SRA qui a été téléchargé a échoué |
Sortir | Description |
---|---|
Fichiers GSA | Principalement au format *.gz, et quelques-uns au format bam/tar/bz2 |
.metadonnées.csv | Métadonnées pour l'adhésion aux requêtes |
.metadonnées.xlsx | Métadonnées pour le projet, y compris l'adhésion aux requêtes au format xlsx |
succès.log | Enregistrez le nom du fichier GSA qui a été téléchargé avec succès |
échec.log | L'enregistrement du nom du fichier GSA qui a été téléchargé a échoué |
iSeq a été inspiré par fastq-dl, fetchngs, pysradb, Kingfisher . Ces excellents outils peuvent également être très utiles. Vous trouverez ci-dessous plusieurs comparaisons de différents logiciels :
Nom du logiciel | Langages du programme | Bases de données prises en charge | Accessions prises en charge | Formats pris en charge | Méthodes prises en charge | Récupérer les métadonnées | Vérification MD5 | Téléchargement pouvant être repris | Téléchargement parallèle | Fusionner FASTQ | Passer le téléchargement | Conda installable | URL |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
iSeq | Coquille | GSA, SRA, ENA, DDBJ, GEO | Tous | fq, fq.gz, sra, bam | wget, axel, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ? |
bordturbo | C | GSA | Tout a été refusé | fq, fq.gz, bam | téléchargement EdgeTurbo | ✔ | ? | ||||||
Boîte à outils SRA | C | SRA, ENA, DDBJ | Tous refusés, attendez l'ID d'exécution | fq, fq.gz, sra | prélecture | ✔ | ✔ | ✔ | ✔ | ? | |||
enaBrowserTools | Python | SRA, ENA, DDBJ | Tous sauf GSA/GEO ID | fq, fq.gz, sra | urllib, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
fastq-dl | Python | SRA, ENA, DDBJ | Tous sauf GSA/GEO ID | fq, fq.gz, sra, sra.lite | wget | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
récupérations | Python | SRA, ENA, DDBJ, GÉO | Tous sauf l'identifiant GSA | fq, fq.gz | wget, aspera, prélecture | ✔ | ✔ | ✔ | ✔ | ? | |||
pysradb | Python | SRA, ENA, DDBJ, GÉO | Tous sauf l'identifiant GSA | fq, fq.gz, sra, bam | demandes, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
Martin-pêcheur | Python | SRA, ENA, DDBJ | Tous sauf GSA/GEO ID | fq, fq.gz, sra | boucle, aria2c, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
ffq | Python | SRA, ENA, DDBJ, GÉO | Tous sauf l'identifiant GSA | fq, fq.gz, sra, bam | demandes | ✔ | ✔ | ✔ | ? |
Les contributions à iSeq sont les bienvenues ! Si vous avez des suggestions, des rapports de bugs ou des demandes de fonctionnalités, veuillez ouvrir un ticket sur le référentiel GitHub du projet. Si vous souhaitez contribuer au code, veuillez créer le référentiel, apporter vos modifications et soumettre une pull request.
Citez-nous : https://doi.org/10.1101/2024.05.16.594538
Ce projet est sous licence MIT.