Kutip kami : Haoyu Chao, Zhuojin Li, Dijun Chen, Ming Chen, iSeq: Alat terintegrasi untuk mengambil data pengurutan publik, Bioinformatics , 2024;, btae641, https://doi.org/10.1093/bioinformatics/btae641
iSeq adalah skrip Bash yang memungkinkan Anda mendownload data pengurutan dan metadata dari database GSA , SRA , ENA , dan DDBJ . Lihat Detail Alur untuk iSeq. Berikut adalah alur dasar iSeq:
Penting
Untuk menggunakan iSeq, Sistem Anda harus terhubung ke jaringan dan mendukung protokol FTP, HTTP, dan HTTPS .
-s
, --speed
baru untuk mengatur batas kecepatan unduh (MB/s) (default: 1000 MB/s). Seperti iseq -i SRR7706354 -s 10
sra-tools=2.11
menjadi sra-tools>=2.11.0
. Opsi -e
baru untuk menggabungkan file FASTQ : Menambahkan opsi -e
untuk menggabungkan beberapa file FASTQ menjadi satu file untuk setiap Experiment (-e ex)
, Sample (-e sa)
, atau Study (-e st)
.
Opsi -i
baru untuk input : iSeq
sekarang dapat menerima file
yang berisi beberapa nomor aksesi sebagai input oleh -i fileName
.
Perubahan API untuk pengunduhan metadata GSA : Titik akhir API telah diperbarui dari getRunInfo
menjadi getRunInfoByCra
untuk mengunduh metadata GSA.
Simpan hasil ke direktori pribadi : Hasil keluaran sekarang akan disimpan di direktori pribadi pengguna dengan opsi -o
.
Regex yang diperbarui untuk pencocokan SAMC : Pola pencocokan untuk SAMC telah diubah dari SAMC[AZ]?[0-9]+
menjadi SAMC[0-9]+
.
Perbaiki beberapa bug
conda install bioconda::iseq
# Use the following command to check whether dependent software is installed
iseq --version
iseq -i PRJNA211801
-a
untuk langsung mengunduh file FASTQ berformat gzip dengan -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
Masukkan aksesi yang ingin diunduh, Anda juga dapat memasukkan file yang berisi beberapa aksesi (Hanya satu aksesi per baris dalam file, semua aksesi harus dari database yang sama).
iseq -i PRJNA211801
Pertama, iSeq akan mengambil metadata aksesi, kemudian melanjutkan untuk mengunduh setiap Run yang ada di dalamnya.
Saat ini mendukung 6 format aksesi dari 5 database berikut, dengan awalan aksesi yang didukung sebagai berikut:
Basis Data | BioProyek | Belajar | Sampel Bio | Mencicipi | Percobaan | Berlari |
---|---|---|---|---|---|---|
GSA | PRJC | CRA | SAMC | CRX | CRR | |
SRA | PRJNA | SRP | SAMN | SRS | SRX | SRR |
ENA | PRJEB | ERP | SAMA | ERS | ERX | BERBUAT SALAH |
DDBJ | PRJDB | DRP | SAMD | DR | DRX | PRB |
GEO | GSE | GSM |
Selain itu, untuk dua format data ( GSE/GSM
) dari database GEO, ia akan langsung mengambil PRJNA/SAMN
terkait, kemudian melanjutkan untuk mendapatkan Runs yang ada di dalamnya dan mengunduh data pengurutan. Oleh karena itu, pada dasarnya, ia masih mengunduh data pengurutan dari database SRA.
Berikut beberapa contohnya:
Jenis Aksesi | Awalan | Contoh |
---|---|---|
BioProyek | PRJEB, PRJNA, PRJDB, PRJC, GSE | PRJEB42779, PRJNA480016, PRJDB14838, PRJCA000613, GSE122139 |
Belajar | ERP, DRP, SRP, CRA | ERP126685, DRP009283, SRP158268, CRA000553 |
Sampel Bio | SAMD, SAMA, SAMN, SAMC | SAMD00258402, SAMEA7997453, SAMN06479985, SAMC017083 |
Mencicipi | ERS, DRS, SRS, GSM | ERS5684710, DRS259711, SRS2024210, GSM7417667 |
Percobaan | ERX, DRX, SRX, CRX | ERX5050800, DRX406443, SRX4563689, CRX020217 |
Berlari | ERR, PRB, SRR, CRR | ERR5260405, DRR421224, SRR7706354, CRR311377 |
Singkatnya, terlepas dari format data aksesi Anda di antara enam opsi, pada akhirnya ia akan mengunduh dan memeriksa nilai MD5 dari setiap Jalankan yang ada. Jika nilai MD5 tidak sesuai dengan yang ada di database publik, maka akan dilakukan upaya pengunduhan ulang maksimal tiga putaran . Jika berhasil setelah tiga kali pengunduhan dan verifikasi, nama file akan disimpan di success.log
; jika tidak, jika pengunduhan gagal, nama file akan disimpan di fail.log
.
-m
, --metadata
Unduh hanya informasi sampel aksesi dan lewati pengunduhan data pengurutan.
iseq -i PRJNA211801 -m
iseq -i CRR343031 -m
Oleh karena itu, terlepas dari apakah parameter -m
digunakan atau tidak, informasi sampel aksesi akan diperoleh. Jika metadata tidak dapat diambil, program iSeq akan keluar tanpa melanjutkan pengunduhan berikutnya.
Catatan
Catatan 1 : Jika aksesi yang diambil ada di database SRA/ENA/DDBJ/GEO , iSeq akan mencari terlebih dahulu di database ENA. Jika informasi sampel dapat diambil, metadata dalam format TSV
akan diunduh melalui ENA API, biasanya berisi 191 kolom. Namun, beberapa data yang baru dirilis di database SRA mungkin tidak segera disinkronkan ke database ENA. Oleh karena itu, jika metadata tidak dapat diperoleh dari database ENA, iSeq akan langsung mendownload metadata dalam format CSV
melalui SRA Database Backend, biasanya berisi 30 kolom. Untuk menjaga konsistensi dengan format TSV, maka akan dikonversi ke format TSV menggunakan sed -i 's/,/t/g'
. Namun, jika satu bidang berisi koma, hal ini dapat menyebabkan gangguan kolom. Pada akhirnya, Anda akan mendapatkan contoh informasi bernama ${accession}.metadata.tsv
.
Catatan
Catatan 2 : Jika aksesi yang diambil ada di database GSA , iSeq akan memperoleh informasi sampel melalui antarmuka getRunInfo GSA, mendownload metadata dalam format CSV
, biasanya berisi 25 kolom. Metadata yang diperoleh di atas akan disimpan sebagai ${accession}.metadata.csv
. Untuk melengkapi informasi metadata yang lebih rinci, iSeq akan secara otomatis memperoleh informasi metadata untuk Proyek yang aksesinya dimiliki melalui antarmuka eksporExcelFile GSA, mengunduh metadata dalam format XLSX
, biasanya dengan 3 lembar: Sample
, Experiment
, Run
. Informasi metadata akhir akan disimpan sebagai ${accession}.metadata.xlsx
. Singkatnya, Anda pada akhirnya akan mendapatkan informasi sampel bernama ${accession}.metadata.csv
dan CRA*.metadata.xlsx
.
-g
, --gzip
Langsung unduh file FASTQ dalam format gzip . Jika pengunduhan langsung tidak memungkinkan, file SRA akan diunduh dan dikonversi ke format gzip menggunakan multi-threading untuk dekomposisi dan kompresi.
iseq -i SRR1178105 -g
Karena sebagian besar format data yang disimpan langsung di database GSA berformat gzip, maka jika aksesi yang dicari berasal dari database GSA, baik menggunakan parameter -g
atau tidak, Anda bisa langsung mendownload file FASTQ dalam format gzip.
Jika aksesi berasal dari database SRA/ENA/DDBJ/GEO , iSeq akan mencoba mengakses database ENA terlebih dahulu. Jika dapat langsung mengunduh file FASTQ dalam format gzip, ia akan melakukannya; jika tidak, ia akan mengunduh file SRA dan mengonversinya ke format FASTQ menggunakan alat fasterq-dump
, kemudian mengompres file FASTQ menggunakan alat pigz
, yang pada akhirnya memperoleh file FASTQ dalam format gzip.
Tip
parallel-fastq-dump juga dapat mengonversi SRA ke file FASTQ yang dikompresi dengan gzip, biasanya 2-3 kali lebih cepat daripada fasterq-dump + pigz
. Namun, mengingat keterbatasan IO , iSeq
saat ini tidak mendukung parallel-fastq-dump
.
-q
, --fastq
Setelah mengunduh file SRA, file tersebut akan didekomposisi menjadi beberapa file FASTQ yang tidak terkompresi .
iseq -i SRR1178105 -q
Parameter ini hanya efektif jika aksesi berasal dari database SRA/ENA/DDBJ/GEO dan file yang diunduh adalah file SRA . Setelah mengunduh file SRA, iSeq akan menggunakan alat fasterq-dump
untuk mengubahnya menjadi file FASTQ. Selain itu, Anda dapat menentukan jumlah thread untuk konversi menggunakan parameter -t
.
Catatan
Catatan1 : -q
sangat berguna untuk mengunduh data sel tunggal , terutama untuk data scATAC-Seq, karena dapat menguraikan file secara efektif menjadi empat bagian: I1
, R1
, R2
, R3
. Namun, jika file FASTQ diunduh langsung melalui parameter -g
, hanya file R1
dan R3
yang akan diperoleh (misalnya SRR13450125), yang mungkin menyebabkan masalah selama analisis data selanjutnya.
Catatan
Catatan 2 : Jika -q
dan -g
digunakan bersamaan, file SRA akan diunduh terlebih dahulu, kemudian diubah menjadi file FASTQ
menggunakan alat fasterq-dump
, dan terakhir dikompresi ke dalam format gzip menggunakan pigz
. Itu tidak secara langsung mengunduh file FASTQ
dalam format gzip, yang sangat berguna untuk mendapatkan data sel tunggal yang komprehensif.
-t
, --threads
Menentukan jumlah thread yang akan digunakan untuk mendekompresi file SRA menjadi file FASTQ atau mengompresi file FASTQ. Nilai defaultnya adalah 8
.
iseq -i SRR1178105 -q -t 10
Mengingat file data pengurutan umumnya berukuran besar, Anda dapat menentukan jumlah thread yang akan didekomposisi menggunakan parameter -t
. Namun, lebih banyak thread tidak selalu berarti kinerja yang lebih baik karena thread yang berlebihan dapat menyebabkan beban CPU atau IO yang tinggi , terutama karena fasterq-dump
mengonsumsi IO dalam jumlah besar, sehingga berpotensi berdampak pada pelaksanaan tugas lainnya. Berdasarkan evaluasi benchmark, kami merekomendasikan jumlah thread maksimum 15.
-e
, --merge
Gabungkan beberapa file FASTQ menjadi satu file FASTQ untuk setiap Eksperimen ( ex
), Sampel ( sa
) atau Studi ( st
).
iseq -i SRX003906 -g -e ex
Meskipun pada sebagian besar kasus, Eksperimen hanya berisi satu Proses, beberapa data pengurutan mungkin memiliki beberapa Proses dalam satu Eksperimen (misalnya, SRX003906, CRX020217). Oleh karena itu, Anda dapat menggunakan parameter -e
untuk menggabungkan beberapa file FASTQ dari Eksperimen menjadi satu. Mempertimbangkan pengurutan ujung berpasangan, di mana file fastq_1
dan fastq_2
perlu digabungkan secara bersamaan dan nama urutan di baris terkait harus tetap konsisten, iSeq akan menggabungkan beberapa file FASTQ dalam urutan yang sama . Pada akhirnya, untuk data pengurutan ujung tunggal , satu file SRX*.fastq.gz
akan dibuat, dan untuk data pengurutan ujung berpasangan , dua file SRX*_1.fastq.gz
dan SRX*_2.fastq.gz
akan dibuat .
Catatan
Catatan 1 : Jika aksesinya adalah Run ID , parameter -e
tidak dapat digunakan (lihat di bawah). Saat ini, iSeq mendukung penggabungan file FASTQ yang terkompresi gzip dan tidak terkompresi , namun tidak mendukung penggabungan file seperti file BAM dan file tar.gz.
-e ex
: menggabungkan semua file fastq dari Eksperimen yang sama menjadi satu file fastq. Format aksesi yang diterima: ERX, DRX, SRX, CRX
.-e sa
: menggabungkan semua file fastq dari Sampel yang sama menjadi satu file fastq. Format aksesi yang diterima: ERS, DRS, SRS, SAMC, GSM
.-e st
: menggabungkan semua file fastq dari Studi yang sama menjadi satu file fastq. Format aksesi yang diterima: ERP, DRP, SRP, CRA
. Catatan
Catatan 2 : Biasanya, jika Eksperimen hanya berisi satu Proses, Proses yang identik harus memiliki awalan yang sama . Misalnya, SRR52991314_1.fq.gz
dan SRR52991314_2.fq.gz
memiliki awalan yang sama SRR52991314
. Dalam hal ini, iSeq akan langsung mengganti namanya menjadi SRX*_1.fastq.gz
dan SRX*_2.fastq.gz
. Namun, terdapat pengecualian, seperti pada CRX006713 di mana Run CRR007192
berisi file dengan awalan berbeda. Dalam kasus seperti itu, iSeq akan mengganti namanya menjadi SRX*_original_filename
, misalnya, mereka akan diganti namanya menjadi CRX006713_CRD015671.gz
dan CRX006713_CRD015672.gz
.
-d
, --database
Menentukan database untuk mengunduh file SRA, mendukung database ENA dan SRA .
iseq -i SRR1178105 -d sra
Secara default, iSeq akan secara otomatis mendeteksi database yang tersedia, jadi menentukan parameter -d
biasanya tidak diperlukan . Namun, beberapa file SRA mungkin diunduh dengan lambat dari database ENA. Dalam kasus seperti itu, Anda dapat mengunduh paksa dari database SRA dengan menentukan -d sra
.
Catatan
Catatan : Jika file SRA yang sesuai tidak ditemukan di database ENA , meskipun parameter -d ena
ditentukan, iSeq akan tetap secara otomatis beralih ke pengunduhan dari database SRA .
-p
, --parallel
Mengaktifkan pengunduhan multi-utas dan memerlukan penentuan jumlah utas.
iseq -i PRJNA211801 -p 10
Mengingat wget
mungkin lambat dalam beberapa kasus, Anda dapat menggunakan parameter -p
agar iSeq menggunakan alat axel
untuk pengunduhan multi-thread.
Catatan
Catatan 1 : Fitur pengunduhan yang dapat dilanjutkan pada pengunduhan multi-utas hanya efektif dalam utas yang sama . Artinya, jika parameter -p 10
digunakan untuk pengunduhan pertama, parameter tersebut juga harus digunakan untuk pengunduhan kedua guna mengaktifkan pengunduhan yang dapat dilanjutkan.
Catatan
Catatan 2 : Seperti disebutkan, iSeq akan mempertahankan 10 koneksi selama proses pengunduhan. Oleh karena itu, Anda akan melihat beberapa kemunculan Connection * finished
yang sama selama proses pengunduhan. Hal ini karena beberapa koneksi dilepaskan segera setelah pengunduhan selesai dan kemudian koneksi baru dibuat untuk pengunduhan.
-a
, --aspera
Gunakan Aspera untuk mengunduh.
iseq -i PRJNA211801 -a -g
Karena Aspera menawarkan kecepatan unduh yang lebih cepat, Anda dapat menggunakan parameter -a
untuk menginstruksikan iSeq menggunakan alat ascp
untuk mengunduh. Sayangnya pengunduhan Aspera saat ini hanya didukung oleh database GSA dan ENA . Basis data NCBI SRA tidak dapat menggunakan Aspera untuk mengunduh karena sebagian besar menggunakan teknologi Google Cloud dan AWS Cloud serta alasan lainnya, lihat Hindari penggunaan ascp.
Catatan
Catatan 1 : Saat mengakses database GSA , jika tautan unduhan dari Huawei Cloud tersedia, iSeq akan memprioritaskan pengunduhan melalui Huawei Cloud, meskipun parameter -a
digunakan. Pasalnya, Huawei Cloud menawarkan kecepatan unduh yang lebih cepat dan stabil. Oleh karena itu, saat mendownload data GSA, disarankan untuk menggunakan parameter -a
r. Dengan demikian, jika akses ke Huawei Cloud tidak tersedia, pengunduhan melalui saluran Aspera masih tergolong cepat. Jika tidak, Anda harus mengunduh melalui wget
atau axel
, yang merupakan metode lebih lambat.
Catatan
Catatan 2 : Karena Asper
a memerlukan file kunci, iSeq akan secara otomatis mencari file kunci di lingkungan conda
atau direktori ~/.aspera
. Jika file kunci tidak ditemukan, pengunduhan tidak dapat dilakukan.
-o
, --output
Direktori keluaran. Jika tidak ada, maka akan dibuat (default: direktori saat ini).
-s
, --speed
Batas kecepatan unduh (MB/s) (default: 1000 MB/s) untuk Wget
, AXEL
dan Aspera
.
Keluaran | Keterangan |
---|---|
file SRA | Dapat dikonversi ke file FASTQ menggunakan opsi -q |
.metadata.tsv | Metadata untuk aksesi kueri |
sukses.log | Simpan dengan nama file SRA yang berhasil didownload |
gagal.log | Gagal menyimpan nama file SRA yang telah diunduh |
Keluaran | Keterangan |
---|---|
file GSA | Sebagian besar berformat *.gz, dan ada juga yang berformat bam/tar/bz2 |
.metadata.csv | Metadata untuk aksesi kueri |
.metadata.xlsx | Metadata untuk Proyek termasuk aksesi kueri dalam format xlsx |
sukses.log | Simpan nama file GSA yang berhasil didownload |
gagal.log | Gagal menyimpan nama file GSA yang telah diunduh |
iSeq terinspirasi oleh fastq-dl, Fetchngs, pysradb, Kingfisher . Alat luar biasa ini mungkin juga sangat membantu. Di bawah ini adalah beberapa perbandingan perangkat lunak yang berbeda:
Nama perangkat lunak | Bahasa program | Basis data yang didukung | Aksesi yang didukung | Format yang didukung | Metode yang didukung | Ambil metadata | pemeriksaan MD5 | Unduhan yang dapat dilanjutkan | Unduhan paralel | Gabungkan FASTQ | Lewati pengunduhan | Conda dapat diinstal | URL |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
iSeq | Kerang | GSA, SRA, ENA, DDBJ, GEO | Semua | fq, fq.gz, sra, bam | wget, axel, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ? |
edgeturbo | C | GSA | Semua ditolak | fq, fq.gz, bam | unduhan edgeturbo | ✔ | ? | ||||||
Perangkat SRA | C | SRA, ENA, DDBJ | Semua ditolak mengharapkan Run ID | fq, fq.gz, sra | mengambil terlebih dahulu | ✔ | ✔ | ✔ | ✔ | ? | |||
enaBrowserTools | ular piton | SRA, ENA, DDBJ | Semua kecuali GSA/GEO ID | fq, fq.gz, sra | urllib, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
fastq-dl | ular piton | SRA, ENA, DDBJ | Semua kecuali GSA/GEO ID | fq, fq.gz, sra, sra.lite | wget | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
pengambilan | ular piton | SRA, ENA, DDBJ, GEO | Semua kecuali ID GSA | fq, fq.gz | wget, aspera, ambil terlebih dahulu | ✔ | ✔ | ✔ | ✔ | ? | |||
pysradb | ular piton | SRA, ENA, DDBJ, GEO | Semua kecuali ID GSA | fq, fq.gz, sra, bam | permintaan, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
Burung pekakak | ular piton | SRA, ENA, DDBJ | Semua kecuali GSA/GEO ID | fq, fq.gz, sra | keriting, aria2c, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
ffq | ular piton | SRA, ENA, DDBJ, GEO | Semua kecuali ID GSA | fq, fq.gz, sra, bam | permintaan | ✔ | ✔ | ✔ | ? |
Kontribusi ke iSeq dipersilakan! Jika Anda mempunyai saran, laporan bug, atau permintaan fitur, silakan buka terbitan di repositori GitHub proyek. Jika Anda ingin menyumbangkan kode, harap fork repositori, buat perubahan, dan kirimkan permintaan penarikan.
Kutip kami : https://doi.org/10.1101/2024.05.16.594538
Proyek ini dilisensikan di bawah Lisensi MIT.