Bioinformatics/Sequencing data

Bioproject 번호로 SRA 데이터를 다운받는 방법

김해김씨99대손 2024. 7. 19. 17:39

 

 

 

 

🟦 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 를 사용하여 다운로드하기 (관련 레딧에서 누군가가 추천하길래 찾아보니 매우 유용해 보임)

https://www.reddit.com/r/bioinformatics/comments/17rwenn/how_do_i_get_the_fastafastq_file_from_ncbis_bio/

 

우리는 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
 
4) 설치확인 
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와 일부 차이가 존재합니다.

 

이에 대해 검색해 보니 저와 비슷한 질문을 가진 사람이 있었습니다.  

https://bioinformatics.stackexchange.com/questions/16082/programmatically-retrieve-metadata-from-sra-run-selector

 

답변에 의하면, 

$ 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://bioinformaticsworkbook.org/dataAcquisition/fileTransfer/sra.html#a-using-sra-toolkit&gsc.tab=0

- https://aws.amazon.com/ko/what-is/xml/

 

 

 

 

반응형