Ecrire diverses formes d'arbres phylogénétiques en Python à l'aide de la boîte à outils ETE

(2017/2/22, OS X El Capitan)

introduction

Je faisais une analyse phylogénétique et je voulais écrire un arbre phylogénétique intégrant les informations d'alignement, j'ai donc présenté la boîte à outils ETE. Avec la boîte à outils ETE, vous pouvez utiliser Python pour créer un arbre phylogénétique qui intègre l'alignement, les domaines, les cartes thermiques, etc. Cette fois, j'aimerais vous présenter un arbre phylogénétique simple, un arbre phylogénétique avec alignement et d'autres fonctions qui peuvent être utiles. Actuellement, il n'y a pas d'informations complètes autres que le site officiel, alors faites-le moi savoir si vous en avez une bonne utilisation.

Site de référence

http://etetoolkit.org

Installation

Vous devez installer les deux ci-dessus. Le système d'exploitation est disponible sur Mac ou Linux. Le site officiel recommande d'installer la boîte à outils ETE à l'aide d'anaconda, qui est souvent utilisé pour créer des environnements Python. Veuillez installer anaconda en vous référant aux pages suivantes. http://qiita.com/y__sama/items/5b62d31cb7e6ed50f02c

Après avoir installé anaconda, créez un environnement virtuel et installez-le avec conda. En guise de mise en garde, il semble que des erreurs d'installation se produisent dans Python 3.5 ou version ultérieure, il est donc préférable de créer un environnement virtuel en tant que Python 3.4 (à partir du 23 février 2017).

$conda install -c etetoolkit ete3 ete3_external_apps

Enfin, vérifiez s'il a été correctement installé.

$ete3 version
$ete3 build check

Selon le site officiel, vous pouvez également créer à partir de la source. http://etetoolkit.org/download/

Comment utiliser

Arbre phylogénétique simple

Préparez un fichier d'arborescence au format Neick (l'extension peut être .txt).

phylotree.py


#!/usr/bin/env python
import sys
from ete3 import PhyloTree

t = PhyloTree(sys.argv[1]) #Spécifiez le fichier newic comme argument.
t.render("motifs.png ", w=2000, dpi=500) #Spécification du fichier d'exportation. w est la largeur, h est la hauteur, l'unité est l'unité(“px”: pixels, “mm”: millimeters, “in”: inches), Dpi peut être spécifié

画像

Arbre phylogénétique circulaire

Vous pouvez en faire un style circulaire en spécifiant "c" dans TreeStyle (). De plus, TreeStyle vous permet de spécifier diverses choses telles que la couleur et la forme des nœuds (points, lignes épaisses, etc.) Veuillez vous référer au site officiel ci-dessous. http://etetoolkit.org/docs/latest/reference/reference_treeview.html?highlight=treestyle#treestyle

phylotree_circular.py


#!/usr/bin/env python
import sys
from ete3 import Tree, PhyloTree, TreeStyle

t = PhyloTree(sys.argv[1])
circular_style = TreeStyle() #TreeStyle()Vous pouvez spécifier la forme de l'arbre phylogénétique avec
circular_style.mode = "c" #"c"Spécifier circulaire_Faites-en un arbre de style
circular_style.scale = 60 #Vous pouvez spécifier l'échelle du nœud
t.render("circular_tree_3.png ", w=800, dpi=200, tree_style=circular_style)  #Exportation. w est la largeur, h est la hauteur, l'unité est l'unité(“px”: pixels, “mm”: millimeters, “in”: inches), Dpi peut être spécifié

sample.png

Arbre phylogénétique avec alignement

En plus du fichier newick, préparez un fichier fasta aligné avec mafft etc. Je me suis référé au site suivant pour savoir comment utiliser mafft. http://qiita.com/MaedaTaro_Umiushi/items/2d05225677ded15b19a7 En plus du script d'arbre phylogénétique normal, vous pouvez facilement combiner et visualiser l'arbre phylogénétique et l'alignement en utilisant l'option link_to_alignment.

phylotree_align


#!/usr/bin/env python
import sys
from ete3 import Tree, PhyloTree, SeqMotifFace, TreeStyle

t = PhyloTree(sys.argv[1]) #Spécifiez le fichier newic comme argument
t.link_to_alignment(sys.argv[2])   #Liez le fichier d'alignement à l'arborescence.
t.render("motifs_align.png ", w=2000, dpi=500) #Exportation. w est la largeur, h est la hauteur, l'unité est l'unité(“px”: pixels, “mm”: millimeters, “in”: inches), Dpi peut être spécifié

画像

Autres caractéristiques

Vous pouvez obtenir la liste des gènes utilisés pour l'arbre comme suit.

gene_list.py


import sys
from ete3 import Tree

t = Tree(sys.argv[1]) #Chargez l'arbre
gene_list = t.get_leaf_names() #Acquisition du nom du gène(Nom de la feuille)
print(gene_list)

À la fin

Sur la page "Le moteur de dessin d'arbre programmable" du site officiel d'ETE Toolkit (http://etetoolkit.org/docs/latest/tutorial/tutorial_drawing.html?highlight=heatmap), tout, des cartes thermiques à l'ajout de fichiers image Cela s'est avéré possible. Je l'ajouterai quand je comprendrai comment l'utiliser à l'avenir.

Recommended Posts

Ecrire diverses formes d'arbres phylogénétiques en Python à l'aide de la boîte à outils ETE
Pratique d'utilisation de ceci en Python (mauvais)
Arborescence de sortie des fichiers en Python
Résumé de diverses instructions for en Python
Ecrire un module python dans fortran en utilisant f2py
Dessinez une structure arborescente en Python 3 à l'aide de graphviz
Résumé des opérations Excel utilisant OpenPyXL en Python
Bases de l'écran d'entrée / sortie en utilisant tkinter en python3
L'ancien openssl pose des problèmes dans diverses parties de python
Ecrire Python dans MySQL
Lire et écrire des balises NFC avec python en utilisant PaSoRi
Divers traitements de Python
Mémo de connexion SSH utilisant ProxyCommand de ssh_config en Python
J'ai mesuré différentes méthodes de communication inter-processus en multitraitement de python3
Un mémo que j'ai écrit une fonction de base en Python en utilisant la récurrence
Écrire une distribution bêta en Python
Ecrire python dans Rstudio (réticulé)
À propos de divers encodages de Python 3
Jugement d'équivalence d'objet en Python
python: principes de base de l'utilisation de scikit-learn ①
Implémentation du tri rapide en Python
Traduit à l'aide de googletrans en Python
Utilisation du mode Python dans le traitement
J'ai écrit le code pour écrire le code Brainf * ck en python
Différentes façons de créer un tableau de nombres de 1 à 10 en Python.
Manipulation des pixels d'image en Python
Ecrire une dichotomie en Python
Programmation GUI en Python avec Appjar
Précautions lors de l'utilisation de Pit avec Python
Ecrire un schéma JSON avec Python DSL
Ecrire un serveur HTTP / 2 en Python
Diviser timedelta dans la série Python 2.7
Suppression de la brume à l'aide de Python detailEnhanceFilter
Ecrire une fonction AWS Lambda en Python
Échappement automatique des paramètres MySQL en python
Ecrire des algorithmes A * (A-star) en Python
Gestion des fichiers JSON en Python
Essayez d'utiliser LevelDB avec Python (plyvel)
Implémentation du jeu de vie en Python
Affichage de la forme d'onde audio en Python
Compilateur en Python: arborescence de syntaxe PL / 0
Résumé des différentes opérations dans Tensorflow
Utilisation de variables globales dans les fonctions python
Ecrire le code de test du sélénium en python
Ecrire un graphique à secteurs en Python
Ecrire le plugin vim en Python
Écrire une recherche de priorité en profondeur en Python
Voyons voir l'utilisation de l'entrée en python
Puissance totale en Python (en utilisant functools)
Implémentation des notifications de bureau à l'aide de Python
Implémentation Python de l'arborescence de segments non récursive
La loi des nombres en python
Implémentation du tri original en Python
Algorithme (arborescence de segments) en Python (s'entraîner)
Brouillage réversible d'entiers en Python
Reconnaissance de caractères manuscrits à l'aide de KNN en Python
Ecrire un test unitaire de langage C en Python
Essayez d'utiliser LeapMotion avec Python
Recherche de priorité de profondeur à l'aide de la pile en Python