Commit 065e4402 authored by Elias Dohmen's avatar Elias Dohmen 🎓

v1.0.0 release

parent 9e97856d
......@@ -11,6 +11,7 @@ test_DOMRATES:
- cd build
- cmake -DCMAKE_BUILD_TYPE=Coverage -DWITH_UNIT_TEST=1 ..
- make
- make test
- cd ../tests/integrationTests
- ./runTests.sh
- cd ../..
......
cmake_minimum_required(VERSION 2.6)
SET(MAJOR_VERSION 1)
SET(MINOR_VERSION 0)
SET(PATCH_VERSION 0)
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
message(STATUS "Setting build type to 'Release' as none was specified.")
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
......@@ -55,13 +59,20 @@ endif(UNIX)
################################################
# boost
FIND_PACKAGE(Boost 1.46 COMPONENTS system program_options filesystem iostreams REQUIRED)
if (WITH_UNIT_TEST)
FIND_PACKAGE(Boost 1.54 COMPONENTS system program_options iostreams filesystem unit_test_framework REQUIRED)
else (WITH_UNIT_TEST)
FIND_PACKAGE(Boost 1.54 COMPONENTS system program_options iostreams filesystem REQUIRED)
endif (WITH_UNIT_TEST)
# boost
INCLUDE_DIRECTORIES(SYSTEM ${Boost_INCLUDE_DIR})
link_directories(${Boost_LIBRARY_DIRS})
ADD_DEFINITIONS( "-DHAS_BOOST" )
# OpenMP
find_package(OpenMP)
# OpenMP
cmake_policy(SET CMP0012 NEW)
find_package(OpenMP 4.0)
if (OPENMP_FOUND)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
......@@ -79,17 +90,23 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR})
set (BSDL_PATH ./libs/BioSeqDataLib/src/)
set (BSDL_src ${BSDL_PATH}/external/Input.cpp ${BSDL_PATH}/external/Output.cpp ${BSDL_PATH}/domain/Domain.cpp ${BSDL_PATH}/domain/PfamDomain.cpp ${BSDL_PATH}/domain/DomainExt.cpp ${BSDL_PATH}/domain/SFDomain.cpp ${BSDL_PATH}/domain/DomainArrangement.cpp ${BSDL_PATH}/domain/DomainArrangementSet.cpp ${BSDL_PATH}/phylogeny/PhylogeneticTree.cpp ${BSDL_PATH}/phylogeny/fitch.cpp ${BSDL_PATH}/phylogeny/dollo.cpp ${BSDL_PATH}/utility/stringHelpers.cpp)
set (DOMRA_PATH ./src/)
set (DOMRA_src ${DOMRA_PATH}/domRates.cpp)
SET(domRates_src src/domRates.cpp ${BSDL_src})
SET(domRates_src src/domRates_main.cpp ${BSDL_src} ${DOMRA_src})
SET(domRates_exe domRates)
ADD_EXECUTABLE(${domRates_exe} ${domRates_src})
target_link_libraries(${domRates_exe}
${Boost_LIBRARIES}
)
#if (WITH_UNIT_TEST)
# add_subdirectory (tests/unitTests)
# enable_testing ()
# add_test (NAME UnitTest COMMAND unit_tests)
#endif ()
configure_file (
"${PROJECT_SOURCE_DIR}/src/version.hpp"
"${PROJECT_SOURCE_DIR}/src/version.hpp"
)
if (WITH_UNIT_TEST)
add_subdirectory (tests)
enable_testing ()
add_test (NAME UnitTest COMMAND unit_tests)
endif ()
No preview for this file type
Exact solutions: 2070
Non-ambiguous solutions: 219
Ambiguous solutions: 188
# DomRates version 1.0.0 at Wed Mar 6 23:35:19 2019
# domRates -t example_tree.nwk -a annotations/ -g Saccharomyces_cerevisiae -e .dom -o rearrangement_freqs.txt -s stats.txt -n -d 0 -p 1
# Solution types
Exact solutions: 2056
Non-ambiguous solutions: 213
Ambiguous solutions: 291
Complex solutions: 1853
Exact and non-ambiguous solutions: 2269
# Event types
Fusions: 801
Fissions: 385
Terminal Loss: 441
Fissions: 390
Terminal Loss: 416
Terminal Emergences: 82
Single Domain Losses: 358
Single Domain Emergences: 222
Exact and non-ambiguous solutions: 2289
Fusion rate: 34.99%
Fission rate: 16.82%
Terminal Loss rate: 19.27%
Terminal Emergence rate: 3.58%
Single Domain Loss rate: 15.64%
Single Domain Emergence rate: 9.70%
# Event rates
Fusion rate: 35.30%
Fission rate: 17.19%
Terminal Loss rate: 18.33%
Terminal Emergence rate: 3.61%
Single Domain Loss rate: 15.78%
Single Domain Emergence rate: 9.78%
Exact solutions: 1960
Non-ambiguous solutions: 211
Ambiguous solutions: 178
# DomRates version 1.0.0 at Wed Mar 6 23:49:25 2019
# domRates -t example_tree_wog.nwk -a annotations/ -g outgroup -e .dom -o rearrangement_freqs_outgroup.txt -s stats_outgroup.txt -n -d 0 -p 1
# Solution types
Exact solutions: 1946
Non-ambiguous solutions: 204
Ambiguous solutions: 283
Complex solutions: 1770
Exact and non-ambiguous solutions: 2150
# Event types
Fusions: 775
Fissions: 364
Terminal Loss: 406
Fissions: 367
Terminal Loss: 382
Terminal Emergences: 69
Single Domain Losses: 432
Single Domain Emergences: 125
Exact and non-ambiguous solutions: 2171
Fusion rate: 35.70%
Fission rate: 16.77%
Terminal Loss rate: 18.70%
Terminal Emergence rate: 3.18%
Single Domain Loss rate: 19.90%
Single Domain Emergence rate: 5.76%
# Event rates
Fusion rate: 36.05%
Fission rate: 17.07%
Terminal Loss rate: 17.77%
Terminal Emergence rate: 3.21%
Single Domain Loss rate: 20.09%
Single Domain Emergence rate: 5.81%
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Subproject commit 342217c4ec244ee94fdc2df8a46b197f592e1952
Subproject commit d40dc407314ca36ab375483594761131e4592bdd
This diff is collapsed.
This diff is collapsed.
/*
* DomRates is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DomRates is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DomRates. If not, see <http://www.gnu.org/licenses/>.
*/
#include <iostream>
#include <fstream>
#include <set>
#include <string>
#include <vector>
#include <map>
#include <numeric>
// boost header
#include <boost/algorithm/string/classification.hpp>
#include <boost/algorithm/string/split.hpp>
#include <boost/program_options.hpp>
#include <boost/filesystem.hpp>
// BioSeqDataLib header
#include "../libs/BioSeqDataLib/src/utility/Matrix.hpp"
#include "../libs/BioSeqDataLib/src/DomainModule.hpp"
#include "../libs/BioSeqDataLib/src/phylogeny/PhylogeneticTree.hpp"
#include "../libs/BioSeqDataLib/src/phylogeny/fitch.hpp"
#include "../libs/BioSeqDataLib/src/phylogeny/dollo.hpp"
//DomRates header
#include "domRates.hpp"
#include "helperStructs.hpp"
#include "version.hpp"
namespace BSDL = BioSeqDataLib;
namespace po = boost::program_options;
namespace fs = boost::filesystem;
using std::string;
using std::vector;
using std::set;
using std::map;
using std::tuple;
using std::cout;
using std::ofstream;
using std::cerr;
using std::endl;
using std::fixed;
using std::setprecision;
int
main(int argc, char *argv[]) {
string treeFile;
string outgroup;
string ending;
string lca;
string domrates_param_str;
fs::path annotationDirectory;
fs::path outFile;
fs::path addOut;
bool detailed;
unsigned int nthreads;
// argument parsing
std::string DomRatesVersion(std::string(STR(MAJOR_VERSION)) + "." + std::string(STR(MINOR_VERSION)) + "." + std::string(STR(PATCH_VERSION)) );
po::options_description allOpts(
"DomRates version " + DomRatesVersion + " (C) 2016-2019 Elias Dohmen\nThis program comes with ABSOLUTELY NO WARRANTY;\n\nAllowed options are displayed below.");
po::options_description general("General options");
general.add_options()
("help,h", "Produces this help message")
("version,v", "Shows program version")
("tree,t", po::value<string>(&treeFile)->required(), "The phylogenetic tree in newick format.")
("annotationDirectory,a", po::value<fs::path>(&annotationDirectory)->required(),
"A directory with all domain annotation files for species in the tree. Note that species names in tree and the regarding domain annotation file names have to be the same.")
("outgroup,g", po::value<string>(&outgroup)->required(),
"The name of the outgroup as it is labeled in the tree.")
("ending,e", po::value<string>(&ending)->default_value(".dom"),
"The filename extension of your domain annotation files.")
("out,o", po::value<fs::path>(&outFile),
"The output file. If no output file is chosen, results will be printed to console.")
("statistics,s", po::value<fs::path>(&addOut),
"File to store additional information (such as number of events per node in the tree). Additional information is just stored in file, if specified.")
("node,n", po::value<string>(&lca),
"If two species names devided by ':' are provided, all arrangements involved in rearrangement events at the node representing the last common ancestor of both species will be listed in the statistics file.\n"
"Just usable if statistics file (-s parameter) is set."
"Example for use: '-n Drosophila_melanogaster:Caenorhabditis_elegans'")
("detailed,d", po::value<bool>(&detailed)->default_value(false)->zero_tokens(),
"If this parameter is set, the output files also contain statistics about identical arrangements that have not changed. i.e. the arrangement stays conserved, and complex solutions, i.e. the rearrangement event leading to the new arrangement cannot be determined. (This can heavily increase file size.)")
("threads,p", po::value<unsigned int>(&nthreads)->default_value(1),
"Number of parallel threads to use for computation.");
allOpts.add(general);
try {
po::variables_map vm;
po::store(po::command_line_parser(argc, argv).options(allOpts).run(), vm);
if (vm.count("help")) {
cout << allOpts << "\n";
return EXIT_SUCCESS;
}
if (vm.count("version")) {
cout << "DomRates version " + DomRatesVersion + " (C) 2016-2019 Elias Dohmen" << "\n";
return EXIT_SUCCESS;
}
if (vm.count("node") && (!vm.count("statistics"))) {
throw po::error(
string("Missing option: node (-n) was used without statistics (-s) specified. Please specify -s option."));
}
po::notify(vm);
}
catch (boost::program_options::error &e) {
cerr << "An error occurred parsing the commandline: \n";
cerr << e.what() << "\n";
cerr << "Please use -h/--help for more information.\n";
return EXIT_FAILURE;
}
try {
domrates_param_str = "domRates -t " + treeFile + " -a " + annotationDirectory.string() + " -g " + outgroup + " -e " + ending + " -o " + outFile.string() + " -s " + addOut.string() + " -n " + lca + " -d " + std::to_string(detailed) + " -p " + std::to_string(nthreads);
analyseDomRates(treeFile, annotationDirectory, outgroup, ending, outFile, addOut, lca, detailed, nthreads, domrates_param_str);
}
catch ( const std::exception& e ) {
cerr << "An error occured during the DomRates run: \n";
cerr << e.what() << "\n";
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
/*
* DomRates is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DomRates is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DomRates. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DOMRATES_HELPERSTRUCTS_H
#define DOMRATES_HELPERSTRUCTS_H
#include <string>
#include <vector>
#include <map>
// BioSeqDataLib header
#include "../libs/BioSeqDataLib/src/phylogeny/PhylogeneticTree.hpp"
namespace BSDL = BioSeqDataLib;
/**
* structure to store for a given domain arrangement data set all arrangements and single domains
* in a given order with index positions for fast access and mapping later from simple vectors of integers representing
* presence/absence (1/-1) states of all domains/arrangements
*/
struct
posOrderMaps {
std::map<std::vector<std::string>,unsigned int> domainorder; // domain arrangement, index position of this arrangement
std::map<unsigned int, std::vector<std::string> > posorder; // index position of arrangement, domain arrangement
std::map<std::string,unsigned int> single_domainorder; // single domain, index position
std::map<unsigned int, std::string> single_posorder; // index position, single domain
};
/**
* structure to store mapping information of nodes and their corresponding IDs
* as well as reconstructed events for later output
*/
struct
eventMaps {
// domain arrangement annotation for arrangement Tree
std::map<unsigned int, BSDL::TreeNodePhylo<std::vector<int> >* > treemap;
// single domain annotation for singleDomTree
std::map<unsigned int, BSDL::TreeNodePhylo<std::vector<int> >* > id_to_tree;
// counts identical domain arrangements between node and its parent node
std::map<unsigned int,unsigned int> identities_node;
// counts events per node. id -> (#fusion, #fission, #terminal loss, #terminal gain, #single loss, #single gain)
std::map<unsigned int, std::vector<unsigned int> > events_per_node;
// summary of all solved events
std::vector<std::string> event_listing;
// summary of all identities (arrangements that do not change from one node to the other)
std::vector<std::string> identities_listing;
// summary of all complex solutions (new arrangements without explanation by any event type)
std::vector<std::string> complex_listing;
};
/**
* structure to count frequency of reconstructed solution types
*/
struct
solutionTypes {
float exact_solution = 0.0; // one solution, one event type
float non_ambiguous_solution = 0.0; // multiple solutions of same event type
float ambiguous_solution = 0.0; // multiple solutions of different event types
float complex_solution = 0.0; // no solution in a single step with considered event types
};
/**
* structure to count frequency of reconstructed event types
*/
struct
eventTypes {
float fusion = 0.0;
float fission = 0.0;
float termGain= 0.0;
float termLoss= 0.0;
float singleDomGain = 0.0;
float singleDomLoss = 0.0;
unsigned int identities_total = 0; // arrangement was found in the ancestor and didn't change
};
#endif //DOMRATES_HELPERSTRUCTS_H
#define QUOTE(x) #x
#define STR(x) QUOTE(x)
#define MAJOR_VERSION 1
#define MINOR_VERSION 0
#define PATCH_VERSION 0
This diff is collapsed.
set(Boost_USE_STATIC_LIBS OFF)
set(Boost_USE_MULTITHREADED OFF)
FUNCTION(PREPEND var prefix)
SET(listVar "")
FOREACH(f ${ARGN})
LIST(APPEND listVar "${prefix}${f}")
ENDFOREACH(f)
SET(${var} "${listVar}" PARENT_SCOPE)
ENDFUNCTION(PREPEND)
SET(tests_src ./unitTests/unit_tests.cpp ../src/domRates.cpp ../libs/BioSeqDataLib/src/phylogeny/PhylogeneticTree.cpp ../libs/BioSeqDataLib/src/domain/Domain.cpp ../libs/BioSeqDataLib/src/domain/DomainArrangement.cpp ../libs/BioSeqDataLib/src/domain/DomainArrangementSet.cpp ../libs/BioSeqDataLib/src/domain/DomainExt.cpp ../libs/BioSeqDataLib/src/domain/PfamDomain.cpp ../libs/BioSeqDataLib/src/domain/SFDomain.cpp ../libs/BioSeqDataLib/src/phylogeny/fitch.cpp ../libs/BioSeqDataLib/src/phylogeny/dollo.cpp ../libs/BioSeqDataLib/src/external/Input.cpp ../libs/BioSeqDataLib/src/external/Output.cpp ../libs/BioSeqDataLib/src/utility/stringHelpers.cpp)
SET(tests_exe unit_tests)
ADD_EXECUTABLE(${tests_exe} ${tests_src})
target_link_libraries(${tests_exe}
${Boost_LIBRARIES}
)
# DomRates version 1.0.0 at Wed Mar 6 23:25:29 2019
# domRates -t ../data/test_tree.nwk -a ../data/ -g OG -e .dom -o results/test_ident_out.txt -s results/test_ident_out_stats.txt -n -d 1 -p 1
# Solution types
Exact solutions: 15
Non-ambiguous solutions: 1
Ambiguous solutions: 1
Complex solutions: 2
Identities total: 98
Maintained arrangements total: 98
Exact and non-ambiguous solutions: 16
# Event types
Fusions: 4
Fissions: 3
Terminal Loss: 5
......@@ -12,8 +17,7 @@ Terminal Emergences: 2
Single Domain Losses: 1
Single Domain Emergences: 1
Exact and non-ambiguous solutions: 16
# Event rates
Fusion rate: 25.00%
Fission rate: 18.75%
Terminal Loss rate: 31.25%
......
# Number of events per node.
# Node ID #Fusions #Fissions #TerminalLosses #TerminalEmergences #SingleDomainLosses #SingleDomainEmergences #Identities
# Node ID #Fusions #Fissions #TerminalLosses #TerminalEmergences #SingleDomainLosses #SingleDomainEmergences #Maintained
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
2 0 0 0 0 1 0 13
3 0 0 4 0 0 0 12
4 0 0 0 0 0 0 13
5 1 1 0 1 0 0 14
6 2 1 1 1 0 0 12
7 0 0 0 0 0 0 14
8 1 0 0 0 0 0 7
9 0 1 0 0 0 1 13
2 0 0 0 0 1 0 0
3 0 0 4 0 0 0 0
4 0 0 0 0 0 0 0
5 1 1 0 1 0 0 0
6 2 1 1 1 0 0 0
7 0 0 0 0 0 0 0
8 1 0 0 0 0 0 0
9 0 1 0 0 0 1 0
10 0 0 0 0 0 0 0
# Number of events per domain.
# Domain accession #Fusions #Fissions #TerminalLosses #TerminalEmergences #SingleDomainLosses #SingleDomainEmergences #Identities
PF00001 2 0 0 0 0 0 8
PF00002 0 0 0 0 0 1 0
PF00003 0 0 0 0 1 0 3
PF00004 0 0 0 1 0 0 0
PF00005 0 0 0 1 0 0 0
PF00006 0 2 2 0 0 0 13
PF00007 0 2 1 0 0 0 13
PF00008 0 2 1 0 0 0 13
PF00009 0 2 2 0 0 0 13
PF00010 0 2 3 0 0 0 13
PF00011 3 0 0 0 0 0 2
PF00012 3 0 0 0 0 0 2
PF00013 1 0 0 0 0 0 2
PF00014 1 0 0 0 0 0 2
PF00015 1 0 0 0 0 0 2
PF00016 1 0 0 0 0 0 14
PF00017 1 0 0 0 0 0 14
PF00018 1 0 0 0 0 0 14
PF00019 0 0 1 0 0 0 7
PF00020 1 0 0 0 0 0 14
PF00021 1 0 0 0 0 0 14
PF00022 1 0 0 0 0 0 14
PF00023 1 0 0 0 0 0 14
PF00031 0 1 0 0 0 0 14
PF00032 0 1 0 0 0 0 14
PF00033 0 1 0 0 0 0 14
PF00040 0 1 0 0 0 0 7
# DomRates version 1.0.0 at Wed Mar 6 23:27:30 2019
# domRates -t ../data/test_tree.nwk -a ../data/ -g OG -e .dom -o results/test_nident_out.txt -s results/test_nident_out_stats.txt -n A:B -d 1 -p 1
# Solution types
Exact solutions: 15
Non-ambiguous solutions: 1
Ambiguous solutions: 1
Complex solutions: 2
Identities total: 98
Maintained arrangements total: 98
Exact and non-ambiguous solutions: 16
# Event types
Fusions: 4
Fissions: 3
Terminal Loss: 5
......@@ -12,8 +17,7 @@ Terminal Emergences: 2
Single Domain Losses: 1
Single Domain Emergences: 1
Exact and non-ambiguous solutions: 16
# Event rates
Fusion rate: 25.00%
Fission rate: 18.75%
Terminal Loss rate: 31.25%
......
# Number of events per node.
# Node ID #Fusions #Fissions #TerminalLosses #TerminalEmergences #SingleDomainLosses #SingleDomainEmergences #Identities
# Node ID #Fusions #Fissions #TerminalLosses #TerminalEmergences #SingleDomainLosses #SingleDomainEmergences #Maintained
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
2 0 0 0 0 1 0 13
3 0 0 4 0 0 0 12
4 0 0 0 0 0 0 13
5 1 1 0 1 0 0 14
6 2 1 1 1 0 0 12
7 0 0 0 0 0 0 14
8 1 0 0 0 0 0 7
9 0 1 0 0 0 1 13
2 0 0 0 0 1 0 0
3 0 0 4 0 0 0 0
4 0 0 0 0 0 0 0
5 1 1 0 1 0 0 0
6 2 1 1 1 0 0 0
7 0 0 0 0 0 0 0
8 1 0 0 0 0 0 0
9 0 1 0 0 0 1 0
10 0 0 0 0 0 0 0
# Number of events per domain.
# Domain accession #Fusions #Fissions #TerminalLosses #TerminalEmergences #SingleDomainLosses #SingleDomainEmergences #Identities
PF00001 2 0 0 0 0 0 8
PF00002 0 0 0 0 0 1 0
PF00003 0 0 0 0 1 0 3
PF00004 0 0 0 1 0 0 0
PF00005 0 0 0 1 0 0 0
PF00006 0 2 2 0 0 0 13
PF00007 0 2 1 0 0 0 13
PF00008 0 2 1 0 0 0 13
PF00009 0 2 2 0 0 0 13
PF00010 0 2 3 0 0 0 13
PF00011 3 0 0 0 0 0 2
PF00012 3 0 0 0 0 0 2
PF00013 1 0 0 0 0 0 2
PF00014 1 0 0 0 0 0 2
PF00015 1 0 0 0 0 0 2
PF00016 1 0 0 0 0 0 14
PF00017 1 0 0 0 0 0 14
PF00018 1 0 0 0 0 0 14
PF00019 0 0 1 0 0 0 7
PF00020 1 0 0 0 0 0 14
PF00021 1 0 0 0 0 0 14
PF00022 1 0 0 0 0 0 14
PF00023 1 0 0 0 0 0 14
PF00031 0 1 0 0 0 0 14
PF00032 0 1 0 0 0 0 14
PF00033 0 1 0 0 0 0 14
PF00040 0 1 0 0 0 0 7
# Number of events per domain arrangement for last common ancestor between A:B.
# Domain arrangement #Fusions #Fissions #TerminalLosses #TerminalEmergences #SingleDomainLosses #SingleDomainEmergences #Identities
PF00001 0 0 0 0 0 0 1
PF00006 PF00007 PF00008 PF00009 PF00010 0 0 0 0 0 0 1
PF00010 PF00009 PF00008 PF00007 PF00006 0 0 0 0 0 0 1
PF00016 PF00017 0 0 0 0 0 0 1
PF00016 PF00017 PF00018 PF00019 0 0 0 0 0 0 1
PF00018 0 0 0 0 0 0 1
PF00020 0 0 0 0 0 0 1
PF00020 PF00021 0 0 0 0 0 0 1
PF00021 PF00022 PF00023 0 0 0 0 0 0 1
PF00022 PF00023 0 0 0 0 0 0 1
PF00031 PF00032 0 0 0 0 0 0 1
PF00031 PF00032 PF00033 PF00040 0 0 0 0 0 0 1
PF00033 0 0 0 0 0 0 1
# Events per domain arrangement for last common ancestor of A:B.
# Node-ID solution type event type new arrangement at current node arrangement at parental node
4 complex solution ? PF00011 PF00012
4 complex solution ? PF00013 PF00014 PF00015
4 maintained maintained PF00001 PF00001
4 maintained maintained PF00006 PF00007 PF00008 PF00009 PF00010 PF00006 PF00007 PF00008 PF00009 PF00010
4 maintained maintained PF00010 PF00009 PF00008 PF00007 PF00006 PF00010 PF00009 PF00008 PF00007 PF00006
4 maintained maintained PF00016 PF00017 PF00016 PF00017
4 maintained maintained PF00016 PF00017 PF00018 PF00019 PF00016 PF00017 PF00018 PF00019
4 maintained maintained PF00018 PF00018
4 maintained maintained PF00020 PF00020
4 maintained maintained PF00020 PF00021 PF00020 PF00021
4 maintained maintained PF00021 PF00022 PF00023 PF00021 PF00022 PF00023
4 maintained maintained PF00022 PF00023 PF00022 PF00023
4 maintained maintained PF00031 PF00032 PF00031 PF00032
4 maintained maintained PF00031 PF00032 PF00033 PF00040 PF00031 PF00032 PF00033 PF00040
4 maintained maintained PF00033 PF00033
# DomRates version 1.0.0 at Wed Mar 6 23:16:54 2019
# domRates -t ../data/test_tree.nwk -a ../data/ -g OG -e .dom -o results/test_out.txt -s results/test_out_stats.txt -n -d 0 -p 1
# Solution types
Exact solutions: 15
Non-ambiguous solutions: 1
Ambiguous solutions: 1
Complex solutions: 2
Exact and non-ambiguous solutions: 16
# Event types
Fusions: 4
Fissions: 3
Terminal Loss: 5
......@@ -11,8 +16,7 @@ Terminal Emergences: 2
Single Domain Losses: 1
Single Domain Emergences: 1
Exact and non-ambiguous solutions: 16
# Event rates
Fusion rate: 25.00%
Fission rate: 18.75%
Terminal Loss rate: 31.25%
......
......@@ -11,32 +11,3 @@
8 1 0 0 0 0 0
9 0 1 0 0 0 1
10 0 0 0 0 0 0
# Number of events per domain.
# Domain accession #Fusions #Fissions #TerminalLosses #TerminalEmergences #SingleDomainLosses #SingleDomainEmergences
PF00001 2 0 0 0 0 0
PF00002 0 0 0 0 0 1
PF00003 0 0 0 0 1 0
PF00004 0 0 0 1 0 0
PF00005 0 0 0 1 0 0
PF00006 0 2 2 0 0 0
PF00007 0 2 1 0 0 0
PF00008 0 2 1 0 0 0
PF00009 0 2 2 0 0 0
PF00010 0 2 3 0 0 0
PF00011 3 0 0 0 0 0
PF00012 3 0 0 0 0 0
PF00013 1 0 0 0 0 0
PF00014 1 0 0 0 0 0
PF00015 1 0 0 0 0 0
PF00016 1 0 0 0 0 0
PF00017 1 0 0 0 0 0
PF00018 1 0 0 0 0 0
PF00019 0 0 1 0 0 0
PF00020 1 0 0 0 0 0
PF00021 1 0 0 0 0 0
PF00022 1 0 0 0 0 0
PF00023 1 0 0 0 0 0
PF00031 0 1 0 0 0 0
PF00032 0 1 0 0 0 0
PF00033 0 1 0 0 0 0
PF00040 0 1 0 0 0 0
# Number of events per domain arrangement.
# Node Domain arrangement #Fusions #Fissions #TerminalLosses #TerminalEmergences #SingleDomainLosses #SingleDomainEmergences
2 PF00003 0 0 0 0 1 0
3 PF00006 PF00007 PF00008 0 0 2 0 0 0
3 PF00006 PF00007 PF00008 PF00009 0 0 1 0 0 0
3 PF00007 PF00008 PF00009 PF00010 0 0 1 0 0 0
3 PF00008 PF00009 PF00010 0 0 2 0 0 0
5 PF00001 PF00004 0 0 0 1 0 0
5 PF00009 PF00008 PF00007 PF00006 0 1 0 0 0 0
5 PF00010 0 1 0 0 0 0
5 PF00011 PF00012 PF00013 PF00014 PF00015 1 0 0 0 0 0
6 PF00001 PF00011 PF00012 1 0 0 0 0 0
6 PF00005 PF00001 0 0 0 1 0 0
6 PF00006 PF00007 0 0 3 0 0 0
6 PF00011 PF00012 PF00001 1 0 0 0 0 0
6 PF00031 PF00032 PF00033 0 1 0 0 0 0
6 PF00040 0 1 0 0 0 0
8 PF00016 PF00017 PF00018 1 0 1 0 0 0
8 PF00020 PF00021 PF00022 PF00023 1 0 0 0 0 0
9 PF00002 0 0 0 0 0 1
9 PF00007 PF00006 0 1 0 0 0 0
9 PF00010 PF00009 PF00008 0 1 0 0 0 0
# Node-ID solution type event type new arrangement at node arrangement at parental node
2 exact solution single domain loss PF00003
3 exact solution terminal loss PF00006 PF00007 PF00008 PF00006 PF00007 PF00008 PF00009 PF00010
3 exact solution terminal loss PF00006 PF00007 PF00008 PF00009 PF00006 PF00007 PF00008 PF00009 PF00010
3 exact solution terminal loss PF00007 PF00008 PF00009 PF00010 PF00006 PF00007 PF00008 PF00009 PF00010
3 exact solution terminal loss PF00008 PF00009 PF00010 PF00006 PF00007 PF00008 PF00009 PF00010
5 exact solution fission PF00010 | PF00009 PF00008 PF00007 PF00006 PF00010 PF00009 PF00008 PF00007 PF00006
5 exact solution fusion PF00011 PF00012 PF00013 PF00014 PF00015 PF00011 PF00012 + PF00013 PF00014 PF00015
5 exact solution terminal emergence PF00001 PF00004 PF00001
6 exact solution fission PF00031 PF00032 PF00033 | PF00040 PF00031 PF00032 PF00033 PF00040
6 exact solution fusion PF00001 PF00011 PF00012 PF00001 + PF00011 PF00012
6 exact solution fusion PF00011 PF00012 PF00001 PF00011 PF00012 + PF00001
6 exact solution terminal emergence PF00005 PF00001 PF00001