All Projects → LKremer → Cafe_fig

LKremer / Cafe_fig

A tool to extract and visualize the results of CAFE (Computational Analysis of gene Family Evolution)

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Cafe fig

git-history-flow
Visualize the evolution of a file tracked by git
Stars: ✭ 17 (-22.73%)
Mutual labels:  evolution
mcscan
Command-line program to wrap dagchainer and combine pairwise results into multi-alignments in column format
Stars: ✭ 18 (-18.18%)
Mutual labels:  evolution
Sharpneat
SharpNEAT - Evolution of Neural Networks. A C# .NET Framework.
Stars: ✭ 273 (+1140.91%)
Mutual labels:  evolution
trona
Write DB migrations with SQL and run them with a CLI
Stars: ✭ 31 (+40.91%)
Mutual labels:  evolution
kmer-homology-paper
Manuscript for functional prediction of transcriptomic “dark matter” across species
Stars: ✭ 12 (-45.45%)
Mutual labels:  evolution
pioreactor
Hardware and software for accessible, extensible, and scalable bioreactors. Built on Raspberry Pi.
Stars: ✭ 28 (+27.27%)
Mutual labels:  evolution
EvoNet
Evolution Simulation in XNA Refresh
Stars: ✭ 44 (+100%)
Mutual labels:  evolution
Unix History Repo
Continuous Unix commit history from 1970 until today
Stars: ✭ 4,851 (+21950%)
Mutual labels:  evolution
shorelark
Simulation of life & evolution
Stars: ✭ 109 (+395.45%)
Mutual labels:  evolution
Unix History Make
Code and data to create a git repository representing the Unix source code history
Stars: ✭ 258 (+1072.73%)
Mutual labels:  evolution
phyml
PhyML -- Phylogenetic estimation using (Maximum) Likelihood
Stars: ✭ 125 (+468.18%)
Mutual labels:  evolution
evolution-ui
Cutting Edge UI Components for Modern Developers
Stars: ✭ 30 (+36.36%)
Mutual labels:  evolution
dishtiny
DISHTINY: A Platform for Studying Open-Ended Evolutionary Transitions in Individuality
Stars: ✭ 25 (+13.64%)
Mutual labels:  evolution
DeepHyperNEAT
A public python implementation of the DeepHyperNEAT system for evolving neural networks. Developed by Felix Sosa and Kenneth Stanley. See paper here: https://eplex.cs.ucf.edu/papers/sosa_ugrad_report18.pdf
Stars: ✭ 42 (+90.91%)
Mutual labels:  evolution
Sproutlife
Evolving version of Conway’s Game of Life.
Stars: ✭ 298 (+1254.55%)
Mutual labels:  evolution
citylines
Citylines.co is a collaborative platform for mapping the transit systems of the world!
Stars: ✭ 53 (+140.91%)
Mutual labels:  evolution
tiny gp
Tiny Genetic Programming in Python
Stars: ✭ 58 (+163.64%)
Mutual labels:  evolution
Invaderz
Space invaders, but the invaders evolve with genetic algorithm
Stars: ✭ 686 (+3018.18%)
Mutual labels:  evolution
Ecosim
An interactive ecosystem and evolution simulator written in C and OpenGL, for GNU/Linux.
Stars: ✭ 382 (+1636.36%)
Mutual labels:  evolution
archaeopteryx-js
Archaeopteryx.js is a software tool for the visualization and analysis of highly annotated phylogenetic trees.
Stars: ✭ 27 (+22.73%)
Mutual labels:  evolution

CAFE_fig, a visualization tool for CAFE.

CAFE (Computational Analysis of gene Family Evolution) is a software that provides a statistical foundation for evolutionary inferences about changes in gene family size.

The visualization and interpretation of CAFE results usually requires custom scripts. Here, I provide such a custom script.

CAFE_fig takes a .cafe output file and produces:

  • a summary tree that shows the average expansion/contraction of families across the phylogeny
  • a tree that denotes which branches evolve under which lambda (if a model with multiple lambdas was used)
  • a tree for each family of interest, i.e. families that the user specified by ID or families that showed significant change at a user-specified clade of interest

Requirements

CAFE_fig requires Python3.4+ and ETE3: Install ETE3 with

pip3 install 'ete3==3.0.0b35'

It's important that you use ETE3 version 3.0.0b35 since it appears that the latest ETE3 version causes problems that are beyond my control (see issue #1). This ETE3 version runs well with PyQt4 but not PyQt5, so if you're experiencing issues it's worth a try to switch to PyQt4.

Usage

usage: CAFE_fig.py [-h] [-f FAMILIES [FAMILIES ...]] [-c CLADES [CLADES ...]]
                   [-pb PB] [-pf PF] [-d DUMP] [-g GFX_OUTPUT_FORMAT]
                   [--count_all_expansions]
                   report_cafe

Parses a CAFE output file (.cafe) and plots a summary tree that shows the
average expansion/contraction across the phylogeny; a tree that shows which
clades evolved under the same lambda (if available); and a gene family
evolution tree for each user-specified gene family.

positional arguments:
  report_cafe           the file report.cafe (or similar name)

optional arguments:
  -h, --help            show this help message and exit
  -f FAMILIES [FAMILIES ...], --families FAMILIES [FAMILIES ...]
                        only show families with these IDs
  -c CLADES [CLADES ...], --clades CLADES [CLADES ...]
                        only show families that are expanded/contracted at
                        this clade. Format: [clade]=[leaf],[leaf] where clade
                        is the name of the last common ancestor of the two
                        leaves, e.g.: Isoptera=zne,mna
  -pb PB                branch p-value cutoff (default: 0.05)
  -pf PF                family p-value cutoff (default: 0.05)
  -d DUMP, --dump DUMP  don't open trees in a window, write them to files in
                        the specified directory instead (default: off)
  -g GFX_OUTPUT_FORMAT, --gfx_output_format GFX_OUTPUT_FORMAT
                        output format for the tree figures when using --dump
                        [svg|pdf|png] (default: pdf)
  --count_all_expansions
                        count and write down the number of *all* expansions
                        and contractions (default: only count significant
                        expansions/contractions)

Example outputs

Summary tree that shows the average expansion/contraction (radius of node circles), the numbers of expanded/contracted families (+/-), and the estimated gene gain/loss rates (blue: low rate; red: high rate). example_tree

Example output for a specific gene family. Numbers and node sizes represent the family size at each node. Significant expansions are shown in green, significant contractions in magenta. example_tree

Example usage

To recreate the plots shown above, use this command:

python3 ./CAFE_fig.py example_result.cafe -c Isoptera=zne,mna -pb 0.05 -pf 0.05 --dump test/ -g .pdf --count_all_expansions

This reads "example_result.cafe" and dumps all figures in PDF format to the directory "test/". The summary tree ("summary.pdf") will show the whole phylogeny and the number of expansions and contractions (including insignificant ones!) as shown below. Further family-wise trees will be created and dumped in the directory "test/families". These trees will only be created for families that showed a significant (p<=0.05) expansion/contraction at the node "Isoptera", which is the last common ancestor of "zne" and "mna".

Significant contractions are marked in magenta, significant expansions are marked in green (p<=0.001 = ***, p<=0.01 = **, p<=0.05 = *).

Known issues

The error message module 'ete3' has no attribute 'TreeStyle' is caused by a known problem with ete3 that is beyond my control. Check this link for possible solutions!.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].