canmod / macpan2

Rebuilding https://github.com/mac-theobio/McMasterPandemic/
https://canmod.github.io/macpan2/
GNU General Public License v3.0
2 stars 0 forks source link

clean up starter models directory to include only actual starter models #38

Closed stevencarlislewalker closed 1 year ago

stevencarlislewalker commented 1 year ago

The SI_products directory for example should be somewhere else, because if you try to create a compartmental model from this directory it will fail. But any directory in starter_models should be a valid compartmental model.

Update: perhaps what we mean by an 'actual starter model' is one with a README.md file that contains a yaml header? This would mean that other starter models are OK to be in the directory, but they will not show up with show_models() or in https://canmod.github.io/macpan2/articles/example_models.html and so will be unlikely to be discovered.

papsti commented 1 year ago

i'm trying to find a good starter model to use as the main example for the quickstart part 2, but i'm not sure how up-to-date each example is, partially because i'm still learning to understand the model definition files. would it be fast for you to look through and put a list here of which model files are actually valid as-is? for instance, age looks like an atomic model that would be used as input into "productify" but wouldn't make a valid model on its own...

bbolker commented 1 year ago

@papsti, you could start by trying to build each one and see if it passes validity checking ...

stevencarlislewalker commented 1 year ago

I think @papsti is using this, which is a good choice in my opinion.

papsti commented 1 year ago

@stevencarlislewalker, i was actually looking a bit closer at sir_vax and i think there's a model specification error (and was in the process of trying to fix it as a way to test my new macpan2 skills on the bugfix-sir_vax branch).

i think the vax-stratified force of infection rates should both be divided by the total population, N, not each by the vax-stratified population, N.unvax and N.vax. that would also simplify the model spec as the vax-stratified population sizes would not need to be computed at each pre-update, but instead N would be computed once before the simulation starts.

papsti commented 1 year ago

this also means the clamp() function won't have to be used here

stevencarlislewalker commented 1 year ago

Amazing! Thank you @papsti. Let me know if I can help. I'm actually not at my computer now, but will be again.

I don't want to get into semantics, but do you mean 'error' or 'specification that you disagree with for substantive reasons'? I just want to clarify because I am able to generate simulations without errors. Hope I haven't missed your point.

papsti commented 1 year ago

error was a poor choice of words for sure. the model is properly specified, but it does not agree with mass-action assumption that we're trying to use in this model.

stevencarlislewalker commented 1 year ago

Excellent. Either would have been fine, I just want to understand where the problem is.

stevencarlislewalker commented 1 year ago

i think the vax-stratified force of infection rates should both be divided by the total population

I am quite willing to just agree with you, but we have definitely been through this with Jonathan and others and the conclusion that I came to was that we should divide by the sub-population size. Again, I'm no modeller, but at least I did what I meant to do. Happy to receive the wisdom.

cc @Flynn-Primrose

papsti commented 1 year ago

it's very possible that i'm also confused, but from what i remember in base macpan and the vaxified model, we're always dividing the FOI by the total population, $N$, whether the infecteds are stratified by severity, or by vaccination. see pages 11, 15-16 of the expandify ms.

the way i think about it is that $\rm{foi} = \beta * I/N$ where $I/N$ models proportion of transmission opportunities (occurring at rate $\beta$) that are actually with an infected. taking a subset of the population based on a specific stratum in that denominator is like conditioning on the fact that you're definitely bumping into someone in that stratum.

stevencarlislewalker commented 1 year ago

In any case, one should be able to use which ever of those two models one wants. So I very much appreciate your work on modifying this model. All very helpful, despite me not having the focus time to think through the mechanisms.

papsti commented 1 year ago

understandable! i would like to use a model that is biologically sound and intuitive in this quickstart. regardless, the model should probably be explained at the top of the quickstart before any model spec is discussed.

Flynn-Primrose commented 1 year ago

Done with the exception of seir_simplified it seems ill conceived for example it only has S I and R compartments no E. Is there any reason not to delete it? Also I have left the SI_products folder as it was.

stevencarlislewalker commented 1 year ago

Done with the exception of seir_simplified it seems ill conceived for example it only has S I and R compartments no E. Is there any reason not to delete it?

I would delete it.