인용 : Haoyu Chao, Zhuojin Li, Dijun Chen, Ming Chen, iSeq: 공개 시퀀싱 데이터를 가져오는 통합 도구, Bioinformatics , 2024;, btae641, https://doi.org/10.1093/bioinformatics/btae641
iSeq 는 GSA , SRA , ENA 및 DDBJ 데이터베이스에서 시퀀싱 데이터와 메타데이터를 다운로드할 수 있는 Bash 스크립트입니다. iSeq에 대한 세부 파이프라인을 참조하십시오. iSeq의 기본 파이프라인은 다음과 같습니다.
중요한
iSeq를 사용하려면 시스템이 네트워크에 연결되어 있어야 하며 FTP, HTTP 및 HTTPS 프로토콜을 지원해야 합니다 .
-s
, --speed
옵션 (기본값: 1000MB/s). 예: iseq -i SRR7706354 -s 10
sra-tools=2.11
에서 sra-tools>=2.11.0
으로 업데이트되었습니다. FASTQ 파일 병합을 위한 새로운 -e
옵션 : 각 Experiment (-e ex)
, Sample (-e sa)
또는 Study (-e st)
에 대해 여러 FASTQ 파일을 단일 파일로 병합하는 -e
옵션이 추가되었습니다.
입력을 위한 새로운 -i
옵션 : iSeq
이제 -i fileName
에 의한 입력으로 여러 접근 번호가 포함된 file
허용할 수 있습니다.
GSA 메타데이터 다운로드를 위한 API 변경 : GSA 메타데이터 다운로드를 위한 API 엔드포인트가 getRunInfo
에서 getRunInfoByCra
로 업데이트되었습니다.
결과를 개인 디렉터리에 저장 : 출력 결과는 이제 -o
옵션을 통해 사용자의 개인 디렉터리에 저장됩니다.
SAMC 일치를 위한 정규식 업데이트 : SAMC의 일치 패턴이 SAMC[AZ]?[0-9]+
에서 SAMC[0-9]+
로 변경되었습니다.
일부 버그 수정
conda install bioconda::iseq
# Use the following command to check whether dependent software is installed
iseq --version
iseq -i PRJNA211801
-a
사용하여 Aspera를 통해 일괄 다운로드하면 -g
사용하여 gzip 형식의 FASTQ 파일을 직접 다운로드할 수 있습니다. 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
다운로드하려는 접속을 입력하세요. 또한 여러 접속이 포함된 파일을 입력할 수도 있습니다(파일의 한 줄에 하나의 접속만 가능하며 모든 접속은 동일한 데이터베이스에 있어야 합니다).
iseq -i PRJNA211801
먼저, iSeq는 접속의 메타데이터를 검색한 후 포함된 각 실행을 다운로드합니다.
현재 지원되는 접속 접두어를 사용하여 다음 5개 데이터베이스 의 6가지 접속 형식을 지원합니다 .
데이터베이스 | 바이오프로젝트 | 공부하다 | 바이오샘플 | 견본 | 실험 | 달리다 |
---|---|---|---|---|---|---|
GSA | PRJC | CRA | SAMC | CRX | CRR | |
SRA | PRJNA | SRP | 삼N | SRS | SRX | SRR |
에나 | 프렙 | ERP | 같은 | ERS | ERX | 오류 |
DDBJ | PRJDB | DRP | 삼드 | DRS | DRX | 재난위험도 |
지역 | GSE | GSM |
또한 GEO 데이터베이스의 두 가지 데이터 형식( GSE/GSM
)의 경우 관련 PRJNA/SAMN
직접 검색한 다음 포함된 실행을 얻고 시퀀싱 데이터를 다운로드합니다. 따라서 기본적으로 SRA 데이터베이스에서 시퀀싱 데이터를 다운로드합니다.
다음은 몇 가지 예입니다.
가입 유형 | 접두사 | 예 |
---|---|---|
바이오프로젝트 | PRJEB, PRJNA, PRJDB, PRJC, GSE | PRJEB42779, PRJNA480016, PRJDB14838, PRJCA000613, GSE122139 |
공부하다 | ERP, DRP, SRP, CRA | ERP126685, DRP009283, SRP158268, CRA000553 |
바이오샘플 | SAMD, 동일, SAMN, SAMC | SAMD00258402, SAMEA7997453, SAMN06479985, SAMC017083 |
견본 | ERS, DRS, SRS, GSM | ERS5684710, DRS259711, SRS2024210, GSM7417667 |
실험 | ERX, DRX, SRX, CRX | ERX5050800, DRX406443, SRX4563689, CRX020217 |
달리다 | 오류, DRR, SRR, CRR | ERR5260405, DRR421224, SRR7706354, CRR311377 |
요약하자면, 6가지 옵션 중 귀하의 접속 데이터 형식에 관계없이 최종적으로 포함된 각 실행의 MD5 값을 다운로드하여 확인 하게 됩니다. MD5 값이 공용 데이터베이스의 값과 일치하지 않으면 최대 3번의 재다운로드를 시도합니다. 세 번의 다운로드 및 확인 시도 후에 성공하면 파일 이름이 success.log
에 저장됩니다. 그렇지 않으면 다운로드가 실패하면 파일 이름이 fail.log
에 저장됩니다.
-m
, --metadata
가입의 샘플 정보만 다운로드하고 시퀀싱 데이터 다운로드는 건너뜁니다.
iseq -i PRJNA211801 -m
iseq -i CRR343031 -m
따라서 -m
매개변수의 사용 여부에 관계없이 가입의 샘플 정보를 얻을 수 있습니다. 메타데이터를 검색할 수 없는 경우 iSeq 프로그램은 후속 다운로드를 진행하지 않고 종료됩니다.
메모
참고 1 : 검색된 접속이 SRA/ENA/DDBJ/GEO 데이터베이스에 있는 경우 iSeq는 먼저 ENA 데이터베이스에서 검색합니다. 샘플 정보를 검색할 수 있는 경우 ENA API를 통해 일반적으로 191개의 열이 포함된 TSV
형식 의 메타데이터를 다운로드합니다. 그러나 최근 SRA 데이터베이스에 공개된 일부 데이터는 ENA 데이터베이스에 즉시 동기화되지 않을 수 있습니다. 따라서 ENA 데이터베이스에서 메타데이터를 얻을 수 없는 경우 iSeq는 일반적으로 30개의 열이 포함된 SRA 데이터베이스 백엔드를 통해 CSV
형식 의 메타데이터를 직접 다운로드합니다. TSV 형식과의 일관성을 유지하기 위해 sed -i 's/,/t/g'
사용하여 TSV 형식으로 변환됩니다. 그러나 단일 필드에 쉼표가 포함되어 있으면 열 혼란이 발생할 수 있습니다. 최종적으로 ${accession}.metadata.tsv
라는 샘플 정보를 얻게 됩니다.
메모
참고 2 : 검색된 액세스가 GSA 데이터베이스에 있는 경우 iSeq는 일반적으로 25개 열이 포함된 CSV
형식 의 메타데이터를 다운로드하여 GSA의 getRunInfo 인터페이스를 통해 샘플 정보를 얻습니다. 위에서 얻은 메타데이터는 ${accession}.metadata.csv
로 저장됩니다. 더 자세한 메타데이터 정보를 보완하기 위해 iSeq는 GSA의 내보내기ExcelFile 인터페이스를 통해 액세스가 속한 프로젝트에 대한 메타데이터 정보를 자동으로 얻고, 일반적으로 Sample
, Experiment
, Run
3개의 시트가 포함된 XLSX
형식의 메타데이터를 다운로드합니다. 최종 메타데이터 정보는 ${accession}.metadata.xlsx
로 저장됩니다. 요약하면 궁극적으로 ${accession}.metadata.csv
및 CRA*.metadata.xlsx
라는 샘플 정보를 얻게 됩니다.
-g
, --gzip
FASTQ 파일을 gzip 형식 으로 직접 다운로드하세요. 직접 다운로드가 불가능한 경우 SRA 파일을 다운로드한 후 멀티스레딩을 통해 분해 및 압축을 통해 gzip 형식으로 변환합니다.
iseq -i SRR1178105 -g
GSA 데이터베이스에 직접 저장된 대부분의 데이터 형식은 gzip 형식이므로 검색 중인 액세스가 GSA 데이터베이스에서 온 경우 -g
매개변수 사용 여부에 관계없이 FASTQ 파일을 gzip 형식으로 직접 다운로드할 수 있습니다.
SRA/ENA/DDBJ/GEO 데이터베이스에서 액세스한 경우 iSeq는 먼저 ENA 데이터베이스에 액세스하려고 시도합니다. FASTQ 파일을 gzip 형식으로 직접 다운로드할 수 있으면 그렇게 됩니다. 그렇지 않으면 SRA 파일을 다운로드하고 fasterq-dump
도구를 사용하여 FASTQ 형식으로 변환한 다음 pigz
도구를 사용하여 FASTQ 파일을 압축하여 궁극적으로 gzip 형식의 FASTQ 파일을 얻습니다.
팁
parallel-fastq-dump는 SRA를 gzip 압축 FASTQ 파일로 변환할 수도 있습니다. 이는 일반적으로 fasterq-dump + pigz
보다 2~3배 빠릅니다. 그러나 IO 제한 사항을 고려하여 iSeq
현재 parallel-fastq-dump
지원하지 않습니다.
-q
, --fastq
SRA 파일을 다운로드하면 압축되지 않은 여러 FASTQ 파일로 분해됩니다.
iseq -i SRR1178105 -q
이 매개변수는 SRA/ENA/DDBJ/GEO 데이터베이스에서 액세스하고 다운로드한 파일이 SRA 파일 인 경우에만 유효합니다. SRA 파일을 다운로드한 후 iSeq는 fasterq-dump
도구를 사용하여 해당 파일을 FASTQ 파일로 변환합니다. 또한 -t
매개변수를 사용하여 변환할 스레드 수를 지정할 수 있습니다.
메모
참고 1 : -q
파일을 I1
, R1
, R2
, R3
의 네 부분으로 효과적으로 분해할 수 있으므로 단일 셀 데이터 , 특히 scATAC-Seq 데이터를 다운로드하는 데 특히 유용합니다. 그러나 -g
매개변수를 통해 FASTQ 파일을 직접 다운로드할 경우 R1
및 R3
파일만 가져오므로(예: SRR13450125) 후속 데이터 분석 중에 문제가 발생할 수 있습니다.
메모
참고 2 : -q
와 -g
함께 사용하면 SRA 파일이 먼저 다운로드된 다음 fasterq-dump
도구를 사용하여 FASTQ
파일로 변환되고 마지막으로 pigz
사용하여 gzip 형식으로 압축됩니다. FASTQ
파일을 gzip 형식으로 직접 다운로드하지 않으므로 포괄적인 단일 세포 데이터를 얻는 데 매우 유용합니다.
-t
, --threads
SRA 파일을 FASTQ 파일로 압축 해제하거나 FASTQ 파일을 압축하는 데 사용할 스레드 수를 지정합니다. 기본값은 8
입니다.
iseq -i SRR1178105 -q -t 10
일반적으로 시퀀싱 데이터 파일의 크기가 크다는 점을 고려하면 -t
매개변수를 사용하여 분해할 스레드 수를 지정할 수 있습니다. 그러나 스레드가 많다고 해서 반드시 성능이 향상되는 것은 아닙니다. 스레드가 너무 많으면 CPU 또는 IO 로드가 높아질 수 있기 때문입니다. 특히, fasterq-dump
상당한 양의 IO를 소비하여 잠재적으로 다른 작업 실행에 영향을 미칠 수 있기 때문입니다. 벤치마크 평가에 따르면 최대 스레드 수는 15개를 권장합니다.
-e
, --merge
각 실험( ex
), 샘플( sa
) 또는 연구( st
)에 대해 여러 FASTQ 파일을 하나의 FASTQ 파일로 병합합니다.
iseq -i SRX003906 -g -e ex
대부분의 경우 실험에는 하나의 실행만 포함되지만 일부 시퀀싱 데이터에는 실험 내에서 여러 실행이 있을 수 있습니다(예: SRX003906, CRX020217). 따라서 -e
매개변수를 사용하여 실험의 여러 FASTQ 파일을 하나로 병합할 수 있습니다. fastq_1
및 fastq_2
파일을 동시에 병합해야 하고 해당 라인의 시퀀스 이름이 일관되게 유지되어야 하는 페어드 엔드 시퀀싱을 고려하면 iSeq는 여러 FASTQ 파일을 동일한 순서 로 병합합니다. 최종적으로 싱글 엔드 시퀀싱 데이터의 경우 단일 파일 SRX*.fastq.gz
가 생성되고, 페어드 엔드 시퀀싱 데이터의 경우 SRX*_1.fastq.gz
및 SRX*_2.fastq.gz
두 개의 파일이 생성됩니다. .
메모
참고 1 : 액세스가 Run ID 인 경우 -e
매개변수를 사용할 수 없습니다(아래 참조). 현재 iSeq는 gzip 압축 및 압축되지 않은 FASTQ 파일 병합을 모두 지원하지만 BAM 파일 및 tar.gz 파일과 같은 파일 병합은 지원하지 않습니다.
-e ex
: 동일한 실험 의 모든 fastq 파일을 하나의 fastq 파일로 병합합니다. 허용되는 가입 형식: ERX, DRX, SRX, CRX
.-e sa
: 동일한 샘플 의 모든 fastq 파일을 하나의 fastq 파일로 병합합니다. 허용되는 가입 형식: ERS, DRS, SRS, SAMC, GSM
.-e st
: 동일한 연구 의 모든 fastq 파일을 하나의 fastq 파일로 병합합니다. 허용되는 가입 형식: ERP, DRP, SRP, CRA
. 메모
참고 2 : 일반적으로 실험에 하나의 실행만 포함된 경우 동일한 실행에는 동일한 접두사가 있어야 합니다. 예를 들어 SRR52991314_1.fq.gz
및 SRR52991314_2.fq.gz
접두사는 SRR52991314
와 동일합니다. 이 경우 iSeq는 이름을 SRX*_1.fastq.gz
및 SRX*_2.fastq.gz
로 직접 변경 합니다. 그러나 Run CRR007192
접두사가 다른 파일이 포함된 CRX006713과 같은 예외가 있습니다. 이러한 경우 iSeq는 파일 이름 을 SRX*_original_filename
으로 변경합니다. 예를 들어 CRX006713_CRD015671.gz
및 CRX006713_CRD015672.gz
로 이름이 변경됩니다.
-d
, --database
ENA 및 SRA 데이터베이스를 지원하는 SRA 파일 다운로드용 데이터베이스를 지정합니다.
iseq -i SRR1178105 -d sra
기본적으로 iSeq는 사용 가능한 데이터베이스를 자동으로 감지하므로 일반적으로 -d
매개변수를 지정할 필요가 없습니다. 그러나 일부 SRA 파일은 ENA 데이터베이스에서 느리게 다운로드될 수 있습니다. 이러한 경우 -d sra
지정하여 SRA 데이터베이스에서 강제로 다운로드할 수 있습니다.
메모
참고 : ENA 데이터베이스에서 해당 SRA 파일을 찾을 수 없는 경우 -d ena
매개변수가 지정되었더라도 iSeq는 SRA 데이터베이스에서 다운로드하도록 자동으로 전환합니다.
-p
, --parallel
다중 스레드 다운로드를 활성화하고 스레드 수를 지정해야 합니다.
iseq -i PRJNA211801 -p 10
경우에 따라 wget
느릴 수 있다는 점을 고려하면 -p
매개변수를 사용하여 iSeq가 다중 스레드 다운로드를 위해 axel
도구를 활용하도록 할 수 있습니다.
메모
참고 1 : 다중 스레드 다운로드의 재개 가능한 다운로드 기능은 동일한 스레드 내에서만 유효합니다. 즉, -p 10
매개변수가 첫 번째 다운로드에 사용된 경우 재개 가능한 다운로드를 활성화하려면 두 번째 다운로드에도 이 매개변수를 사용해야 합니다.
메모
참고 2 : 언급한 대로 iSeq는 다운로드 프로세스 전반에 걸쳐 10개의 연결을 유지합니다. 따라서 다운로드 프로세스 중에 동일한 Connection * finished
팝업이 여러 번 나타나는 것을 볼 수 있습니다. 이는 다운로드가 완료된 후 일부 연결이 즉시 해제되었다가 다운로드를 위해 새로운 연결이 설정되기 때문입니다.
-a
, --aspera
다운로드에는 Aspera를 사용하세요.
iseq -i PRJNA211801 -a -g
Aspera는 더 빠른 다운로드 속도를 제공하므로 -a
매개변수를 사용하여 다운로드에 ascp
도구를 사용하도록 iSeq 에 지시할 수 있습니다. 안타깝게도 Aspera 다운로드는 현재 GSA 및 ENA 데이터베이스에서만 지원됩니다 . NCBI SRA 데이터베이스는 Google Cloud 및 AWS Cloud 기술과 기타 이유를 주로 사용하므로 Aspera를 다운로드에 활용할 수 없습니다. Ascp 사용 방지를 참조하세요.
메모
참고 1 : GSA 데이터베이스에 액세스할 때 Huawei Cloud 의 다운로드 링크를 사용할 수 있는 경우 iSeq는 -a
매개변수가 사용되는 경우에도 Huawei Cloud를 통한 다운로드의 우선순위를 지정합니다. 이는 Huawei Cloud가 더 빠르고 안정적인 다운로드 속도를 제공하기 때문입니다. 따라서 GSA 데이터를 다운로드할 때 -a
매개변수를 사용하는 것이 좋습니다 . 이렇게 하면 Huawei Cloud에 액세스할 수 없는 경우에도 Aspera 채널을 통한 다운로드가 상대적으로 빠릅니다. 그렇지 않으면 느린 방법인 wget
또는 axel
통해 다운로드해야 합니다.
메모
참고 2 : Asper
a에는 키 파일이 필요하므로 iSeq는 conda
환경 또는 ~/.aspera
디렉터리에서 키 파일을 자동으로 검색 합니다. 키 파일을 찾을 수 없으면 다운로드가 불가능합니다.
-o
, --output
출력 디렉터리. 존재하지 않는 경우 생성됩니다(기본값: 현재 디렉터리).
-s
, --speed
Wget
, AXEL
및 Aspera
의 다운로드 속도 제한(MB/s)(기본값: 1000MB/s).
산출 | 설명 |
---|---|
SRA 파일 | -q 옵션을 사용하여 FASTQ 파일로 변환 가능 |
.metadata.tsv | 쿼리 액세스를 위한 메타데이터 |
성공.로그 | 성공적으로 다운로드된 SRA 파일 이름을 저장합니다. |
실패.로그 | 다운로드한 SRA 파일 이름을 저장하지 못했습니다. |
산출 | 설명 |
---|---|
GSA 파일 | 대부분 *.gz 형식이고 일부는 bam/tar/bz2 형식입니다. |
.metadata.csv | 쿼리 액세스를 위한 메타데이터 |
.메타데이터.xlsx | xlsx 형식의 쿼리 액세스를 포함한 프로젝트용 메타데이터 |
성공.로그 | 성공적으로 다운로드된 GSA 파일 이름을 저장하세요. |
실패.로그 | 다운로드한 GSA 파일 이름을 저장하지 못했습니다. |
iSeq는 fastq-dl, fetchngs, pysradb, Kingfisher 에서 영감을 받았습니다. 이러한 훌륭한 도구는 또한 매우 도움이 될 수 있습니다. 다음은 다양한 소프트웨어에 대한 다중 비교입니다.
소프트웨어 이름 | 프로그램 언어 | 지원되는 데이터베이스 | 지원되는 접속 | 지원되는 형식 | 지원되는 방법 | 메타데이터 가져오기 | MD5 확인 | 재개 가능한 다운로드 | 병렬 다운로드 | FASTQ 병합 | 다운로드 건너뛰기 | 콘다 설치 가능 | URL |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
iSeq | 껍데기 | GSA, SRA, ENA, DDBJ, GEO | 모두 | fq, fq.gz, 스라, bam | wget, 악셀, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ? |
엣지터보 | 기음 | GSA | 모두 거부됨 | fq, fq.gz, bam | 엣지터보 다운로드 | ✔ | ? | ||||||
SRA 툴킷 | 기음 | SRA, ENA, DDBJ | 모두 거부됨 실행 ID 예상 | fq, fq.gz, sra | 미리 가져오기 | ✔ | ✔ | ✔ | ✔ | ? | |||
enaBrowser도구 | 파이썬 | SRA, ENA, DDBJ | GSA/GEO ID를 제외한 모든 것 | fq, fq.gz, sra | urllib, 아스페라 | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
fastq-dl | 파이썬 | SRA, ENA, DDBJ | GSA/GEO ID를 제외한 모든 것 | fq, fq.gz, sra, sra.lite | wget | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
가져오기 | 파이썬 | SRA, ENA, DDBJ, GEO | GSA ID를 제외한 모든 것 | fq, fq.gz | wget, aspera, 프리페치 | ✔ | ✔ | ✔ | ✔ | ? | |||
pysradb | 파이썬 | SRA, ENA, DDBJ, GEO | GSA ID를 제외한 모든 것 | fq, fq.gz, 스라, bam | 요청, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
물총새 | 파이썬 | SRA, ENA, DDBJ | GSA/GEO ID를 제외한 모든 것 | fq, fq.gz, sra | 컬, aria2c, aspera | ✔ | ✔ | ✔ | ✔ | ✔ | ? | ||
ffq | 파이썬 | SRA, ENA, DDBJ, GEO | GSA ID를 제외한 모든 것 | fq, fq.gz, 스라, bam | 요청 | ✔ | ✔ | ✔ | ? |
iSeq 에 대한 기여를 환영합니다! 제안 사항, 버그 보고서 또는 기능 요청이 있는 경우 프로젝트의 GitHub 저장소에서 문제를 열어주세요. 코드를 제공하려면 저장소를 포크하고 변경한 후 풀 요청을 제출하세요.
인용 : https://doi.org/10.1101/2024.05.16.594538
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다.