Zitieren Sie uns : Haoyu Chao, Zhuojin Li, Dijun Chen, Ming Chen, iSeq: Ein integriertes Tool zum Abrufen öffentlicher Sequenzierungsdaten, Bioinformatik , 2024;, btae641, https://doi.org/10.1093/bioinformatics/btae641
iSeq ist ein Bash-Skript, mit dem Sie Sequenzierungsdaten und Metadaten aus GSA- , SRA- , ENA- und DDBJ- Datenbanken herunterladen können. Siehe Detailpipeline für iSeq. Hier ist die grundlegende Pipeline von iSeq:
Wichtig
Um iSeq verwenden zu können, muss Ihr System mit dem Netzwerk verbunden sein und die Protokolle FTP, HTTP und HTTPS unterstützen .
-s
, --speed
zum Festlegen der Download-Geschwindigkeitsbegrenzung (MB/s) (Standard: 1000 MB/s). Zum Beispiel iseq -i SRR7706354 -s 10
sra-tools=2.11
auf sra-tools>=2.11.0
aktualisiert. Neue Option -e
zum Zusammenführen von FASTQ-Dateien : Es wurde eine Option -e
hinzugefügt, um mehrere FASTQ-Dateien in einer einzigen Datei für jedes Experiment (-e ex)
, Sample (-e sa)
oder Study (-e st)
zusammenzuführen.
Neue Option -i
für die Eingabe : iSeq
kann jetzt eine file
mit mehreren Zugangsnummern als Eingabe durch -i fileName
akzeptieren.
API-Änderung für den Download von GSA-Metadaten : Der API-Endpunkt wurde von getRunInfo
auf getRunInfoByCra
zum Herunterladen von GSA-Metadaten aktualisiert.
Ergebnis im persönlichen Verzeichnis speichern : Die Ausgabeergebnisse werden jetzt mit der Option -o
im persönlichen Verzeichnis des Benutzers gespeichert.
Regex für SAMC-Abgleich aktualisiert : Das Abgleichsmuster für SAMC wurde von SAMC[AZ]?[0-9]+
in SAMC[0-9]+
geändert.
Beheben Sie einige Fehler
conda install bioconda::iseq
# Use the following command to check whether dependent software is installed
iseq --version
iseq -i PRJNA211801
-a
, um gzip-formatierte FASTQ-Dateien mit -g
direkt herunterzuladen. 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
Geben Sie die Akzession ein, die Sie herunterladen möchten. Sie können auch eine Datei mit mehreren Akzessionen eingeben (nur eine Akzession pro Zeile in der Datei, alle Akzessionen müssen aus derselben Datenbank stammen).
iseq -i PRJNA211801
Zunächst ruft iSeq die Metadaten des Beitritts ab und lädt dann jeden darin enthaltenen Lauf herunter.
Unterstützt derzeit 6 Beitrittsformate aus den folgenden 5 Datenbanken mit unterstützten Beitrittspräfixen wie folgt:
Datenbanken | BioProjekt | Studie | BioSample | Probe | Experiment | Laufen |
---|---|---|---|---|---|---|
GSA | PRJC | CRA | SAMC | CRX | CRR | |
SRA | PRJNA | SRP | SAMN | SRS | SRX | SRR |
ENA | PRJEB | ERP | DASSELBE | ERS | ERX | ERR |
DDBJ | PRJDB | DRP | SAMD | DRS | DRX | DRR |
GEO | GSE | GSM |
Darüber hinaus wird für die beiden Datenformate ( GSE/GSM
) aus der GEO-Datenbank direkt das zugehörige PRJNA/SAMN
abgerufen, dann die enthaltenen Läufe abgerufen und die Sequenzierungsdaten heruntergeladen. Daher werden im Wesentlichen weiterhin Sequenzierungsdaten aus der SRA-Datenbank heruntergeladen.
Hier einige Beispiele:
Beitrittstyp | Präfixe | Beispiel |
---|---|---|
BioProjekt | PRJEB, PRJNA, PRJDB, PRJC, GSE | PRJEB42779, PRJNA480016, PRJDB14838, PRJCA000613, GSE122139 |
Studie | ERP, DRP, SRP, CRA | ERP126685, DRP009283, SRP158268, CRA000553 |
BioSample | SAMD, SAME, SAMN, SAMC | SAMD00258402, SAMEA7997453, SAMN06479985, SAMC017083 |
Probe | ERS, DRS, SRS, GSM | ERS5684710, DRS259711, SRS2024210, GSM7417667 |
Experiment | ERX, DRX, SRX, CRX | ERX5050800, DRX406443, SRX4563689, CRX020217 |
Laufen | ERR, DRR, SRR, CRR | ERR5260405, DRR421224, SRR7706354, CRR311377 |
Zusammenfassend lässt sich sagen, dass unabhängig vom Datenformat Ihrer beigefügten sechs Optionen letztendlich der MD5-Wert jedes enthaltenen Laufs heruntergeladen und überprüft wird. Wenn der MD5-Wert nicht mit dem in der öffentlichen Datenbank übereinstimmt, werden maximal drei erneute Download-Runden versucht. Wenn der Download und die Überprüfung nach drei Versuchen erfolgreich waren, wird der Dateiname in success.log
gespeichert. Andernfalls wird der Dateiname in fail.log
gespeichert, wenn der Download fehlschlägt.
-m
, --metadata
Laden Sie nur die Beispielinformationen der Akzession herunter und überspringen Sie den Download der Sequenzierungsdaten.
iseq -i PRJNA211801 -m
iseq -i CRR343031 -m
Unabhängig davon, ob der Parameter -m
verwendet wird oder nicht, werden daher die Beispielinformationen des Beitritts abgerufen. Wenn Metadaten nicht abgerufen werden können, wird das iSeq -Programm beendet, ohne mit dem anschließenden Download fortzufahren.
Notiz
Hinweis 1 : Wenn sich die abgerufene Akzession in den SRA/ENA/DDBJ/GEO -Datenbanken befindet, sucht iSeq zunächst in der ENA-Datenbank. Wenn Beispielinformationen abgerufen werden können, werden Metadaten im TSV
Format über die ENA-API heruntergeladen, die normalerweise 191 Spalten enthalten. Einige kürzlich veröffentlichte Daten in der SRA-Datenbank werden jedoch möglicherweise nicht umgehend mit der ENA-Datenbank synchronisiert. Wenn daher keine Metadaten aus der ENA-Datenbank abgerufen werden können, lädt iSeq die Metadaten direkt im CSV
Format über das SRA-Datenbank-Backend herunter, das normalerweise 30 Spalten enthält. Um die Konsistenz mit dem TSV-Format aufrechtzuerhalten, wird es mit sed -i 's/,/t/g'
in das TSV-Format konvertiert. Wenn jedoch ein einzelnes Feld ein Komma enthält, kann es zu einer Spaltenunordnung kommen. Letztendlich erhalten Sie Beispielinformationen mit dem Namen ${accession}.metadata.tsv
.
Notiz
Hinweis 2 : Wenn sich die abgerufene Akzession in der GSA- Datenbank befindet, ruft iSeq Probeninformationen über die getRunInfo-Schnittstelle der GSA ab und lädt Metadaten im CSV
-Format herunter, die normalerweise 25 Spalten enthalten. Die oben erhaltenen Metadaten werden als ${accession}.metadata.csv
gespeichert. Um detailliertere Metadateninformationen zu ergänzen, ruft iSeq automatisch Metadateninformationen für das Projekt ab, zu dem der Beitritt gehört, über die exportExcelFile-Schnittstelle der GSA und lädt Metadaten im XLSX
-Format herunter, normalerweise mit drei Blättern: Sample
, Experiment
, Run
. Die endgültigen Metadateninformationen werden als ${accession}.metadata.xlsx
gespeichert. Zusammenfassend erhalten Sie letztendlich Beispielinformationen mit den Namen ${accession}.metadata.csv
und CRA*.metadata.xlsx
.
-g
, --gzip
Laden Sie FASTQ-Dateien direkt im gzip-Format herunter. Wenn ein direkter Download nicht möglich ist, werden SRA-Dateien heruntergeladen und mithilfe von Multithreading zur Zerlegung und Komprimierung in das gzip-Format konvertiert.
iseq -i SRR1178105 -g
Da die meisten direkt in der GSA- Datenbank gespeicherten Datenformate im gzip-Format vorliegen, können Sie FASTQ-Dateien direkt im gzip-Format herunterladen, wenn der gesuchte Zugang aus der GSA-Datenbank stammt, unabhängig davon, ob der Parameter -g
verwendet wird oder nicht.
Wenn der Zugriff aus den SRA/ENA/DDBJ/GEO- Datenbanken erfolgt, versucht iSeq zunächst, auf die ENA-Datenbank zuzugreifen. Wenn es FASTQ-Dateien direkt im gzip-Format herunterladen kann, wird es dies tun; Andernfalls werden SRA-Dateien heruntergeladen und mit dem Tool fasterq-dump
in das FASTQ-Format konvertiert. Anschließend werden die FASTQ-Dateien mit dem Tool pigz
komprimiert, um letztendlich FASTQ-Dateien im GZIP-Format zu erhalten.
Tipp
parallel-fastq-dump kann SRA auch in gzip-komprimierte FASTQ-Dateien konvertieren, normalerweise 2-3 Mal schneller als fasterq-dump + pigz
. Aufgrund der E/A-Einschränkungen unterstützt iSeq
derzeit jedoch kein parallel-fastq-dump
.
-q
, --fastq
Nach dem Herunterladen der SRA-Dateien werden diese in mehrere unkomprimierte FASTQ- Dateien zerlegt.
iseq -i SRR1178105 -q
Dieser Parameter ist nur wirksam, wenn der Zugriff aus den Datenbanken SRA/ENA/DDBJ/GEO erfolgt und die heruntergeladenen Dateien SRA-Dateien sind. Nach dem Herunterladen der SRA-Dateien verwendet iSeq das Tool fasterq-dump
um sie in FASTQ-Dateien zu konvertieren. Darüber hinaus können Sie mit dem Parameter -t
die Anzahl der Threads für die Konvertierung angeben.
Notiz
Hinweis1 : -q
ist besonders nützlich für das Herunterladen von Einzelzellendaten , insbesondere für scATAC-Seq-Daten, da es die Dateien effektiv in vier Teile zerlegen kann: I1
, R1
, R2
, R3
. Wenn FASTQ-Dateien jedoch direkt über den Parameter -g
heruntergeladen werden, werden nur R1
und R3
Dateien erhalten (z. B. SRR13450125), was bei der nachfolgenden Datenanalyse zu Problemen führen kann.
Notiz
Hinweis 2 : Wenn -q
und -g
zusammen verwendet werden, wird die SRA-Datei zuerst heruntergeladen, dann mit dem fasterq-dump
Tool in FASTQ
Dateien konvertiert und schließlich mit pigz
in das gzip-Format komprimiert. FASTQ
Dateien werden nicht direkt im gzip-Format heruntergeladen, was sehr nützlich ist, um umfassende Einzelzellendaten zu erhalten.
-t
, --threads
Gibt die Anzahl der Threads an, die zum Dekomprimieren von SRA-Dateien in FASTQ-Dateien oder zum Komprimieren von FASTQ-Dateien verwendet werden sollen. Der Standardwert ist 8
.
iseq -i SRR1178105 -q -t 10
Da Sequenzierungsdatendateien im Allgemeinen groß sind, können Sie die Anzahl der Threads für die Zerlegung mit dem Parameter -t
angeben. Mehr Threads bedeuten jedoch nicht unbedingt eine bessere Leistung, da übermäßige Threads zu hohen CPU- oder IO-Lasten führen können, insbesondere da fasterq-dump
eine beträchtliche Menge an IO verbraucht, was möglicherweise die Ausführung anderer Aufgaben beeinträchtigt. Basierend auf der Benchmark-Bewertung empfehlen wir eine maximale Threadanzahl von 15.
-e
, --merge
Führen Sie mehrere FASTQ- Dateien für jedes Experiment ( ex
), jede Probe ( sa
) oder jede Studie ( st
) zu einer FASTQ- Datei zusammen.
iseq -i SRX003906 -g -e ex
Obwohl ein Experiment in den meisten Fällen nur einen Lauf enthält, können einige Sequenzierungsdaten mehrere Läufe innerhalb eines Experiments umfassen (z. B. SRX003906, CRX020217). Daher können Sie den Parameter -e
verwenden, um mehrere FASTQ-Dateien aus einem Experiment zu einer zusammenzuführen. Unter Berücksichtigung der Paired-End-Sequenzierung, bei der die Dateien fastq_1
und fastq_2
gleichzeitig zusammengeführt werden müssen und die Sequenznamen in den entsprechenden Zeilen konsistent bleiben müssen, führt iSeq mehrere FASTQ-Dateien in derselben Reihenfolge zusammen. Letztendlich wird für Single-End -Sequenzierungsdaten eine einzelne Datei SRX*.fastq.gz
generiert, und für Paired-End -Sequenzierungsdaten werden zwei Dateien SRX*_1.fastq.gz
und SRX*_2.fastq.gz
generiert .
Notiz
Hinweis 1 : Wenn es sich bei dem Zugriff um eine Run-ID handelt, kann der Parameter -e
nicht verwendet werden (siehe unten). Derzeit unterstützt iSeq das Zusammenführen von gzip-komprimierten und unkomprimierten FASTQ- Dateien, unterstützt jedoch nicht das Zusammenführen von Dateien wie BAM-Dateien und tar.gz -Dateien.
-e ex
: Alle Fastq-Dateien desselben Experiments in einer Fastq-Datei zusammenführen. Akzeptierte Beitrittsformate: ERX, DRX, SRX, CRX
.-e sa
: Alle Fastq-Dateien desselben Beispiels zu einer Fastq-Datei zusammenführen. Akzeptierte Beitrittsformate: ERS, DRS, SRS, SAMC, GSM
.-e st
: Alle Fastq-Dateien derselben Studie in einer Fastq-Datei zusammenführen. Akzeptierte Beitrittsformate: ERP, DRP, SRP, CRA
. Notiz
Hinweis 2 : Wenn ein Experiment nur einen Lauf enthält, sollten identische Läufe normalerweise das gleiche Präfix haben. Beispielsweise haben SRR52991314_1.fq.gz
und SRR52991314_2.fq.gz
das gleiche Präfix SRR52991314
. In diesem Fall benennt iSeq sie direkt in SRX*_1.fastq.gz
und SRX*_2.fastq.gz
um. Es gibt jedoch Ausnahmen, beispielsweise in CRX006713, wo ein Run CRR007192
Dateien mit unterschiedlichen Präfixen enthält. In solchen Fällen benennt iSeq sie in SRX*_original_filename
um, beispielsweise werden sie in CRX006713_CRD015671.gz
und CRX006713_CRD015672.gz
umbenannt.
-d
, --database
Gibt die Datenbank zum Herunterladen von SRA-Dateien an und unterstützt ENA- und SRA- Datenbanken.
iseq -i SRR1178105 -d sra
Standardmäßig erkennt iSeq verfügbare Datenbanken automatisch, sodass die Angabe des Parameters -d
normalerweise nicht erforderlich ist. Allerdings kann es sein, dass einige SRA-Dateien langsam aus der ENA-Datenbank heruntergeladen werden. In solchen Fällen können Sie das Herunterladen aus der SRA-Datenbank erzwingen, indem Sie -d sra
angeben.
Notiz
Hinweis : Wenn die entsprechende SRA-Datei nicht in der ENA -Datenbank gefunden wird, wechselt iSeq auch dann automatisch zum Herunterladen aus der SRA -Datenbank, wenn der Parameter -d ena
angegeben ist.
-p
, --parallel
Ermöglicht Multithread-Downloads und erfordert die Angabe der Anzahl der Threads.
iseq -i PRJNA211801 -p 10
Da wget
in manchen Fällen langsam sein kann, können Sie den Parameter -p
verwenden, damit iSeq das axel
-Tool für Multithread-Downloads verwendet.
Notiz
Hinweis 1 : Die fortsetzbare Download- Funktion des Multithread-Downloads ist nur innerhalb desselben Threads wirksam. Das heißt, wenn der Parameter -p 10
für den ersten Download verwendet wird, muss er auch für den zweiten Download verwendet werden, um einen fortsetzbaren Download zu ermöglichen.
Notiz
Hinweis 2 : Wie bereits erwähnt, hält iSeq während des gesamten Downloadvorgangs 10 Verbindungen aufrecht. Daher werden Sie während des Downloadvorgangs mehrere Vorkommen derselben Connection * finished
sehen. Dies liegt daran, dass einige Verbindungen unmittelbar nach Abschluss des Downloads freigegeben werden und anschließend neue Verbindungen zum Herunterladen aufgebaut werden.
-a
, --aspera
Verwenden Sie Aspera zum Herunterladen.
iseq -i PRJNA211801 -a -g
Da Aspera schnellere Download-Geschwindigkeiten bietet, können Sie den Parameter -a
verwenden, um iSeq anzuweisen, das ascp
Tool zum Herunterladen zu verwenden. Leider wird das Herunterladen von Aspera derzeit nur von den Datenbanken GSA und ENA unterstützt . Die NCBI SRA -Datenbank kann Aspera nicht zum Herunterladen nutzen, da sie überwiegend Google Cloud- und AWS Cloud-Technologien nutzt und aus anderen Gründen siehe „Ascp vermeiden“.
Notiz
Hinweis 1 : Wenn beim Zugriff auf die GSA- Datenbank Download-Links von Huawei Cloud verfügbar sind, priorisiert iSeq den Download über Huawei Cloud, auch wenn der Parameter -a
verwendet wird. Dies liegt daran, dass Huawei Cloud schnellere und stabilere Download-Geschwindigkeiten bietet. Daher wird beim Herunterladen von GSA-Daten empfohlen, den Parameter -a
zu verwenden . Wenn der Zugriff auf die Huawei Cloud nicht verfügbar ist, ist der Download über den Aspera-Kanal auf diese Weise immer noch relativ schnell. Andernfalls müssen Sie auf den Download über wget
oder axel
zurückgreifen, die langsamere Methoden sind.
Notiz
Hinweis 2 : Da für Asper
a eine Schlüsseldatei erforderlich ist, sucht iSeq automatisch nach der Schlüsseldatei in der conda
-Umgebung oder im Verzeichnis ~/.aspera
. Wenn die Schlüsseldatei nicht gefunden wird, ist der Download nicht möglich.
-o
, --output
Das Ausgabeverzeichnis. Falls nicht vorhanden, wird es erstellt (Standard: aktuelles Verzeichnis).
-s
, --speed
Download-Geschwindigkeitsbegrenzung (MB/s) (Standard: 1000 MB/s) für Wget
, AXEL
und Aspera
.
Ausgabe | Beschreibung |
---|---|
SRA-Dateien | Kann mit der Option -q in FASTQ-Dateien konvertiert werden |
.metadata.tsv | Metadaten für den Abfragezugriff |
success.log | Speichern Sie den Namen der SRA-Datei, die erfolgreich heruntergeladen wurde |
fail.log | Der Name der heruntergeladenen SRA-Datei konnte nicht gespeichert werden |
Ausgabe | Beschreibung |
---|---|
GSA-Dateien | Meistens im *.gz-Format und einige im Bam/Tar/Bz2-Format |
.metadata.csv | Metadaten für den Abfragezugriff |
.metadata.xlsx | Metadaten für das Projekt einschließlich Abfragezugriff im XLSX-Format |
success.log | Speichern Sie den GSA-Dateinamen, der erfolgreich heruntergeladen wurde |
fail.log | Der Name der heruntergeladenen GSA-Datei konnte nicht gespeichert werden |
iSeq wurde von fastq-dl, fetchngs, pysradb, Kingfisher inspiriert. Diese hervorragenden Tools können ebenfalls sehr hilfreich sein. Nachfolgend finden Sie mehrere Vergleiche verschiedener Software:
Softwarename | Programmsprachen | Unterstützte Datenbanken | Unterstützte Beitritte | Unterstützte Formate | Unterstützte Methoden | Metadaten abrufen | MD5-Überprüfung | Fortsetzbarer Download | Paralleler Download | FASTQ zusammenführen | Überspringen heruntergeladen | Conda installierbar | URL |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
iSeq | Hülse | GSA, SRA, ENA, DDBJ, GEO | Alle | fq, fq.gz, sra, bam | wget, axel, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ? |
Kantenturbo | C | GSA | Alles dementiert | fq, fq.gz, bam | Edgeturbo herunterladen | ✔ | ? | ||||||
SRA-Toolkit | C | SRA, ENA, DDBJ | Alle abgelehnt, außer Run-ID | fq, fq.gz, sra | Vorabholen | ✔ | ✔ | ✔ | ✔ | ? | |||
enaBrowserTools | Python | SRA, ENA, DDBJ | Alle außer GSA/GEO-ID | fq, fq.gz, sra | urllib, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
fastq-dl | Python | SRA, ENA, DDBJ | Alle außer GSA/GEO-ID | fq, fq.gz, sra, sra.lite | wget | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
fetchngs | Python | SRA, ENA, DDBJ, GEO | Alle außer GSA-ID | fq, fq.gz | wget, aspera, prefetch | ✔ | ✔ | ✔ | ✔ | ? | |||
pysradb | Python | SRA, ENA, DDBJ, GEO | Alle außer GSA-ID | fq, fq.gz, sra, bam | Anfragen, Aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
Eisvogel | Python | SRA, ENA, DDBJ | Alle außer GSA/GEO-ID | fq, fq.gz, sra | Curl, Aria2c, Aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
ffq | Python | SRA, ENA, DDBJ, GEO | Alle außer GSA-ID | fq, fq.gz, sra, bam | Anfragen | ✔ | ✔ | ✔ | ? |
Beiträge zu iSeq sind willkommen! Wenn Sie Vorschläge, Fehlerberichte oder Funktionswünsche haben, öffnen Sie bitte ein Problem im GitHub-Repository des Projekts. Wenn Sie Code beisteuern möchten, forken Sie bitte das Repository, nehmen Sie Ihre Änderungen vor und senden Sie eine Pull-Anfrage.
Zitieren Sie uns : https://doi.org/10.1101/2024.05.16.594538
Dieses Projekt ist unter der MIT-Lizenz lizenziert.