Skip to content

Commit 0472ba5

Browse files
committed
correctly write best MixtureFinder model info (k-class) to checkpoint rather than (k+1-class)
1 parent 7b8f648 commit 0472ba5

File tree

1 file changed

+34
-14
lines changed

1 file changed

+34
-14
lines changed

main/phylotesting.cpp

Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6868,7 +6868,9 @@ double runMixtureFinderMain(Params &params, IQTree* &iqtree, ModelCheckpoint &mo
68686868
string best_model_AIC, best_model_AICc, best_model_BIC;
68696869
double best_score_AIC, best_score_AICc, best_score_BIC;
68706870
// Store the information of (k-1)-class models. Once (k-1)-class is better then k-class, the (k-1)-class models will be printed out as the global best.
6871-
string best_model_pre_AIC, best_model_pre_AICc, best_model_pre_BIC, best_model_pre_list;
6871+
string best_model_AIC_pre, best_model_AICc_pre, best_model_BIC_pre, best_model_list_pre;
6872+
string best_score_AIC_pre, best_score_AICc_pre, best_score_BIC_pre, best_tree_AIC_pre, best_tree_AICc_pre, best_tree_BIC_pre;
6873+
68726874
Checkpoint *checkpoint;
68736875
int ssize;
68746876
int curr_df;
@@ -6948,10 +6950,17 @@ double runMixtureFinderMain(Params &params, IQTree* &iqtree, ModelCheckpoint &mo
69486950

69496951
cout << endl << "Model: " << best_subst_name << best_rate_name << "; df: " << curr_df << "; loglike: " << curr_loglike << "; " << criteria_str << " score: " << curr_score << endl;
69506952

6951-
model_info.getString("best_model_AIC", best_model_pre_AIC);
6952-
model_info.getString("best_model_AICc", best_model_pre_AICc);
6953-
model_info.getString("best_model_BIC", best_model_pre_BIC);
6954-
model_info.getString("best_model_list_" + criteria_str, best_model_pre_list);
6953+
model_info.getString("best_model_AIC", best_model_AIC_pre);
6954+
model_info.getString("best_model_AICc", best_model_AICc_pre);
6955+
model_info.getString("best_model_BIC", best_model_BIC_pre);
6956+
model_info.getString("best_model_list_" + criteria_str, best_model_list_pre);
6957+
model_info.getString("best_score_AIC", best_score_AIC_pre);
6958+
model_info.getString("best_score_AICc", best_score_AICc_pre);
6959+
model_info.getString("best_score_BIC", best_score_BIC_pre);
6960+
model_info.getString("best_tree_AIC", best_tree_AIC_pre);
6961+
model_info.getString("best_tree_AICc", best_tree_AICc_pre);
6962+
model_info.getString("best_tree_BIC", best_tree_BIC_pre);
6963+
69556964

69566965
// Step 3: keep adding a new class until no further improvement
69576966
if (params.opt_qmix_criteria == 1) {
@@ -6996,18 +7005,29 @@ double runMixtureFinderMain(Params &params, IQTree* &iqtree, ModelCheckpoint &mo
69967005
curr_score = best_model.getScore();
69977006
model_str = best_subst_name;
69987007

6999-
model_info.getString("best_model_AIC", best_model_pre_AIC);
7000-
model_info.getString("best_model_AICc", best_model_pre_AICc);
7001-
model_info.getString("best_model_BIC", best_model_pre_BIC);
7002-
model_info.getString("best_model_list_" + criteria_str, best_model_pre_list);
7003-
7008+
model_info.getString("best_model_AIC", best_model_AIC_pre);
7009+
model_info.getString("best_model_AICc", best_model_AICc_pre);
7010+
model_info.getString("best_model_BIC", best_model_BIC_pre);
7011+
model_info.getString("best_model_list_" + criteria_str, best_model_list_pre);
7012+
model_info.getString("best_score_AIC", best_score_AIC_pre);
7013+
model_info.getString("best_score_AICc", best_score_AICc_pre);
7014+
model_info.getString("best_score_BIC", best_score_BIC_pre);
7015+
model_info.getString("best_tree_AIC", best_tree_AIC_pre);
7016+
model_info.getString("best_tree_AICc", best_tree_AICc_pre);
7017+
model_info.getString("best_tree_BIC", best_tree_BIC_pre);
70047018
}
70057019
} while (better_model && getClassNum(best_subst_name)+1 <= params.max_mix_cats);
70067020

7007-
model_info.put("best_model_list_" + criteria_str, best_model_pre_list);
7008-
model_info.put("best_model_AIC", best_model_pre_AIC);
7009-
model_info.put("best_model_AICc", best_model_pre_AICc);
7010-
model_info.put("best_model_BIC", best_model_pre_BIC);
7021+
model_info.put("best_model_AIC", best_model_AIC_pre);
7022+
model_info.put("best_model_AICc", best_model_AICc_pre);
7023+
model_info.put("best_model_BIC", best_model_BIC_pre);
7024+
model_info.put("best_model_list_" + criteria_str, best_model_list_pre);
7025+
model_info.put("best_score_AIC", best_score_AIC_pre);
7026+
model_info.put("best_score_AICc", best_score_AICc_pre);
7027+
model_info.put("best_score_BIC", best_score_BIC_pre);
7028+
model_info.put("best_tree_AIC", best_tree_AIC_pre);
7029+
model_info.put("best_tree_AICc", best_tree_AICc_pre);
7030+
model_info.put("best_tree_BIC", best_tree_BIC_pre);
70117031

70127032
best_subst_name = model_str;
70137033
if (params.optimize_from_given_params == false)

0 commit comments

Comments
 (0)