파이썬
라이브러리
ete toolkit
#
Find similar titles
Structured data
- Category
- Programming
Table of Contents
개요 #
ETE 는 python 프로그램 언어로 제작된 분석 도구로 계통수 분석 및 시각화에 유용하게 사용할 수 있는 패키지이다. 이 패키지는 계통수 분석 시 필요에 따라 맞춤제작(node annotation, tree reconciliation 등) 하여 시각화하는 데 유용하게 사용할 수 있다. 계통수 분석뿐만 아니라 hierarchical 구조를 가진 데이터를 시각화하는 경우에도 적용이 가능하다.
설치 #
-
ete 설치 준비 ete를 사용하기 위해서는 numpy, lxml, PyQt 패키지가 먼저 설치되어야 한다. 설치 방법은 아래와 같다.
-
apt 를 이용하여 설치하는 경우
sudo apt-get install python-numpy python-qt4 python-lxml python-six
-
yum을 이용하여 설치하는 경우
sudo yum install PyQt4.x86_64 numpy.x86_64 python-lxml.x86_64 python-six.noarch
-
ete 설치 ete는 pip를 이용하여 다음과 같이 설치한다. 2017년 11월 기준으로 최신 버전은 3.0.0b34 이다.
sudo pip install ete3
-
사용방법 #
-
계통수 그리기 기본적인 계통수는 다음과 같이 생성할 수 있다.
from ete3 import Tree # 문자열로 데이터 입력 t = Tree("(A:1,(B:1,(E:1,D:1):0.5):0.5);") print t #or t.show() # newick 형식 파일을 사용하는 경우 from ete3 import Tree t = Tree("sample.newick") print t #or t.show() -
계통수 맞춤제작 ete toolkit을 이용하여 다양한 형태의 계통수를 작성할 수 있으며, 각 노드에 해당하는 서열 간 alignment, matrix 데이터 등을 각 노드와 연계하여 계통수를 시각화할 수 있다.
아래는 예제 코드이다.
-
alignment 연동 서열 데이터는 fasta, phyliip 형식의 데이터를 이용한다.
from ete3 import PhyloTree, TreeStyle fasta_txt = """ >A MAEIPDETIQQFMALT--- HNIAVQYLSEFGDLNEALNSYYASQTDDIKDRREEAH >B MAEIPDATIQQFMALTNVSHNIAVQY--EFGDLNEALNSYYAYQTDDQKDRREEAH >C MAEIPDATIQ---ALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQPDRREEAH >D MAEAPDETIQQFMALTNVSHNIAVQYLSEFGDLNEAL--------------REEAH """ t = PhyloTree("(((A,B),C),D);") t.link_to_alignment(alignment=fasta_txt, alg_format="fasta") t.show(tree_style=TreeStyle())
다음은 위의 예제 코드의 결과이미지이다.
-
matrix 연동
from ete3 import ClusterTreematrix = """ #Names\tcol1\tcol2\tcol3\tcol4\tcol5\tcol6\tcol7 A\t-1.23\t-0.81\t1.79\t0.78\t-0.42\t-0.69\t0.58 B\t-1.76\t-0.94\t1.16\t0.36\t0.41\t-0.35\t1.12 C\t-2.19\t0.13\t0.65\t-0.51\t0.52\t1.04\t0.36 D\t-1.22\t-0.98\t0.79\t-0.76\t-0.29\t1.54\t0.93 E\t-1.47\t-0.83\t0.85\t0.07\t-0.81\t1.53\t0.65 F\t-1.04\t-1.11\t0.87\t-0.14\t-0.80\t1.74\t0.48 G\t-1.57\t-1.17\t1.29\t0.23\t-0.20\t1.17\t0.26 H\t-1.53\t-1.25\t0.59\t-0.30\t0.32\t1.41\t0.77 """ t = ClusterTree("(((A,B),(C,(D,E))),(F,(G,H)));", text_array=matrix) t.show("heatmap") # tree, heatmap cluster 연동
-