🟦 The Sequence Read Archive(SRA)란?
NIH 주관 International Nucleotide Sequence Database Collaboration (INSDC)의 산하 저장소는 the European Bioinformatics Institute (EBI), and the DNA Database of Japan (DDBJ) 등이 있다. 이 중 SRA는 high-throughput sequencing 데이터의 저장소중 하나입니다.
(https://www.ncbi.nlm.nih.gov/sra/docs/)
SRA의 접근 번호
SRA에 업로드된 샘플에서 여러 가지 접근 번호가 있습니다. 이에 대한 포함 관계설명드리겠습니다.
접근 번호 | 설명 |
SRP (Sequence Read Archive Project) | 연구 및 프로젝트 초록에 대한 메타데이터를 나타내는 연구 접근 번호. 하나의 SRP 번호는 여러 SRX 번호를 포함할 수 있음. 예시: SRP123456. |
SRX (Sequence Read Archive Experiment) | 연구, 샘플, 라이브러리 및 런에 대한 메타데이터를 나타내는 실험 접근 번호. 하나의 SRX 번호는 관련된 여러 SRR 번호를 포함할 수 있음. 예시: SRX123456. |
SRR (Sequence Read Archive Run) | 특정 실험의 실제 시퀀싱 데이터를 나타내는 접근 번호. 시퀀싱 런(run)마다 고유한 SRR 번호가 할당됨. 예시: SRR123456. |
SAMN/SRS (BioSample/SRA Sample) | 생물학적 샘플에 대한 메타데이터를 나타내는 BioSample/SRA 접근 번호. 특정 생물학적 샘플에 대한 정보를 제공. 예시: SAMN123456. (SRP, SRX, SRR 번호와 독립적) |
각 접근 번호의 포함관계는 아래와 같습니다.
- SRP > SRX > SRR
🟦 BioProject란?
BioProject 데이터 베이스는 INSDC에 의해 관리되는 데이터베이스( dbVar, Sequence Read Archive(DRA/ERA/SRA), DDBJ/ENA/GenBank)에 접근가능한 조직적 구조를 제공합니다.
BioProject는 아래의 데이터만 수록 가능합니다.
- Genome sequencing and assembly
- Metagenomes
- Transcriptome sequencing and expression
- Targeted locus sequencing
- Genetic or RH Maps
- Epigenomics and functional genomics
- Phenotype or Genotype
- Variation detection
(https://www.ncbi.nlm.nih.gov/books/NBK169438/)
🟦 BioProject 접근 번호로 SRA 데이터 다운로드 하기
보통 SRA에서 fastq를 다운로드하으려면 아래와 같은 방법들이 있습니다.
(1) 홈페이지에서. fastq파일 직접 다운로드하기
(2) sra-toolkit의 fastq-bump/ fasterq-bump를 이용해서. fastq파일 직접 다운로드하기
(3) prefetch를 사용해. sra파일 다운로드한 후 fastq로 변환하기
(4) Kingfisher 를 사용하여 다운로드하기 (관련 레딧에서 누군가가 추천하길래 찾아보니 매우 유용해 보임)
우리는 bioproject에서 SRR 접근 번호를 가져온 다음, fasterq-bump를 사용해 fastq를 직접 다운로드하여 보자.
1. SRA데이터 다운로드를 위한 SRA-toolkit 다운로드
- https://github.com/ncbi/sra-tools/wiki/02.-Installing-SRA-Toolkit
02. Installing SRA Toolkit
SRA Tools. Contribute to ncbi/sra-tools development by creating an account on GitHub.
github.com
1) 파일 다운로드
# 2024.07.19기준
## Ubuntu의 경우
wget --output-document sratoolkit.tar.gz https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-ubuntu64.tar.gz
## CentOS의 경우
wget --output-document sratoolkit.tar.gz https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-centos_linux64.tar.gz
## Mac의 경우
curl --output sratoolkit.tar.gz https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-mac64.tar.gz
2) 압축 풀기
tar -vxzf sratoolkit.tar.gz
3) 경로 지정
export PATH=$PATH:$PWD/sratoolkit.3.0.0-mac64/bin
which fastq-dump
SRA 파일 다운로드해 보기
# 1. SRA 파일 다운로드
prefetch SRR5790106 SRR5790104 SRR20747184
# 3. .sra를 .fastq 로 변환하기
fasterq-dump SRR5790106
2. Bioproject에서 SRR 접근번호 가져오기
- https://www.ncbi.nlm.nih.gov/books/NBK179288/
1) Entrez Direct 설치
## 설치
sh -c "$(curl -fsSL https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/install-edirect.sh)"
# 혹은
sh -c "$(wget -q https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/install-edirect.sh -O -)"
## 경로지정
export PATH=${HOME}/edirect:${PATH}
2) Bioproject의 정보 가져오기
esearch -db sra -query PRJNA1070443 | efetch -format runinfo > runinfo.csv
SRR 번호만 가져오려면?
search -db sra -query PRJNA1070443 | efetch -format runinfo | cut -d "," -f 1 > SRR.numbers
SRA tool kit의 경로를 지정하려면
$ vi ~/.bashrc
에서
# SRA tool kit
export PATH="/home/ksy/edirect:$PATH"
export PATH="/home/ksy/tools/sratoolkit.3.1.1-centos_linux64/bin:$PATH"
위 내용을 입력 후 :wq로 저장
$ source ~/.bashrc
로 적용해 준다
3. 위 도구를 종합해서 한 번에 Bioproject데이터 다운로드하기
- thread를 16개 사용하여 SRR를 모두 다운로드하는 스크립트
esearch -db sra -query PRJNA421247 | efetch -format runinfo | cut -d ',' -f 1 | grep SRR | xargs fasterq-dump --threads 16
esearch를 사용해 bioproject안에 속한 데이터 가져오기 -> efetch에서 runinformation 추출하기 -> 그중에서 SRR열을 추출(grep) -> 이를 fasterq-dump의 변수로 사용하는 함수이다.
🟦 BioProject 접근 번호로 Metadata 다운로드하기
(추가) 2024.07.23
SRA에서 fastq 파일만 다운로드하면, 분석은 가능하지만, 그 이상의 것을 할 수 없습니다. 우리는 샘플의 데이터를 추가로 얻어야 합니다. 이때 사용되는 것이 SRA Run Selector와 esearch가 있습니다.
1. SRA Run Selector
- https://www.ncbi.xyz/Traces/study/
검색창에 접근 번호를 입력하면 전체 metadata를 얻을 수 있습니다.
2. Esearch 사용하기
온라인에 접속하지 않고, 리눅스 상에서 sra toolkit의 esearch를 이용하여 메타데이터를 다운로드할 수 있습니다.
보통은 아래의 스크립트를 많이 사용합니다.
$ esearch -db sra -query PRJNA421247 | efetch -format runinfo >> runinfo.csv
그러나 여기서 얻을 수 있는 데이터는 그러나 Select에 존재하는 Metadta와 일부 차이가 존재합니다.
이에 대해 검색해 보니 저와 비슷한 질문을 가진 사람이 있었습니다.
답변에 의하면,
$ esearch -db sra -query ' PRJNA421247 [bioproject]' | efetch -format native -mode xml >> runinfo2.csv
이때 얻은 데이터는 xml 형식으로 SRA Run Selector와 동일한 데이터를 담고 있다고 합니다.
xml를 조금 알아봅시다. 이는 데이터를 저장하고 전송하기 위한 형식으로 HTML과 일부 차이가 있다.
<EXPERIMENT_PACKAGE>와 </EXPERIMENT_PACKAGE> 안에 하나의 샘플 데이터가 들어있습니다(=요소).
그 안에 하나의 콘탠츠들이 존재하고 있습니다.
Tile처럼 하나의 콘텐츠로 구성되어 있는 것도 있으며,
SUBMISSION처럼 여러 속성(lab_name, center_name, accession, alias)등을 가진 콘텐츠도 존재합니다.
이때 xml 파일은 xtract를 사용하여 표 형태로 추출 가능합니다.
먼저, 데이터의 요소와 콘텐츠, 값을 먼저 확인합니다.
속성이 있으면 "콘텐츠@속성"으로 지칭할 수 있으며,
콘텐츠의 하부 콘텐츠를 지칭하고 싶다면 "콘텐츠/콘텐츠"로 작성 가능합니다.
$ esearch -db sra -query 'PRJNA421247[bioproject]' | efetch -format native -mode xml | xtract -pattern EXPERIMENT_PACKAGE -element TITLE,STUDY_REF@accession,LIBRARY_DESCRIPTOR/LIBRARY_STRATEGY,PLATFORM/ILLUMINA/INSTRUMENT_MODEL >> output
위 스크립트의 수행 결과, 네 개의 열의 데이터가 추출되어 output에 저장되었습니다.
🟦 최종적인 Bioproject의 데이터 접근 추천법
1. SRA의 다운로드는 fasterq-dump (빠르다)
2. SRA metadata 다운로드는 굳이 xml로 다운로드하고 이를 변환할 필요 없이 SRA Run Selector 쓰자! (xml 이런거 모르겠다!!)
Reference
- https://www.reneshbedre.com/blog/ncbi_sra_toolkit.html
- https://aws.amazon.com/ko/what-is/xml/