Loading CMakeLists.txt +4 −2 Original line number Diff line number Diff line Loading @@ -51,7 +51,7 @@ add_definitions(-DIQ_TREE) # The version number. set (iqtree_VERSION_MAJOR 1) set (iqtree_VERSION_MINOR 6) set (iqtree_VERSION_PATCH "3") set (iqtree_VERSION_PATCH "5") set(BUILD_SHARED_LIBS OFF) Loading @@ -71,6 +71,7 @@ endif() if (CMAKE_GENERATOR MATCHES "Xcode") set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym") set(CMAKE_XCODE_ATTRIBUTE_COMPILER_INDEX_STORE_ENABLE "No") endif() include_directories("${PROJECT_SOURCE_DIR}") Loading Loading @@ -278,6 +279,7 @@ if (NOT IQTREE_FLAGS MATCHES "single") elseif (CLANG) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp=libomp -pthread") set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fopenmp=libomp") endif() else() message("OpenMP : NONE") Loading alignment/alignment.cpp +53 −8 Original line number Diff line number Diff line Loading @@ -123,7 +123,7 @@ int Alignment::checkAbsentStates(string msg) { rare_states += ", "; rare_states += convertStateBackStr(i); } if (count >= num_states-1) if (count >= num_states-1 && Params::getInstance().fixed_branch_length != BRLEN_FIX) outError("Only one state is observed in " + msg); if (!absent_states.empty()) cout << "NOTE: State(s) " << absent_states << " not present in " << msg << " and thus removed from Markov process to prevent numerical problems" << endl; Loading @@ -138,12 +138,7 @@ void Alignment::checkSeqName() { StrVector::iterator it; for (it = seq_names.begin(); it != seq_names.end(); it++) { string orig_name = (*it); for (string::iterator i = it->begin(); i != it->end(); i++) { if (!isalnum(*i) && (*i) != '_' && (*i) != '-' && (*i) != '.') { (*i) = '_'; } } if (orig_name != (*it)) if (renameString(*it)) warn_str << orig_name << " -> " << (*it) << endl; } if (warn_str.str() != "") { Loading Loading @@ -394,7 +389,12 @@ void Alignment::checkGappySeq(bool force_error) { } } Alignment::Alignment(char *filename, char *sequence_type, InputType &intype) : vector<Pattern>() { Alignment::Alignment(char *filename, char *sequence_type, InputType &intype, string model) : vector<Pattern>() { name = "Noname"; this->model_name = model; if (sequence_type) this->sequence_type = sequence_type; aln_file = filename; num_states = 0; frac_const_sites = 0.0; frac_invariant_sites = 0.0; Loading Loading @@ -2636,6 +2636,11 @@ void Alignment::extractSubAlignment(Alignment *aln, IntVector &seq_id, int min_t ASSERT(*it >= 0 && *it < aln->getNSeq()); seq_names.push_back(aln->getSeqName(*it)); } name = aln->name; model_name = aln->model_name; sequence_type = aln->sequence_type; position_spec = aln->position_spec; aln_file = aln->aln_file; num_states = aln->num_states; seq_type = aln->seq_type; STATE_UNKNOWN = aln->STATE_UNKNOWN; Loading Loading @@ -2684,6 +2689,11 @@ void Alignment::extractPatterns(Alignment *aln, IntVector &ptn_id) { for (i = 0; i < aln->getNSeq(); i++) { seq_names.push_back(aln->getSeqName(i)); } name = aln->name; model_name = aln->model_name; sequence_type = aln->sequence_type; position_spec = aln->position_spec; aln_file = aln->aln_file; num_states = aln->num_states; seq_type = aln->seq_type; STATE_UNKNOWN = aln->STATE_UNKNOWN; Loading Loading @@ -2720,6 +2730,11 @@ void Alignment::extractPatternFreqs(Alignment *aln, IntVector &ptn_freq) { for (i = 0; i < aln->getNSeq(); i++) { seq_names.push_back(aln->getSeqName(i)); } name = aln->name; model_name = aln->model_name; sequence_type = aln->sequence_type; position_spec = aln->position_spec; aln_file = aln->aln_file; num_states = aln->num_states; seq_type = aln->seq_type; genetic_code = aln->genetic_code; Loading Loading @@ -2756,6 +2771,11 @@ void Alignment::extractSites(Alignment *aln, IntVector &site_id) { for (i = 0; i < aln->getNSeq(); i++) { seq_names.push_back(aln->getSeqName(i)); } name = aln->name; model_name = aln->model_name; sequence_type = aln->sequence_type; position_spec = aln->position_spec; aln_file = aln->aln_file; num_states = aln->num_states; seq_type = aln->seq_type; STATE_UNKNOWN = aln->STATE_UNKNOWN; Loading Loading @@ -2799,6 +2819,11 @@ void Alignment::convertToCodonOrAA(Alignment *aln, char *gene_code_id, bool nt2a for (i = 0; i < aln->getNSeq(); i++) { seq_names.push_back(aln->getSeqName(i)); } name = aln->name; model_name = aln->model_name; sequence_type = aln->sequence_type; position_spec = aln->position_spec; aln_file = aln->aln_file; // num_states = aln->num_states; seq_type = SEQ_CODON; initCodon(gene_code_id); Loading Loading @@ -2971,6 +2996,11 @@ void Alignment::extractSites(Alignment *aln, const char* spec) { void Alignment::createBootstrapAlignment(Alignment *aln, IntVector* pattern_freq, const char *spec) { if (aln->isSuperAlignment()) outError("Internal error: ", __func__); name = aln->name; model_name = aln->model_name; sequence_type = aln->sequence_type; position_spec = aln->position_spec; aln_file = aln->aln_file; int site, nsite = aln->getNSite(); seq_names.insert(seq_names.begin(), aln->seq_names.begin(), aln->seq_names.end()); num_states = aln->num_states; Loading Loading @@ -3235,6 +3265,11 @@ void Alignment::createBootstrapAlignment(int *pattern_freq, const char *spec, in void Alignment::buildFromPatternFreq(Alignment & aln, IntVector new_pattern_freqs){ int nsite = aln.getNSite(); seq_names.insert(seq_names.begin(), aln.seq_names.begin(), aln.seq_names.end()); name = aln.name; model_name = aln.model_name; sequence_type = aln.sequence_type; position_spec = aln.position_spec; aln_file = aln.aln_file; num_states = aln.num_states; seq_type = aln.seq_type; Loading Loading @@ -3274,6 +3309,11 @@ void Alignment::createGapMaskedAlignment(Alignment *masked_aln, Alignment *aln) int site, nsite = aln->getNSite(), nseq = aln->getNSeq(); seq_names.insert(seq_names.begin(), aln->seq_names.begin(), aln->seq_names.end()); name = aln->name; model_name = aln->model_name; sequence_type = aln->sequence_type; position_spec = aln->position_spec; aln_file = aln->aln_file; num_states = aln->num_states; seq_type = aln->seq_type; genetic_code = aln->genetic_code; Loading Loading @@ -3343,6 +3383,11 @@ void Alignment::concatenateAlignment(Alignment *aln) { void Alignment::copyAlignment(Alignment *aln) { int site, nsite = aln->getNSite(); seq_names.insert(seq_names.begin(), aln->seq_names.begin(), aln->seq_names.end()); name = aln->name; model_name = aln->model_name; sequence_type = aln->sequence_type; position_spec = aln->position_spec; aln_file = aln->aln_file; num_states = aln->num_states; seq_type = aln->seq_type; genetic_code = aln->genetic_code; Loading alignment/alignment.h +2 −2 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ Multiple Sequence Alignment. Stored by a vector of site-patterns @author BUI Quang Minh, Steffen Klaere, Arndt von Haeseler <minh.bui@univie.ac.at> */ class Alignment : public vector<Pattern> { class Alignment : public vector<Pattern>, public CharSet { friend class SuperAlignment; public: Loading @@ -81,7 +81,7 @@ public: @param sequence_type type of the sequence, either "BIN", "DNA", "AA", or NULL @param intype (OUT) input format of the file */ Alignment(char *filename, char *sequence_type, InputType &intype); Alignment(char *filename, char *sequence_type, InputType &intype, string model); /** destructor Loading alignment/maalignment.h +1 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ class MaAlignment : public Alignment public: MaAlignment() : Alignment() {}; MaAlignment(char *filename, char *sequence_type, InputType &intype) : Alignment(filename, sequence_type, intype){}; MaAlignment(char *filename, char *sequence_type, InputType &intype, string model) : Alignment(filename, sequence_type, intype, model){}; MaAlignment(Alignment &align) : Alignment(align){}; Loading alignment/superalignment.cpp +513 −14 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
CMakeLists.txt +4 −2 Original line number Diff line number Diff line Loading @@ -51,7 +51,7 @@ add_definitions(-DIQ_TREE) # The version number. set (iqtree_VERSION_MAJOR 1) set (iqtree_VERSION_MINOR 6) set (iqtree_VERSION_PATCH "3") set (iqtree_VERSION_PATCH "5") set(BUILD_SHARED_LIBS OFF) Loading @@ -71,6 +71,7 @@ endif() if (CMAKE_GENERATOR MATCHES "Xcode") set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym") set(CMAKE_XCODE_ATTRIBUTE_COMPILER_INDEX_STORE_ENABLE "No") endif() include_directories("${PROJECT_SOURCE_DIR}") Loading Loading @@ -278,6 +279,7 @@ if (NOT IQTREE_FLAGS MATCHES "single") elseif (CLANG) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp=libomp -pthread") set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fopenmp=libomp") endif() else() message("OpenMP : NONE") Loading
alignment/alignment.cpp +53 −8 Original line number Diff line number Diff line Loading @@ -123,7 +123,7 @@ int Alignment::checkAbsentStates(string msg) { rare_states += ", "; rare_states += convertStateBackStr(i); } if (count >= num_states-1) if (count >= num_states-1 && Params::getInstance().fixed_branch_length != BRLEN_FIX) outError("Only one state is observed in " + msg); if (!absent_states.empty()) cout << "NOTE: State(s) " << absent_states << " not present in " << msg << " and thus removed from Markov process to prevent numerical problems" << endl; Loading @@ -138,12 +138,7 @@ void Alignment::checkSeqName() { StrVector::iterator it; for (it = seq_names.begin(); it != seq_names.end(); it++) { string orig_name = (*it); for (string::iterator i = it->begin(); i != it->end(); i++) { if (!isalnum(*i) && (*i) != '_' && (*i) != '-' && (*i) != '.') { (*i) = '_'; } } if (orig_name != (*it)) if (renameString(*it)) warn_str << orig_name << " -> " << (*it) << endl; } if (warn_str.str() != "") { Loading Loading @@ -394,7 +389,12 @@ void Alignment::checkGappySeq(bool force_error) { } } Alignment::Alignment(char *filename, char *sequence_type, InputType &intype) : vector<Pattern>() { Alignment::Alignment(char *filename, char *sequence_type, InputType &intype, string model) : vector<Pattern>() { name = "Noname"; this->model_name = model; if (sequence_type) this->sequence_type = sequence_type; aln_file = filename; num_states = 0; frac_const_sites = 0.0; frac_invariant_sites = 0.0; Loading Loading @@ -2636,6 +2636,11 @@ void Alignment::extractSubAlignment(Alignment *aln, IntVector &seq_id, int min_t ASSERT(*it >= 0 && *it < aln->getNSeq()); seq_names.push_back(aln->getSeqName(*it)); } name = aln->name; model_name = aln->model_name; sequence_type = aln->sequence_type; position_spec = aln->position_spec; aln_file = aln->aln_file; num_states = aln->num_states; seq_type = aln->seq_type; STATE_UNKNOWN = aln->STATE_UNKNOWN; Loading Loading @@ -2684,6 +2689,11 @@ void Alignment::extractPatterns(Alignment *aln, IntVector &ptn_id) { for (i = 0; i < aln->getNSeq(); i++) { seq_names.push_back(aln->getSeqName(i)); } name = aln->name; model_name = aln->model_name; sequence_type = aln->sequence_type; position_spec = aln->position_spec; aln_file = aln->aln_file; num_states = aln->num_states; seq_type = aln->seq_type; STATE_UNKNOWN = aln->STATE_UNKNOWN; Loading Loading @@ -2720,6 +2730,11 @@ void Alignment::extractPatternFreqs(Alignment *aln, IntVector &ptn_freq) { for (i = 0; i < aln->getNSeq(); i++) { seq_names.push_back(aln->getSeqName(i)); } name = aln->name; model_name = aln->model_name; sequence_type = aln->sequence_type; position_spec = aln->position_spec; aln_file = aln->aln_file; num_states = aln->num_states; seq_type = aln->seq_type; genetic_code = aln->genetic_code; Loading Loading @@ -2756,6 +2771,11 @@ void Alignment::extractSites(Alignment *aln, IntVector &site_id) { for (i = 0; i < aln->getNSeq(); i++) { seq_names.push_back(aln->getSeqName(i)); } name = aln->name; model_name = aln->model_name; sequence_type = aln->sequence_type; position_spec = aln->position_spec; aln_file = aln->aln_file; num_states = aln->num_states; seq_type = aln->seq_type; STATE_UNKNOWN = aln->STATE_UNKNOWN; Loading Loading @@ -2799,6 +2819,11 @@ void Alignment::convertToCodonOrAA(Alignment *aln, char *gene_code_id, bool nt2a for (i = 0; i < aln->getNSeq(); i++) { seq_names.push_back(aln->getSeqName(i)); } name = aln->name; model_name = aln->model_name; sequence_type = aln->sequence_type; position_spec = aln->position_spec; aln_file = aln->aln_file; // num_states = aln->num_states; seq_type = SEQ_CODON; initCodon(gene_code_id); Loading Loading @@ -2971,6 +2996,11 @@ void Alignment::extractSites(Alignment *aln, const char* spec) { void Alignment::createBootstrapAlignment(Alignment *aln, IntVector* pattern_freq, const char *spec) { if (aln->isSuperAlignment()) outError("Internal error: ", __func__); name = aln->name; model_name = aln->model_name; sequence_type = aln->sequence_type; position_spec = aln->position_spec; aln_file = aln->aln_file; int site, nsite = aln->getNSite(); seq_names.insert(seq_names.begin(), aln->seq_names.begin(), aln->seq_names.end()); num_states = aln->num_states; Loading Loading @@ -3235,6 +3265,11 @@ void Alignment::createBootstrapAlignment(int *pattern_freq, const char *spec, in void Alignment::buildFromPatternFreq(Alignment & aln, IntVector new_pattern_freqs){ int nsite = aln.getNSite(); seq_names.insert(seq_names.begin(), aln.seq_names.begin(), aln.seq_names.end()); name = aln.name; model_name = aln.model_name; sequence_type = aln.sequence_type; position_spec = aln.position_spec; aln_file = aln.aln_file; num_states = aln.num_states; seq_type = aln.seq_type; Loading Loading @@ -3274,6 +3309,11 @@ void Alignment::createGapMaskedAlignment(Alignment *masked_aln, Alignment *aln) int site, nsite = aln->getNSite(), nseq = aln->getNSeq(); seq_names.insert(seq_names.begin(), aln->seq_names.begin(), aln->seq_names.end()); name = aln->name; model_name = aln->model_name; sequence_type = aln->sequence_type; position_spec = aln->position_spec; aln_file = aln->aln_file; num_states = aln->num_states; seq_type = aln->seq_type; genetic_code = aln->genetic_code; Loading Loading @@ -3343,6 +3383,11 @@ void Alignment::concatenateAlignment(Alignment *aln) { void Alignment::copyAlignment(Alignment *aln) { int site, nsite = aln->getNSite(); seq_names.insert(seq_names.begin(), aln->seq_names.begin(), aln->seq_names.end()); name = aln->name; model_name = aln->model_name; sequence_type = aln->sequence_type; position_spec = aln->position_spec; aln_file = aln->aln_file; num_states = aln->num_states; seq_type = aln->seq_type; genetic_code = aln->genetic_code; Loading
alignment/alignment.h +2 −2 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ Multiple Sequence Alignment. Stored by a vector of site-patterns @author BUI Quang Minh, Steffen Klaere, Arndt von Haeseler <minh.bui@univie.ac.at> */ class Alignment : public vector<Pattern> { class Alignment : public vector<Pattern>, public CharSet { friend class SuperAlignment; public: Loading @@ -81,7 +81,7 @@ public: @param sequence_type type of the sequence, either "BIN", "DNA", "AA", or NULL @param intype (OUT) input format of the file */ Alignment(char *filename, char *sequence_type, InputType &intype); Alignment(char *filename, char *sequence_type, InputType &intype, string model); /** destructor Loading
alignment/maalignment.h +1 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ class MaAlignment : public Alignment public: MaAlignment() : Alignment() {}; MaAlignment(char *filename, char *sequence_type, InputType &intype) : Alignment(filename, sequence_type, intype){}; MaAlignment(char *filename, char *sequence_type, InputType &intype, string model) : Alignment(filename, sequence_type, intype, model){}; MaAlignment(Alignment &align) : Alignment(align){}; Loading
alignment/superalignment.cpp +513 −14 File changed.Preview size limit exceeded, changes collapsed. Show changes