Skip to content

Commit

Permalink
Add and update measles modifications
Browse files Browse the repository at this point in the history
  • Loading branch information
mzrghorbani committed Oct 1, 2024
1 parent 7f9f425 commit 1325445
Show file tree
Hide file tree
Showing 8 changed files with 2,233 additions and 56 deletions.
1,096 changes: 1,096 additions & 0 deletions covid_data/admissions.csv

Large diffs are not rendered by default.

1,098 changes: 1,098 additions & 0 deletions covid_data/cases.csv

Large diffs are not rendered by default.

48 changes: 23 additions & 25 deletions covid_data/disease_measles.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,26 @@
name: Measles
infection_rate: 0.1
infection_rate: 0.02
mortality:
- [4.5, 0.001] # Mortality rate for children under 5 years old
- [14.5, 0.02] # Mortality rate for children aged 5-14 years
- [24.5, 0.1] # Mortality rate for individuals aged 15-24 years
- [34.5, 0.3] # Mortality rate for individuals aged 25-34 years
- [44.5, 0.5] # Mortality rate for individuals aged 35-44 years
- [54.5, 1.0] # Mortality rate for individuals aged 45-54 years
- [64.5, 5.0] # Mortality rate for individuals aged 55-64 years
- [74.5, 10.0] # Mortality rate for individuals aged 65-74 years
- [84.5, 20.0] # Mortality rate for individuals aged 75-84 years
- [999, 50.0] # Mortality rate for individuals aged 85 and older
- [4.5, 0.83] # Mortality rate for children under 5 years old
- [14.5, 0.47] # Mortality rate for children aged 5-14 years
- [24.5, 0.5] # Mortality rate for individuals aged 15-24 years
- [34.5, 0.66] # Mortality rate for individuals aged 25-34 years
- [44.5, 0.66] # Mortality rate for individuals aged 35-44 years
- [54.5, 0.67] # Mortality rate for individuals aged 45-54 years
- [64.5, 0.7] # Mortality rate for individuals aged 55-64 years
- [74.5, 0.72] # Mortality rate for individuals aged 65-74 years
- [84.5, 0.78] # Mortality rate for individuals aged 75-84 years

hospitalised:
- [4.5, 0.01] # Hospitalisation rate for children under 5 years old
- [14.5, 0.02] # Hospitalisation rate for children aged 5-14 years
- [24.5, 0.03] # Hospitalisation rate for individuals aged 15-24 years
- [34.5, 0.04] # Hospitalisation rate for individuals aged 25-34 years
- [44.5, 0.05] # Hospitalisation rate for individuals aged 35-44 years
- [54.5, 0.06] # Hospitalisation rate for individuals aged 45-54 years
- [64.5, 0.08] # Hospitalisation rate for individuals aged 55-64 yearsgit
- [74.5, 0.1] # Hospitalisation rate for individuals aged 65-74 years
- [84.5, 0.15] # Hospitalisation rate for individuals aged 75-84 years
- [999, 0.2] # Hospitalisation rate for individuals aged 85 and older
- [4.5, 0.89] # Hospitalisation rate for children under 5 years old
- [14.5, 0.82] # Hospitalisation rate for children aged 5-14 years
- [24.5, 0.87] # Hospitalisation rate for individuals aged 15-24 years
- [34.5, 0.96] # Hospitalisation rate for individuals aged 25-34 years
- [44.5, 0.85] # Hospitalisation rate for individuals aged 35-44 years
- [54.5, 0.72] # Hospitalisation rate for individuals aged 45-54 years
- [64.5, 0.77] # Hospitalisation rate for individuals aged 55-64 yearsgit
- [74.5, 0.83] # Hospitalisation rate for individuals aged 65-74 years
- [84.5, 0.89] # Hospitalisation rate for individuals aged 75-84 years

mortality_period: 7.0 # Measles mortality typically occurs 7 to 10 days after symptom onset due to complications like pneumonia or encephalitis.
recovery_period: 21.0 # Measles recovery lasts about 2 to 3 weeks from symptom onset as individuals gradually recover.
Expand All @@ -33,9 +31,9 @@ immunity_duration: 9125.0 # Natural immunity after measles recovery is usu
immunity_fraction: 0.8 # The initial fraction of the population that is immune to measles due to vaccination or prior infection.
genotypes:
D4:
infection_rate: 0.12
infection_rate: 0.02
B3:
infection_rate: 0.15
infection_rate: 0.04
H1:
infection_rate: 0.19

infection_rate: 0.07

19 changes: 1 addition & 18 deletions covid_data/vaccinations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,7 @@ vaccine_effect_time: 21 # time between receiving vaccine and immunity conferred
vaccine_immunity_duration: 287 # average time that vaccines give immunity to persons.
antivax_fraction: 0.05

1/12/2020:
vaccines_per_day: 500 # Total no. of vaccines handed out daily.
vaccine_age_limit: 70 # age limit for preferred category.
no_symptoms: 0.6 # relative probability that vaccination reduces COVID infection to mild and asymptomatic, given that infection does take place.
no_transmission: 0.5 # relative probability that vaccination prevents COVID altogether.

1/2/2021:
1/3/2024:
vaccines_per_day: 1200
vaccine_age_limit: 60
no_symptoms: 0.8 # Source: Israel study on Delta - https://twitter.com/segal_eran/status/1418260295550742528
Expand All @@ -20,14 +14,3 @@ antivax_fraction: 0.05
no_symptoms: 0.75
no_transmission: 0.6

1/3/2021:
vaccines_per_day: 1800
vaccine_age_limit: 16
booster:
boosters_per_day: 50

1/4/2021:
no_symptoms: 0.8 # Source: Israel study on Delta - https://twitter.com/segal_eran/status/1418260295550742528
no_transmission: 0.4
booster:
boosters_per_day: 500
2 changes: 1 addition & 1 deletion dump_nearest_locations.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
print("age distribution in system:", e.ages, file=sys.stderr)

e.disease = read_disease_yml.read_disease_yml(
"{}/disease_covid19.yml".format(data_dir)
"{}/disease_measles.yml".format(data_dir)
)

building_file = "{}/{}_buildings.csv".format(data_dir, location)
Expand Down
4 changes: 2 additions & 2 deletions facs/base/person.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@
vac_data = yaml.safe_load(f)
antivax_chance = vac_data["antivax_fraction"]

immune_duration = read_disease_yml("covid_data/disease_covid19.yml").immunity_duration
immunity_fraction = read_disease_yml("covid_data/disease_covid19.yml").immunity_fraction
immune_duration = read_disease_yml("covid_data/disease_measles.yml").immunity_duration
immunity_fraction = read_disease_yml("covid_data/disease_measles.yml").immunity_fraction


@dataclass
Expand Down
4 changes: 2 additions & 2 deletions run.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,14 @@ def parse_arguments() -> dict:
"-m",
"--measures_yml",
action="store",
default="measures_uk",
default="measures_lt",
help="Input YML file containing interventions.",
)
parser.add_argument(
"-d",
"--disease_yml",
action="store",
default="disease_covid19",
default="disease_measles",
help="Input YML file containing disease specification.",
)
parser.add_argument(
Expand Down
18 changes: 10 additions & 8 deletions validate.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
def load_output_data(out_dir):
"""Load the output data from the FACS model."""

filename = f"{out_dir}/out.csv"
filename = f"{out_dir}/klaipeda-measures_lt.csv"
facs_output = pd.read_csv(filename, sep=",", encoding="latin1")

return facs_output
Expand All @@ -35,7 +35,7 @@ def validate():

d_sim = load_output_data(sys.argv[1])
d_adm = load_admissions_data(sys.argv[1])
start_date = datetime.strptime("1/3/2020", "%d/%m/%Y")
start_date = datetime.strptime("2/7/2023", "%d/%m/%Y")

# Validation data preprocessing.
d_adm["date"] = pd.to_datetime(d_adm["date"], format="%d/%m/%Y")
Expand All @@ -48,12 +48,14 @@ def validate():
for _, row in d_adm.iterrows():
day = int(row["days"])
adm = int(row["admissions"])
adm_sim = d_sim.loc[d_sim["#time"] == day]["num hospitalisations today"].values[
0
]
validation_table["days"].append(day)
validation_table["admissions"].append(adm)
validation_table["admissions sim"].append(adm_sim)
print(f"Checking for day: {day}") # Debugging statement
if not d_sim.loc[d_sim["#time"] == day].empty:
adm_sim = d_sim.loc[d_sim["#time"] == day]["num hospitalisations today"].values[0]
validation_table["days"].append(day)
validation_table["admissions"].append(adm)
validation_table["admissions sim"].append(adm_sim)
else:
print(f"No matching record for day {day} in simulation output.") # Debugging statement

# conversion from dict to DF.
d_val = pd.DataFrame.from_dict(validation_table)
Expand Down

0 comments on commit 1325445

Please sign in to comment.