User Tools

Site Tools


bioinfo:batch_download_of_ncbi_genomes

This is an old revision of the document!


NCBI에서 특정 분류군에 속하는 미생물 유전체를 일괄적으로 다운로드하기

페이지네임을 한글로 길게 만들었더니 저장이 되지 않는 현상을 발견하였다. DoluWiki의 문제인 듯.

NCBI에서 제공하는 공식 문서 Genome Download (FTP) FAQ에 유용한 정보가 많으므로 이것을 일단 숙독하는 것이 좋을 것이다. 특히 'How can I find the sequence and annotatio of my genome of interest?' 질문이 중요하다. 동일한 유전체 서열에 대하여 왜 RefSeq과 GenBank의 레코드가 따로 존재하는지, 그리고 일부 유전체는 왜 GenBank에만 존재하는지 등에 대해서도 그 이유를 알아야 한다.

다운로드 전용 유틸리티를 사용하는 방법

간단한 방법으로는 ncbi-genome-download가 편리하다. 개별적인 assembly accession은 물론 사용자가 정의한 유전체의 그룹 단위로 다운로드할 수 있어 매우 유용하다. 맨 마지막 옵션으로는 bacteria, archaea, fungi, viral과 같은 group 정보를 반드시 주어야 한다. 이 스크립트는 실행할 때 날짜 기준으로 $HOME/.cache/ncbi-genome-download에 assembly summary file의 캐시를 생성한다. –no-cache 옵션을 사용하면 이를 무시할 수 있다. '–assembly-accession'('-A'와 동일) 파라미터는 단일 accession, 쉼표로 구분한 accession, 또는 파일 형태로 수록한 accession을 전부 받아들일 수 있어 매우 유용하다. 단지 종 및 균주 명칭만을 입수하기 위함이라면 뒤에서 소개할 NCBI EDirect 명령어 조합(esearch | efetch | xtract)보다 훨씬 빠르다.

$ ncbi-genome-download bacteria # RefSeq의 모든 박테리아 유전체 다운로드
$ ncbi-genome-download –-section genbank fungi # GenBank에서 모든 진균 유전체 다운로드
# 실제 다운로드는 하지 않고 accession number와 간단한 정보만 출력('--dry-run' or '-n')
$ ncbi-genome-download --dry-run --genus "Streptomyces" bacteria	
$ ncbi-genome-download --type-materials type,reference
$ ncbi-genome-download --format-fasta --taxid 511145 bacteria
$ ncbi-genome-download --assembly-accessions GCF_000146875.3,GCF_000833145.1 bacteria # 소수점 이하(버전)까지 지정해야 함

Accession number를 이용하여 뉴클레오티드 혹은 단백질 서열을 받으려면 ncbi-acc-download. 다운로드하려는 분자 유형이 단백질이라면 -m 또는 -molecule {nucleotide,protein} 옵션으로 지정해야 된다. 그러나 이 방법으로는 assembly accession(예: GCA_011389495.1 또는 GCF_011389495.1)1)을 사용한 다운로드는 불가하다. 다음 장에서 설명할 NCBI E-Direct 유틸리티도 PubMed나 서열 또는 유전체 정보의 검색 및 일괄 다운로드에 편리하게 사용할 수 있다.

Assembly summary file에서 대상(assembly accession) 선정 후 다운로드하는 방법

위에서 소개한 두 종류의 유틸리티는 분류학적 정보나 assembly accession number를 근거로 하여 유전체 정보를 일괄적으로 다운로드하는 데에 적합하다. 그러나 NCBI에서는 등록된 모든 유전체 염기서열에 대하여 균주의 명칭, accession number, 제출자, 등록일, 균주 출처 등 스무 가지가 넘는 부가 정보를 체계적으로 정리하여 다음의 위치에서 텍스트 파일(assembly_summary_DB.txt)로 제공하므로, 여기에서 다운로드할 수 있는 파일의 FTP path를 찾아내어 wget 명령으로 일괄 다운로드하는 것이 훨씬 편리하다. 다음 두 가지의 assembly summary file은 모든 등록된 모든 생명체의 유전체 조립 정보를 GenBank 및 RefSeq로 나누어서 수록한 것이다. assembly file 자체와 각 컬럼의 의미에 대한 설명이 필요하면 README 파일을 참조한다.괄호 안의 숫자는 각각 2021년 8월 5일과 2023년 6월 22일 기준의 파일 크기이다. 약 2년 사이에 유전체 DB의 엔트리가 얼마나 증가했는지 알 수 있다.

RefSeq에 등록된 박테리아의 유전체 조립 정보를 참고하고 싶다면 다음의 파일을 활용한다. RefSeq가 아닌 GenBank 자료를 원한다면 URL의 'refseq'을 'genbank'로 치환하면 되고, 'bacteria'를 'archaea', 'fungi', 'invertebrate' 등으로 치환하면 다른 서브셋에 대한 정보를 가져오게 된다.

https://ftp.ncbi.nlm.nih.gov/genomes/refseq/bacteria/assembly_summary.txt

우선 오늘 날짜의 RefSeq assembly summary report 파일(bacteria)을 다운로드한다. Curl 대신 wget을 사용해도 된다. 매일 데이터가 갱신되므로 다운로드한 assembly summary report 파일의 이름에 날짜를 포함하는 것은 나름대로의 의미가 있다.

$ curl -o assembly_summary_refseq_bacteria_`date +%Y-%m-%d`.txt \

https://ftp.ncbi.nlm.nih.gov/genomes/refseq/bacteria/assembly_summary.txt

특정 종(예: Klebsiella pneumoniae)에 대하여 assembly level = ‘Complete genome’혹은 ‘Chromosome’으로 구성된 유전체 정보에 해당하는 라인만을 선택하여 FTP path 정보를 추출해 본다. Assembly level을 기준으로 선별하지 않으면 데이터의 분량이 크게 늘어날 것이다.

$ awk -F "\t" '$8~/^Klebsiella pneumoniae/ && $12~/^Complete Genome|^Chromosome/' bacteria_assembly_summary_refseq_*.txt > list_all
$ awk -F "\t" '{print $20}' list_all > list_all_ftp_path

이어서 다운로드할 파일의 URL을 완성한다. 파일명에서 ‘.gz’ 확장자를 제외한 나머지 필드, 즉 빨간색으로 표시한 부분은 실제로 받을 파일의 유형(GCF_002264385.1의 사례)에 맞추어 바꾸어야 한다. 여기에는 genomic.fna, cds_from_genomic.fna, genomic.gbff, protein.faa 등이 있다. GCF_를 GCA_로 바꾸면 동일한 유전체에 대한 GenBank 레코드가 된다.

$ sed -r 's|(ftp://ftp.ncbi.nlm.nih.gov/genomes/all/.+\/)(GCF_.+)|\1\2\/\2_<color #ed1c24>genomic.fna.gz</color>|' list_all_ftp_path > list_all_files_with_path_fna
1)
GCA_와 GCF_는 각각 GenBank와 RefSeq의 assembly accession을 의미한다.
bioinfo/batch_download_of_ncbi_genomes.1687409739.txt.gz · Last modified: 2023/06/22 13:55 by hyjeong