Skip to content

jodyphelan/itol-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

itol-config

To annotate trees in iTOL requres special config files that are time-consuming to create. This python package contains functions to create configuration files automatically from a CSV file.

Installation

pip install git+https://github.com/jodyphelan/itol-config.git

CLI Usage

This command will automatically create a config file for each column in the specified input csv file.

itol-config --input <input.csv> --out <prefix_for_output_files> --id <id_column> --type <annotation_type>

If you you already have colours in mind, you can specify them with the --colour-conf option. This requires a toml file with the following format:

[Column_name_1]
value1 = "colour"
value2 = "colour"

[Column_name_2]
value1 = "colour"
value2 = "colour"

Use functions in your own scripts

You can also call the functions in your own code. For example:

from itol_config import get_config_writer
import random

# generate some example data
countries = ["UK", "USA", "France", "Germany", "Spain"]
data = {f'sample_{i}': random.choice(countries)  for i in range(10)}

# create a config writer
writer = get_config_writer(
    config_type="colour_strip", 
    data=data, 
    label="Countries"
)
outfile = "countries_strip_config.txt"
writer.write(outfile)

Developers

The following annotation types are currently supported:

If you want to contribute a new annotation type this package, please clone the repository and create a new branch for your changes. Then create a pull request to merge your changes into the master branch.

Adding a new annotation type

Each annotation type is defined as a class in itol_config/interfaces. The class must inherit from the ConfigWriter class and implement the write method. Have a look at the existing classes for examples. Make sure to import your new class to the __init__.py file in the same directory.

If you want to add this new class to the CLI, you will need to create a python file in the itol_config/cli directory and define the functions run and register_subparser. The register_subparser function creates a new subparser for your class and the run function defines how the data is loaded and how the new class is used. See existing examples for details.

About

Package to create iTOL config files

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages