Skip to content

DrugResistanceGenotypes

Aurélien Cavelan edited this page Aug 28, 2020 · 29 revisions

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.

Interaction with other models

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.

Drug resistance in success/failure models

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.

Multiple genotypes

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):

Declaration of multiple parasite genotypes

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.

Assignment of drug resistance phenotypes

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>

Monitoring of the dynamics of drug resistance

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

Phenotype mapping:

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

Phenotype mapping:

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
Clone this wiki locally