User Tools

Site Tools


bioinfo:anvio

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

bioinfo:anvio [2018/07/10 15:40] – [Pangenomics] hyjeongbioinfo:anvio [2021/03/17 13:09] (current) – external edit 127.0.0.1
Line 5: Line 5:
   * Anvi'o project page http://merenlab.org/software/anvio/ "Anvi'o in a nutshell"   * Anvi'o project page http://merenlab.org/software/anvio/ "Anvi'o in a nutshell"
   * v5.1 "margaret" 소개 https://github.com/merenlab/anvio/releases   * v5.1 "margaret" 소개 https://github.com/merenlab/anvio/releases
-  * 현재 bioconda로 설치되는 최신 버전은 v4.0이다.  --- //[[hyjeong@kribb.re.kr|Haeyoung Jeong]] 2018/07/06 11:52//+  * 현재 bioconda로 설치되는 최신 버전은 v4.0이다. 이를 확인하려면 'anvi-profile --version'을 입력한다. --- //[[hyjeong@kribb.re.kr|Haeyoung Jeong]] 2018/07/06 11:52//
  
  
Line 46: Line 46:
 python 2.7과 3.x 중 어느것을 기반으로 하느냐에 따라서 db의 버전도 달라진다. Python 3.x 환경에서는 contigs database version이 10으로 바뀌면서 .h5 파일은 쓰이지 않게 된다. 정 문제가 해결되지 않으면 docker image를 써서 실행하자. python 2.7과 3.x 중 어느것을 기반으로 하느냐에 따라서 db의 버전도 달라진다. Python 3.x 환경에서는 contigs database version이 10으로 바뀌면서 .h5 파일은 쓰이지 않게 된다. 정 문제가 해결되지 않으면 docker image를 써서 실행하자.
  
-===== Docker image 이용하기 =====+===== [강력 추천!] Docker image 이용하기 =====
 Anvi'o의 최신 버전을 쓰고 싶다면 docker image를 적극적으로 활용하라. Interactive output display에 접근하려면 -p 8080:8080을 잊지 말아라. Anvi'o의 최신 버전을 쓰고 싶다면 docker image를 적극적으로 활용하라. Interactive output display에 접근하려면 -p 8080:8080을 잊지 말아라.
  
Line 70: Line 70:
  
 ===== Anvi'o로 할 수 있는 일 ===== ===== Anvi'o로 할 수 있는 일 =====
 +==== 개요 ====
 +
 [[http://merenlab.org/software/anvio/|Anvi'o project page]]에서 상단의 tutorials를 클릭하면 10 가지가 넘는 각 응용 분야 별의 튜토리얼이 준비되어 있다. 본격적인 실행에 들어가기에 앞서서 먼저 중요한 개념을 몇 가지 정의하고 넘어가자. 직접 de novo assembly를 하여 생성했거나 NCBI에서 다운로드한 genome이 있다면 이를 **external genome**이라 부른다. 이에 대비되는 **internal genome**은 anvi;o의 metagenomic analysis 결과로 얻어진 genome bin을 뜻한다. contig 파일은 반드시 .fa로 끝나야 하며, 점(.)은 파일명 안에 단 한번만 나와야 한다. 각 organism마다 **contigs database**로 전환된 contig는 **genomes storage**로 전환되어야 비로소 한 덩어리로 취급된다. [[http://merenlab.org/software/anvio/|Anvi'o project page]]에서 상단의 tutorials를 클릭하면 10 가지가 넘는 각 응용 분야 별의 튜토리얼이 준비되어 있다. 본격적인 실행에 들어가기에 앞서서 먼저 중요한 개념을 몇 가지 정의하고 넘어가자. 직접 de novo assembly를 하여 생성했거나 NCBI에서 다운로드한 genome이 있다면 이를 **external genome**이라 부른다. 이에 대비되는 **internal genome**은 anvi;o의 metagenomic analysis 결과로 얻어진 genome bin을 뜻한다. contig 파일은 반드시 .fa로 끝나야 하며, 점(.)은 파일명 안에 단 한번만 나와야 한다. 각 organism마다 **contigs database**로 전환된 contig는 **genomes storage**로 전환되어야 비로소 한 덩어리로 취급된다.
 +
 +COG annotation을 한 다음에는 genomes storage를 다시 만들어서 기능 관련 정보가 채워야 한다.
  
 데이터베이스는 전부 파일로 저장된다. Contigs database에는 각 contig에 부속되는 정보, 즉 k-mer frequency, 20 kb 단위의 soft split, ORF 예측 결과 등이 수록된다([[http://merenlab.org/2016/06/22/anvio-tutorial-v2/#creating-an-anvio-contigs-database|anvi-gen-contig-database]]). 다른 프로그램으로 생성한 gene call 결과를 이용하는 것 역시 가능하다(--external-gene-calls <TAB-delimited file>; 파일의 포맷은 [[http://merenlab.org/2016/06/22/anvio-tutorial-v2/#anvi-gen-contigs-database|여기]]를 참조). 또한 contig 파일의 defline은 최대한 간결하게 고쳐져야 한다. 그러나 anvi-script-FASTA-to-contigs-db 스크립트를 실행하면 이 일이 전부 자동적으로 이루어진다. 데이터베이스는 전부 파일로 저장된다. Contigs database에는 각 contig에 부속되는 정보, 즉 k-mer frequency, 20 kb 단위의 soft split, ORF 예측 결과 등이 수록된다([[http://merenlab.org/2016/06/22/anvio-tutorial-v2/#creating-an-anvio-contigs-database|anvi-gen-contig-database]]). 다른 프로그램으로 생성한 gene call 결과를 이용하는 것 역시 가능하다(--external-gene-calls <TAB-delimited file>; 파일의 포맷은 [[http://merenlab.org/2016/06/22/anvio-tutorial-v2/#anvi-gen-contigs-database|여기]]를 참조). 또한 contig 파일의 defline은 최대한 간결하게 고쳐져야 한다. 그러나 anvi-script-FASTA-to-contigs-db 스크립트를 실행하면 이 일이 전부 자동적으로 이루어진다.
Line 80: Line 84:
       anvi-script-FASTA-to-contigs-db $i       anvi-script-FASTA-to-contigs-db $i
   done   done
 +  (# 필요하다면 anvi-run-ncbi-cogs을 이 단계에서 한다)
   $ anvi-gen-genomes-storage -e external-genomes.txt \   $ anvi-gen-genomes-storage -e external-genomes.txt \
                              -o ALL_GENOMES.h5 (or ALL_GENOMES.db)                              -o ALL_GENOMES.h5 (or ALL_GENOMES.db)
Line 101: Line 106:
   $ anvi-pan-genome -g ALL_GENOMES.db -n PANGENOMES   $ anvi-pan-genome -g ALL_GENOMES.db -n PANGENOMES
  
--n 뒤에 기입하는 것은 PROJECT_NAME으로서 실제로는 이 이름의 디렉토리가 생긴다. 그 하위에 PANGENOMES-PAN.db라는 별도의 DB가 생기는 것이다. 결과를 interactive하게 보려면 다음과 같이 실행한다.+-n 뒤에 기입하는 것은 PROJECT_NAME으로서 실제로는 이 이름의 디렉토리가 생긴다. 그 하위에 PANGENOMES-PAN.db라는 별도의 DB가 생기는 것이다. 결과를 interactive하게 보려면 다음과 같이 실행한다. 동일 컴퓨터에서 웹브라우저를 띄우는 것보다 다른 컴퓨터(MS-윈도우)에서 크롬으로 접속하는 것이 훨씬 빠르다.
  
   $ anvi-display-pan -p PANGENOMES/PANGENOMES-PAN.db -g ALL_GENOMES.db   $ anvi-display-pan -p PANGENOMES/PANGENOMES-PAN.db -g ALL_GENOMES.db
 +Anvi's interactive interface에 대한 상세한 설명은 [[http://merenlab.org/2016/02/27/the-anvio-interactive-interface//#using-the-anvio-interactive-interface|여기]]를 참조한다.
      
 Average nucleotide identity(ANI) 분석도 실시할 수 있다. Average nucleotide identity(ANI) 분석도 실시할 수 있다.
Line 113: Line 119:
 pyani 실행 단계에서 pandas가 없다는 메시지가 나온다. 거듭된 테스트 결과 그 이유를 알아냈다. 도커 이미지 내에서 파이썬 기준 버전은 2.7이다. 그러나 Anvi'o는 3.x 버전에서 돌아가야 하고, pandas도 version 3 기반 위치에 깔려있다. 반면 anvi-compute-ani가 호출하는 average_nucleotide_identity.py(pyani)의 shebang line에는 #/usr/bin/env python이라고 되어있는 것이다. 이를 #!/usr/bin/env **python3**로 고치면 된다. 그런데 이렇게 하려면 적당한 에디터(예: vim)가 필요하고, docker run --rm 옵션으로 실행을 하면 변경 사항이 저장되지 않음을 유의하라. 그러면 vim을 일부러 설치할 필요는 없다. 근본적인 해결 방법은 변경된 컨테이너를 별도의 이미지로 export하여 재활용하는 것이다. pyani 실행 단계에서 pandas가 없다는 메시지가 나온다. 거듭된 테스트 결과 그 이유를 알아냈다. 도커 이미지 내에서 파이썬 기준 버전은 2.7이다. 그러나 Anvi'o는 3.x 버전에서 돌아가야 하고, pandas도 version 3 기반 위치에 깔려있다. 반면 anvi-compute-ani가 호출하는 average_nucleotide_identity.py(pyani)의 shebang line에는 #/usr/bin/env python이라고 되어있는 것이다. 이를 #!/usr/bin/env **python3**로 고치면 된다. 그런데 이렇게 하려면 적당한 에디터(예: vim)가 필요하고, docker run --rm 옵션으로 실행을 하면 변경 사항이 저장되지 않음을 유의하라. 그러면 vim을 일부러 설치할 필요는 없다. 근본적인 해결 방법은 변경된 컨테이너를 별도의 이미지로 export하여 재활용하는 것이다.
  
-ANI 분석 결과물의 시각화는 다음 명령어를 따른다.+ANI 분석 결과물의 시각화는 똑같이 anvi-display-pan 명령을 사용한. 처음에는 ANI 분석 결과가 보이지 않는다. 놀라지 말고 Layout 탭으로 가서 시각화하고 싶은 정보의 체크박스를 클릭한 뒤 Draw를 클릭하라.
  
-  $ anvi-display-ani -g ALL_GENOMES.db \ +=== External gene call 정보를 이용하기 ==== 
-                     -p PANGENOMES/PANGENOMES-PAN.db + 
-처음에는 결과가 보지 않는다. 놀라지 말고 Layout 탭으로 가서 시각화고 싶은 정보의 체크박스를 클릭한 뒤 Draw를 클릭라.+윗부분 'Anvi'o로 할 수 있는 일'의 개요 항목에 설명하였다
 + 
 +=== Layer란? === 
 +[[http://merenlab.org/2017/12/11/additional-data-tables/|Working with anvi'o additional data tables]] 
 + 
 +Anvi'o의 interactive display는 서열 데터로부터 anvi'o 작업을 통해 분석된 데이터 외에도 tab-delimited file로 제공되는 외부 데이터도 표시할 수 있다.  
 + 
 +=== Gene cluster 탐색기 === 
 + 
 +=== 유전자 기능과 관련한 분석기 ===
  
-=== Docker 안에서 패키지 설치하기 === 
-필요하다면 apt-get을 이용하여 필요한 패키지를 설치할 수 있다. 도커 이미지를 처음 적재한 뒤에는 apt-get update를 한번 해 주어야 패키지 설치가 가능하다. 필요한 파이썬 패키지가 있으면 pip3를 사용해야 한다. 기본 인터프리터가 비록 python 2.7이지만 이 이미지에는 pip3가 설치된 상태이고 모든 필요한 라이브러리 역시 이를 기준으로 설치된 상태이다. 도커 컨테이너를 변경하여 재사용하려면 docker commit 명령어를 알아야 한다. 자세한 방법은 [정해영의 블로그] [[http://blog.genoglobe.com/2018/07/anvio_10.html|Anvi'o의 사소한 문제점 개선하기]] 뒷부분을 참조하기 바란다. 
  
  
Line 157: Line 170:
       anvi-run-ncbi-cogs -c $i --num-threads 20       anvi-run-ncbi-cogs -c $i --num-threads 20
   done   done
-COG data directory의 기본 위치는 /usr/local/lib/python3.5/dist-packages/anvio/data/misc/COG이다. 따라서 docker image를 실행하여 설치했다면 exit하는 순간에 지워질 것이다. 따라서 docker commit 명령을 이용하여 설치된 상태의 컨테이너를 별도의 이미지로 저장하는 것이 바람직하다. COG data의 위치는 --cog-data-dir로 변경 가능하다.+COG data directory의 기본 위치는 /usr/local/lib/python3.5/dist-packages/anvio/data/misc/COG이다. 따라서 docker image를 실행하여 설치했다면 exit하는 순간에 지워질 것이다. 따라서 docker commit 명령을 이용하여 설치된 상태의 컨테이너를 별도의 이미지로 저장하는 것이 바람직하다. COG data의 위치는 --cog-data-dir로 변경 가능하다. 그리고 앞에서도 언급했듯이 COG annotation을 한 다음에는 genomes storage를 다시 만들어서 기능 관련 정보가 채워야 한다. 
 + 
 +==== 기타 노하우 ==== 
 + 
 + 
 +=== Docker 안에서 패키지 설치하기 === 
 +필요하다면 apt-get을 이용하여 필요한 패키지를 설치할 수 있다. 도커 이미지를 처음 적재한 뒤에는 apt-get update를 한번 해 주어야 패키지 설치가 가능하다. 필요한 파이썬 패키지가 있으면 pip3를 사용해야 한다. 기본 인터프리터가 비록 python 2.7이지만 이 이미지에는 pip3가 설치된 상태이고 모든 필요한 라이브러리 역시 이를 기준으로 설치된 상태이다. 도커 컨테이너를 변경하여 재사용하려면 docker commit 명령어를 알아야 한다. 자세한 방법은 [정해영의 블로그] [[http://blog.genoglobe.com/2018/07/anvio_10.html|Anvi'o의 사소한 문제점 개선하기]] 뒷부분을 참조하기 바란다.
bioinfo/anvio.1531204806.txt.gz · Last modified: (external edit)