Closed dhardy closed 7 years ago
I've given this a priority of 'Medium'. I is important that this should not complicate things even more, and represents a simplification of the existing ITN parameterisations. Linked to this, Olivier has promised to make the Wiki documentation of ITN parameterisations more transparent, guiding new users so that they don't make things more complicated than they need to.
Here is the XML edit
<xs:element name="anophelesParams" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:choice>
<xs:element name="deterrency" type="om:ITNDeterrency">
<xs:annotation>
<xs:documentation>
Effect of net on attractiveness of humans to mosquitoes relative to
an unprotected adult human. Parameterisations should take into
account that mosquitoes do not always bite indoors.
Attractiveness of the human is multiplied by
exp(log(H)×h + log(P)×p + log(I)×h×p
where H, P and I are the hole, insecticide and interaction factors
respectively, h=exp(-holeIndex×holeScalingFactor) and
p=1−exp(-insecticideContent×insecticideScalingFactor).
</xs:documentation>
<xs:appinfo>units:dimensionless;min:0;max:1;name:Relative attractiveness;</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="twoStageDeterrency">
<xs:annotation>
<xs:documentation>
Effect of net on attractiveness of humans to mosquitoes relative to
an unprotected adult human. Parameterisations should take into
account that mosquitoes do not always bite indoors.
This deterrency model multiplies human attractiveness by
pEnt×pAtt.
</xs:documentation>
<xs:appinfo>units:dimensionless;name:Relative attractiveness;</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element name="entering" type="om:IRSDeterrency">
<xs:annotation>
<xs:documentation>
pEnt represents the relative probability of entering due to insecticide in the hut:
pEnt=exp(logit.pEnt)/(exp(logit.pEnt)+1)
logit.pEnt = B+P*p
where B is the basefactor (without net); P is
insecticide factor, and p=log(insecticideContent+1).
Without a net, probability of entering a house
pEnt0=exp(logit.pEnt0)/(exp(logit.pEnt0)+1)
logit.pEnt0 = B
Entering of mosquitoes is adjusted via multiplication by pEnt / pEnt0.
To keep this in the range [0,1], we (normally) require that pEnt ≤ pEnt0 and thus P ≤ 0 and give a warning if this is not fulfilled.
</xs:documentation>
<xs:appinfo>units:dimensionless;name:RA (entering)</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="attacking" type="om:ITNKillingEffect">
<xs:annotation>
<xs:documentation>
pAtt represents the relative probability of attacking a human
after entering a house due to ITNs (i.e. of feeding/dying vs.
flying off):
pAtt=exp(logit.pAtt)/(exp(logit.pAtt)+1)
logit.pAtt = B + H×min(h,hMax) + P×p + I×min(h,hMax)×p
where B is the base factor (without net); H, P and
I are the hole, insecticide and interaction factors
respectively, h=log(holeIndex+1) and
p=log(insecticideContent+1).
Without a net, probability of attacking a human
after entering a house
pAtt0=exp(logit.pAtt0)/(exp(logit.pAtt0)+1)
logit.pAtt0 = B + H×hMax
where hMax=log(holeIndexMax+1) and holeIndexMax is a user defined maximum hole index (typically, the total surface area of a net).
Attacking of mosquitoes is adjusted via multiplication by pAtt / pAtt0. This may be larger and smaller than 1 (but will not be negative).
By definition (through the logit transformation) pAtt0 > 0.
</xs:documentation>
<xs:appinfo>units:dimensionless;name:RA (attacking)</xs:appinfo>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:element name="preprandialKillingEffect" type="om:ITNKillingEffect">
<xs:annotation>
<xs:documentation>
Effect of net on survival mosquitoes as they seek to bite a human
after choosing that human, relative to the same person not
sleeping under a net.
Killing proportion is calculated as
K=exp(logit.K)/(exp(logit.K)+1)
logit.K = B + H×min(h,hMax) + P×p + I×min(h,hMax)×p
where B is the basefactor (without net),
H, P and I are the hole, insecticide and interaction factors
respectively, h=log(holeIndex+1) and
p=log(insecticideContent+1).
Without a net, the killing proportion
K0=exp(logit.K0)/(exp(logit.K0)+1)
logit.K0 = B + H×hMax
where hMax=log(holeIndexMax+1) and holeIndexMax is a user defined maximum hole index (typically, the total surface area of a net).
Survival of mosquitoes is adjusted via multiplication by (1−K) / (1−K0).
To keep this in the range [0,1], we require that K ≥ K0. We enforce that P ≥ 0 (It would not make sense biologically if P were negative) and P+I*hMax ≥ 0 and H ≤ 0 and holeIndex ≤ holeIndexMax and give a warning if these conditions are not fulfilled.
</xs:documentation>
<xs:appinfo>units:dimensionless;min:0;max:1;name:Pre-prandial killing effect;</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="postprandialKillingEffect" type="om:ITNKillingEffect">
<xs:annotation>
<xs:documentation>
Effect of net on survival mosquitoes as they seek to escape from
a human host and rest after a blood meal, relative to the same
person not sleeping under a net.
Killing proportion is calculated as
K=exp(logit.K)/(exp(logit.K)+1)
logit.K = B + H×min(h,hMax) + P×p + I×min(h,hMax)×p
where B is the basefactor (without net),
H, P and I are the hole, insecticide and interaction factors
respectively, h=log(holeIndex+1) and
p=log(insecticideContent+1).
Without a net, the killing proportion
K0=exp(logit.K0)/(exp(logit.K0)+1)
logit.K0 = B + H×hMax
where hMax=log(holeIndexMax+1) and holeIndexMax is a user defined maximum hole index (typically, the total surface area of a net).
Survival of mosquitoes is adjusted via multiplication by (1−K) / (1−K0).
To keep this in the range [0,1], we require that K ≥ K0. We enforce that P ≥ 0 (It would not make sense biologically if P were negative) and P+I*hMax ≥ 0 and H ≤ 0 and holeIndex ≤ holeIndexMax and give a warning if these conditions are not fulfilled.
</xs:documentation>
<xs:appinfo>units:dimensionless;min:0;max:1;name:Post-prandial killing effect;</xs:appinfo>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="mosquito" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Name of the affected anopheles-mosquito species.
</xs:documentation>
<xs:appinfo>name:Mosquito species;</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="propActive" type="xs:double" default="1">
<xs:annotation>
<xs:documentation>
The proportion of bites, when nets are in use, for which the net
has any action whatsoever on the mosquito.
At the moment this is constant across humans and deterministic:
relative attractiveness and survival factors are
base*(1-usage*propActing) + intervention_factor*usage*propActing.
See also "usage" (proportion of time nets are used by humans).
</xs:documentation>
<xs:appinfo>units:dimensionless;min:0;max:1;name:Proportion of bites for which net acts;</xs:appinfo>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ITNKillingEffect">
<xs:complexContent>
<xs:extension base="om:ITNDeterrency">
<xs:attribute name="baseFactor" type="xs:double" use="required">
<xs:annotation>
<xs:appinfo>units:dimensionless;name:Probability of mosquito death without intervention</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="holeIndexMax" type="xs:double" use="required">
<xs:documentation> holeIndexMax is a user defined maximum hole index (typically, the total surface area of a net).
</xs:documentation>
<xs:annotation>
<xs:appinfo>units:in same unit as holeIndex;name:maximum of holed surface area that has an effect (comparable to no net)</xs:appinfo>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ITNDeterrency">
<xs:complexContent>
<xs:extension base="om:IRSDeterrency">
<xs:attribute name="holeFactor" type="xs:double" use="required">
<xs:annotation>
<xs:documentation>
Value expected to be at least 0. Negative values are not
necessarily invalid, but allow nets to increase transmission.
</xs:documentation>
<xs:appinfo>units:none;name:Hole factor;max:1</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="interactionFactor" type="xs:double" use="required">
<xs:annotation>
<xs:documentation>
holeFactor + insecticideFactor + interactionFactor must not be greater
than 1, and is expected to be at least 0. A negative value is not
necessarily invalid, but allows nets to increase transmission.
</xs:documentation>
<xs:appinfo>units:none;name:Interaction factor;max:1</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="holeScalingFactor" type="xs:double" use="required">
<xs:annotation>
<xs:appinfo>units:none;name:Hole scaling factor;min:0</xs:appinfo>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="IRSDeterrency">
<xs:attribute name="insecticideFactor" type="xs:double" use="required">
<xs:annotation>
<xs:documentation>
Value expected to be at least 0. Negative values are not
necessarily invalid, but allow nets to increase transmission.
</xs:documentation>
<xs:appinfo>units:none;name:Insecticide factor;max:1</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="insecticideScalingFactor" type="xs:double" use="required">
<xs:annotation>
<xs:appinfo>units:none;name:Insecticide scaling factor;min:0</xs:appinfo>
</xs:annotation>
</xs:attribute>
</xs:complexType>
@obriet pretty sure this is done
Yes it is, thanks!
-----"Diggory Hardy" notifications@github.com wrote: ----- To: "SwissTPH/openmalaria" openmalaria@noreply.github.com From: "Diggory Hardy" notifications@github.com Date: 10/03/2017 03:50PM Cc: "Olivier Briët" olivier.briet@unibas.ch, "Mention" mention@noreply.github.com Subject: Re: [SwissTPH/openmalaria] Logit ITN parameterisation (#172)
@obriet pretty sure this is done
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.
As discussed with Olivier, implement a new variant of the ITN parameterisation of net hole & insecticide effect.