occam-ra / occam

OCCAM Reconstructability Analysis Tools
Other
20 stars 14 forks source link

Search options: specify number of best models #14

Open gdcutting opened 5 years ago

gdcutting commented 5 years ago

Per Marty: "In Search, there are three criteria for summary best model: dBIC, dAIC, and Incremental Alpha. Right now the summary output just prints out the single best model for each of these three criteria. What I want is to be able to specify the best n1 dBIC models, the best n2 dAIC models, and the best n3 Incremental Alpha models. User should specify these on the Search input page in the Report Settings section. Specifically where it says "Include in Report:" the check boxes for dBIC, dAIC, and Incremental Alpha should be changed to boxes that take an integer number, and the default values for these numbers should be 3 for dBIC, and 1 for dAIC and for Incremental Alpha."

gdcutting commented 5 years ago

This largely reproduces the existing report sorting but would extend it. Your main report could be sorted by H but then you could still get shortened, sorted (by dBIC, dAIC, and Inc. Alpha). It's doable but would be a bit convoluted. The existing checking mechanism would not trivially extend to including more than one model under each 'best' category. It checks using an attribute which is set when the report is run, so it can easily check one report against that, but don't think it can easily get a model list sorted by another sort attribute. Again, possible but a little clunky. Is this something that can't already be done using existing report sorting (though it might take a few clicks of going back and submitting the report again with a different sort preference)? I'll explore further, and if I can find an easy fix I'll attempt it.

Don't think it's just possible with changes to Report.cpp, will also need to use ocUtils (util.setReportSortName()) to set the sort field, and then re-output the model list (or part of it)

This is the kind of issue that will be more easily addressed once we do some updates to the interfaces (python and web).