comorbidities.malnutrition

comorbidities.malnutrition

Malnutrition disease model and TB-Malnutrition connector for TB simulation.

Classes

Name Description
Malnutrition Malnutrition disease model for tuberculosis simulation studies.
TB_Nutrition_Connector Connector between TB and Malnutrition disease models.

Malnutrition

comorbidities.malnutrition.Malnutrition(pars=None, **kwargs)

Malnutrition disease model for tuberculosis simulation studies.

Tracks anthropometric measurements (weight, height) using the LMS (Lambda-Mu-Sigma) method and simulates effects of nutritional interventions on growth and development.

Uses Cole’s LMS method for growth reference curves and implements random walk processes for weight percentile evolution.

Parameters

Name Type Description Default
pars dict Parameter overrides (‘beta’, ‘init_prev’) None
**kwargs Additional keyword arguments passed to ss.Disease {}

States

receiving_macro (bool): Whether individual receives macronutrient supplementation receiving_micro (bool): Whether individual receives micronutrient supplementation height_percentile (float): Height percentile (0-1), assumed constant weight_percentile (float): Weight percentile (0-1), evolves over time micro (float): Micronutrient status z-score, evolves over time

Example

::

import starsim as ss
import tbsim
from tbsim.comorbidities.malnutrition import Malnutrition, TB_Nutrition_Connector

tb   = tbsim.TB(name='tb')
mn   = Malnutrition(name='malnutrition')
conn = TB_Nutrition_Connector()
sim  = ss.Sim(diseases=[tb, mn], connectors=conn,
              pars=dict(start='2000', stop='2020'))
sim.run()

References: - https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10876842/ - https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9971264/

Methods

Name Description
dweight_scale Scale parameter for weight change distribution: 0.01 * time_index.
height Calculate height (cm) from height percentiles using LMS method.
init_results Initialize results tracking.
lms Calculate anthropometric measurements using the LMS method.
set_initial_states Set initial state values (placeholder for future correlated weight/height).
step Update weight percentiles via random walk each time step.
update_results Record proportion of individuals alive at this time step.
weight Calculate weight (kg) from weight percentiles using LMS method.
dweight_scale
comorbidities.malnutrition.Malnutrition.dweight_scale(sim, uids)

Scale parameter for weight change distribution: 0.01 * time_index.

height
comorbidities.malnutrition.Malnutrition.height(uids=None)

Calculate height (cm) from height percentiles using LMS method.

init_results
comorbidities.malnutrition.Malnutrition.init_results()

Initialize results tracking.

lms
comorbidities.malnutrition.Malnutrition.lms(
    percentile,
    uids=None,
    metric='Weight',
)

Calculate anthropometric measurements using the LMS method.

Converts percentiles to actual measurements (weight/height) using age- and sex-specific LMS parameters interpolated from reference data.

Parameters
Name Type Description Default
percentile np.ndarray Percentile values (0-1) required
uids np.ndarray Individual IDs (default: all alive) None
metric str ‘Weight’, ‘Height’, ‘Length’, or ‘BMI’ 'Weight'
Returns
Name Type Description
np.ndarray: Measurements in native units (kg, cm, or kg/m^2)
set_initial_states
comorbidities.malnutrition.Malnutrition.set_initial_states(sim)

Set initial state values (placeholder for future correlated weight/height).

step
comorbidities.malnutrition.Malnutrition.step()

Update weight percentiles via random walk each time step.

update_results
comorbidities.malnutrition.Malnutrition.update_results()

Record proportion of individuals alive at this time step.

weight
comorbidities.malnutrition.Malnutrition.weight(uids=None)

Calculate weight (kg) from weight percentiles using LMS method.

TB_Nutrition_Connector

comorbidities.malnutrition.TB_Nutrition_Connector(pars=None, **kwargs)

Connector between TB and Malnutrition disease models.

Modifies TB transition rates based on nutritional status: - Activation risk ratio: how malnutrition affects latent-to-active TB - Clearance risk ratio: how malnutrition affects TB recovery - Relative susceptibility: how malnutrition affects new TB infection risk

Parameters

Name Type Description Default
pars dict Override functions for ‘rr_activation_func’, ‘rr_clearance_func’, ‘relsus_func’ None
**kwargs Additional keyword arguments passed to ss.Connector {}

Methods

Name Description
compute_relsus Relative susceptibility: 2x if micronutrient status < 0.2, else 1x.
lonnroth_bmi_rr Sigmoid BMI-based risk ratio following Lonnroth et al. log-linear relationship.
ones_rr Neutral risk ratios (all ones, no effect).
step Apply nutritional effects to TB transition rates each time step.
supplementation_rr Risk ratio based on supplementation: rate_ratio for those receiving both macro+micro, else 1.
compute_relsus
comorbidities.malnutrition.TB_Nutrition_Connector.compute_relsus(tb, mn, uids)

Relative susceptibility: 2x if micronutrient status < 0.2, else 1x.

lonnroth_bmi_rr
comorbidities.malnutrition.TB_Nutrition_Connector.lonnroth_bmi_rr(
    tb,
    mn,
    uids,
    scale=2,
    slope=3,
    bmi50=25,
)

Sigmoid BMI-based risk ratio following Lonnroth et al. log-linear relationship.

ones_rr
comorbidities.malnutrition.TB_Nutrition_Connector.ones_rr(tb, mn, uids)

Neutral risk ratios (all ones, no effect).

step
comorbidities.malnutrition.TB_Nutrition_Connector.step()

Apply nutritional effects to TB transition rates each time step.

supplementation_rr
comorbidities.malnutrition.TB_Nutrition_Connector.supplementation_rr(
    tb,
    mn,
    uids,
    rate_ratio=0.5,
)

Risk ratio based on supplementation: rate_ratio for those receiving both macro+micro, else 1.