UCL / TLOmodel

Epidemiology modelling framework for the Thanzi la Onse project
https://www.tlomodel.org/
MIT License
11 stars 5 forks source link

Fixing Epidemiological development of COPD Module #936

Closed mnjowe closed 1 year ago

mnjowe commented 1 year ago

This is an outline of questions surrounding modeling of COPD module. @andrew-phillips-1 , @tbhallett and @tdm32 feel free to add more questions if any.

  1. Can people transition lung function backwards without health system interaction i.e. IF they naturally get better, they stop smoking or they stop being exposed to wood burn smoke?
  2. Is COPD linked with Lung Cancer?
  3. Should we say lung functionor lung obstruction?

copd_presentation - ap.pptx

andrew-phillips-1 commented 1 year ago

Thanks @mnjowe I would add.

Might we need to consider that the rates of transition from one level of lung function to the next might depend on the current level, with the progression rate decreasing with higher level ?

We may not need to include oxygen as a treatment for people with a moderate exacerbation, perhaps only those with severe.

For lung cancer I might say, it is unclear if COPD is a cause of lung cancer. Lung cancer might might well accelerate the rate of lung function loss.

mnjowe commented 1 year ago

Thanks @mnjowe I would add.

Might we need to consider that the rates of transition from one level of lung function to the next might depend on the current level, with the progression rate decreasing with higher level ?

We may not need to include oxygen as a treatment for people with a moderate exacerbation, perhaps only those with severe.

For lung cancer I might say, it is unclear if COPD is a cause of lung cancer. Lung cancer might might well accelerate the rate of lung function loss.

Thanks @andrew-phillips-1 for this.

tbhallett commented 1 year ago

Andrew's further comments when reviewing an earlier PR:

https://github.com/UCL/TLOmodel/pull/872/files#r1174521737

https://github.com/UCL/TLOmodel/pull/872#issuecomment-1518711523

https://github.com/UCL/TLOmodel/pull/872#discussion_r1174521737

mnjowe commented 1 year ago

Hi @tbhallett and @andrew-phillips-1. according to the way the COPD module has been programmed currently, it seems COPD deaths are dependent on availability of consumables such that when we have all requested consumable available, there won't be any COPD death. I run the model from 2010-2030 with an initial population size of 20,000 but there is no any COPD death logged. all deaths that are supposed to occur are cancelled with availability of needed consumables(oxygen and aminophylline). Is this the behavior we want to happen?

andrew-phillips-1 commented 1 year ago

Hi @mnjowe No, the probability of death should be reduced by a parameter reflecting the efficacy of oxygen. Let's give it a value 0.7 for now, so the death risk if reduced by 30%. For aminophylline I think there is no evidence of a mortality benefit so for now the value for this parameter should be 1.

mnjowe commented 1 year ago

great, thanks @andrew-phillips-1. Let me generate some plots with the new parameter and see how it will look like

tbhallett commented 1 year ago

Further comments:

We wish to see COPD Deaths by age and by lung function.

https://github.com/UCL/TLOmodel/pull/872#issuecomment-1532826448

andrew-phillips-1 commented 1 year ago

As discussed today, we would like to see outputs of the rate of all cause death by lung function (lung obstruction) level. We will compare the relative rate with data from studies yet to be identified. We should also look at the rate of COPD death by lung function level. By design the rate should be zero at lung function levels below 5.

andrew-phillips-1 commented 1 year ago

Hi @mnjowe I think we discussed but I don't see it written here that we need to include an effect of current smoking on the rate of progression to the next lung obstruction category level. This will be a large relative rate, of the order of 10. SImilarly for having a wood-burning stove.

mnjowe commented 1 year ago

Hi @andrew-phillips-1 and @tbhallett . Kindly find attached COPD plots. Thanks copd_plots.docx

andrew-phillips-1 commented 1 year ago

Thanks @mnjowe Great to see these. See a few comments attached. copd_plots - ap.docx

andrew-phillips-1 commented 1 year ago

@mnjowe Your new branch is copd_phase_II I assume ?

mnjowe commented 1 year ago

Yes it is @andrew-phillips-1 . Apologies there are other multiple commits from master branch. forgot to update master before checking out to this new branch.

andrew-phillips-1 commented 1 year ago

Hi @mnjowe Thanks. In the copd.py I don't see a parameter yet for the relative effect of current tobacco smoking on the rate of lung function progression. Maybe I missed that though.

mnjowe commented 1 year ago

Hi @mnjowe Thanks. In the copd.py I don't see a parameter yet for the relative effect of current tobacco smoking on the rate of lung function progression. Maybe I missed that though.

oh yes there isn't currently. should that be what you said on this comment? https://github.com/UCL/TLOmodel/issues/936#issuecomment-1550019107

andrew-phillips-1 commented 1 year ago

Yes exactly. I suggest we start with a relative rate of 10 for current tobacco and 2 for woodburning stove.

mnjowe commented 1 year ago

okay good!

andrew-phillips-1 commented 1 year ago

Hi @mnjowe Thanks. I can see the commits. Where can I see the updated plots ?

mnjowe commented 1 year ago

Hi @andrew-phillips-1. I will post them all here once I'm done addressing all your comments plus adding the two parameters, smoking and wood burning stove. Thanks

andrew-phillips-1 commented 1 year ago

Hi @mnjowe Sorry I misunderstood your previous message and I had thought you were re-attaching graphs.

mnjowe commented 1 year ago

Hi @andrew-phillips-1 . Kindly find attached COPD plots for your review. Thanks

new_copd_plots.docx

andrew-phillips-1 commented 1 year ago

Thanks @mnjowe These graphs are very nice. We have the effect of smoking and the consequent effect of gender. So we are moving in the right direction. I think the next thing to change is the initial lung function category in 2010 for smokers - it seems like we have too high an effect of smoking. Could you point me to the resources file with the parameter values and I can suggest some values ? Could you remind me what branch you are on ? Thanks Andrew

mnjowe commented 1 year ago

Thanks @andrew-phillips-1 . The branch is mnjowe/copd_phase_II and the resource file is https://github.com/UCL/TLOmodel/blob/mnjowe/copd_phase_II/resources/ResourceFile_Copd.csv

andrew-phillips-1 commented 1 year ago

Thanks @mnjowe That's the one I was looking at but I could not see the effect of smoking in the resource file. I can see it now. Had you maybe not pushed the latest commits ? What I can't see is the parameter determining the lung function in 2010 according to smoking. Is that hard coded then ? (I will look at the code to see for myself also). I feel we should ideally have parameters in the resource file for this also. Thanks

mnjowe commented 1 year ago

Thanks @andrew-phillips-1 . Yes I have pushed some commits not long ago. For the parameter determining lung function in 2010, this is the function that is determining the lung function and here is how the parameter to determine the lung function is set. I agree with you that it would be good to have this parameter in resource file. We only have to decide on what probabilities will those two lung function categories(5 and 6) take because as it is we are generating probabilities using a function (np.ones(len(lung_function_categories)) / len(lung_function_categories)).

mnjowe commented 1 year ago

which is 0.5 for both categories(5 and 6)

andrew-phillips-1 commented 1 year ago

Thanks @mnjowe I think we might need to refine this so we have a linear model with lung function category in 2010 also depending on age. For now, I suggest changing cats = ch_lungfunction_cats[4:6] to cats = ch_lungfunction_cats[2:5] for smokers

mnjowe commented 1 year ago

This is noted, Thanks Andrew.

mnjowe commented 1 year ago

Hi @andrew-phillips-1. Kindly find attached copd plots according to your last comment. Thanks _copd_plots.docx

andrew-phillips-1 commented 1 year ago

Thanks @mnjowe This is getting closer. In 2010, maybe in smokers age 40-59 keep cats = ch_lungfunction_cats[2:5] but for smokers age < 40 I suggest cats = ch_lungfunction_cats[2:4] and for smokers age > 60 cats = ch_lungfunction_cats[3:5], although ideally we would specify the distribution across lung function categories by age in a more granular way. I also suggest that we change rel_risk_tob to 7 from 10 as it looks like the rate of progression in smokers is a bit too high. For the graphs of deaths by age, I assume this is for 2022 ?

mnjowe commented 1 year ago

Hi @andrew-phillips-1 Thanks for the feedback. I will add all these suggestions and attach outputs later today. For copd deaths by age graph, I have to rework on the code to plot for 2022(I modified it and it is plotting for all years).

mnjowe commented 1 year ago

Hi @andrew-phillips-1. see attached, COPD plots __copd_plots.docx

andrew-phillips-1 commented 1 year ago

Thanks @mnjowe What is the population size of adults in 2022 ? I see there are only 5 COPD deaths and I am interested in the COPD death rate amongst people with lung function 5 or 6 (number of COPD deaths / number of people with lung function 5 or 6). On page 1 we still see that the proportion in each lung function category is changing over time when there should not be much change. I think we will only remove this change over time this by allocating lung function by age and smoking status in 2010 according to what we have by age on the the top of page 2 for 2022. Do you see what I mean ?

mnjowe commented 1 year ago

Hi @andrew-phillips-1 . For 2022

There are 1,768 people in lung function category 5 and 224 in category 6, making it a total of 1992 individuals in categories 5 and 6. There are 5 COPD deaths in category 5 and 1 in category 6, making it a total of 6 COPD deaths.

copd death rate amongst people with lung function 5 or 6 is 0.003012

andrew-phillips-1 commented 1 year ago

Thanks @mnjowe

mnjowe commented 1 year ago

Hi @andrew-phillips-1. Kindly find attached copd plots for your review as per our discussion in last week's epi call. Here is a resource file with some new parameters added and some parameter values modified. Thanks

copd_plotting.docx

timcolbourn commented 1 year ago

Looks great Emmanuel - please find my comments attached, as just discussed on Teams copd_plotting_TC.docx

mnjowe commented 1 year ago

Thanks so much @timcolbourn . I will take a look.

mnjowe commented 1 year ago

For the sake of putting all issues together, I'm adding this comment from @marghe-molaro .

Hi emmanuel, another small point about the smokers lung function by age: age category 85-89 yo also seems a bit odd, because there seems to be a big improvement in terms of category 2 taking 40% (even though it was steadily decreasing to almost none for younger age groups) and no categories 3 and 4 with a jump straight to 5. The latter point might be due to small number statistics in that age group though.

mnjowe commented 1 year ago

Hi @andrew-phillips-1 , @tbhallett. Kindly find attached COPD deaths (modal output against GBD data). seems we are missing it on the female deaths and age groups. Andrew, any suggestion on what can be changed? Thanks

image

image

mnjowe commented 1 year ago

@andrew-phillips-1 and @tbhallett , I have also changed this line to 'Chronic obstructive pulmonary disease' for I think is the cause of death and Daly we want in this module?

andrew-phillips-1 commented 1 year ago

Thanks @mnjowe Yes I think that change of name is right.
I suggest that we don't worry at this stage about hitting the copd death rate in women. We have calibrated to data on smoking by sex. To get the COPD death rate higher we would have to have some effect whereby women have greater exposure to wood burn stove.
I'm more concerned about how we look so different on the COPD death rate by age. One suggestion for a change is to reduce prob_progress_to_next_cat from 0.01 to 0.002 so that we are not getting people up in categories 5 and 6 until they are quite a bit older. That will of course lower the overall death rate. I think we might need to have an independent effect of age on risk of death. So in the linear model for risk of death we might have prob_will_die_sev_exacerbation = 0.8 if age > 60, 0.1 if age 40-59 and 0 if age < 40. Then the effect of oxygen would be to multiply this risk by 0.6. Do you see what I have in mind ?

mnjowe commented 1 year ago

Hi @andrew-phillips-1 . Thanks for this, I seem not to get it on the effect of oxygen. You say what are we multiplying by 0.6?

andrew-phillips-1 commented 1 year ago

Hi @mnjowe Are you OK now with my suggestion for the oxygen effect being to multiply the death risk by 0.6 ? Or have I not been clear enough in what I mean ?

mnjowe commented 1 year ago

I'm okay with that @andrew-phillips-1, thanks.

andrew-phillips-1 commented 1 year ago

Hi @mnjowe I've been working a bit more on the COPD write-up. Have you pushed your latest commits to Github ? Thanks

mnjowe commented 1 year ago

Hi @andrew-phillips-1 . Now that we have agreed on the plots, I just have to polish-up the code and ensure the tests are running just fine. I will push by tomorrow and will let you know. Thanks

andrew-phillips-1 commented 1 year ago

OK great thanks @mnjowe

One thing I was reflecting on was the values for prob_mod_exacerb, by ch_lungfunction = [0,0,0,0.01,0.05,0.0,0.0]

I would suggest we change to prob_mod_exacerb, by ch_lungfunction = [0,0,0,0.01,0.05,0.05,0.05] as otherwise the risk of any exacerbation (mod or sev) drops from lungfunction category 4 to 5.

andrew-phillips-1 commented 1 year ago

For the disability weights, I looked at the GBD 2019 and think we should go with these values by lungfunction:

        0: 0.0,
        1: 0.0,
        2: 0.0,
        3: 0.0,
        4: 0.02,
        5: 0.2,
        6: 0.4,
mnjowe commented 1 year ago

Thanks for these suggestions @andrew-phillips-1, I will include them all.