Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modular IPM/MM for multi-strata simulations #92

Closed
JavadocMD opened this issue Feb 14, 2024 · 1 comment · Fixed by #131
Closed

Modular IPM/MM for multi-strata simulations #92

JavadocMD opened this issue Feb 14, 2024 · 1 comment · Fixed by #131
Assignees

Comments

@JavadocMD
Copy link
Contributor

JavadocMD commented Feb 14, 2024

Many simulations involve models which separate individuals into separate but interactive strata -- this could be by age group, risk classification, species, etc. We would like epymorph to be able to handle these simulations as smoothly as possible.

Based on previous explorations, we believe we can take an even-more-modular approach than originally thought. That is, more than having an IPM/MM/GEO as modules in epymorph, perhaps the strata themselves can have their own IPM/MM/GEO configuration, and then we can find ways to express the interactions between strata. This might solve many of the possibly thorny issues that were coming up in how to structure this using singular IPMs and MMs.

Example 1: if our model involves humans, birds, and mosquitoes, we can select an IPM for each species, then a movement model for each species. This is very natural, since each species has very different behaviors in both movement and disease mechanics. However, these IPMs do interact -- infected mosquitoes infect birds, and infected birds infect mosquitoes -- so we will need to be able to describe the linkages ("meta edges") between them.

Example 2: many diseases have disproportionate effects on people of different ages. So you might break up the population by age group and apply slightly different mechanics to each. Movement is the most obvious -- adults tend to commute to work, while children tend to attend schools -- but there may be IPM differences as well. In this example, the IPM interaction network is expected to be much more dense (every strata impacts every other strata), but it can still be expressed as a collection of meta edges.

(There are additional details to work out regarding the initialization routine, data binding, ADRIO support for common needs, and so on.)

This task is to explore an implementation of the above.

@JavadocMD JavadocMD self-assigned this Feb 14, 2024
@JavadocMD
Copy link
Contributor Author

This effort is being temporarily paused (back to backlog); we have a working preliminary implementation in the multi-strata-sim branch.

The reason for the pause is to slip in a few more features in the current 0.4 line (non-breaking) before we integrate this one in the 0.5 line (minor breaking changes). These features will be of immediate value to folks using 0.4 and will also help us test and polish the multi-strata features.

Namely, those features are: 1) attributes declaration in the movement model, and 2) optional detailed movement data collection. We want #1 for multi-strata because the parameter input is now more complicated and would be nice to have some tool support for it. We want #2 because movement is now more complicated and is difficult to verify without detailed information about the inner workings of the system.

@JavadocMD JavadocMD linked a pull request Jul 10, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant