#svg #recphyloxml #phylogeny #file-format #tree-reconciliation #phylogenetic-tree

deprecated app rectree2svg

OBSOLETE: Pease see 'thirdkind' instead! (Read phylogenetic tree(s) in newick, phyloxml or recPhyloXML file and build a svg representation of the tree(s).)

49 releases (31 stable)

2.10.7 Feb 22, 2024
2.10.3 Aug 1, 2021
2.10.1 Jun 24, 2021
1.1.1 Apr 14, 2021
0.1.3 Mar 31, 2021

#8 in #phylogeny

Download history 12/week @ 2024-09-21 4/week @ 2024-09-28

350 downloads per month

CECILL-2.1

290KB
342 lines

rectree2svg

rectree2svg at crates.io rectree2svg at crates.io

OBSOLETE: Pease see 'thirdkind' instead! https://crates.io/crates/thirdkind

https://github.com/simonpenel/thirdkind

Build a svg representation of a phylogenetic reconciled (or not) tree with events (loss, duplication, speciation, transfer).

Read a recphyloxml file: create a svg representation of the gene tree(s) and the associated species tree.

Read a newick (rooted tree only) or phyloxml file: create a svg representation of the gene tree only .

Keywords: phylogeny, reconciled trees, phylogenetic trees

Formats:

phyloXML, recPhyloXML, rooted newick ( NHX balises will not be considered ).

Output examples

multiple genes reconciliation recphyloxml:

https://raw.githubusercontent.com/simonpenel/rectree2svg/684e2ecccf04408cf15815e3fb71bbeebfa19d12/tree2svg.example.svg

single gene reconciliation in recphyloxml:

https://raw.githubusercontent.com/simonpenel/rectree2svg/5e23e92396d44a68337b33c579f2d9d372d18b4d/FAM000696_reconciliated_recphyloxml.svg

the same gene reconciliation in phyloxml:

https://raw.githubusercontent.com/simonpenel/rectree2svg/9244f3136961f909fd7b33818f0a220e3f32c880/FAM000696_reconciliated_xml.svg

multiple gene trees with redundant transfers. Display only 1 gene tree and the transfers according to the abundance of the transfer:

https://raw.githubusercontent.com/simonpenel/rectree2svg/f9ee031fa23b815ff7cc7298fd0dc4fb45707d53/transfers_abundance.svg

Install:

rectree2svg is written in Rust. The code is managed using Cargo and published on crates.io.

Install cargo:

curl https://sh.rustup.rs -sSf | sh

or for Windows see https://doc.rust-lang.org/cargo/getting-started/installation.html

Once Cargo is installed just open a terminal and type:

cargo install rectree2svg

You may as well install from the sources. Clone or download the sources here https://github.com/simonpenel/rectree2svg and type:

cargo build --release
target/release/rectree2svg -h

Run the binary:

Read a newick, phyloxml or recPhyloXML file and create a svg.

Format is guessed according to filename (default is newick)

Usage:

rectree2svg -f input file [-b][-c config file][-F format][-g #][-h][-i][-I][-l factor][-o output file][-p][-r ratio][-s][-v]

-b : open svg in browser
-c configfile: use a configuration file    
-F phylo/recphylo: force format phyloXML/recPhyloXML
-g <n> : display the gene #n in phyloxml style (no species tree)
-h : help    
-H height : multiply the tree height by factor 'height' (default 1.0)
-i : display internal gene nodes
-I : display internal species nodes
-J : with option -t, display the abundance of redudant transfers
-L : display as landscape
-l factor: use branch length, using the given factor
-o outputfile : set name of output file    
-O switching nodes in order to minimise transfer crossings (under development)
-p : build a phylogram   
-r ratio : set the ratio between width of species and gene tree.
           Default 1.0, you usualy do not need to change it.
-s : drawing species tree only    
-S : display node support
-t <t> : redudant transfers are displayed as one, with opacity according to abundance and only if abundance is higher tan t. Only one gene is displayed.
-T <n> : with option -t, select the gene to display
-v : verbose   
-W width : multiply the tree width by factor 'width' (default 1.0)

Input format is guessed according to the file name extension:

- .phyloxml    => phyloXML
- .xml         => recPhyloxml
- .recphyloxml => recPhyloXML
- .recPhyloXML => recPhyloXML
- .recphylo    => recPhyloXML
- any other    => newick

You will find several input file examples in newick_examples, recphylo_examples and xml_examples directories.

Configuration file:

You may configure some of the features of the svg with the -c option.

The default values are the values of the "config_default.txt" file.

Modify the default values and save it into "my_config.txt" then type:

rectree2svg -f recphylo_examples/FAM000600_reconciliated_big.recphylo -c my_config.txt -b

Using the API:

rectree2svg use the light_phylogeny crate:

https://crates.io/crates/light_phylogeny

Source documentation

See Rust documentation : https://docs.rs/rectree2svg/

recPhyloXML documentation

See http://phylariane.univ-lyon1.fr/recphyloxml/

recPhyloXML paper: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6198865/

phyloXML documentation

See: http://www.phyloxml.org/

phyloXML paper: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2774328/

Under development:

  • Allow 2/3 reconciliation levels (host/species/gene)

Licence

CECILL: https://choosealicense.com/licenses/cecill-2.1/

Dependencies

~8–18MB
~236K SLoC