-
Notifications
You must be signed in to change notification settings - Fork 33
Changelog
Below is a list of the most significant changes in each release, together with the date and revision number of initial release. Releases are available here.
Schema 43.1 release (see: PR#313
- Update the schema documentation for propActive (behaviour is unchanged from version 43.0)
- Remove the boost dependency, OpenMalaria is a lot easier to compile yourself now
- Add Docker image files for versions 30.3, 35.0, 36.0, 38.0, 40.0, 41.0, 41.1, 42.0 and 43.0 under docker/
- Fix two errors related to "Numerical result out of range" error
- Add an errno check every loop to make it easier to spot similar errors
- Transition from Travis to Github actions for continuous integration Ubuntu and MacOS (tests and releases)
- Started refactoring some parts of the code
- Add a rudimentary verbose output
- Add non-human hosts interventions #290
- propActive can be used again but it can only be set to either 0 or 1 #290
- Probabilities PAh, PAmu and PA1 have been added to the continuous output #290
output | versions | description |
---|---|---|
P_Amu | from 43.0 | The probability that a mosquito dies on a given night |
P_A1 | from 43.0 | The probability that a mosquito finds a human host on a given night |
P_Ah | from 43.0 | The probability that a mosquito finds a non-human host on a given night |
- Improve the fitting of the emergence rate, which results in a more accurate simulated EIR #281
- Replaced the RNG with ChaCha #284
- Disable propActive by setting it to 1 #280
- New build script 'build.sh' used with automated builds with Travis and Appveyor #260 #265 #268 #271
- Windows releases are compiled with Cygwin, which is more consistent with the Linux builds. All dependencies are provided via Cywgin packages #261. The release is standalone.
- A checkpoint file path/name can be specified #263
- Fix a bug that prevented scaling of the emergence rate during the fitting phase #269
- Enable modeling of HRP2 deletions: #248
- Switch to PCG random number generator: #242
- Update Python scripts to Python 3.x: #245
- Automatic build of schema docs: #239
- More adjustments to build scripts: #240, #241, #243, #244
- Code quality improvements: #246, #247
- Add
innoculationsPerVector
output: #238
- Adjustments to random number generation support code: #235
- Add
--compress-output
option; remove BOINC code: #236 - Misc. fixes to build and code documentation: #237
- Fix numerical integration used in PK/PD model: #234
This version includes breaking changes to the XML schema; see schema update guide.
- Adjustments to 3-compartment PK/PD model: #227
- Code improvements enabled by C++11: #228
- PK/PD conversion model: allow covariance of IC50 samples #229
- Consistent specification of log-normal samples: #230
- Guard against
log(0)
from monitoring system: #216 - Tweak automated builds: #217, #218, #221, #222, #223
- #215: Allow IC50 to be sampled per infection
- #212: Update version number
- #211: Bug fix: pass correct value for age and handle delay
- #208: Update to C++11
- #202: Fix reading the checkpoint time as a command line option
- #199: Name cleanup
- Add mosquito fecundity modifier for non-human hosts
- Allow human-vector interventions to affect mosquito fecundity
Version 38 code — released Oct 2017.
- Add "logit" parameterisation for ITNs
- Fix for genotype sampling given zero transmission (imported cases?).
- Some schema documentation improvements
- SimTime.h became sim.h
- Human population and transmission class objects became directly-accessible globals to save passing
- Non-human-host fix (no effect on output, assuming number of NHHs was 1 for each type)
- Some work to limit uses of human population in transmission code to small regions
- ?
Version 37 code — released Jan 2017.
Bugfix release for example scenario, example_scenario.xml now uses schema_36
.
This new version introduces testing for the example_scenario.xml we distribute each release.
Version 36.1 code — released April 2016.
This fixes bugs #134, #155 and #169.
In particular, the PK & PD convergence models have been fixed to generate the correct values for Artemether-DHA and Artesunate-DHA drugs (at least, the values from both models now match those produced from an independent implementation in R).
There are no changes to the XML / XSD in this release (except that PK/PD parameters for these models are now included in the snippet library).
Version 36 code — released April 2016.
Revised monitoring code (equivalent functionality). Updated doc of existing functionality.
onlyNewEpisode
monitoring option replaces REPORT_ONLY_AT_RISK
model option. Both affect many measures simultaneously.
Vector traps intervention.
Schema 35 code — released February 2016.
The goal of this change is to allow simulations to be run with smaller population sizes while still getting useful data on rare events (deaths, severe cases and sequelae). Extra outputs allow the expected number of cases to be calculated. Formulae for doing this have not yet been derived or experimentally proved. See ticket 151.
Documentation of monitoring measures
Triggered interventions allow deployments to be enabled (or disabled) by specific conditions. Documentation. Related features:
- Conditions of deployment
- Unreported surveys
- Regular deployments (link; see down a few paragraphs)
Schema 34 code — released September 2015.
For details about related work packages have a look at milestone Schema-34.
Pharmacokinetics (PK):
- Removed
<duration>
(link to schema-33 doc) attribute for IV administration. Code regarding intravenous drug administration has been removed as well.
-
<hypnozoiteReleaseDelayDays>
has been renamed to<hypnozoiteRelease>
and has a new structure, which has an option to specify multiple release distributions of liverstage parasites (for simulation of delayed hypnozoite-releases). -
<primaquine>
has been renamed to<liverStageDrug>
- Monitoring option nPQTreatments has been renamed to nLiverStageTreatments
- Drug Three compartment model
- uses absorption rates for compartments 2 and 3:
-
<compartment2>
,<a12>
,<a21>
-
<compartment3>
,<a13>
,<a31>
- Absorption rate constant (
<k_a>
)
-
- uses absorption rates for compartments 2 and 3:
-
Drug conversion model (experimental)
-
Conversion parameters
<metabolite>
: Metabolite drug (abbreviation)<rate>
: Rate of conversion<molRatio>
: Molecular weight ratio- Details: see #53 and #134. Will be patched in a follow up release of schema-34 (see Schema-34.1 Milestone)_
-
Conversion parameters
- New
<multiply>
child element for<dosages>
which multiplies the dose<by>
some quantity - such as patient weight. - New drug decay constants (as alternative to drug half-life):
- elimination rate (
<k>
&<m_exponent>
)
- elimination rate (
Intervention usage #56:
-
<GVI>
and<IRS>
now have an optional<usage>
element. -
<ITN>
's<usage>
child element is now optional too.
It is assumed that when no <usage>
element is given
the usage modifier is 1 (100%)
(proportion of use for a given intervention which modifies the protectional effect).
Schema 33.1 code — released July 2015
Includes new semantic versioning: Schema-33.1
Schema 33 code — released December 2014
The "MDA1D" component has been replaced with "decisionTree", a component which runs a case management decision tree on deployment; this is now usable with 5-day timestep models and gives a flexible way to implement T&T or similar campaigns.
The "MDA" component has been replaced with "screen", "treatSimple" and "treatPKPD" components. The first of these uses a diagnostic and optionally triggers deployment of one or more other components on positive and/or negative outcomes while the latter offer two ways of treating infections.
Some of these changes offer additional functionality and some are recommended
but optional changes to enhance clarity of the XML or improve models. Running
OpenMalaria with the --deprecation-warnings
option will print messages
recommending possible changes in XML documents.
Previously dates and durations were given in days, time steps or years with only a little documentation to indicate which unit should be used. Now most of these inputs accept units of days, steps or years with an explicit unit, and in the case of absolute times (i.e. not durations), dates.
Previously the diagnostic used for monitoring purposes was deterministic with a specified detection limit, interpreted as being derived from either Garki or common (non-Garki) microscopy methods, while diagnostics used by the health system and intervention deployment could be either stochastic or deterministic with configurable limits but did not adjust these for the density estimation method (bug). Now all diagnostics can be specified with Garki, common or Malaria-therapy detection limits as deterministic or stochastic tests. Further, the diagnostic used by the neonatal mortality model may be independant of that used in monitoring.
A new model has been introduced for selecting parasite genetics, with specification of initial genotype frequency and fitness, and (vector transmission model only) optional tracking of genotype frequency.
This replaces the simplistic genotype model previously embedded within the PK/PD model and allows modeling the spread of drug resistance in OpenMalaria.
Much of the monitoring code was rewritten to be easier to extend. XML configuration and output files remain backwards compatible but with new options: output identifier is configurable, measures can be configured to aggregate over some dimensions (age group, cohort, species, genotype) to reduce output size, new measures (for tracking parasite genetics) are available.
Vector species was previously indicated via name in output files but is now numeric.
Some measures have been disabled (which?).
A new health system model is available (essentially a merge of the old ImmediateOutcomes and unused EventScheduler) models. This specifies access and severe outcomes as the ImmediateOutcomes model but uses decision trees to describe uncomplicated treatment. As with the ImmediateOutcomes model, this is only functional on a 5-day timestep.
The Molineaux infection model has been improved slightly. Most notably, blood volume is derived from human age (giving infants lower volume and higher parasite density elimination thresholds), and parameter sampling for new infections has been fixed (non-pairwise-sampling mode).
New testing code has also been written for the model.
The plotResults.py script was updated to handle new outputs and allow plotting results by cohort and genotype (on x-axis as separate lines).
Schema-32 code - released 24th June 2014
- Many changes to human-targeting intervention descriptions as well as a few changes elsewhere in the XML
- Human-targeting interventions can have multiple descriptions and be deployed simultaneously with other human-targeting interventions
- Sub-populations replace "cohort" for intervention deployment purposes
- Sub-population removal replaces cohort on-first-event and cumulative intervention deployment's age; resetting of health-system memory works slightly differently
- Monitoring of multiple cohorts (derived from sub-populations)
- More generic vector interventions targeting humans: the new Generic Vector Intervention (GVI) model replaces the old vector deterrent and IRS v1, what was IRS v2 is now just IRS
- New non-PK/PD treatment model for 5-day timestep health system and for MDA/MSAT. Allows delayed treatment, treating only liver and only blood stages, and prophylactic effects.
- Case management can use diagnostics before treating patients
- Case management can trigger deployment of any intervention
- New 'screen' intervention component which uses a diagnostic, then deploys interventions from a list depending on outcome (replaces MDA's diagnostic)
- Removed the IPT model (the treatment model mentioned above allows a prophylactic effect which was the main thing IPT code was still used for; there is however no current replacement for modelling resistant infections which IPT code had a very basic model for).
- Vaccines: vaccine effects (PEV, BSV, TBV) are now described independently
- Vaccine schedules: removed the implicit schedules used previously by all age-based deployments and added explicit schedules
- Bugfix: treat and apply indirect mortality correctly (this is an option, enabled by default).
- The R_0 special intervention has been disabled (purely to avoid maintenance work; it can be re-enabled if needed)
- New output/monitoring measures (56 - 60)
- Removed some "continuous" monitoring measures
- Included simple P. vivax model (originally developed on top of version 31)
- Explicit namespace in XML: scenario → om:scenario and XML header changes
- Clarified the order in which intervention effects are deployed, making sure that cohort selection happens first.
- Reorganise intervention code: most now lives in the interventions folder and namesake namespace; details commonly needed elsewhere in the code now live in Interfaces.hpp.
- Reorganise XML loading code: what was in inputData.h/cpp has moved to Parameters.h/.cpp and util::DocumentLoader.h/.cpp
- Partial implementation of a Vivax model (which would be used instead of any Falciparum infection models in the simulator). Not yet usable but motivated some code changes: the old WithinHostModel class has been replaced by WHInterface and WHFalciparum and the Pathogenesis, Diagnostic and (new, non-PK/PD) Treatments models have moved within the
WithinHost
namespace/directory. - An anonymous conservation society decided that elimination of P. falciparum isn't always desirable. Some other changes to tests.
Updating scenarios from schema 31:
- Any human-targeting interventions need to be updated to the new syntax
- The health system needs a description of treatment actions (5-day timestep)
There is a tool to do this in an automated fashion. Note that the tool will ask what behaviour to use for health system treatment actions, but just not MDA treatment actions. You may want to review these after the update.
- Simple mosquito population dynamics model: model allowing reduced numbers of adult mosquitoes to reduce the numbers of eggs laid.
- Enabled INNATE_MAX_DENS by default
- Included seekingDeathRateIncrease and probDeathOvipositing interventions
- Allow multiple descriptions of the larviciding intervention as well as the new interventions
- ITN and IRS tweaks
- New
mod
andmod_nn
functions to avoid undefined behaviour ofx%y
- Lots of bug fixes and code maintenance
Parallel development in July 2013 to add new models to the fitting runs
- Make the sigma parameter of the Penny infection model fittable
-
PENNY_JULY_2013
variant of the Penny 1-day-timestep model
Released 12th April 2012 as r2258
- Renamed Vector_EIR_Input and Vector_EIR_Simulated to inputEIR and simulatedEIR respectively.
- Increased delay in human infectiousness model from the perspective of the non-vector model and several summaries: it appears it was one time-step short.
- Bug fix in REPORT_ONLY_AT_RISK: after a case at time 0, times 2-5 were considered not-at-risk. This corrects those timesteps to 1-4.
-
mode
parameter of<entomology>
element now takes keyword value:dynamic
orforced
. - Vector model XML parameters now largely use elements instead of being one long string of attributes.
- Vector parameters
α_i
,P_B_i
,P_C_i
andP_D_i
(rate of encountering hosts and probabilities of biting, escaping and resting respectively) may now vary across humans to simulate human heterogeneity. - NC has extended the vector model with simulation of the egg, larval and pupal life-stages.
- A larviciding using the vector life-cycle model will be included.
- Vector-model inputs will be changed: transmission input will be in the form of a seasonality profile and IBPAPA (infectious bites per adult per annum), where the seasonality profile can be that of transmission (as before) or that of vector densities. Fitting of internal parameters to reproduce this seasonality should be better than before (in progress).
- SchemaTranslator is now compiled by cmake (output is build/util/SchemaTranslator/SchemaTranslator.jar)
- Seasonality parameterisation of per-vector transmission is now input differently to allow other data sources to be used as seasonality inputs in the future.
- Added an output:
nMassScreenings
(number of diagnostics used by MSAT, or number of recipients of MDA if no diagnostic is used) - New IRS model & parameterisation (to be documented)
- Old IRS model can also have a preprandial effect
- Heterogeneity of decay in the ITN model has been made per-human rather than per net (mistake in previous release)
- New continuous output options
Released on 21st June as r1902.
- New ITN model
- MSAT for 5-day timestep.
Released on 24th May 2011 as r1836.
Big rearrangements of interventions content, moving from grouping by description and deployment type to grouping by intervention. This should make experiment design easier. Each intervention can optionally have a name attribute.
Changed some names:
- drugDescription -> pharmacology
- entoData -> entomology
- eir -> EIR
- monthlyEir -> monthlyEIR
Added optional name attributes to intervention descriptions.
New implementation of imported infections "intervention".
Larviciding intervention removed; it will be replaced by a more accurate model later.
Released on 6th May 2011 as r1811.
- Fix for Penny's infection model (code)
- There should no longer be NaNs in output files when the model runs successfully
- new continuous reporting option: median immunity Y
- descriptions of vector interventions are no longer required in cases where the intervention is never deployed
- bug fix: initialize microscopy count
- made transmission warm-up fitting problems interrupt the program again
Released on 23rd February 2011 as r1704.
- Transmission model's initialization strategies updated.
- Simulated EIR outputs changed to only be outputs from adults.
- Implementation of Penny infection model and unittest against Matlab densities.
- Decay functions updated with "step" function and optional heterogeneity.
- 1-day time-step case-management: treatment-seeking delays for UC cases has new description.
- Non-malaria morbidity: separate P(need antibiotic treatment) for fevers classified as malarial.
Released on 24th Janruary 2011 as r1622.
- Non-malaria fever modelling implemented
- Cumulative intervention deployment: bring coverage up to a target level
- MDA intervention may now be configured as "screen & treat" (1-day time-step)
- Some IV-drug corrections and (hopefullly) a speed-up
- Decay of vector-stage interventions and vaccines can now be modelled using several different functions
- Vaccine codes are now PEV/BSV/TBV instead of 1/2/3
- Deterministic case management trees no longer make an unnecessary random-number generator call
- Time-steps encapsulated in a new class for added type-saftey
Released on 27th December 2010 as r1578.
- units of EIR input changed to be adult-averaged in all cases
- vector fitting revision: use a single 5-year period
- drug code for intravenous administration of drugs (where duration of administration is significant)
- proposed cohort implementation completed: options for removal and all outputs restricted to cohorts
- generic handling of data per age-group and interpolation methods
- heterogeneity in human weight included
Released on November 4th 2010 as r1420, tagged openmalaria-649.
| Download openmalaria | Installation instructions | XML Schema Documentation |
XML Schema Version | Program version | master |
develop |
---|---|---|---|
43 | schema-43.0 |
- User Guide
- Compilation Guide
- Developer Guide
- Schema Update Guide
- Scenario Design Guide
- Monitoring Guide
- Changelog
- Schema Documentation
- Human demography
- Levels of transmission
- Parasite dynamics within humans
- P vivax dynamics
- Vector bionomics and transmission to humans
- Mosquito population dynamics
- Clinical (illness) models
- Time in the models