Skip to main content

Simple phylogenetic tree visualization python package

Project description

phyTreeViz

Python3 OS License Latest PyPI version CI

Table of contents

Overview

phyTreeViz is a simple and minimal phylogenetic tree visualization python package implemented based on matplotlib. This package was developed to enhance phylogenetic tree visualization functionality of BioPython.

phyTreeViz is intended to provide a simple and easy-to-use phylogenetic tree visualization function without complexity. Therefore, if you need complex tree annotations, I recommend using ete or ggtree.

Installation

Python 3.8 or later is required for installation.

Install PyPI package:

pip install phytreeviz

API Usage

Only simple example usage is described in this section. For more details, please see Getting Started and API Docs.

API Example

API Example 1

from phytreeviz import TreeViz, load_example_tree_file

tree_file = load_example_tree_file("small_example.nwk")

tv = TreeViz(tree_file)
tv.show_branch_length(color="red")
tv.show_confidence(color="blue")
tv.show_scale_bar()

tv.savefig("api_example01.png", dpi=300)

example01.png

API Example 2

from phytreeviz import TreeViz, load_example_tree_file

tree_file = load_example_tree_file("small_example.nwk")

tv = TreeViz(tree_file, height=0.7)
tv.show_scale_axis()

tv.set_node_label_props("Homo_sapiens", color="grey")
tv.set_node_label_props("Pongo_abelii", color="green", style="italic")

tv.set_node_line_props(["Hylobates_moloch", "Nomascus_leucogenys"], color="orange", lw=2)
tv.set_node_line_props(["Homo_sapiens", "Pan_troglodytes", "Pan_paniscus"], color="magenta", ls="dotted")

tv.savefig("api_example02.png", dpi=300)

example02.png

API Example 3

from phytreeviz import TreeViz, load_example_tree_file

tree_file = load_example_tree_file("small_example.nwk")

tv = TreeViz(tree_file, align_leaf_label=True)
tv.show_scale_axis()

group1 = ["Hylobates_moloch", "Nomascus_leucogenys"]
group2 = ["Homo_sapiens", "Pan_paniscus"]

tv.highlight(group1, "orange")
tv.highlight(group2, "lime")

tv.annotate(group1, "group1")
tv.annotate(group2, "group2")

tv.marker(group1, marker="s", color="blue")
tv.marker(group2, marker="D", color="purple", descendent=True)
tv.marker("Pongo_abelii", color="red")

tv.savefig("api_example03.png", dpi=300)

example03.png

API Example 4

from phytreeviz import TreeViz, load_example_tree_file
from matplotlib.patches import Patch

tree_file = load_example_tree_file("medium_example.nwk")

tv = TreeViz(tree_file, height=0.3, align_leaf_label=True, leaf_label_size=10)
tv.show_scale_bar()

group1 = ["Hylobates_moloch", "Nomascus_leucogenys"]
group2 = ["Homo_sapiens", "Pongo_abelii"]
group3 = ["Piliocolobus_tephrosceles", "Rhinopithecus_bieti"]
group4 = ["Chlorocebus_sabaeus", "Papio_anubis"]

tv.highlight(group1, "orange", area="full")
tv.highlight(group2, "skyblue", area="full")
tv.highlight(group3, "lime", area="full")
tv.highlight(group4, "pink", area="full")

tv.link(group3, group4, connectionstyle="arc3,rad=0.2")

fig = tv.plotfig()

_ = fig.legend(
    handles=[
        Patch(label="group1", color="orange"),
        Patch(label="group2", color="skyblue"),
        Patch(label="group3", color="lime"),
        Patch(label="group4", color="pink"),
    ],
    frameon=False,
    bbox_to_anchor=(0.3, 0.3),
    loc="center",
    ncols=2,
)

fig.savefig("api_example04.png", dpi=300)

example04.png

CLI Usage

phyTreeViz provides simple phylogenetic tree visualization CLI.

Basic Command

phytreeviz -i [Tree file or text] -o [Tree visualization file]

Options

General Options:
  -i IN, --intree IN      Input phylogenetic tree file or text
  -o OUT, --outfile OUT   Output phylogenetic tree plot file [*.png|*.jpg|*.svg|*.pdf]
  --format                Input phylogenetic tree format (Default: 'newick')
  -v, --version           Print version information
  -h, --help              Show this help message and exit

Figure Appearence Options:
  --fig_height            Figure height per leaf node of tree (Default: 0.5)
  --fig_width             Figure width (Default: 8.0)
  --leaf_label_size       Leaf label size (Default: 12)
  --ignore_branch_length  Ignore branch length for plotting tree (Default: OFF)
  --align_leaf_label      Align leaf label position (Default: OFF)
  --show_branch_length    Show branch length (Default: OFF)
  --show_confidence       Show confidence (Default: OFF)
  --dpi                   Figure DPI (Default: 300)

Available Tree Format: ['newick', 'phyloxml', 'nexus', 'nexml', 'cdao']

CLI Example

Click here to download example tree files.

CLI Example 1

phytreeviz -i "((A,B),((C,D),(E,(F,G))));" -o cli_example01.png

example01.png

CLI Example 2

phytreeviz -i ./example/small_example.nwk -o cli_example02.png \
           --show_branch_length --show_confidence

example02.png

CLI Example 3

phytreeviz -i ./example/medium_example.nwk -o cli_example03.png \
           --fig_height 0.3 --align_leaf_label 

example03.png

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

phytreeviz-0.2.0.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

phytreeviz-0.2.0-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file phytreeviz-0.2.0.tar.gz.

File metadata

  • Download URL: phytreeviz-0.2.0.tar.gz
  • Upload date:
  • Size: 21.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.9.18 Linux/6.2.0-1018-azure

File hashes

Hashes for phytreeviz-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4bc23eeb0c2f5708dfcad35e7bf2c78e5e71af51fc44e8dd167af213f72781a0
MD5 b9d1d9d8a9ca40392c2192d4f9f11423
BLAKE2b-256 ad3f64827798666413a89e79d1471e8626a1c963e8fe231f4e979a17e729452a

See more details on using hashes here.

File details

Details for the file phytreeviz-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: phytreeviz-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 20.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.9.18 Linux/6.2.0-1018-azure

File hashes

Hashes for phytreeviz-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 227082ef0bcb60c8695f52e47b4e40980a3dc055a1dcbf1bd6a2265c3bb6da1e
MD5 e7b23becedb4ecd6e16b7dbd4db55b61
BLAKE2b-256 04ebed9c3a11d61b1aab6f1eaf79d789e2bcb757062a15a0d4fbdadf149b68c4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page