This is an old revision of the document!
Table of Contents
E-direct로 명령행에서 Entrez DB 접근하기
맨 마지막의 awk 명령어는 설명이 필요하다. 직전의 xtract 명령으로 출력되는 라인은 다음과 같은 형식을 갖는다. 이 URL은 파일이 있는 디렉토리이다.
ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/017/045/GCF_000017045.1_ASM1704v1 ...(1)
그러나 다운로드할 수 있는 실제 파일의 URL은 다음과 같다.
ㅁㅇㅁㄴㅇ
기본 개념 및 설치 방법
Entrez는 미국 NCBI가 보유한 biomedical database의 통합적 질의 시스템 혹은 웹 포털을 의미한다. NCBI에서는 유닉스 혹은 리눅스의 명령행 환경에서 Entrez에 직접 접속하여 검색을 실시하고 그 결과를 활용하는데 필요한 유틸리티를 제공하고 있는데, 이것이 바로 Entrez Direct(E-Direct)이다. URL 구문을 이용하여 Entrez 시스템의 활용을 도와주는 API의 일종인 Entrez Programming Utilities(E-utilities)의 명령행 버전 정도로 이해하면 된다. Entrez의 모든 데이터베이스를 알아보려면 https://eutils.ncbi.nlm.nih.gov/entrez/eutils/einfo.fcgi를 접속해 보라.
웹사이트에서 설명한 설치방법 외에도 biocond(entrez-direct) 또는 데비안 패키지(ncbi-entrez-direct)로도 제공되므로 이를 활용할 수 있다.
설치와 간단한 사용법에 대한 동영상은 유튜브('How to Install EDirect on Mac, Unix or Linux')에서 볼 수 있다. E-Direct는 사용자가 제시하는 질의에 대하여 esearch로 탐색을 실시하고, efetch로는 찾아낸 레코드를 원하는 포맷에 맞게 가져오며, xtract를 사용하여 프로그래밍을 하지 않고도 전단계의 명령어에서 반환되는 정보로부터 필요한 필드만을 추출하는 다단계로 이루어진다. 기본적으로 표준 입출력을 사용하므로 각 명령어는 파이프(|)로 연결하여 사용할 수 있다. EDirect Cookbook에서는 직접 복사하여 쓸 수 있는 풍부한 예제가 실려 있으며, 특히 EDirect Wiki!에도 참조할만한 정보가 많다. CVR(MRC-University of Glasgow Centre for Virus Research)에서도 NCBI Enterz Direct UNIX E-utilities라는 웹문서를 통해 몇 가지의 예제를 소개하였다.
유전체 정보 다운로드를 위한 FTP path 알아내기
다음은 EDirect에서 Clostridium botulinum의 complete genome 정보를 다운로드할 수 있는 FTP path를 파일로 저장하는 명령어 사례이다. esearch -query '( … )'로 지정해야 하는 질의어가 예상외로 복잡하게 느껴질 수 있으므로 Assembly Advanced Search Builder를 이용하여 점검하는 것을 강력하게 권장한다. 이 웹사이트는 NCBI의 assembly DB에 대한 것이므로, 다른 종류의 DB(bioproject, biosample, pubmed, sra, taxonomy… 등)에 대해서는 별도의 Advanced Search Builder를 활용하기 바란다. 다음의 명령어 사례는 Clostridium botulinum의 complete genome 서열을 다운로드하기 위한 URL을 full_download_path.txt에 저장하기 위한 것이다. 질의어를 Advanced Search Builder에 넣으면 자동적으로 'derived from surveillance project'와 'anomalous' 레코드를 제외하는 필터가 적용된다. 후속 분석 목적에 따라서는 surveillance project에서 유래한 유전체 정보를 다운로드할 필요도 있으므로, 이러한 상황에서는 질의어를 어떻게 만들어야 하는지 생각해 보라. EDirect Cookbook에서는 질의어를 “species[ORGN] AND latest[SB]“로 매우 단순하게 구성하였다. 추출해야 할 필드가 여러 개라면 xtract의 인수를 '-element GenBank FtpPath_GenBank BioSampleAccn BioprojectAccn'와 같이 만들면 된다. 'efetch -format docsum' 명령어를 제공하면 XML 형태의 자료가 표준출력으로 나온다.
$ esearch -db assembly -query '("Clostridium botulinum"[Organism] AND \ (latest[filter] AND (all[filter] NOT "derived from surveillance \ project"[filter] AND all[filter] NOT anomalous[filter]))")' | \ efetch -format docsum | \ xtract -pattern DocumentSummary -element FtpPath_RefSeq | \ awk -F"/" '{print $0"/"$NF"_genomic.fna.gz"}' > full_download_path.txt