Skip to main content

tree-based orthology inference

Project description

PhyloPyPruner

PhyloPyPruner is a tree-based orthology inference program for refining orthology inference made by a graph-based approach. In addition to implementing previously published paralogy pruning algorithms seen in PhyloTreePruner, UPhO, Agalma and Phylogenomic Dataset Reconstruction, this software provides tools for identifying and getting rid of operational taxonomical units (OTUs) that display contamination-like issues.

PhyloPyPruner is currently under active development and I would appreciate it if you try this software on your own data and leave feedback.

See the Wiki for more details.

Feature list

  • Remove short sequences
  • Remove relatively long branches
  • Collapse weakly supported nodes into polytomies
  • Prune paralogs using 1 out of 5 methods
  • Measure paralogy frequency
  • Remove OTUs with relatively high paralogy frequency
  • Mask monophylies by keepipng the longest sequence or the sequence with the shortest pairwise distance
  • Exclude individual OTUs entirely
  • Root trees using outgroup or midpoint rooting
  • Get rid of OTUs with sequences that display relatively high pairwise distance
  • Measure impact of individual OTUs using taxon jackknifing

Installation

This software runs under both Python 3 and 2.7. There are no external dependencies, but the plotting library Matplotlib may be installed for generating paralog frequency plots.

You can install PhyloPyPruner using pip.

pip install --user phylopypruner

Usage

Once installed, execute this software like so:

python -m phylopypruner

To get a list of options, either run the software without any arguments or, by using the -h or --help flag.

Either provide a single multiple sequence alignment (MSA) and a Newick tree by using the --msa and --tree flags:

python -m phylopypruner --msa 16s.fas --tree 16s.tre

or, provide a path to an input directory, containing multiple trees and alignments, by typing --dir path.

FASTA descriptions and Newick names must match and has to be in one of the following formats: OTU|ID or OTU@ID, where OTU is the operational taxonomical unit (usually the species) and ID is a unique annotation or sequence identifier. For example: >Meiomenia_swedmarki|Contig00001_Hsp90.

Sequence descriptions and tree names are not allowed to deviate from each other. Sequence data needs to be valid IUPAC nucleotide or amino acid sequences.

For inputting multiple files, you provide a path to the directory in which these files reside.

python -m phylopypruner --dir <path>

The program will automatically look for trees and alignments with the same name and run for each of these pair.

Output files

The following files are generated after running this program.

  • <timestamp>_<orthologs>/... – output alignments
  • <timestamp>_ppp_summary.log – summary statistics for all alignments
  • <timestamp>_ppp_run.log – detailed report of each performed action
  • <timestamp>_ppp_ortho_stats.csv – statistics for output alignments
  • <timestamp>_ppp_paralog_freq.csv – paralogy frequency data
  • <timestamp>_ppp_paralog_freq.png – paralogy frequency plot*

If no output directory has been specified by the --output flag, then output files will be located within the same directory as the input alignment files.

* – only produced if Matplotlib is installed

© Kocot Lab 2018

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

phylopypruner-0.1.7.tar.gz (28.3 kB view hashes)

Uploaded Source

Built Distribution

phylopypruner-0.1.7-py3-none-any.whl (36.2 kB view hashes)

Uploaded Python 3

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