Skip to content

Conversation

@mmsuarezcosta
Copy link
Collaborator

@mmsuarezcosta mmsuarezcosta commented Aug 15, 2025

Updating other adult cancer cancer parameters (removing module hardcoding and adding labels)

To Note:
Discrepancies between comments and values (this is the original code before I removed the hard-coding. The parameter values are that which were previously hard-coded (I ignored the commetns):

       # ----- SCHEDULE MAIN POLLING EVENTS -----
        # Schedule main polling event to happen immediately
        sim.schedule_event(OtherAdultCancerMainPollingEvent(self), sim.date + DateOffset(months=1))
            # Schedule a post-treatment check for 12 months:
            hs.schedule_hsi_event(
                hsi_event=HSI_OtherAdultCancer_PostTreatmentCheck(
                    module=self.module,
                    person_id=person_id,
                ),
                topen=self.sim.date + DateOffset(months=3),
                tclose=None,
                priority=0
            )
            # Schedule another HSI_OtherAdultCancer_PostTreatmentCheck event in one month
            hs.schedule_hsi_event(
                hsi_event=HSI_OtherAdultCancer_PostTreatmentCheck(
                    module=self.module,
                    person_id=person_id
                ),
                topen=self.sim.date + DateOffset(months=3),
                tclose=None,
                priority=0
            )

Parameters to Review labeling:

  • All init_prop: Currently labeled as 'undetermined', but unsure if should be labeled as 'local'
  • min_age_adult_cancer: given that Malawi is specific to Under 5 and Over 5 OPD, I believe this is local
  • Rates and relative rates (all that begin with r, rr, rp): Unsure between 'local' and 'universal'. Have not been able to trace each back to a reference. I took the approach that for any that was a rate of progression (e.g. r_metastatic_local_ln) label as 'universal', any that was a rate of diagnosis and treatment, I labeled it as 'local'

Reference Notes:
NA

@mmsuarezcosta mmsuarezcosta linked an issue Aug 15, 2025 that may be closed by this pull request
@mmsuarezcosta mmsuarezcosta marked this pull request as ready for review August 16, 2025 21:18
@marghe-molaro
Copy link
Collaborator

Updating other adult cancer cancer parameters (removing module hardcoding and adding labels)

To Note: Discrepancies between comments and values (this is the original code before I removed the hard-coding. The parameter values are that which were previously hard-coded (I ignored the commetns):

Yes, I agree with this approach. I have raised an issue #1681 to flag this recurrent problem. Would be good to wait until resolution of this issue before merging this (and other param revamp) PRs.

Parameters to Review labeling:

  • All init_prop: Currently labeled as 'undetermined', but unsure if should be labeled as 'local'

If write-up doesn't explicitly state this was calibrated, policy for now is to assume it wasn't, and ask developers to review later.

  • min_age_adult_cancer: given that Malawi is specific to Under 5 and Over 5 OPD, I believe this is local

I agree, different settings may have different guidelines with regards to age thresholds for care

  • Rates and relative rates (all that begin with r, rr, rp): Unsure between 'local' and 'universal'. Have not been able to trace each back to a reference. I took the approach that for any that was a rate of progression (e.g. r_metastatic_local_ln) label as 'universal', any that was a rate of diagnosis and treatment, I labeled it as 'local'

I would have done the same. We can always ask developers to double check.

@mmsuarezcosta
Copy link
Collaborator Author

@marghe-molaro added back comment of code and comment discrepancy

df.at[person_id, "oac_stage_at_which_treatment_given"] = df.at[person_id, "oac_status"]

# Schedule a post-treatment check for 12 months:
# (NOTE: discrepancy between comment and value)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

indeed -- so we should correct the comment!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Issue is that we currently don't know if it should be 3 months (current parameter value) or 12 months (current code value). Plan was to leave comment as-is.

I have updated the comment to be the current parameter value, and I have added the original value from the comment in the (NOTE) section

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to @andrew-phillips-1 the issue is in the code, not the comment (see discussion in Issue #1681)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're right, thanks for the clarification here @marghe-molaro

@tbhallett
Copy link
Collaborator

Thanks so much @mmsuarezcosta and @marghe-molaro for this.

I've had a look at just this one and we're definitely on the right track.

I've added a few comments already, but on the actual paramneters.csv I couldn't add line specific comments, so have done it here instead.

In a couple of places, I would say the parameters could be 'universal' (rather than 'local') as indicated below. Let me know if you disagree. But this kind of pattern I would expect to be quite common across the modules, so I thought worth raising.

parameter_name value param_label prior_min prior_max prior_note reference TH comment
init_prop_early_other_adult_ca_symptom_other_adult_cancer_by_stage [0.3,0.5,0.8] local [0.0,0.0,0.0] [1.0,1.0,1.0] vague prior Agree
in_prop_other_adult_cancer_stage [0.0002, 0.0002, 0.0004] local [0.0, 0.0, 0.0] [1.0, 1.0, 1.0] vague prior Agree
init_prop_with_early_other_adult_ca_symptom_diagnosed_by_stage [0.3,0.4,0.5] local [0.0,0.0,0.0] [1.0,1.0,1.0] vague prior Agree
init_prop_treatment_status_other_adult_cancer [0.1,0.1,0.1] local [0.0,0.0,0.0] [1.0,1.0,1.0] vague prior Agree
init_prob_palliative_care 0.95 local 0 1 vague prior Agree
r_site_confined_none 1.00E-05 local 0 1 vague prior Agree
rr_site_confined_age3049 5 local 0.01 100 vague prior Universal? The effects of co-factor on incidence will be informed by large studies and is not expected to be specific to local context neccesarily.
rr_site_confined_age5069 21 local 0.01 100 vague prior Universal? The effects of co-factor on incidence will be informed by large studies and is not expected to be specific to local context neccesarily.
rr_site_confined_age70 60 local 0.01 100 vague prior Universal? The effects of co-factor on incidence will be informed by large studies and is not expected to be specific to local context neccesarily.
rr_site_confined_hiv 4.13 local 0.01 100 vague prior Universal? The effects of co-factor on incidence will be informed by large studies and is not expected to be specific to local context neccesarily.
r_local_ln_site_confined_other_adult_ca 0.15 universal 0 1 vague prior Agree
rr_local_ln_other_adult_ca_undergone_curative_treatment 0.1 universal 0.01 100 vague prior Agree
r_metastatic_local_ln 0.15 universal 0 1 vague prior Agree
rr_metastatic_undergone_curative_treatment 0.2 universal 0.01 100 vague prior Agree
r_death_other_adult_cancer 0.2 universal 0 1 vague prior Agree
r_early_other_adult_ca_symptom_site_confined_other_adult_ca 0.02 local 0 1 vague prior Agree
rr_early_other_adult_ca_symptom_local_ln_other_adult_ca 3 local 0.01 100 vague prior Universal? The effects of co-factor on incidence will be informed by large studies and is not expected to be specific to local context neccesarily.
rr_early_other_adult_ca_symptom_metastatic_other_adult_ca 10 local 0.01 100 vague prior Universal? The effects of co-factor on incidence will be informed by large studies and is not expected to be specific to local context neccesarily.
rp_other_adult_cancer_age3049 1.5 local 0.01 100 vague prior Agree
rp_other_adult_cancer_age5069 2 local 0.01 100 vague prior Agree
rp_other_adult_cancer_age70 4 local 0.01 100 vague prior Agree
sensitivity_of_diagnostic_device_for_other_adult_cancer_with_other_adult_ca_site_confined 0.8 universal 0 1 vague prior Agree
sensitivity_of_diagnostic_device_for_other_adult_cancer_with_other_adult_ca_local_ln 0.95 universal 0 1 vague prior Agree
sensitivity_of_diagnostic_device_for_other_adult_cancer_with_other_adult_ca_metastatic 0.95 universal 0 1 vague prior Agree
odds_ratio_health_seeking_in_adults_early_other_adult_ca_symptom 4 local 0.01 100 vague prior Agree
post_treatment_check_months 3 local 1 12 vague prior Agree
follow_up_appt_months 3 local 1 12 vague prior Agree
palliative_care_interval_months 1 local 1 12 design decision Agree
treatment_bed_days 5 local 1 30 vague prior Agree
palliative_care_bed_days 15 local 1 50 vague prior Agree
min_age_adult_cancer 5 local 0 18 vague prior Agree
initial_polling_start_months 1 undetermined 1 12 design decision Agree
initial_polling_start_months_palliative_care 1 undetermined 1 12 design decision Agree
initial_polling_start_delay_weeks_palliative_care 1 undetermined 1 12 design decision Agree
main_polling_event_frequency_months 1 undetermined 1 12 design decision Agree

@mmsuarezcosta
Copy link
Collaborator Author

mmsuarezcosta commented Sep 2, 2025

  • rr_site_confined_age3049, rr_site_confined_age5069, rr_site_confined_agege70: Agreed that these are universal in principle. However, as I was going through the write-up, I deemed that these values were derived from a local source based on the following statement: "Jointly, the chosen parameter values produce the model outputs shown in Table 3. Informed by incidence rates of other_adult_cancers from Malawi cancer registry and other studies (Chasimpha et al, 2017), incidence of other_adult_cancers is assumed to be dependent on age. "

  • rr_site_confined_hiv: Agree. Write-up states universal source

  • rr_early_other_adult_ca_symptom_local_ln_other_adult_ca, rr_early_other_adult_ca_symptom_metastatic_other_adult_ca: Agree, and do not find reference in write-up to deem otherwise

@andrew-phillips-1
Copy link
Collaborator

I would think it was hard to regard any of these as universal since this is a mixture of all other adults cancers ?

@mmsuarezcosta
Copy link
Collaborator Author

I would think it was hard to regard any of these as universal since this is a mixture of all other adults cancers ?

That is a fair point. At the same time, the way we have defined 'universal' is that the variable should be agnostic of local differences. Thus, anything that has to with test sensitivity/ specificity, disease progression, or death rates are defined as 'universal'. I would argue to keep the values defined as universal above as-is.

Would be good to also have @marghe-molaro input on this.

@andrew-phillips-1
Copy link
Collaborator

Happy for you to stick with "universal" for the reasons you state.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Other Adult Cancer Module

5 participants