emodpy_malaria.interventions.udbednet module

emodpy_malaria.interventions.udbednet.UDBednet(camp, start_day: int = 1, discard_config: dict = None, coverage: float = 1, ind_property_restrictions: list = None, blocking_eff: float = 0.9, blocking_constant_duration: int = 0, blocking_decay_rate: float = 0.0013698630136986301, killing_eff: float = 0.6, killing_constant_duration: int = 0, killing_decay_rate: float = 0.0006849315068493151, repelling_eff: float = 0, repelling_constant_duration: int = 0, repelling_decay_rate: float = 0.0006849315068493151, iv_name: str = 'UsageDependentBednet', age_dependence: dict = None, seasonal_dependence: dict = None, insecticide: str = None, node_ids: list = None, triggered_campaign_delay: dict = None, triggers: list = None, duration: int = - 1, check_eligibility_at_trigger: bool = False)

Add an insecticide-treated net (ITN) intervention with a seasonal usage pattern to the campaign using the UsageDependentBednet class. The arguments birth_triggered and triggered_condition_list are mutually exclusive. If both are provided, triggered_condition_list is ignored. You must add the following custom events to your config.json:

  • Bednet_Discarded

  • Bednet_Got_New_One

  • Bednet_Using

Parameters
  • start – The day on which to start distributing the bednets (Start_Day parameter).

  • coverage – Fraction of the population receiving bed nets in a given distribution event

  • blocking_config

    The value passed gets directly assigned to the Blocking_Config parameter. Durations are in days. Default is blocking_config= WaningEffectExponential(Decay_Time_Constant=730, Initial_Effect=0.9)

    This could be dictionary such as:

    {
        "Box_Duration": 3650,
        "Initial_Effect": 0,
        "class": "WaningEffectBox"
    }
    

  • killing_config

    The value passed gets directly assigned to the Killing_Config parameter. Durations are in days. Default is killing_config = WaningEffectExponential(Decay_Time_Constant=1460, Initial_Effect=0.6)

    This could be dictionary such as:

    {
        "Box_Duration": 3650,
        "Initial_Effect": 0,
        "Decay_Time_Constant": 150,
        "class": "WaningEffectBoxExponential"
    }
    

  • repelling_config

    The value passed gets directly assigned to the Repelling_Config parameter. Durations are in days. Default is repelling_config = WaningEffectExponential(Decay_Time_Constant=1460, Initial_Effect=0.0)

    This could be dictionary such as:

    {
        "Box_Duration": 3650,
        "Initial_Effect": 0,
        "Decay_Time_Constant": 150,
        "class": "WaningEffectBoxExponential"
    }
    

  • discard_config

    A dictionary of parameters needed to define expiration distribution. No need to definite the distribution with all its parameters Default is bednet being discarded with EXPONENTIAL_DISTRIBUTION with Expiration_Period_Exponential of 10 years

    Examples:

    for Gaussian: {"Expiration_Period_Distribution": "GAUSSIAN_DISTRIBUTION",
        "Expiration_Period_Gaussian_Mean": 20, "Expiration_Period_Gaussian_Std_Dev":10}
    for Exponential {"Expiration_Period_Distribution": "EXPONENTIAL_DISTRIBUTION",
        "Expiration_Period_Exponential":150}
    

  • age_dependence

    A dictionary defining the age dependence of net use. Must contain a list of ages in years and list of usage rate. Default is uniform across all ages. Times are in years of age Examples:

    {"Times":[], "Values":[]} or {"youth_cov":0.7, "youth_min_age":3, "youth_max_age":13}
    

  • seasonal_dependence

    A dictionary defining the seasonal dependence of net use. Default is constant use during the year. Times are given in days of the year; values greater than 365 are ignored. Dictionaries can be (times, values) for linear spline or (minimum coverage, day of maximum coverage) for sinusoidal dynamics. Times are days of the year Examples:

    {"Times":[], "Values":[]} or {"min_cov":0.45, "max_day":300}
    

  • node_ids – The list of nodes to apply this intervention to (Node_List parameter). If not provided, set value of NodeSetAll.

  • birth_triggered – If true, event is specified as a birth-triggered intervention.

  • duration – If run as a birth-triggered event or a trigger_condition_list, specifies the duration for the distribution to continue. Default is to continue until the end of the simulation.

  • triggered_campaign_delay – (Optional) After the trigger is received, the number of time steps until the campaign starts. Eligibility of people or nodes for the campaign is evaluated on the start day, not the triggered day. triggered_campaign_delay is a dict. Specify the actual delay distribution params, not the distribution type. E.g., { “Delay_Distribution_Constant”: 14” } Delay is in days

  • trigger_condition_list – (Optional) A list of the events that will trigger the ITN intervention. If included, start is the day when monitoring for triggers begins. This argument cannot configure birth-triggered ITN (use birth_triggered instead).

  • ind_property_restrictions – The IndividualProperty key:value pairs that individuals must have to receive the intervention ( Property_Restrictions_Within_Node parameter). In the format [{ "BitingRisk":"High"}, {"IsCool":"Yes}].

  • node_property_restrictions – The NodeProperty key:value pairs that nodes must have to receive the intervention (Node_Property_Restrictions parameter). In the format [{"Place":"RURAL"}, {"ByALake":"Yes}]

  • check_eligibility_at_trigger – if triggered event is delayed, you have an option to check individual/node’s eligibility at the initial trigger or when the event is actually distributed after delay.

Returns

None

NOTE: Previous was of setting discard config is no longer available, you can translate it to the current way by: discard_config the old way {‘halflife1’: 260, ‘halflife2’: 2106, ‘fraction1’: float(table_dict[‘fast_fraction’]) discard_config translated = {“Expiration_Period_Distribution”: “DUAL_EXPONENTIAL_DISTRIBUTION”, “Expiration_Period_Mean_1”: discard_halflife, or halflife1 “Expiration_Period_Mean_2”: 365 * 40, or halflife2 “Expiration_Period_Proportion_1”: 1 or ‘fraction1’}

#fixme This is dtk-tools commenting, needs an update for emodpy Example:

discard_config = {"Expiration_Period_Exponential": 10 * 365}
age_dependence = {"Times": [0, 4, 10, 60],
           "Values": [1, 0.9, 0.8, 0.5]}
add_ITN_age_season(config_builder, start=1, coverage=1, killing_config=killing_config,
            blocking_config=blocking_config, discard_config = discard_config
            age_dependence=age_dependence, cost=5, birht_triggered=True, duration=-1,
            node_property_restrictions=[{"Place": "Rural"]):
emodpy_malaria.interventions.udbednet.new_intervention_as_file(camp, start_day, filename=None)