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.