bioinfo:batch_download_of_ncbi_genomes
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
bioinfo:batch_download_of_ncbi_genomes [2023/06/22 13:54] – [Assembly summary file에서 대상(assembly accession) 선정 후 다운로드하는 방법] hyjeong | bioinfo:batch_download_of_ncbi_genomes [2025/01/16 10:30] (current) – [다운로드 전용 유틸리티를 사용하는 방법] hyjeong | ||
---|---|---|---|
Line 4: | Line 4: | ||
NCBI에서 제공하는 공식 문서 [[https:// | NCBI에서 제공하는 공식 문서 [[https:// | ||
- | ====== 다운로드 전용 유틸리티를 사용하는 방법 | + | ===== 다운로드 전용 유틸리티를 사용하는 방법 ===== |
- | 간단한 방법으로는 [[https:// | + | 간단한 방법으로는 [[https:// |
$ ncbi-genome-download bacteria # RefSeq의 모든 박테리아 유전체 다운로드 | $ ncbi-genome-download bacteria # RefSeq의 모든 박테리아 유전체 다운로드 | ||
- | $ ncbi-genome-download | + | $ ncbi-genome-download |
# 실제 다운로드는 하지 않고 accession number와 간단한 정보만 출력(' | # 실제 다운로드는 하지 않고 accession number와 간단한 정보만 출력(' | ||
$ ncbi-genome-download --dry-run --genus " | $ ncbi-genome-download --dry-run --genus " | ||
$ ncbi-genome-download --type-materials type, | $ ncbi-genome-download --type-materials type, | ||
- | $ ncbi-genome-download --format-fasta --taxid 511145 bacteria | + | $ ncbi-genome-download --format fasta --taxid 511145 bacteria |
$ ncbi-genome-download --assembly-accessions GCF_000146875.3, | $ ncbi-genome-download --assembly-accessions GCF_000146875.3, | ||
Accession number를 이용하여 뉴클레오티드 혹은 단백질 서열을 받으려면 [[https:// | Accession number를 이용하여 뉴클레오티드 혹은 단백질 서열을 받으려면 [[https:// | ||
- | ====== Assembly summary file에서 대상(assembly accession) 선정 후 다운로드하는 방법 | + | ===== Assembly summary file에서 대상(assembly accession) 선정 후 다운로드하는 방법 ===== |
위에서 소개한 두 종류의 유틸리티는 분류학적 정보나 assembly accession number를 근거로 하여 유전체 정보를 일괄적으로 다운로드하는 데에 적합하다. 그러나 NCBI에서는 등록된 모든 유전체 염기서열에 대하여 균주의 명칭, accession number, 제출자, 등록일, 균주 출처 등 스무 가지가 넘는 부가 정보를 체계적으로 정리하여 다음의 위치에서 텍스트 파일(assembly_summary_// | 위에서 소개한 두 종류의 유틸리티는 분류학적 정보나 assembly accession number를 근거로 하여 유전체 정보를 일괄적으로 다운로드하는 데에 적합하다. 그러나 NCBI에서는 등록된 모든 유전체 염기서열에 대하여 균주의 명칭, accession number, 제출자, 등록일, 균주 출처 등 스무 가지가 넘는 부가 정보를 체계적으로 정리하여 다음의 위치에서 텍스트 파일(assembly_summary_// | ||
Line 31: | Line 31: | ||
$ curl -o assembly_summary_refseq_bacteria_`date +%Y-%m-%d`.txt \ | $ curl -o assembly_summary_refseq_bacteria_`date +%Y-%m-%d`.txt \ | ||
- | https:// | + | |
- | 특정 종(예: Klebsiella pneumoniae)에 대하여 assembly level = ‘Complete genome’혹은 | + | 특정 종(예: Klebsiella pneumoniae)에 대하여 assembly level = 'Complete genome' |
$ awk -F " | $ awk -F " | ||
$ awk -F " | $ awk -F " | ||
- | + | ||
+ | 이어서 다운로드할 파일의 URL을 완성한다. sed 치환 뒤의 파일명에서 ' | ||
+ | |||
+ | $ sed -r ' | ||
+ | |||
+ | 새 디렉토리를 만들어 이동한 뒤 wget과 목록 파일(list_all_files_with_path_fna)을 이용하여 파일을 다운로드한다. | ||
+ | |||
+ | $ mkdir 01_fna; cd 01_fna | ||
+ | $ cat ../ | ||
+ | $ gzip –d *gz | ||
+ | |||
+ | GNU parallel이 설치되어 있다면 한번에 지정한 수(-j6)의 파일을 동시에 다운로드할 수 있다. | ||
+ | |||
+ | $ cat list_all_files_with_path_fna | parallel -j6 wget | ||
+ | |||
+ | Parallel을 사용하면 간혹 접속 상태가 나쁠 때 다음 파일의 다운로드로 건너 뛰기도 한다. 이를 점검하려면 다음과 같이 표준입력과 에러를 구조화하여 출력하도록 parallel을 실행한 다음 표준에러 파일을 한데 모아서 문서편집기로 확인해야 한다. ' | ||
+ | |||
+ | $ cat list_all_files_with_path_fna | parallel -j6 --results outdir wget | ||
+ | $ find outdir/ -name stderr -exec cat {} \; > stderr.all | ||
+ | $ grep -B 4 failed stderr.all | ||
+ | |||
+ | ==== 다운로드한 파일 이름의 일괄 변경 ==== | ||
+ | |||
+ | 다운로드한 파일의 이름은 다음과 같은 형태라서 균주 정보를 직접적으로 유추하기가 어렵고 너무 길다. | ||
+ | |||
+ | GCF_000001405.38_GRCh38.p12_genomic.fna.gz | ||
+ | GCF_000001215.4_Release_6_plus_ISO1_MT_genomic.fna.gz | ||
+ | |||
+ | 따라서 나머지 필드는 다 제거하고 assembly accession(GCF_######### | ||
+ | |||
+ | $ for i in $(ls *.fna.gz) | ||
+ | > do | ||
+ | > mv $i $(cut -d_ -f1,2 <<< | ||
+ | > done | ||
+ | # GCF_000001405.38_GRCh38.p12_genomic.fna.gz -> GCF_000001405.38.fna.gz로 변경 | ||
+ | |||
+ | 또는 학명과 균주 이름으로 파일이름을 바꾸는 것도 좋다. 이를 위해서 [[: | ||
+ | |||
+ | $ my_rename1.pl ../list_all > id2name | ||
+ | |||
+ | my_rename1.pl 스크립트는 list_all 파일(assembly summary에서 선별된 row로 이루어진 부분집합)의 8번 컬럼(organism_name; | ||
+ | |||
+ | id2name 파일의 두 번째 컬럼이 변경된 파일의 이름 base로 쓰일 것이므로 공백이나 특수문자 등 적합하지 않은 문자가 없도록 적절히 편집하여 id2name.mod로 저장한다. 괄호 표시도 밑줄로 대체하는 것이 바람직하다. 간혹 동일한 균주를 서로 다른 곳에서 2회 이상 시퀀싱하여 등록한 것을 발견하게 된다. 이런 것은 바뀐 후의 파일 이름이 동일해져 버리므로, | ||
+ | |||
+ | $ ls *fna | while read f; do my_rename2.pl id2name.mod $f; done |
bioinfo/batch_download_of_ncbi_genomes.1687409679.txt.gz · Last modified: 2023/06/22 13:54 by hyjeong