From cda39ee9477730d3d97b57863512962fde8c15b0 Mon Sep 17 00:00:00 2001 From: Christoph Stelz Date: Thu, 16 Jan 2025 15:36:17 +0000 Subject: [PATCH 1/5] Use partition length instead of MSA length as sample size --- src/optimize/model_optimizer_pll.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/optimize/model_optimizer_pll.cpp b/src/optimize/model_optimizer_pll.cpp index c324081..0c13a5d 100644 --- a/src/optimize/model_optimizer_pll.cpp +++ b/src/optimize/model_optimizer_pll.cpp @@ -165,7 +165,7 @@ ModelOptimizerPll::ModelOptimizerPll (MsaPll &_msa, model.set_loglh(cur_loglh); model.set_exec_time(end_time - start_time); - model.evaluate_criteria(n_branches, msa.get_n_sites()); + model.evaluate_criteria(n_branches, partition.get_n_sites()); if (optimize_topology) model.set_tree(pll_tree); From c877e893de27581961de27d9782792b93b0ba7d1 Mon Sep 17 00:00:00 2001 From: Christoph Stelz Date: Wed, 22 Jan 2025 11:54:59 +0000 Subject: [PATCH 2/5] Output results in XML, increase floating point precision in output stream --- src/global_defs.h | 2 +- src/main.cpp | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/global_defs.h b/src/global_defs.h index dfd5ffc..3d49d94 100644 --- a/src/global_defs.h +++ b/src/global_defs.h @@ -65,7 +65,7 @@ #define ERR_MSG_SIZE 240 #define UNUSED(expr) do { (void)(expr); } while (0) -#define MT_PRECISION_DIGITS 4 +#define MT_PRECISION_DIGITS 17 #define DEFAULT_GAMMA_RATE_CATS 4 #define DEFAULT_GAMMA_RATE_MODE PLL_GAMMA_RATES_MEAN diff --git a/src/main.cpp b/src/main.cpp index b79cc14..ca20812 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -180,6 +180,12 @@ int main(int argc, char *argv[]) ofstream * results_stream = 0; + ofstream xml_stream; + if (ROOT) { + xml_stream = ofstream(opts.output_results_file + ".xml", std::ios::out); + xml_stream << "" << endl; + } + if (ROOT) results_stream = modeltest::Utils::open_file_for_writing(opts.output_results_file); @@ -283,6 +289,13 @@ int main(int argc, char *argv[]) MT_INFO); } + xml_stream << "" << endl; + bic_selection->print_xml(xml_stream); + aic_selection->print_xml(xml_stream); + aicc_selection->print_xml(xml_stream); + xml_stream << "" << endl; + + delete bic_selection; delete aic_selection; delete aicc_selection; @@ -368,6 +381,14 @@ int main(int argc, char *argv[]) << opts.output_tree_file << endl; //MT_INFO << "Log written to " << opts.output_log_file << endl; + + if (ROOT) { + xml_stream << "" << endl; + xml_stream.close(); + + MT_INFO << "Model selections written to " << opts.output_results_file << ".xml." << endl; + } + /* clean */ if (opts.partitions_desc) delete opts.partitions_desc; @@ -400,5 +421,6 @@ BARRIER; ModelTestService::finalize( false ); + return return_val; } From eae0c0b79e1bb0c3adde99011ca601d4270f5298 Mon Sep 17 00:00:00 2001 From: Christoph Stelz Date: Wed, 5 Feb 2025 12:38:52 +0000 Subject: [PATCH 3/5] Print iteration count --- src/optimize/model_optimizer_pll.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/optimize/model_optimizer_pll.cpp b/src/optimize/model_optimizer_pll.cpp index 0c13a5d..cd23892 100644 --- a/src/optimize/model_optimizer_pll.cpp +++ b/src/optimize/model_optimizer_pll.cpp @@ -198,6 +198,7 @@ ModelOptimizerPll::ModelOptimizerPll (MsaPll &_msa, if (opt_per_param) { bool all_params_done = false; + size_t i = 0; while ((fabs (cur_loglh - save_loglh) > epsilon && cur_loglh > save_loglh)) { save_loglh = cur_loglh; @@ -222,7 +223,10 @@ ModelOptimizerPll::ModelOptimizerPll (MsaPll &_msa, opt_delta = cur_loglh; notify(); } + ++i; } + + LOG_INFO << "\t\t" << model.get_name() << " part " << partition.get_unique_id() << " eps-iteration count: " << i << endl; } else { From 59b18256cff19792e2e590806ead946a3ac0dfe3 Mon Sep 17 00:00:00 2001 From: Christoph Stelz Date: Wed, 12 Feb 2025 10:57:28 +0000 Subject: [PATCH 4/5] Use custom XML format Do not print selections, print only loglikelihoods + scores + #free params --- src/main.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index ca20812..6060c35 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -183,7 +183,7 @@ int main(int argc, char *argv[]) ofstream xml_stream; if (ROOT) { xml_stream = ofstream(opts.output_results_file + ".xml", std::ios::out); - xml_stream << "" << endl; + xml_stream << "" << std::setprecision(17) << endl; } if (ROOT) @@ -290,9 +290,15 @@ int main(int argc, char *argv[]) } xml_stream << "" << endl; - bic_selection->print_xml(xml_stream); - aic_selection->print_xml(xml_stream); - aicc_selection->print_xml(xml_stream); + for (const auto model : ModelTestService::instance()->get_modeltest()->get_models(part_id)) { + xml_stream << "get_name() + << "\" lnL=\"" << model->get_loglh() + << "\" score-bic=\"" << model->get_bic() + << "\" score-aic=\"" << model->get_aic() + << "\" score-aicc=\"" << model->get_aicc() + << "\" free-params=\"" << model->get_n_free_variables() + << "\" />" << endl; + } xml_stream << "" << endl; From c9b0cff180f5c0b67ef4a9aa87ce33cc0d02ce87 Mon Sep 17 00:00:00 2001 From: Christoph Stelz Date: Thu, 11 Sep 2025 15:22:26 +0200 Subject: [PATCH 5/5] Slightly modify XML output format --- src/main.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 6060c35..87e0c70 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -183,7 +183,7 @@ int main(int argc, char *argv[]) ofstream xml_stream; if (ROOT) { xml_stream = ofstream(opts.output_results_file + ".xml", std::ios::out); - xml_stream << "" << std::setprecision(17) << endl; + xml_stream << "" << std::setprecision(17) << endl; } if (ROOT) @@ -289,17 +289,17 @@ int main(int argc, char *argv[]) MT_INFO); } - xml_stream << "" << endl; for (const auto model : ModelTestService::instance()->get_modeltest()->get_models(part_id)) { - xml_stream << "get_name() + xml_stream << "get_name() << "\" lnL=\"" << model->get_loglh() + << "\" score=\"" << model->get_bic() << "\" score-bic=\"" << model->get_bic() << "\" score-aic=\"" << model->get_aic() << "\" score-aicc=\"" << model->get_aicc() << "\" free-params=\"" << model->get_n_free_variables() << "\" />" << endl; } - xml_stream << "" << endl; delete bic_selection;