Skip to content

Tools for reconciling multiple gene trees - detects segmental duplications

Notifications You must be signed in to change notification settings

AEVO-lab/MultRec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 

Repository files navigation


MULTREC - Multi-reconciliation program

Multrec takes as input a species tree S, a set of gene trees, a duplication cost, a loss cost and a parameter duplication height h. The output is a mapping of the gene tree nodes to S that minimizes the segmental reconciliation cost, assuming that there exists such a mapping that has duplications sum-of-heights at most h. If loss cost >= dup cost, the LCA mapping is returned.

The leaves of the gene trees must map to the leaves of S. The gene tree leaves are assumed to have the format [species_name]__[gene_name], for example HUMAN_BRCA2 indicates that the gene is mapped to the leaf of S names HUMAN. The gene/species separator can be changed with the -spsep argument, and the position of the species name in the gene name with the -spindex argument, indexed at 0.
If your genes are name e.g. GENENAME_SPECIESNAME_OTHERSTUFF, you can set -spsep _\ -spindex 1

The format of the output is a pseudo-XML format, where the value of each field named NAME_OF_FIELD is surrounded by <NAME_OF_FIELD> and </NAME_OF_FIELD> tags. Each tag appears on its own line." Please look at sample_data/out_sample.txt for an example. The fields that are in the output are:

COST: the total cost of the mapping

DUPHEIGHT: the sum of duplication heights

NBLOSSES: the number of losses

SPECIESTREE: the species tree newick, with internal nodes labeled by a species id given by the program.

GENETREES: all the gene tree newick, one per line. Internal nodes are labeled by the mapping and a duplication id. For instance, an internal node labeled 14_Dup_nb2 means that the node is mapped to species 14, and it is a duplication whose id is Dup_nb2

DUPS_PER_SPECIES: each line contains the list of duplications mapped to each species. For instance, the line '[2] Dup_nb2 (G4) Dup_nb5 (G5)' means that the species with id 2 has two dup nodes mapping to it: the duplication with id Dup_nb2 from the gene tree 4 (that is what the G4 is for), and the duplication with id Dup_nb4 from the gene tree 5.

If no solution is found (when h is too small), then the output is simply NO SOLUTION FOUND

Here is an example execution ./Multrec -g "((A__1, C__1),B__1);((A__2, B__2),B__3);" -s "((A,B),(C,D));" -d 3

or using the sample data ./Multrec -d 10 -l 3 -gf ./sample_data/geneTrees.txt -sf ./sample_data/speciesTree.txt

Required arguments:
At least one of -g or -gf must be specified, and at least one of -s or -sf must be specified.
-g   [g1;g2;...;gk]   Here g1,g2,...,gk are gene trees
                      represented in Newick format.  
                      The gene trees are separated by the ; symbol.	
-gf  [file]           file is the name of a file containing the list 
                      of gene trees, all in Newick format and separated 
                      by a ; symbol in the file.
-s   [newick]         The species tree in Newick format.
-sf  [file]           Name of the file containing species tree Newick.

Optional arguments:
--help                Print this help message.
-d   [double]         The cost for one height of duplication.  Default=3
-l   [double]         The cost for one loss.  Default=1
-h   [int]            Maximum allowed duplication sum-of-heights.  Default=20
-o   [file]           Output file.  Default=output to console
-spsep   [string]     Gene/species separator in the gene names.  Default=__
-spindex [int]        Position of the species in the gene names, after 
                      being split by the gene/species separator.  Default=0
--test                Launches a series of unit tests.  This includes small fixed 
                      examples with known outputs to expect, and larger random trees 
                      to see if the program terminates in an OK status on more complicated
                      datasets.

About

Tools for reconciling multiple gene trees - detects segmental duplications

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages