Comments (6)
Thanks @adamkucharski - drawing @rozeggo and @BlackEdder's attention to this issue as well.
how to ensure alignment with input dataset and input simulation window (perhaps with a check for min/max date, or user warning?)
I think this could probably be handled within the frameworks we currently have for intervention
and vaccination
objects, which have a start and end time. These can be cross-checked against the maximum time of the epidemic model with a warning or error. A data-driven model should probably error if the data availability does not cover the entire simulation period, while a model not including real data should be allowed to continue but with a warning.
how to convert the discrete data to continuous functions for the ODE ... we'd probably want a smooth-ish function as default, as having high variability on short timescales (e.g. using the raw daily temperature values, rather some multi-year or moving average, to scale transmission) would lead to numerical instability in the ODE solver and/or heavily slow down simulations.
Data and model time-scales could be matched (say, daily time-scale for both) perhaps by interpolation, before passing the data to the model, and this interpolation is likely to be more convenient in R. The way the epidemic()
function is set up, the user already knows the time period and increment at which the state will be reported (e.g. seq(0, 200, by = 1)
for a 200 day period). I would imagine that the Harmonize data cube would eventually want to have its own interpolation functions for users with similar asks. This probably needs more thought and some initial examples to check what we'd be dealing with.
I had a few additional questions on how seasonality should be applied to epidemic models.
-
Would seasonality apply only to vector-borne models, or also to direct transmission models? What aspects of these models would a hypothetical
<seasonality>
class target - only the<infection>
class parameters (e.g. time-varying$\beta$ ) or also population parameters such as the social contacts? -
Would users want to take a model from the catalogue, and add their own seasonal forcing function to it? Or would we provide a set of models --- both vector-borne and direct-transmission --- that can include seasonal forcing in some specific way? The challenge here would be allowing users to define custom functions in R, and passing these to C++ where the magic happens.
Overall, happy to take a look at how this has been done before and workshop ideas so that we can build a general method that can be re-used for multiple vectors and diseases, and possibly for direct-transmission models too.
from epidemics.
Linking to this Discussion comment for references. https://github.com/orgs/epiverse-trace/discussions/79#discussioncomment-6593411
from epidemics.
1. Would seasonality apply only to vector-borne models, or also to direct transmission models? What aspects of these models would a hypothetical `<seasonality>` class target - only the `<infection>` class parameters (e.g. time-varying β) or also population parameters such as the social contacts?
The relationship between season (via temperature) is well-characterised for vector-borne infections so this seems like a good initial use case. The relationship between climate and transmission for influenza etc. seems more up for debate, although school holidays could be a key factor to explore for directly transmitted infections (e.g. work by @rozeggo et al on respiratory dynamics.
2. Would users want to take a model from the catalogue, and add their own seasonal forcing function to it? Or would we provide a set of models --- both vector-borne and direct-transmission --- that can include seasonal forcing in some specific way? The challenge here would be allowing users to define custom functions in R, and passing these to C++ where the magic happens.
In the vector-borne case, I expect most users would want to take a pre-defined Ross-MacDonald style model with human and vector components, rather than add temperature dependency to a non-climate model. Perhaps one with more complete biological complexity (i.e. multiple temperature dependent parameters) and one just with seasonally-varying transmission. The Mordecai et al paper shows that the latter is reasonable for certain temperature ranges, because the relationship with R0 is fairly linear (i.e. between about 23-28°C for Aedes Aegypti)
But if we're talking about seasonal variation more generally (e.g. school terms etc.) would be interested to hear others' thoughts on how to link together different use cases. Sounds like it might be easier to predefine common seasonal factors, which a user can then remove by setting certain parameters to zero, rather than try and allow users to add their own into catalogue models?
from epidemics.
Okay thanks, so my takeaway is that a separate vector-borne model with full-fledged dynamics that include seasonality would add the most value. That could also be a good comparator for results from the {iraca} package, and if it could be made sufficiently general, could also tackle some of the CEPI diseases of concern (RVF and chikungunya).
Sounds exciting - happy to get stuck in once pre-requisites are met; listing some here, please add as you know more:
- Harmonize data cube, or other data-cube format data as an example (side question: the Harmonize data cube does not appear to be based on the
<stars>
-class, which is specifically designed for data cubes - is there a reason for this?) - General {epiparameter} integration with {epidemics} for infection parameters - this is already issue #20.
- {epiparameter} integration with Harmonize, or inclusion of climate-dependency in vector-borne disease parameters.
- ... please add.
from epidemics.
VBDs are not high on our priority list as there are other groups doing this within the wider Epiverse initiative. We can consider adding this functionality in the future when our priorities are met (~18m). Good to keep an eye on it so we maintain compatibility!
from epidemics.
Reopening and pinning for visibility.
from epidemics.
Related Issues (20)
- R0 vs Reff in vignettes HOT 5
- Threshold for validating a population object. HOT 3
- Unable to install on MacOS Ventura HOT 9
- Fix vaccination rates in vignette
- A few remarks HOT 3
- `intervention()` function returns an extra element that comes as an empty string `""` HOT 2
- Should `population()` have default values? HOT 1
- Calculate expected vaccinations and check model correctness HOT 3
- Add function to calculate timing and size of epidemic peak HOT 1
- Remove <infection> class
- Ebola model should be compatible with interventions
- Object print methods
- PDF documentation rendering fails on r-universe HOT 1
- Add initial diphtheria model
- Restructure Vacamole model for rate interventions
- Vignette labelling HOT 1
- End of year cleanup
- Allow changes in population sizes
- Add <epidemic> class HOT 1
- Add a vignette for the diphtheria model
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from epidemics.