Python
Latest commit 18ac68e Jun 12, 2017 @albertyw Merge branch 'fix-tox'
* fix-tox:
  Fix tox config
  Set coverage package version
  Set test package versions
  Update tox to test on python 3.5 and 3.6
Permalink
Failed to load latest commit information.
examples
itolapi PEP8 updates Feb 14, 2016
tests Run pep8 Dec 4, 2015
.codeclimate.yml Add shellcheck codeclimate engine Mar 20, 2016
.gitignore Ignore coverage temp file Feb 14, 2016
CHANGELOG.rst Bump version number to 1.3.0 Feb 14, 2016
MANIFEST.in Added setup.py and MANIFEST.in Aug 4, 2014
MIT-LICENSE.txt Added License Feb 16, 2013
README.rst Fix #19 - Add wheel distribution Jun 11, 2017
requirements.txt Make requirements.txt less strict about requests package version Apr 24, 2015
setup.py Set coverage package version Jun 12, 2017
tox.ini Fix tox config Jun 12, 2017

README.rst

iTOL Python API

Latest Version Python Version License

Codeship CodeCov CodeClimate Gemnasium

Python API for the Interactive Tree of Life (iTOL)

Created by Albert Wang (albertyw at mit.edu)

With Complements to: iTOL (Interactive Tree of Life), Python requests package.

This iTOL API allows local software to upload trees to iTOL using Itol.py and export uploaded trees using ItolExport.py using direct Python calls or through shell. An active internet connection to the iTOL website is required.

Installation

pip install itolapi

Uploading Trees To iTOL (Itol.py)

From Command Line

(If you need to do anything more than displaying basic tree structures, you must call the Python iTOL API from within a Python program)

$ Itol.py /path/to/example.tree
http://itol.embl.de/external.cgi?tree=1234567890&restore_saved=1

From Python

Running from a python program is much more flexible than running from command line and allows access to all iTOL options

from itolapi import Itol
itol_uploader = Itol.Itol()
itol_uploader.add_variable('treeFile', '/path/to/example.tree')
itol_uploader.add_variable('treeFormat', 'newick')
itol_uploader.add_variable('treeName', 'apple')
status = itol_uploader.upload()
assert status != False
itol_uploader.comm.upload_output
# SUCCESS: 1234567890
itol_uploader.comm.tree_id
# 1234567890
itol_uploader.get_webpage()
# http://itol.embl.de/external.cgi?tree=1234567890&restore_saved=1
itol_uploader.get_itol_export()
# <ItolExport.ItolExport instance at 0x207c5f0>

An example for using the Python iTOL API can found in examples/example.py.

Downloading Trees From iTOL (ItolExport.py)

From Command Line

(If you would like to set any parameters other than the tree id, location to save the file, file format, and whether to display datasets, you must use ItolExport from a Python program)

$ ItolExport.py TREEID FILELOCATION FORMAT [OPTIONS]
Options include:
  • -d: show datasets
  • -r: verbose output
  • -h: help

From Python

Running ItolExport.py from a Python program allows you to use all the options that iTOL has available.

from itolapi import ItolExport
itol_exporter = ItolExport.ItolExport()
itol_exporter.add_export_param_value('tree', tree_id)
assert format in ['png', 'svg', 'eps', 'ps', 'pdf', 'nexus', 'newick']
itol_exporter.add_export_param_value('format', format)
itol_exporter.add_export_param_value(param_key, param_value)
itol_exporter.export(file_location)

Valid param_key and param_value values can be found on the iTOL API page.

Bugs/Comments

Send bugs and comments as issues on the Github repository.

Development

To run tests:

pip install tox
python setup.py install
tox

To update PyPI:

pip install twine
python setup.py sdist bdist_wheel
twine upload dist/*