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:28] – [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으로서 실제로는 이 이름의 디렉토리가 생긴다. 그 하위에 MY_GENOMES-PAN.db라는 별도의 DB가 생기는 것이다. 결과를 interactive하게 보려면 다음과 같이 실행한다.+-n 뒤에 기입하는 것은 PROJECT_NAME으로서 실제로는 이 이름의 디렉토리가 생긴다. 그 하위에 PANGENOMES-PAN.db라는 별도의 DB가 생기는 것이다. 결과를 interactive하게 보려면 다음과 같이 실행한다. 동일 컴퓨터에서 웹브라우저를 띄우는 것보다 다른 컴퓨터(MS-윈도우)에서 크롬으로 접속하는 것이 훨씬 빠르다.
  
-  $ anvi-display-pan -p PROJECT_NAME/PROJECT_NAME-PAN.db -g MY-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 111: Line 117:
                      --num-threads 6 \                      --num-threads 6 \
                      --pan-db PANGENOMES/PANGENOMES-PAN.db                      --pan-db PANGENOMES/PANGENOMES-PAN.db
-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을 일부러 설치할 필요는 없다. 어휴, 성가셔...+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 PROCHLORO-GENOMES.db \ +=== External gene call 정보를 이용하기 ==== 
-                     -p PROCHLORO/Prochlorococcus_Pan-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.1531204106.txt.gz · Last modified: (external edit)