Skip to main content

API for interacting with itol.embl.de

Project description

iTOL Python API

PyPI PyPI - Python Version PyPI - License

Build Status Test Coverage Maintainability Updates

Notice: Due to iTOL requiring paid subscriptions for batch uploads, this library will be deprecated after October 1, 2020.

Python API for the Interactive Tree of Life (iTOL)

Created by Albert Wang (git at albertyw.com)

With Complements to iTOL (Interactive Tree of Life).

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
from pathlib import Path


itol_uploader = Itol()
itol_uploader.add_file(Path('/path/to/example.tree'))
itol_uploader.params['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
  • -v: 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
from pathlib import Path


itol_exporter = 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(Path('/path/to/example_tree'))

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 itolapi Github repository.

Development

To run tests:

pip install -e .
pip install -r requirements-test.txt
ruff check .
mypy .
coverage run -m unittest

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

itolapi-4.1.4.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

itolapi-4.1.4-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file itolapi-4.1.4.tar.gz.

File metadata

  • Download URL: itolapi-4.1.4.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for itolapi-4.1.4.tar.gz
Algorithm Hash digest
SHA256 68e87ba51d209da556b0e373b3b0456b644a1a732c193fedbd7785ff37b6a2cb
MD5 7e1dab1332987bd26614af3181484fed
BLAKE2b-256 bc5971fbabb6abca0afdbe7edc0d491b2a631de8a57369ad0160cc66e2ea3e7c

See more details on using hashes here.

File details

Details for the file itolapi-4.1.4-py3-none-any.whl.

File metadata

  • Download URL: itolapi-4.1.4-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for itolapi-4.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 bba9b28e87003954908ae7cd12f62ef91d76d559d847e1f9526ac361c9df91b8
MD5 07b4a3cb9ea306ea46931a57fae8d4f1
BLAKE2b-256 635ed6c5cc94c2530b0e6b0d7a3ded92f4aeb030cc025849606f840cad0d0ecb

See more details on using hashes here.

Supported by

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