-
Notifications
You must be signed in to change notification settings - Fork 33
DrugResistanceGenotypes
This page is about adding drug resistance modelling (via multiple genotypes) to scenarios already using PK/PD modelled treatment. It is not required for single-genotype PK/PD treatment.
Transmission must be described by the vector model variant, and the simulation must be in dynamic mode (i.e. not simply repeating the initial annual cycle).
New infections are assigned genotypes randomly based on the initial frequencies chosen for this model until the end of the warm-up/initialisation phase. During the intervention period, genotypes are sampled according to the model outlined below (assuming samplingMode="tracking"
; if samplingMode="initial"
then initial frequencies are still used).
If the "import infections" psuedo-intervention is used, imported infections will be assigned genotypes randomly based in the initial frequencies set in this model.
With the simple success/failure models in which drug treatment either clears all infections in the host or does nothing (the treatSimple option in the health system / intervention component) drug resistance can be included by reducing the probability that treatment is effective. This does not allow for the effects of drug pressure on the level of resistance.
With the options for modeling [explicit pharmacokinetics and pharmacodynamics] (ModelDrug), multiple drug resistance genotypes can be simulated (though OpenMalaria does not currently simulate mutation or genetic exchange so it cannot be used to model the origins of new resistance genotypes/phenotypes). Application this functionality requires that multiple genotypes should be declared (with each assigned initial frequencies in the parasite population and relative fitness in the absence of drug pressure); the corresponding phenotypes (i.e. pharmacodynamics) specified, and the outcomes monitored (as below):
Genotypes are specified in the parasiteGenetics element (if multiple genotypes are not required, this element may be omitted from the XML).
An example:
<parasiteGenetics samplingMode="tracking">
<locus name="mdr">
<allele name="sensitive" initialFrequency="0.5" fitness="1.00"/>
<allele name="resistant" initialFrequency="0.45" fitness="0.99"/>
<allele name="immune" initialFrequency="0.05" fitness="0.95"/>
</locus>
</parasiteGenetics>
The "initialFrequency" values must sum to one (or the simulation will stop with an error explaining this). The "fitness" multiplies the within-host multiplication rate of the parasites, so that in the absence of drug pressure, genotypes with a high fitness outcompete the resistant genotypes (fitness < 1 slows reproduction, fitness > 1 speeds it up). Schema documentation is here.
Each set of PD parameters is labelled a "phenotype". When there are multiple phenotypes, each phenotype must specify how genotypes are mapped to the phenotype via "restriction" elements, i.e. the "restriction" specifies to which allele of which locus the specified pharmacodynamics apply. The "restriction" elements are part of the "drug" specification:
An example:
<drug abbrev="CQ">
<PD>
<!-- three alleles match those described above -->
<phenotype name="CQ sensitive">
<restriction onLocus="mdr" toAllele="sensitive"/>
<max_killing_rate>3.45</max_killing_rate>
<IC50>0.02</IC50>
<slope>1.6</slope>
</phenotype>
<phenotype name="CQ resistant">
<restriction onLocus="mdr" toAllele="resistant"/>
<max_killing_rate>3.45</max_killing_rate>
<IC50>0.04</IC50>
<slope>1.6</slope>
</phenotype>
<phenotype name="CQ immune">
<restriction onLocus="mdr" toAllele="immune"/>
<max_killing_rate>3.45</max_killing_rate>
<IC50>0.08</IC50>
<slope>1.6</slope>
</phenotype>
</PD>
<PK>
<negligible_concentration>0.00036</negligible_concentration>
<half_life>30.006</half_life>
<vol_dist>300</vol_dist>
</PK>
</drug>
To monitor the effects on parasite gene frequencies and parasite load, three different survey measures are available (in each case these are recorded by age-group):
id | measure | description |
---|---|---|
69 | nInfectByGenotype | The number of human hosts with an infection (patent or not), for each genotype, at the time the survey is taken. |
70 | nPatentByGenotype | The number of human hosts whose total (blood-stage) parasite density, for each genotype, is above the detection threshold |
71 | logDensByGenotype | The number of hosts positive for each genotype and the sum of the logarithm of the corresponding parasite densities |
Records in the output.txt
file appear for each genotype, which is identified by an integer value (multiple of 1,000,000) added to the age group number (and to the number identifying the cohort, if present) in the 2nd column of each record. From version 34, to decode these genotype identifiers, OpenMalaria should be run from the command line with the --print-genotypes
option. A decode table then appears on the screen. For example, if the XML specification of the parasite genetics is as follows:
<parasiteGenetics samplingMode="tracking">
<locus name="mdr">
<allele name="sensitive" initialFrequency="0.5" fitness="1.00"/>
<allele name="resistant" initialFrequency="0.5" fitness="1.00"/>
</locus>
</parasiteGenetics>
The decode information will read:
Genotype | mdr | init freq | fitness |
---|---|---|---|
0 | sensitive | 0.500 | 1.000 |
100000 | resistant | 0.500 | 1.000 |
genotype | phenotype |
---|---|
0 | sensitive |
100000 | resistant |
There will be corresponding lines in 'output.txt' for each of the specified measures 69-71, and each age-group, for each of these genotypes:
A more complex example with multiple loci:
<parasiteGenetics samplingMode="tracking">
<locus name="mdr">
<allele name="sensitive" initialFrequency="0.5" fitness="1.00"/>
<allele name="resistant" initialFrequency="0.45" fitness="0.99"/>
<allele name="immune" initialFrequency="0.05" fitness="0.95"/>
</locus>
<locus name="l2">
<allele name="a1" initialFrequency="0.5" fitness="1.00"/>
<allele name="a12" initialFrequency="0.45" fitness="0.99"/>
<allele name="a123" initialFrequency="0.05" fitness="0.95"/>
</locus>
</parasiteGenetics>
The decode information will then read:
Genotype | mdr | l2 | init freq | fitness |
---|---|---|---|---|
0 | sensitive | a1 | 0.250 | 1.000 |
100000 | sensitive | a12 | 0.225 | 0.990 |
200000 | sensitive | a123 | 0.025 | 0.950 |
300000 | resistant | a1 | 0.225 | 0.990 |
400000 | resistant | a12 | 0.203 | 0.980 |
500000 | resistant | a123 | 0.023 | 0.941 |
600000 | immune | a1 | 0.025 | 0.950 |
700000 | immune | a12 | 0.023 | 0.941 |
800000 | immune | a123 | 0.003 | 0.902 |
genotype | phenotype |
---|---|
0 | CQ sensitive |
100000 | CQ sensitive |
200000 | CQ sensitive |
300000 | CQ resistant |
400000 | CQ resistant |
500000 | CQ resistant |
600000 | CQ immune |
700000 | CQ immune |
800000 | CQ immune |
| 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