From 574c2a4a0fe7c5cc75e13526a03e95d02dc6f904 Mon Sep 17 00:00:00 2001 From: "Malte Londschien (euler)" Date: Thu, 12 Jun 2025 12:01:06 +0200 Subject: [PATCH 01/15] Update outcomes, add script for ICD codes, update load function. --- environment.yml | 2 +- icu_features/__init__.py | 3 + icu_features/constants.py | 3 +- icu_features/feature_engineering.py | 127 ++++++++++++++++++---------- icu_features/icd_codes.py | 95 +++++++++++++++++++++ icu_features/load.py | 6 +- resources/variables.tsv | 3 +- 7 files changed, 185 insertions(+), 54 deletions(-) create mode 100644 icu_features/icd_codes.py diff --git a/environment.yml b/environment.yml index 9f0a8cb..20096bd 100644 --- a/environment.yml +++ b/environment.yml @@ -8,6 +8,6 @@ dependencies: - pip - click - numpy>=2.1 - - polars + - polars>=1.26 - pytest - pyarrow \ No newline at end of file diff --git a/icu_features/__init__.py b/icu_features/__init__.py index e69de29..086ee6d 100644 --- a/icu_features/__init__.py +++ b/icu_features/__init__.py @@ -0,0 +1,3 @@ +from .load import load + +__all__ = ["load"] \ No newline at end of file diff --git a/icu_features/constants.py b/icu_features/constants.py index 7002ebb..dadb565 100644 --- a/icu_features/constants.py +++ b/icu_features/constants.py @@ -2,7 +2,7 @@ VARIABLE_REFERENCE_PATH = Path(__file__).parents[1] / "resources" / "variables.tsv" -HORIZONS = [8, 24, 72] +HORIZONS = [8, 24] CAT_MISSING_NAME = "(MISSING)" @@ -124,7 +124,6 @@ CONTINUOUS_FEATURES = [ "mean", - "sq_mean", "std", "slope", "fraction_nonnull", diff --git a/icu_features/feature_engineering.py b/icu_features/feature_engineering.py index 5255aca..249896f 100644 --- a/icu_features/feature_engineering.py +++ b/icu_features/feature_engineering.py @@ -435,7 +435,7 @@ def polars_nan_or(*args: pl.Expr): ) -def outcomes(): +def outcomes(dataset): """ Compute outcomes. @@ -480,31 +480,44 @@ def outcomes(): .otherwise(False) ).alias("decompensation_at_24h") - # respiratory_failure_at_24h + # (severe) respiratory_failure_at_24h # If the PaO2/FiO2 ratio is below 200, the patient is considered to have a - # respiratory failure (event). This used pf_ratio from other_variables(). This uses - # a fio2 which was imputed by 21% if the patient was not ventilated. + # respiratory failure event. If it's below 100, the patient is considered to have a + # severe respiratory event. We use a fio2 which was imputed by 21% if the patient + # was not ventilated. + vent_ind = pl.col("vent_ind") | pl.col("vent_ind").shift(-1, fill_value=False) + fio2 = (pl.col("fio2") / 100.0).fill_null(pl.when(~vent_ind).then(0.21)) + RESP_PF_DEF_TSH = 200.0 - events = pl.col("pf_ratio") < RESP_PF_DEF_TSH - resp_failure_at_24h = eep_label(events, 24).alias("respiratory_failure_at_24h") + SEVERE_RESP_PF_DEF_TSH = 100.0 + RESP_SAO2_DEF_TSH = 90 + SEVERE_RESP_SAO2_DEF_TSH = 90 + + # There are very few pf/ratio values in nwicu, picdb, and zigong. For picdb and + # zigong we use sao2 instead. For nwicu, not even sao2 is available. We use the + # noisier spo2 instead. + pf_ratio = pl.col("po2") / fio2 + if dataset in ["nwicu", "picdb", "zigong"]: + events = pl.col("sao2") <= RESP_SAO2_DEF_TSH + severe_events = pl.col("sao2") <= SEVERE_RESP_SAO2_DEF_TSH + else: + events = pf_ratio < RESP_PF_DEF_TSH + severe_events = pf_ratio < SEVERE_RESP_PF_DEF_TSH - # remaining_los - remaining_los = pl.col("los_icu") - pl.col("time_hours") / 24.0 - remaining_los = pl.when(remaining_los > 0).then(remaining_los).otherwise(None) - remaining_los = remaining_los.alias("remaining_los") + respiratory_failure_at_24h = eep_label(events, 24).alias("respiratory_failure_at_24h") + severe_respiratory_failure_at_24h = eep_label(severe_events, 24).alias("severe_respiratory_failure_at_24h") # Severe respiratory failure label with simple imputation of po2 and fio2, related # to Hueser et al. https://www.medrxiv.org/content/10.1101/2024.01.23.24301516v1. - SEVERE_RESP_PF_DEF_TSH = 100 - pf_ratio = ( + pf_ratio_imputed = ( 100 * pl.col("po2").forward_fill(1).backward_fill(1) / pl.col("fio2").forward_fill(1).backward_fill(1) ) - events = pf_ratio < SEVERE_RESP_PF_DEF_TSH - respiratory_failure_at_24h_severe_imputed = eep_label( + events = pf_ratio_imputed < SEVERE_RESP_PF_DEF_TSH + severe_respiratory_failure_at_24h_imputed = eep_label( events, 24, switches_only=False - ).alias("respiratory_failure_at_24h_severe_imputed") + ).alias("severe_respiratory_failure_at_24h_imputed") # circulatory_failure_at_8h # A patient is considered to have a circulatory failure if the mean arterial @@ -541,9 +554,17 @@ def outcomes(): # If the map is "good" (not low and not on drugs) and the lactate is not high, the # event label is negative. If the map and lact don't agree, or if one of them is # missing, the event label is missing. - event = ( - pl.when(bad_map & bad_lact).then(True).when(~bad_map & ~bad_lact).then(False) - ) + if dataset in ["picdb", "zigong"]: + # For PICdb and Zigong, map is not consistently available. We relax the + # condition for a "False": A patient is not in an event if the lactate is good + # and the map is good or not available. + event = ( + pl.when(bad_map & bad_lact).then(True).when(~bad_map.fill_null(False) & ~bad_lact).then(False) + ) + else: + event = ( + pl.when(bad_map & bad_lact).then(True).when(~bad_map & ~bad_lact).then(False) + ) circulatory_failure_at_8h = eep_label(event, 8).alias("circulatory_failure_at_8h") # Circulatory failure label using interpolated lactate, inspured by Hyland et al. @@ -621,8 +642,8 @@ def kdigo_3(crea, rel_urine_rate, crrt): crrt.cast(pl.Boolean).replace(False, None).forward_fill().fill_null(False), (crea / crea_baseline) >= 3.0, high_creatine, - low_urine_rate_24, - anuria, + low_urine_rate_24.fill_null(False), + anuria.fill_null(False), ) aki_3 = kdigo_3( @@ -631,7 +652,6 @@ def kdigo_3(crea, rel_urine_rate, crrt): pl.col("ufilt_ind"), ) kidney_failure_at_48h = eep_label(aki_3, 48).alias("kidney_failure_at_48h") - # Kidney failure with creatine imputation motivated by Lyu et al. 2024: # https://www.medrxiv.org/content/10.1101/2024.02.01.24302063v1 # Similarly to circulatory_failure_8h_imputed, we linearly interpolate creatine @@ -678,16 +698,28 @@ def kdigo_3(crea, rel_urine_rate, crrt): .forward_fill(7 * 24) ) .then(4.0) - .otherwise(pl.col("crea").forward_fill(1).backward_fill(1)) + .otherwise(pl.col("crea").backward_fill(1)) ) - bili = pl.col("bili").forward_fill(1).backward_fill(1).clip(1, None) - inr = pl.col("inr_pt").forward_fill(1).backward_fill(1).clip(1, None) - meld_score = 3.78 * crea.log() + 11.2 * inr.log() + 9.57 * bili.log() + 6.43 - meld_event = meld_score > 30 + bili = pl.col("bili").backward_fill(1) + + if dataset in ["sic", "nwicu", "picdb"]: + # These datasets don't report inr_pt, but just the non-standardized value pt. + # We impute, assuming an ISI=1.0 (appears reasonable for modern equipment) and + # mean normal PT = 12s. + inr_pt = (pl.col("pt") / 12).backward_fill(1) + else: + inr_pt = pl.col("inr_pt").backward_fill(1) + + SEVERE_MELD_DEF_TSH = 30.0 + meld_event = 3.78 * bili.clip(1.0, None).log() + 11.2 * inr_pt.clip(1.0, None).log() + 9.57 * crea.clip(1.0, None).log() + 6.43 >= SEVERE_MELD_DEF_TSH severe_meld_at_48h = eep_label(meld_event, 48, switches_only=False).alias( "severe_meld_at_48h" ) + # Different to the meld above, we clip from below by 0.1 instead of 1.0. + meld_score = 3.78 * bili.clip(0.1, None).log() + 11.2 * inr_pt.clip(0.1, None).log() + 9.57 * crea.clip(0.1, None).log() + 6.43 + meld_score_in_24h = meld_score.shift(-24).alias("meld_score_in_24h") + liver_sofa3 = pl.col("bili").forward_fill(1).backward_fill(1) > 6.0 liver_sofa3_at_48h = eep_label(liver_sofa3, 48).alias("liver_sofa3_at_48h") @@ -697,15 +729,17 @@ def kdigo_3(crea, rel_urine_rate, crrt): ) log_pf_ratio_in_12h = ( - pl.col("pf_ratio").log().shift(-12).alias("log_pf_ratio_in_12h") + pf_ratio.log().shift(-12).alias("log_pf_ratio_in_12h") ) + log_creatinine_in_24h = (pl.col("crea") + 0.1).log().shift(-24).alias("log_creatinine_in_24h") + return [ mortality_at_24h, decompensation_at_24h, - resp_failure_at_24h, - respiratory_failure_at_24h_severe_imputed, - remaining_los, + respiratory_failure_at_24h, + severe_respiratory_failure_at_24h, + severe_respiratory_failure_at_24h_imputed, circulatory_failure_at_8h, circulatory_failure_at_8h_imputed, kidney_failure_at_48h, @@ -713,8 +747,10 @@ def kdigo_3(crea, rel_urine_rate, crrt): hyperglycemia_at_8h, hypoglycemia_at_8h, severe_meld_at_48h, + meld_score_in_24h, liver_sofa3_at_48h, log_lactate_in_4h, + log_creatinine_in_24h, log_pf_ratio_in_12h, ] @@ -731,8 +767,10 @@ def main(dataset: str, data_dir: str | Path): # noqa D if "patient_id" not in sta.collect_schema().names(): sta = sta.with_columns(pl.col("stay_id").alias("patient_id")) + if "hospital_id" not in sta.collect_schema().names(): + sta = sta.with_columns(pl.lit(0).alias("hospital_id")) - dyn = dyn.join(sta, on="stay_id", how="full", coalesce=True, validate="m:1") + dyn = dyn.join(sta, on="stay_id", how="left", coalesce=True, validate="m:1") dyn = dyn.with_columns( (pl.col("time").dt.total_hours()).cast(pl.Int32).alias("time_hours") ) @@ -769,7 +807,7 @@ def main(dataset: str, data_dir: str | Path): # noqa D dyn = dyn.join(time_ranges, on=["stay_id", "time_hours"], how="full", coalesce=True) dyn = dyn.sort(["stay_id", "time_hours"]) - expressions = ["time_hours", "anchoryear", "carevue", "metavision", "patient_id"] + expressions = ["time_hours"] for row in variables.rows(named=True): tag = row["VariableTag"] @@ -809,15 +847,20 @@ def main(dataset: str, data_dir: str | Path): # noqa D dyn = dyn.with_columns(col) - expressions += additional_variables() + outcomes() + expressions += additional_variables() + outcomes(dataset=dataset) - q = dyn.group_by("stay_id").agg(expressions).explode(pl.exclude("stay_id")) + dyn = dyn.group_by("stay_id").agg(expressions).explode(pl.exclude("stay_id")) + dyn = dyn.join( + sta.select( + ["stay_id", "year", "carevue", "metavision", "patient_id", "adm", "insurance", "ward", "hospital_id", "icd10_blocks", "icd10_ccsr"] + ), on="stay_id", how="left", coalesce=True, validate="m:1") - # These hashes are useful for subsetting. .hash() returns a u64-int. By normalizing - # with 2**64, we get a pseudo-random float between 0 and 1. - q = q.with_columns( + dyn = dyn.with_columns( + # These hashes are useful for subsetting. .hash() returns a u64-int. By + # normalizing with 2**64, we get a pseudo-random float between 0 and 1. (pl.col("stay_id").hash() / 2.0**64).alias("stay_id_hash"), (pl.col("patient_id").hash() / 2.0**64).alias("patient_id_hash"), + pl.col("time_hours").log1p().alias("log_time_hours"), ).with_columns( pl.when(pl.col("patient_id_hash") < 0.7) .then(pl.lit("train")) @@ -831,22 +874,16 @@ def main(dataset: str, data_dir: str | Path): # noqa D ) feature_names = set(features()) - schema_names = set(q.collect_schema().keys()) + schema_names = set(dyn.collect_schema().keys()) missing_features = feature_names - schema_names if missing_features: raise ValueError(f"Missing features: {missing_features}") tic = perf_counter() - out = q.collect() + dyn.sink_parquet(data_dir / dataset / "features.parquet", engine="streaming") toc = perf_counter() logger.info(f"Time to compute features: {toc - tic:.2f}s") - logger.info(f"out.shape: {out.shape}") - - tic = perf_counter() - out.write_parquet(data_dir / dataset / "features.parquet") - toc = perf_counter() - logger.info(f"Time to write features: {toc - tic:.2f}s") if __name__ == "__main__": diff --git a/icu_features/icd_codes.py b/icu_features/icd_codes.py new file mode 100644 index 0000000..706262d --- /dev/null +++ b/icu_features/icd_codes.py @@ -0,0 +1,95 @@ +import polars as pl +from functools import partial +from functools import partial +from pyhealth.medcode import InnerMap, CrossMap +from icdmappings import Mapper + +datasets = [ + "miiv", + "aumc", + "mimic", + "eicu", + "zigong", + "picdb", + "hirid", + "sic", + "nwicu", + "mimic-carevue", +] + +mapper = Mapper() + +def icd10_blocks(x): + return mapper.map(x, source='icd10', target='block') or "" + +def icd9_blocks(x): + icd10code = mapper.map(x, source='icd9', target='icd10') + if x is not None and icd10code is None: + icd10code = mapper.map(x.replace(".", ""), source='icd9', target='icd10') + if icd10code is None: + return "" + return mapper.map(icd10code, source='icd10', target='block') or "" + +def icd10_ccsr(x): + return mapper.map(x, source='icd10', target='ccsr') or "" + +def icd9_ccsr(x): + icd10code = mapper.map(x, source='icd9', target='icd10') + if x is not None and icd10code is None: + icd10code = mapper.map(x.replace(".", ""), source='icd9', target='icd10') + if icd10code is None: + return "" + return mapper.map(icd10code, source='icd10', target='ccsr') or "" + + +for dataset in datasets: + print(f"Processing {dataset}") + sta = pl.scan_parquet(f"/cluster/work/math/lmalte/data/{dataset}/sta.parquet") + sta = sta.collect() + + if dataset == "hirid": + sta = sta.with_columns( + pl.when(pl.col("apache_group").is_null()).then(pl.lit([])).otherwise(pl.col("apache_group").cast(pl.String).map_elements(lambda x: [x], + return_dtype=pl.List(pl.String) + ).alias("icd_blocks") + )) + + if dataset == "eicu": + sta = sta.with_columns( + pl.col("icd9_diagnosis").map_elements( + lambda s: s.map_elements( + lambda l: l.split(", ") if l is not None else [], + skip_nulls=False, + return_dtype=pl.List(pl.String)), + ), + return_dtype=pl.List(pl.List(pl.String) + ) + ).map_elements(lambda s: s.explode(), return_dtype=pl.List(pl.String)) + + sta = sta.with_columns( + pl.col("icd10_diagnosis").cast(pl.List(pl.String)).fill_null([]), + pl.col("icd9_diagnosis").cast(pl.List(pl.String)).fill_null([]), + ) + sta = sta.with_columns( + pl.col("icd10_diagnosis").map_elements( + lambda s: sorted(z for z in set(icd10_blocks(x) for x in s) if z!=""), + return_dtype=pl.List(pl.String) + ).alias("icd10_blocks"), + pl.col("icd9_diagnosis").map_elements( + lambda s: sorted(z for z in set(icd9_blocks(x) for x in s) if z != ""), + return_dtype=pl.List(pl.String) + ).alias("icd9_blocks"), + pl.col("icd10_diagnosis").map_elements( + lambda s: sorted(z for z in set(icd10_ccsr(x) for x in s) if z!=""), + return_dtype=pl.List(pl.String) + ).alias("icd10_ccsr"), + pl.col("icd9_diagnosis").map_elements( + lambda s: sorted(z for z in set(icd9_ccsr(x) for x in s) if z != ""), + return_dtype=pl.List(pl.String) + ).alias("icd9_ccsr"), + ) + sta = sta.with_columns( + pl.concat_list("icd10_blocks", "icd9_blocks").alias("icd10_blocks"), + pl.concat_list("icd10_ccsr", "icd9_ccsr").alias("icd10_ccsr"), + ) + sta.write_parquet(f"/cluster/work/math/lmalte/data/{dataset}/sta.parquet") diff --git a/icu_features/load.py b/icu_features/load.py index b3a794e..82228cd 100644 --- a/icu_features/load.py +++ b/icu_features/load.py @@ -106,7 +106,7 @@ def load( if other_columns is None: other_columns = [] - columns_to_load = columns + [outcome, "dataset", "stay_id_hash"] + columns_to_load = sorted(set(columns + [outcome, "dataset", "stay_id_hash"])) if "time_hours" not in columns: columns_to_load += ["time_hours"] @@ -122,9 +122,7 @@ def load( y = df[outcome].to_numpy() assert np.isnan(y).sum() == 0 - return (df.select(columns), y) + tuple( - df.select(c).to_series() for c in other_columns - ) + return df.select(columns), y, df.select(other_columns) def features( diff --git a/resources/variables.tsv b/resources/variables.tsv index 92f14a5..9ccf7f5 100644 --- a/resources/variables.tsv +++ b/resources/variables.tsv @@ -31,7 +31,7 @@ VariableID VariableTag VariableName VariableType OrganSystem TreatmentGroups Uni 30 crp C-reactive protein observation infection None mg/L continuous 0.0 2000.0 Inflammation marker true 0.01 31 dbp Diastolic blood pressure observation circulatory None mmHg continuous 0.0 200.0 Diastolic blood pressure, blood pressure when heart rests false None 32 fgn Fibrinogen observation circulatory None mg/dL continuous 0.0 1500.0 None false None -33 glu Glucose observation metabolic_renal None mg/dL continuous 0.0 1000.0 None false None +33 glu Glucose observation metabolic_renal None mg/dL continuous 0.0 1000.0 None true 5 34 hgb Hemoglobin observation circulatory None g/dL continuous 4.0 18.0 Oxygen carrying protein false None 35 inr_pt Prothrombin observation circulatory None None continuous 0.0 50.0 Prothrombin time/international normalized ratio true 0.01 36 k Potassium observation metabolic_renal None mmol/l continuous 0.0 10.0 None false None @@ -61,7 +61,6 @@ VariableID VariableTag VariableName VariableType OrganSystem TreatmentGroups Uni 63 rass Richmond Agitation Sedation Scale observation neuro None None continuous -5.0 4.0 Scale used to measure the agitation or sedation level of a person false None 64 hbco Carboxyhemoglobin observation circulatory None None continuous 0.0 100.0 Hemoglobin in which the sites usually bound to oxygen are bound to carbon monoxide. true 0.1 65 esr Erythrocyte sedimentation rate observation infection None None continuous 0.0 200.0 Erythrocyte sedimentation rate true 0.1 -68 adm Patient admission type static demographic None None categorical None None Patient admission type false None 69 hba1c Hemoglobin A1C observation metabolic_renal None % continuous 0.0 100.0 A1C is a blood test for type 2 diabetes and prediabetes. true 0.01 71 samp Body fluid sampling, detected bacterial growth observation infection None None categorical None None Body fluid sampling, testing for bacterial infection, True/False/Missing false None 72 spo2 Pulse Oxymetry Oxygen Saturation observation respiratory None % continuous 50.0 100.0 Pulse oxymetry measured blood oxygen saturation false None From a72dfe97b4073c661dea41846a890b7f3f22cbcf Mon Sep 17 00:00:00 2001 From: "Malte Londschien (euler)" Date: Thu, 12 Jun 2025 12:49:00 +0200 Subject: [PATCH 02/15] Add remaining los back in --- icu_features/feature_engineering.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/icu_features/feature_engineering.py b/icu_features/feature_engineering.py index 249896f..32e710f 100644 --- a/icu_features/feature_engineering.py +++ b/icu_features/feature_engineering.py @@ -507,6 +507,10 @@ def outcomes(dataset): respiratory_failure_at_24h = eep_label(events, 24).alias("respiratory_failure_at_24h") severe_respiratory_failure_at_24h = eep_label(severe_events, 24).alias("severe_respiratory_failure_at_24h") + remaining_los = pl.col("los_icu") - pl.col("time_hours") / 24.0 + remaining_los = pl.when(remaining_los > 0).then(remaining_los).otherwise(None) + remaining_los = remaining_los.alias("remaining_los") + # Severe respiratory failure label with simple imputation of po2 and fio2, related # to Hueser et al. https://www.medrxiv.org/content/10.1101/2024.01.23.24301516v1. pf_ratio_imputed = ( @@ -740,6 +744,7 @@ def kdigo_3(crea, rel_urine_rate, crrt): respiratory_failure_at_24h, severe_respiratory_failure_at_24h, severe_respiratory_failure_at_24h_imputed, + remaining_los, circulatory_failure_at_8h, circulatory_failure_at_8h_imputed, kidney_failure_at_48h, From d17699d0e799f1d6bec0c996adfb93c6698f5dae Mon Sep 17 00:00:00 2001 From: Malte Londschien Date: Fri, 4 Jul 2025 14:51:21 +0200 Subject: [PATCH 03/15] Format and cleanup. --- icu_features/__init__.py | 2 +- icu_features/feature_engineering.py | 189 +++++++++++----------------- icu_features/icd_codes.py | 78 ++++++------ resources/variables.tsv | 2 +- 4 files changed, 108 insertions(+), 163 deletions(-) diff --git a/icu_features/__init__.py b/icu_features/__init__.py index 086ee6d..8129cfc 100644 --- a/icu_features/__init__.py +++ b/icu_features/__init__.py @@ -1,3 +1,3 @@ from .load import load -__all__ = ["load"] \ No newline at end of file +__all__ = ["load"] diff --git a/icu_features/feature_engineering.py b/icu_features/feature_engineering.py index 32e710f..4d72bb4 100644 --- a/icu_features/feature_engineering.py +++ b/icu_features/feature_engineering.py @@ -382,7 +382,7 @@ def eep_label(events: pl.Expr, horizon: int, switches_only: bool = True): if switches_only is True: label: 1 - 0 0 0 - - 0 0 0 0 0 1 1 1 1 - - - 0 1 1 1 1 - 1 - - else: + if switches_only is False: label: 1 - 0 0 0 - - 0 0 0 0 0 1 1 1 1 - 1 - 0 1 1 1 1 - 1 - Note that at the time step of a positive event, the label is always missing. At the @@ -447,15 +447,25 @@ def outcomes(dataset): false. This does not have missing values. - respiratory_failure_at_24h: Whether the patient has a respiratory failure within the next 24 hours. If the PaO2/FiO2 ratio is below 200, the patient is considered - to have a respiratory failure (event). + to have a severe respiratory failure (event). For the datasets nwicu, picdb, and + zigong, where the PaO2/FiO2 ratio is not available, we use the condition + SaO2 <= 90% instead. + - respiratory_failure_at_24h: Whether the patient has a respiratory failure within + the next 24 hours. If the PaO2/FiO2 ratio is below 100, the patient is considered + to have a respiratory failure (event). For the datasets nwicu, picdb, and + zigong, where the PaO2/FiO2 ratio is not available, we use the condition + SaO2 <= 90% instead. - remaining_los: The remaining length of stay in the ICU. Missing for the last time- step (instead of zero). - circulatory_failure_at_8h: Whether the patient has a circulatory failure within the next 8 hours. Circulatory failure is defined via blood pressure and lactate. - Blood pressure is considered low if the mean arterial pressure is below 65 mmHg or if - the patient is on any blood pressure increasing drug. Lactate is high if it is - above 2 mmol/l. If the two criteria (map and lactate) don't agree, or if one of them is - missing, the event label is missing. + Blood pressure is considered low if the mean arterial pressure is below 65 mmHg or + if the patient is on any blood pressure increasing drug. Lactate is high if it is + above 2 mmol/l. If the two criteria (map and lactate) don't agree, or if one of + them is missing, the event label is missing. For picdb and zigong, very few + measurements of map are available. For them, we relax the condition for a "False" + event: A patient has a negative event if the lactate is good and the map is good + or not measured. - kidney_failure_at_48h: Whether the patient has a kidney failure within the next 48 hours. The patient has a kidney failure if they are in stage 3 according to the KDIGO guidelines: @@ -480,6 +490,12 @@ def outcomes(dataset): .otherwise(False) ).alias("decompensation_at_24h") + # remaining_los + # remaining length of stay in days + remaining_los = pl.col("los_icu") - pl.col("time_hours") / 24.0 + remaining_los = pl.when(remaining_los > 0).then(remaining_los).otherwise(None) + remaining_los = remaining_los.alias("remaining_los") + # (severe) respiratory_failure_at_24h # If the PaO2/FiO2 ratio is below 200, the patient is considered to have a # respiratory failure event. If it's below 100, the patient is considered to have a @@ -493,9 +509,7 @@ def outcomes(dataset): RESP_SAO2_DEF_TSH = 90 SEVERE_RESP_SAO2_DEF_TSH = 90 - # There are very few pf/ratio values in nwicu, picdb, and zigong. For picdb and - # zigong we use sao2 instead. For nwicu, not even sao2 is available. We use the - # noisier spo2 instead. + # There are very few pf values in nwicu, picdb, and zigong. We use sao2 instead. pf_ratio = pl.col("po2") / fio2 if dataset in ["nwicu", "picdb", "zigong"]: events = pl.col("sao2") <= RESP_SAO2_DEF_TSH @@ -504,24 +518,12 @@ def outcomes(dataset): events = pf_ratio < RESP_PF_DEF_TSH severe_events = pf_ratio < SEVERE_RESP_PF_DEF_TSH - respiratory_failure_at_24h = eep_label(events, 24).alias("respiratory_failure_at_24h") - severe_respiratory_failure_at_24h = eep_label(severe_events, 24).alias("severe_respiratory_failure_at_24h") - - remaining_los = pl.col("los_icu") - pl.col("time_hours") / 24.0 - remaining_los = pl.when(remaining_los > 0).then(remaining_los).otherwise(None) - remaining_los = remaining_los.alias("remaining_los") - - # Severe respiratory failure label with simple imputation of po2 and fio2, related - # to Hueser et al. https://www.medrxiv.org/content/10.1101/2024.01.23.24301516v1. - pf_ratio_imputed = ( - 100 - * pl.col("po2").forward_fill(1).backward_fill(1) - / pl.col("fio2").forward_fill(1).backward_fill(1) + respiratory_failure_at_24h = eep_label(events, 24).alias( + "respiratory_failure_at_24h" + ) + severe_respiratory_failure_at_24h = eep_label(severe_events, 24).alias( + "severe_respiratory_failure_at_24h" ) - events = pf_ratio_imputed < SEVERE_RESP_PF_DEF_TSH - severe_respiratory_failure_at_24h_imputed = eep_label( - events, 24, switches_only=False - ).alias("severe_respiratory_failure_at_24h_imputed") # circulatory_failure_at_8h # A patient is considered to have a circulatory failure if the mean arterial @@ -563,52 +565,20 @@ def outcomes(dataset): # condition for a "False": A patient is not in an event if the lactate is good # and the map is good or not available. event = ( - pl.when(bad_map & bad_lact).then(True).when(~bad_map.fill_null(False) & ~bad_lact).then(False) + pl.when(bad_map & bad_lact) + .then(True) + .when(~bad_map.fill_null(False) & ~bad_lact) + .then(False) ) else: event = ( - pl.when(bad_map & bad_lact).then(True).when(~bad_map & ~bad_lact).then(False) + pl.when(bad_map & bad_lact) + .then(True) + .when(~bad_map & ~bad_lact) + .then(False) ) circulatory_failure_at_8h = eep_label(event, 8).alias("circulatory_failure_at_8h") - # Circulatory failure label using interpolated lactate, inspured by Hyland et al. - # https://www.nature.com/articles/s41591-020-0789-4 - # First, we interpolate lactate values. If the time difference between two - # consecutive lactate measurements is less than 6 hours, or if both lactate values - # are either above or below 2, we linearly interpolate the lactate value. Else, we - # fill the value forward and backward for 3 hours. - time = pl.when(pl.col("lact").is_not_null()).then(pl.col("time_hours")) - interp = (time.backward_fill() - time.forward_fill() < 6) | ( - bad_lact.forward_fill() == bad_lact.backward_fill() - ) - lact_interp = ( - pl.when(interp) - .then(pl.col("lact").interpolate(method="linear")) - .otherwise(pl.col("lact").backward_fill(3).forward_fill(3)) - ) - # On the boundary, if the first value of lactate is below the threshold ("good"), we - # fill backwards indefinitely. If the last value is below the threshold, fill - # forward indefinitely. Else, we fill forward and backward for 3 hours. - lact_interp = pl.coalesce( - lact_interp, - pl.when(pl.col("time").le(time.min()) & bad_lact.backward_fill()).then( - lact_interp.backward_fill() - ), - pl.when(pl.col("time").ge(time.max()) & bad_lact.forward_fill()).then( - lact_interp.forward_fill() - ), - ) - bad_lact_interp = lact_interp >= HIGH_LACT_TSH - event = ( - pl.when(bad_map & bad_lact_interp) - .then(True) - .when(~bad_map & ~bad_lact_interp) - .then(False) - ) - circulatory_failure_at_8h_imputed = eep_label(event, 8, switches_only=False).alias( - "circulatory_failure_at_8h_imputed" - ) - # kidney_failure_at_48h # The patient has a kidney failure if they are in stage 3 according to # https://kdigo.org/wp-content/uploads/2016/10/KDIGO-2012-AKI-Guideline-English.pdf @@ -656,40 +626,6 @@ def kdigo_3(crea, rel_urine_rate, crrt): pl.col("ufilt_ind"), ) kidney_failure_at_48h = eep_label(aki_3, 48).alias("kidney_failure_at_48h") - # Kidney failure with creatine imputation motivated by Lyu et al. 2024: - # https://www.medrxiv.org/content/10.1101/2024.02.01.24302063v1 - # Similarly to circulatory_failure_8h_imputed, we linearly interpolate creatine - # values. We only interpolate if the time difference between two consecutive - # creatine measurements is less than 48 hours. We ffill and bfill the first and last - # measurements. - time = pl.when(pl.col("crea").is_not_null()).then(pl.col("time_hours")) - interpolate = time.backward_fill() - time.forward_fill() < 48 - crea = pl.coalesce( - pl.when(interpolate).then(pl.col("crea").interpolate(method="linear")), - pl.when(pl.col("time").le(time.min())).then(pl.col("crea").backward_fill(48)), - pl.when(pl.col("time").ge(time.max())).then(pl.col("crea").forward_fill(48)), - ) - urine_rate = pl.col("urine_rate").backward_fill(48) - - aki_3 = kdigo_3( - crea, - urine_rate / pl.col("weight"), - pl.col("ufilt_ind"), - ) - kidney_failure_at_48h_imputed = eep_label(aki_3, 48, switches_only=False).alias( - "kidney_failure_at_48h_imputed" - ) - - # hyperglycemia_at_8h and hypoglycemia_at_8h according to Mehdizavareha et al., - # https://arxiv.org/pdf/2411.01418 - hyperglycemia_event = pl.col("glu") > 180 # mg/dl - hypoglycemia_event = pl.col("glu") < 70 # mg/dl - hyperglycemia_at_8h = eep_label(hyperglycemia_event, 8, switches_only=False).alias( - "hyperglycemia_at_8h" - ) - hypoglycemia_at_8h = eep_label(hypoglycemia_event, 8, switches_only=False).alias( - "hypoglycemia_at_8h" - ) # Liver failure according to # - MELD score > 30: https://en.wikipedia.org/wiki/Model_for_End-Stage_Liver_Disease @@ -715,48 +651,49 @@ def kdigo_3(crea, rel_urine_rate, crrt): inr_pt = pl.col("inr_pt").backward_fill(1) SEVERE_MELD_DEF_TSH = 30.0 - meld_event = 3.78 * bili.clip(1.0, None).log() + 11.2 * inr_pt.clip(1.0, None).log() + 9.57 * crea.clip(1.0, None).log() + 6.43 >= SEVERE_MELD_DEF_TSH + meld_event = ( + 3.78 * bili.clip(1.0, None).log() + + 11.2 * inr_pt.clip(1.0, None).log() + + 9.57 * crea.clip(1.0, None).log() + + 6.43 + >= SEVERE_MELD_DEF_TSH + ) severe_meld_at_48h = eep_label(meld_event, 48, switches_only=False).alias( "severe_meld_at_48h" ) # Different to the meld above, we clip from below by 0.1 instead of 1.0. - meld_score = 3.78 * bili.clip(0.1, None).log() + 11.2 * inr_pt.clip(0.1, None).log() + 9.57 * crea.clip(0.1, None).log() + 6.43 + meld_score = ( + 3.78 * bili.clip(0.1, None).log() + + 11.2 * inr_pt.clip(0.1, None).log() + + 9.57 * crea.clip(0.1, None).log() + + 6.43 + ) meld_score_in_24h = meld_score.shift(-24).alias("meld_score_in_24h") - liver_sofa3 = pl.col("bili").forward_fill(1).backward_fill(1) > 6.0 - liver_sofa3_at_48h = eep_label(liver_sofa3, 48).alias("liver_sofa3_at_48h") - + # log_lactate_in_4h # log(lactate) in 4 hours. This is 1/2 the forecast horizon of circ. failure eep. log_lactate_in_4h = ( (pl.col("lact") + 0.1).log().shift(-4).alias("log_lactate_in_4h") ) - log_pf_ratio_in_12h = ( - pf_ratio.log().shift(-12).alias("log_pf_ratio_in_12h") + # log_creatinine_in_24h + log_creatinine_in_24h = ( + (pl.col("crea") + 0.1).log().shift(-24).alias("log_creatinine_in_24h") ) - log_creatinine_in_24h = (pl.col("crea") + 0.1).log().shift(-24).alias("log_creatinine_in_24h") - return [ mortality_at_24h, decompensation_at_24h, respiratory_failure_at_24h, severe_respiratory_failure_at_24h, - severe_respiratory_failure_at_24h_imputed, remaining_los, circulatory_failure_at_8h, - circulatory_failure_at_8h_imputed, kidney_failure_at_48h, - kidney_failure_at_48h_imputed, - hyperglycemia_at_8h, - hypoglycemia_at_8h, severe_meld_at_48h, meld_score_in_24h, - liver_sofa3_at_48h, log_lactate_in_4h, log_creatinine_in_24h, - log_pf_ratio_in_12h, ] @@ -857,8 +794,24 @@ def main(dataset: str, data_dir: str | Path): # noqa D dyn = dyn.group_by("stay_id").agg(expressions).explode(pl.exclude("stay_id")) dyn = dyn.join( sta.select( - ["stay_id", "year", "carevue", "metavision", "patient_id", "adm", "insurance", "ward", "hospital_id", "icd10_blocks", "icd10_ccsr"] - ), on="stay_id", how="left", coalesce=True, validate="m:1") + [ + "stay_id", + "year", + "carevue", + "metavision", + "patient_id", + "adm", + "insurance", + "ward", + "hospital_id", + "icd10_blocks", + ] + ), + on="stay_id", + how="left", + coalesce=True, + validate="m:1", + ) dyn = dyn.with_columns( # These hashes are useful for subsetting. .hash() returns a u64-int. By diff --git a/icu_features/icd_codes.py b/icu_features/icd_codes.py index 706262d..fb1bbb6 100644 --- a/icu_features/icd_codes.py +++ b/icu_features/icd_codes.py @@ -1,7 +1,4 @@ import polars as pl -from functools import partial -from functools import partial -from pyhealth.medcode import InnerMap, CrossMap from icdmappings import Mapper datasets = [ @@ -19,27 +16,20 @@ mapper = Mapper() -def icd10_blocks(x): - return mapper.map(x, source='icd10', target='block') or "" -def icd9_blocks(x): - icd10code = mapper.map(x, source='icd9', target='icd10') - if x is not None and icd10code is None: - icd10code = mapper.map(x.replace(".", ""), source='icd9', target='icd10') - if icd10code is None: - return "" - return mapper.map(icd10code, source='icd10', target='block') or "" +def icd10_blocks(x): + """Map from icd 10 strings to ~130 Blocks of ICD-10 CM codes.""" + return mapper.map(x, source="icd10", target="block") or "" -def icd10_ccsr(x): - return mapper.map(x, source='icd10', target='ccsr') or "" -def icd9_ccsr(x): - icd10code = mapper.map(x, source='icd9', target='icd10') +def icd9_blocks(x): + """Map from icd 9 strings to ~130 Blocks of ICD-10 CM codes.""" + icd10code = mapper.map(x, source="icd9", target="icd10") if x is not None and icd10code is None: - icd10code = mapper.map(x.replace(".", ""), source='icd9', target='icd10') + icd10code = mapper.map(x.replace(".", ""), source="icd9", target="icd10") if icd10code is None: return "" - return mapper.map(icd10code, source='icd10', target='ccsr') or "" + return mapper.map(icd10code, source="icd10", target="block") or "" for dataset in datasets: @@ -49,21 +39,27 @@ def icd9_ccsr(x): if dataset == "hirid": sta = sta.with_columns( - pl.when(pl.col("apache_group").is_null()).then(pl.lit([])).otherwise(pl.col("apache_group").cast(pl.String).map_elements(lambda x: [x], - return_dtype=pl.List(pl.String) - ).alias("icd_blocks") - )) + pl.when(pl.col("apache_group").is_null()) + .then(pl.lit([])) + .otherwise( + pl.col("apache_group") + .cast(pl.String) + .map_elements(lambda x: [x], return_dtype=pl.List(pl.String)) + .alias("icd_blocks") + ) + ) if dataset == "eicu": + # For eicu, we don't extract as list, but as a string of comma-separated values. sta = sta.with_columns( pl.col("icd9_diagnosis").map_elements( lambda s: s.map_elements( - lambda l: l.split(", ") if l is not None else [], + lambda ls: ls.split(", ") if ls is not None else [], skip_nulls=False, - return_dtype=pl.List(pl.String)), + return_dtype=pl.List(pl.String), ), - return_dtype=pl.List(pl.List(pl.String) - ) + ), + return_dtype=pl.List(pl.List(pl.String)), ).map_elements(lambda s: s.explode(), return_dtype=pl.List(pl.String)) sta = sta.with_columns( @@ -71,25 +67,21 @@ def icd9_ccsr(x): pl.col("icd9_diagnosis").cast(pl.List(pl.String)).fill_null([]), ) sta = sta.with_columns( - pl.col("icd10_diagnosis").map_elements( - lambda s: sorted(z for z in set(icd10_blocks(x) for x in s) if z!=""), - return_dtype=pl.List(pl.String) - ).alias("icd10_blocks"), - pl.col("icd9_diagnosis").map_elements( - lambda s: sorted(z for z in set(icd9_blocks(x) for x in s) if z != ""), - return_dtype=pl.List(pl.String) - ).alias("icd9_blocks"), - pl.col("icd10_diagnosis").map_elements( - lambda s: sorted(z for z in set(icd10_ccsr(x) for x in s) if z!=""), - return_dtype=pl.List(pl.String) - ).alias("icd10_ccsr"), - pl.col("icd9_diagnosis").map_elements( - lambda s: sorted(z for z in set(icd9_ccsr(x) for x in s) if z != ""), - return_dtype=pl.List(pl.String) - ).alias("icd9_ccsr"), + pl.col("icd10_diagnosis") + .map_elements( + lambda s: sorted(z for z in {icd10_blocks(x) for x in s} if z != ""), + return_dtype=pl.List(pl.String), + ) + .alias("icd10_blocks"), + pl.col("icd9_diagnosis") + .map_elements( + lambda s: sorted(z for z in {icd9_blocks(x) for x in s} if z != ""), + return_dtype=pl.List(pl.String), + ) + .alias("icd9_blocks"), ) + sta = sta.with_columns( pl.concat_list("icd10_blocks", "icd9_blocks").alias("icd10_blocks"), - pl.concat_list("icd10_ccsr", "icd9_ccsr").alias("icd10_ccsr"), ) sta.write_parquet(f"/cluster/work/math/lmalte/data/{dataset}/sta.parquet") diff --git a/resources/variables.tsv b/resources/variables.tsv index 9ccf7f5..ea63065 100644 --- a/resources/variables.tsv +++ b/resources/variables.tsv @@ -31,7 +31,7 @@ VariableID VariableTag VariableName VariableType OrganSystem TreatmentGroups Uni 30 crp C-reactive protein observation infection None mg/L continuous 0.0 2000.0 Inflammation marker true 0.01 31 dbp Diastolic blood pressure observation circulatory None mmHg continuous 0.0 200.0 Diastolic blood pressure, blood pressure when heart rests false None 32 fgn Fibrinogen observation circulatory None mg/dL continuous 0.0 1500.0 None false None -33 glu Glucose observation metabolic_renal None mg/dL continuous 0.0 1000.0 None true 5 +33 glu Glucose observation metabolic_renal None mg/dL continuous 0.0 1000.0 None true 5.0 34 hgb Hemoglobin observation circulatory None g/dL continuous 4.0 18.0 Oxygen carrying protein false None 35 inr_pt Prothrombin observation circulatory None None continuous 0.0 50.0 Prothrombin time/international normalized ratio true 0.01 36 k Potassium observation metabolic_renal None mmol/l continuous 0.0 10.0 None false None From a123af8188fba596c5be46d879d74292484622f2 Mon Sep 17 00:00:00 2001 From: Malte Londschien Date: Fri, 4 Jul 2025 14:54:24 +0200 Subject: [PATCH 04/15] Update test files --- .gitattributes | 1 + tests/testdata/eicu_demo/dyn.parquet | 4 ++-- tests/testdata/eicu_demo/hospital.parquet | 3 +++ tests/testdata/eicu_demo/sta.parquet | 4 ++-- 4 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 tests/testdata/eicu_demo/hospital.parquet diff --git a/.gitattributes b/.gitattributes index c536b92..de50cb8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,3 @@ tests/testdata/eicu_demo/dyn.parquet filter=lfs diff=lfs merge=lfs -text tests/testdata/eicu_demo/sta.parquet filter=lfs diff=lfs merge=lfs -text +tests/testdata/eicu_demo/hospital.parquet filter=lfs diff=lfs merge=lfs -text diff --git a/tests/testdata/eicu_demo/dyn.parquet b/tests/testdata/eicu_demo/dyn.parquet index 6f6e620..0e1beab 100644 --- a/tests/testdata/eicu_demo/dyn.parquet +++ b/tests/testdata/eicu_demo/dyn.parquet @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b0f721728c4836c15f8c7b638e22d44e56c6b945a05d573410e43f4ba00f627b -size 2256898 +oid sha256:1d4cbf01a2c17dc32814fc8df3b119c676d736f4158c47c2ee88b81a2f0e8f77 +size 2252914 diff --git a/tests/testdata/eicu_demo/hospital.parquet b/tests/testdata/eicu_demo/hospital.parquet new file mode 100644 index 0000000..a96c583 --- /dev/null +++ b/tests/testdata/eicu_demo/hospital.parquet @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:203c21ace7b2d8ca0bf9882e1b530eea49b035845dbc86650f61398e76563ce3 +size 2905 diff --git a/tests/testdata/eicu_demo/sta.parquet b/tests/testdata/eicu_demo/sta.parquet index 78dcfd9..a1356cc 100644 --- a/tests/testdata/eicu_demo/sta.parquet +++ b/tests/testdata/eicu_demo/sta.parquet @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cc400e3bab39ca0a1a6fd4ec73040eb13024260915c171bb67bc7cfef861d629 -size 68736 +oid sha256:2c9183fd6c14b7b7cd372da05bfcfbd335651bf788b93841a45c3ea7e5b4313f +size 67771 From 1362ac046e3edeeed9329de2ecbe0285eee70060 Mon Sep 17 00:00:00 2001 From: Malte Londschien Date: Fri, 4 Jul 2025 14:56:45 +0200 Subject: [PATCH 05/15] Add code to split datasets mimic->mimic-carevue and mimic-metavision. --- icu_features/split_datasets.py | 63 ++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 icu_features/split_datasets.py diff --git a/icu_features/split_datasets.py b/icu_features/split_datasets.py new file mode 100644 index 0000000..8d75a74 --- /dev/null +++ b/icu_features/split_datasets.py @@ -0,0 +1,63 @@ +from pathlib import Path + +import click +import polars as pl + + +@click.command() +@click.option("--data_dir", type=click.Path(exists=True)) +def main(data_dir): + """ + Split mimic, miiv, and aumc datasets into subsets. + + These are: + - mimic -> mimic-carevue and mimic-metavision. + - miiv -> miiv-late. + - aumc -> aumc-early and aumc-late. + + The mimic hospital used the Philips Carevue EHR system until 2008 and the iMDsoft + Metavision ICU system from 2008 onwards. The data format differs between these two + EHR systems. We split the mimic dataset into mimic-carevue and mimic-metavision + subsets to allow for separate analysis of these two EHR systems. The miiv (mimic-iv) + dataset contains data from the mimic hospital after the switch to the Metavision EHR + system. There is an overlap between miiv and mimic-metavision. This cannot be + identified by stay_id due to anonymization. We thus filter out all "early" stays + from the miiv dataset to create the miiv-late dataset with no overlap with + mimic-metavision. + + The aumc dataset contains data from the Amsterdam UMC hospital from 2003 - 2016. + The year has been anonymized and grouped into two periods: around 2006 and around + 2013. We split the aumc dataset into aumc-early and aumc-late subsets to allow for + separate analysis of these two periods. + + Parameters + ---------- + data_dir : str + Path to the data directory. We expect input data at, e.g., + `data_dir/mimic/sta.parquet` and `data_dir/mimic/dyn.parquet`. We write the + output data to `data_dir/mimic-carevue/sta.parquet`, etc. + """ + for source, target, filter_ in [ + ("mimic", "mimic-carevue", pl.col("carevue") & pl.col("metavision").is_null()), + ( + "mimic", + "mimic-metavision", + pl.col("metavision") & pl.col("carevue").is_null(), + ), + ("miiv", "miiv-late", pl.col("year") > 2012), + ("aumc", "aumc-early", pl.col("year") == 2006), + ("aumc", "aumc-late", pl.col("year") == 2013), + ]: + sta = pl.scan_parquet(Path(data_dir) / source / "sta.parquet").filter(filter_) + sta = sta.collect() + + dyn = pl.scan_parquet(Path(data_dir) / source / "dyn.parquet") + dyn = dyn.filter(pl.col("stay_id").is_in(sta["stay_id"])).collect() + + (Path(data_dir) / target).mkdir(parents=True, exist_ok=True) + sta.write_parquet(Path(data_dir) / target / "sta.parquet") + dyn.write_parquet(Path(data_dir) / target / "dyn.parquet") + + +if __name__ == "__main__": + main() From 669f49c4ecf902f2a452a95bf8ce671e1bda290a Mon Sep 17 00:00:00 2001 From: Malte Londschien Date: Fri, 4 Jul 2025 14:58:05 +0200 Subject: [PATCH 06/15] Refer to icu_features. --- icu_features/load.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/icu_features/load.py b/icu_features/load.py index 82228cd..d27bf54 100644 --- a/icu_features/load.py +++ b/icu_features/load.py @@ -64,7 +64,7 @@ def load( `icu_features.constants.TREATMENT_CONTINUOUS_FEATURES` are loaded. horizons : list of int, optional, default = None The horizons for which to load features. If `None`, all horizons - `icu_benchmarks.constants.HORIZONS` are loaded. + `icu_features.constants.HORIZONS` are loaded. other_columns : list of str, optional, default = None Other columns to load. E.g., `["stay_id_hash"]`. @@ -157,7 +157,7 @@ def features( `icu_features.constants.TREATMENT_CONTINUOUS_FEATURES` are loaded. horizons : list of int, optional, default = None The horizons for which to load features. If `None`, all horizons - `icu_benchmarks.constants.HORIZONS` are loaded. + `icu_features.constants.HORIZONS` are loaded. Returns ------- From 8ec0c41b24c1afd43bb95b6ab3c6d7146d051c21 Mon Sep 17 00:00:00 2001 From: Malte Londschien Date: Fri, 4 Jul 2025 17:52:55 +0200 Subject: [PATCH 07/15] Compute icd codes in CI --- .github/workflows/ci.yaml | 5 ++++- icu_features/icd_codes.py | 19 ++++++++++++++----- tests/testdata/eicu_demo/sta.parquet | 4 ++-- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ec4fce9..fea7fc3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -29,7 +29,10 @@ jobs: - name: Install repository run: python -m pip install --no-build-isolation --no-deps --disable-pip-version-check -e . - name: Run feature_engineering.py - run: python icu_features/feature_engineering.py --dataset "eicu_demo" --data_dir "tests/testdata" + run: | + pip install icd-mappings + python icu_features/icd_codes.py --data_dir "tests/testdata" --dataset "eicu_demo" + python icu_features/feature_engineering.py --dataset "eicu_demo" --data_dir "tests/testdata" - name: Pytest run: pytest tests diff --git a/icu_features/icd_codes.py b/icu_features/icd_codes.py index fb1bbb6..e82318c 100644 --- a/icu_features/icd_codes.py +++ b/icu_features/icd_codes.py @@ -1,3 +1,6 @@ +from pathlib import Path + +import click import polars as pl from icdmappings import Mapper @@ -32,9 +35,11 @@ def icd9_blocks(x): return mapper.map(icd10code, source="icd10", target="block") or "" -for dataset in datasets: - print(f"Processing {dataset}") - sta = pl.scan_parquet(f"/cluster/work/math/lmalte/data/{dataset}/sta.parquet") +@click.command() +@click.option("--data_dir", type=click.Path(exists=True)) +@click.option("--dataset", type=str, default="eicu_demo") +def main(data_dir: str, dataset: str): # noqa D + sta = pl.scan_parquet(Path(data_dir) / dataset / "sta.parquet") sta = sta.collect() if dataset == "hirid": @@ -49,7 +54,7 @@ def icd9_blocks(x): ) ) - if dataset == "eicu": + if dataset in ["eicu", "eicu_demo"]: # For eicu, we don't extract as list, but as a string of comma-separated values. sta = sta.with_columns( pl.col("icd9_diagnosis").map_elements( @@ -84,4 +89,8 @@ def icd9_blocks(x): sta = sta.with_columns( pl.concat_list("icd10_blocks", "icd9_blocks").alias("icd10_blocks"), ) - sta.write_parquet(f"/cluster/work/math/lmalte/data/{dataset}/sta.parquet") + sta.write_parquet(Path(data_dir) / dataset / "sta.parquet") + + +if __name__ == "__main__": + main() diff --git a/tests/testdata/eicu_demo/sta.parquet b/tests/testdata/eicu_demo/sta.parquet index a1356cc..93511c9 100644 --- a/tests/testdata/eicu_demo/sta.parquet +++ b/tests/testdata/eicu_demo/sta.parquet @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2c9183fd6c14b7b7cd372da05bfcfbd335651bf788b93841a45c3ea7e5b4313f -size 67771 +oid sha256:5d86e836864335842b38e24030268bf311625d3dc9e7c8d88b14c7bf5c798cb9 +size 68334 From 503d54c9950b1b2ed6801cf29e453541e12f9367 Mon Sep 17 00:00:00 2001 From: Malte Londschien Date: Fri, 4 Jul 2025 19:18:47 +0200 Subject: [PATCH 08/15] Fix code. --- icu_features/icd_codes.py | 18 +++--------------- tests/testdata/mimic_demo/dyn.parquet | Bin 0 -> 361599 bytes tests/testdata/mimic_demo/sta.parquet | Bin 0 -> 14362 bytes 3 files changed, 3 insertions(+), 15 deletions(-) create mode 100644 tests/testdata/mimic_demo/dyn.parquet create mode 100644 tests/testdata/mimic_demo/sta.parquet diff --git a/icu_features/icd_codes.py b/icu_features/icd_codes.py index e82318c..f1f880d 100644 --- a/icu_features/icd_codes.py +++ b/icu_features/icd_codes.py @@ -42,18 +42,6 @@ def main(data_dir: str, dataset: str): # noqa D sta = pl.scan_parquet(Path(data_dir) / dataset / "sta.parquet") sta = sta.collect() - if dataset == "hirid": - sta = sta.with_columns( - pl.when(pl.col("apache_group").is_null()) - .then(pl.lit([])) - .otherwise( - pl.col("apache_group") - .cast(pl.String) - .map_elements(lambda x: [x], return_dtype=pl.List(pl.String)) - .alias("icd_blocks") - ) - ) - if dataset in ["eicu", "eicu_demo"]: # For eicu, we don't extract as list, but as a string of comma-separated values. sta = sta.with_columns( @@ -63,9 +51,9 @@ def main(data_dir: str, dataset: str): # noqa D skip_nulls=False, return_dtype=pl.List(pl.String), ), - ), - return_dtype=pl.List(pl.List(pl.String)), - ).map_elements(lambda s: s.explode(), return_dtype=pl.List(pl.String)) + return_dtype=pl.List(pl.List(pl.String)), + ) + ) sta = sta.with_columns( pl.col("icd10_diagnosis").cast(pl.List(pl.String)).fill_null([]), diff --git a/tests/testdata/mimic_demo/dyn.parquet b/tests/testdata/mimic_demo/dyn.parquet new file mode 100644 index 0000000000000000000000000000000000000000..a97f594cbfc2f7921b06b0ba2cb8b0c8dbcfb25c GIT binary patch literal 361599 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�??>Nh%cw@fP?g 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%0A;=H!p#|vUk=NpPfWW`NK$r!i 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 literal 0 HcmV?d00001 diff --git a/tests/testdata/mimic_demo/sta.parquet b/tests/testdata/mimic_demo/sta.parquet new file mode 100644 index 0000000000000000000000000000000000000000..81997e1b9ec93dbea903898c8dbeb13fca775eb0 GIT binary patch literal 14362 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 Ynu%)oQyBam@c-stbPTW!@P7sVA2wQSO8@`> literal 0 HcmV?d00001 From bb56e00506aa7ef3b134a1895d60855e99b65b9f Mon Sep 17 00:00:00 2001 From: Malte Londschien Date: Fri, 4 Jul 2025 19:21:54 +0200 Subject: [PATCH 09/15] Test mimic_demo as well --- .gitattributes | 2 ++ .github/workflows/ci.yaml | 10 ++++++++-- icu_features/split_datasets.py | 15 +++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/.gitattributes b/.gitattributes index de50cb8..191ace7 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,5 @@ tests/testdata/eicu_demo/dyn.parquet filter=lfs diff=lfs merge=lfs -text tests/testdata/eicu_demo/sta.parquet filter=lfs diff=lfs merge=lfs -text tests/testdata/eicu_demo/hospital.parquet filter=lfs diff=lfs merge=lfs -text +tests/testdata/mimic_demo/dyn.parquet filter=lfs diff=lfs merge=lfs -text +tests/testdata/mimic_demo/sta.parquet filter=lfs diff=lfs merge=lfs -text \ No newline at end of file diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index fea7fc3..e72a289 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -28,11 +28,17 @@ jobs: environment-file: environment.yml - name: Install repository run: python -m pip install --no-build-isolation --no-deps --disable-pip-version-check -e . - - name: Run feature_engineering.py + - name: install icd-mappings + run: pip install icd-mappings + - name: feature engineering for eicu_demo run: | - pip install icd-mappings python icu_features/icd_codes.py --data_dir "tests/testdata" --dataset "eicu_demo" python icu_features/feature_engineering.py --dataset "eicu_demo" --data_dir "tests/testdata" + - name: feature engineering for eicu_demo + run: | + python icu_features/split_datasets.py --data_dir "tests/testdata" --dataset "mimic_demo" + python icu_features/icd_codes.py --data_dir "tests/testdata" --dataset "mimic_demo-carevue" + python icu_features/feature_engineering.py --dataset "mimic_demo-carevue" --data_dir "tests/testdata" - name: Pytest run: pytest tests diff --git a/icu_features/split_datasets.py b/icu_features/split_datasets.py index 8d75a74..05839f1 100644 --- a/icu_features/split_datasets.py +++ b/icu_features/split_datasets.py @@ -44,10 +44,25 @@ def main(data_dir): "mimic-metavision", pl.col("metavision") & pl.col("carevue").is_null(), ), + ( + "mimic_demo", + "mimic_demo-carevue", + pl.col("carevue") & pl.col("metavision").is_null(), + ), + ( + "mimic", + "mimic_demo-metavision", + pl.col("metavision") & pl.col("carevue").is_null(), + ), ("miiv", "miiv-late", pl.col("year") > 2012), ("aumc", "aumc-early", pl.col("year") == 2006), ("aumc", "aumc-late", pl.col("year") == 2013), ]: + input_path = Path(data_dir) / source + if not input_path.exists(): + print(f"Skipping {source} as it does not exist in {data_dir}.") + continue + sta = pl.scan_parquet(Path(data_dir) / source / "sta.parquet").filter(filter_) sta = sta.collect() From 61c09b0af4ab52d873c2f3ed4447a36a2ec6a021 Mon Sep 17 00:00:00 2001 From: Malte Londschien Date: Fri, 4 Jul 2025 19:26:16 +0200 Subject: [PATCH 10/15] Pin polars. --- environment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/environment.yml b/environment.yml index 20096bd..5ed7372 100644 --- a/environment.yml +++ b/environment.yml @@ -8,6 +8,6 @@ dependencies: - pip - click - numpy>=2.1 - - polars>=1.26 + - polars==1.26 - pytest - pyarrow \ No newline at end of file From 445a0850aa0eb323a4fe19f08f3dbce168bcfee8 Mon Sep 17 00:00:00 2001 From: Malte Londschien Date: Fri, 4 Jul 2025 19:30:30 +0200 Subject: [PATCH 11/15] Fix ci. --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e72a289..cbda268 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -36,7 +36,7 @@ jobs: python icu_features/feature_engineering.py --dataset "eicu_demo" --data_dir "tests/testdata" - name: feature engineering for eicu_demo run: | - python icu_features/split_datasets.py --data_dir "tests/testdata" --dataset "mimic_demo" + python icu_features/split_datasets.py --data_dir "tests/testdata" python icu_features/icd_codes.py --data_dir "tests/testdata" --dataset "mimic_demo-carevue" python icu_features/feature_engineering.py --dataset "mimic_demo-carevue" --data_dir "tests/testdata" - name: Pytest From 9fb45e71bd5dcff192cd6e1a5d79b14c5e8a2442 Mon Sep 17 00:00:00 2001 From: Malte Londschien Date: Fri, 4 Jul 2025 19:35:46 +0200 Subject: [PATCH 12/15] Fix unit tests. --- tests/test_load.py | 2 +- tests/test_outcomes.py | 14 ++------------ 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/tests/test_load.py b/tests/test_load.py index c0ec0dd..ea4094e 100644 --- a/tests/test_load.py +++ b/tests/test_load.py @@ -13,7 +13,7 @@ ["mortality_at_24h", "circulatory_failure_at_8h", "respiratory_failure_at_24h"], ) def test_eicu_demo(outcome): - df, y = load(["eicu_demo"], outcome=outcome, data_dir=DATA_DIR) + df, y, _ = load(["eicu_demo"], outcome=outcome, data_dir=DATA_DIR) assert np.isnan(y).sum() == 0 assert len(df) == len(y) > 0 assert sorted(df.columns) == sorted(features()) diff --git a/tests/test_outcomes.py b/tests/test_outcomes.py index 1f81ec6..ec19973 100644 --- a/tests/test_outcomes.py +++ b/tests/test_outcomes.py @@ -124,7 +124,7 @@ def test_polars_nan_or(args, expected): ], ) def test_outcomes(outcome_name, input, expected): - expr = [e for e in outcomes() if e.meta.output_name() == outcome_name][0] + expr = [e for e in outcomes("eicu") if e.meta.output_name() == outcome_name][0] assert_series_equal( input.with_columns(expr).select(outcome_name).to_series(), expected.rename(outcome_name), @@ -134,16 +134,6 @@ def test_outcomes(outcome_name, input, expected): @pytest.mark.parametrize( "outcome_name, input, expected_events, expected_labels", [ - ( - "respiratory_failure_at_24h", - pl.DataFrame( - { - "pf_ratio": [None] * 36 + [100] * 12 + [None] * 24 + [500] * 12, - } - ), - pl.Series([None] * 36 + [True] * 12 + [None] * 24 + [False] * 12), - pl.Series([None] * 12 + [True] * 24 + [None] * 12 + [False] * 35 + [None]), - ), ( "circulatory_failure_at_8h", pl.DataFrame( @@ -209,7 +199,7 @@ def test_outcomes(outcome_name, input, expected): ], ) def test_eep_outcomes(outcome_name, input, expected_events, expected_labels): - expr = [e for e in outcomes() if e.meta.output_name() == outcome_name][0] + expr = [e for e in outcomes("eicu") if e.meta.output_name() == outcome_name][0] assert_series_equal( input.with_columns(expr).select(outcome_name).to_series(), From d215e8747856b98969335385d57dc8809c402977 Mon Sep 17 00:00:00 2001 From: Malte Londschien Date: Fri, 4 Jul 2025 19:36:32 +0200 Subject: [PATCH 13/15] Split into unit and integration tests. --- .github/workflows/ci.yaml | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index cbda268..b40a8e0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -6,6 +6,33 @@ on: jobs: unittest: + name: Unit tests - ${{ matrix.PYTHON_VERSION }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + PYTHON_VERSION: ["3.12"] + defaults: + run: + # see https://github.com/conda-incubator/setup-miniconda/#important + shell: bash -l {0} + steps: + - uses: actions/checkout@v3 + with: + lfs: true + - name: Set up micromamba + uses: mamba-org/setup-micromamba@29d0a406a44cd30f78c79aa44683acbf49ebc6b4 + with: + micromamba-version: 2.0.8-0 + cache-downloads: true + environment-file: environment.yml + - name: Install repository + run: python -m pip install --no-build-isolation --no-deps --disable-pip-version-check -e . + - name: Pytest + run: pytest tests + + + integration-tests: name: Unit tests - ${{ matrix.PYTHON_VERSION }} runs-on: ubuntu-latest strategy: @@ -39,9 +66,6 @@ jobs: python icu_features/split_datasets.py --data_dir "tests/testdata" python icu_features/icd_codes.py --data_dir "tests/testdata" --dataset "mimic_demo-carevue" python icu_features/feature_engineering.py --dataset "mimic_demo-carevue" --data_dir "tests/testdata" - - name: Pytest - run: pytest tests - pre-commit-checks: name: "Linux - pre-commit checks - Python 3.12" From 92071a0b275eef877d93f5710feacf07b7159148 Mon Sep 17 00:00:00 2001 From: Malte Londschien Date: Fri, 4 Jul 2025 19:40:38 +0200 Subject: [PATCH 14/15] Revert splitting. --- .github/workflows/ci.yaml | 29 ++--------------------------- 1 file changed, 2 insertions(+), 27 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b40a8e0..f166cf0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -5,33 +5,6 @@ on: pull_request: jobs: - unittest: - name: Unit tests - ${{ matrix.PYTHON_VERSION }} - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - PYTHON_VERSION: ["3.12"] - defaults: - run: - # see https://github.com/conda-incubator/setup-miniconda/#important - shell: bash -l {0} - steps: - - uses: actions/checkout@v3 - with: - lfs: true - - name: Set up micromamba - uses: mamba-org/setup-micromamba@29d0a406a44cd30f78c79aa44683acbf49ebc6b4 - with: - micromamba-version: 2.0.8-0 - cache-downloads: true - environment-file: environment.yml - - name: Install repository - run: python -m pip install --no-build-isolation --no-deps --disable-pip-version-check -e . - - name: Pytest - run: pytest tests - - integration-tests: name: Unit tests - ${{ matrix.PYTHON_VERSION }} runs-on: ubuntu-latest @@ -66,6 +39,8 @@ jobs: python icu_features/split_datasets.py --data_dir "tests/testdata" python icu_features/icd_codes.py --data_dir "tests/testdata" --dataset "mimic_demo-carevue" python icu_features/feature_engineering.py --dataset "mimic_demo-carevue" --data_dir "tests/testdata" + - name: Pytest + run: pytest tests pre-commit-checks: name: "Linux - pre-commit checks - Python 3.12" From 744aaa1b102d851eb08ed08f7eaadb10f27580dc Mon Sep 17 00:00:00 2001 From: Malte Londschien Date: Fri, 4 Jul 2025 19:41:24 +0200 Subject: [PATCH 15/15] Test mimic_demo-carevue as well --- tests/test_load.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/test_load.py b/tests/test_load.py index ea4094e..d6ffd01 100644 --- a/tests/test_load.py +++ b/tests/test_load.py @@ -13,7 +13,9 @@ ["mortality_at_24h", "circulatory_failure_at_8h", "respiratory_failure_at_24h"], ) def test_eicu_demo(outcome): - df, y, _ = load(["eicu_demo"], outcome=outcome, data_dir=DATA_DIR) + df, y, _ = load( + ["eicu_demo", "mimic_demo-carevue"], outcome=outcome, data_dir=DATA_DIR + ) assert np.isnan(y).sum() == 0 assert len(df) == len(y) > 0 assert sorted(df.columns) == sorted(features())