Skip to content

Commit

Permalink
update examples
Browse files Browse the repository at this point in the history
  • Loading branch information
zzachw committed Nov 10, 2022
1 parent 60ee64a commit ae10132
Show file tree
Hide file tree
Showing 10 changed files with 179 additions and 511 deletions.
37 changes: 37 additions & 0 deletions examples/drug_recommendation_mimic3_gamenet.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
from pyhealth.datasets import MIMIC3Dataset
from pyhealth.datasets import split_by_patient, get_dataloader
from pyhealth.models import GAMENet
from pyhealth.tasks import drug_recommendation_mimic3_fn
from pyhealth.trainer import Trainer

# STEP 1: load data
dataset = MIMIC3Dataset(
root="/srv/local/data/physionet.org/files/mimiciii/1.4",
tables=["DIAGNOSES_ICD", "PROCEDURES_ICD", "PRESCRIPTIONS"],
code_mapping={"NDC": ("ATC", {"target_kwargs": {"level": 3}})},
)
print(dataset.stat())

# STEP 2: set task
dataset.set_task(drug_recommendation_mimic3_fn)
print(dataset.stat())

train_dataset, val_dataset, test_dataset = split_by_patient(dataset, [0.8, 0.1, 0.1])
train_dataloader = get_dataloader(train_dataset, batch_size=32, shuffle=True)
val_dataloader = get_dataloader(val_dataset, batch_size=32, shuffle=False)
test_dataloader = get_dataloader(test_dataset, batch_size=32, shuffle=False)

# STEP 3: define model
model = GAMENet(dataset)

# STEP 4: define trainer
trainer = Trainer(model=model)
trainer.train(
train_dataloader=train_dataloader,
val_dataloader=val_dataloader,
epochs=50,
monitor="pr_auc_samples",
)

# STEP 5: evaluate
trainer.evaluate(test_dataloader)
43 changes: 43 additions & 0 deletions examples/length_of_stay_mimic3_rnn.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
from pyhealth.datasets import MIMIC3Dataset
from pyhealth.datasets import split_by_patient, get_dataloader
from pyhealth.models import RNN
from pyhealth.tasks import length_of_stay_prediction_mimic3_fn
from pyhealth.trainer import Trainer

# STEP 1: load data
dataset = MIMIC3Dataset(
root="/srv/local/data/physionet.org/files/mimiciii/1.4",
tables=["DIAGNOSES_ICD", "PROCEDURES_ICD", "PRESCRIPTIONS"],
code_mapping={"ICD9CM": "CCSCM", "ICD9PROC": "CCSPROC", "NDC": "ATC"},
)
print(dataset.stat())

# STEP 2: set task
dataset.set_task(length_of_stay_prediction_mimic3_fn)
print(dataset.stat())

train_dataset, val_dataset, test_dataset = split_by_patient(dataset, [0.8, 0.1, 0.1])
train_dataloader = get_dataloader(train_dataset, batch_size=32, shuffle=True)
val_dataloader = get_dataloader(val_dataset, batch_size=32, shuffle=False)
test_dataloader = get_dataloader(test_dataset, batch_size=32, shuffle=False)

# STEP 3: define model
model = RNN(
dataset=dataset,
feature_keys=["conditions", "procedures", "drugs"],
label_key="label",
mode="multiclass",
operation_level="visit",
)

# STEP 4: define trainer
trainer = Trainer(model=model)
trainer.train(
train_dataloader=train_dataloader,
val_dataloader=val_dataloader,
epochs=50,
monitor="accuracy",
)

# STEP 5: evaluate
trainer.evaluate(test_dataloader)
13 changes: 13 additions & 0 deletions examples/medcode.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from pyhealth.medcode import CrossMap, InnerMap

ndc = InnerMap.load("NDC")
print("Looking up for NDC code 00597005801")
print(ndc.lookup("00597005801"))

codemap = CrossMap.load("NDC", "ATC")
print("Mapping NDC code 00597005801 to ATC")
print(codemap.map("00597005801"))

atc = InnerMap.load("ATC")
print("Looking up for ATC code G04CA02")
print(atc.lookup("G04CA02"))
43 changes: 43 additions & 0 deletions examples/mortality_mimic3_rnn.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
from pyhealth.datasets import MIMIC3Dataset
from pyhealth.datasets import split_by_patient, get_dataloader
from pyhealth.models import RNN
from pyhealth.tasks import mortality_prediction_mimic3_fn
from pyhealth.trainer import Trainer

# STEP 1: load data
dataset = MIMIC3Dataset(
root="/srv/local/data/physionet.org/files/mimiciii/1.4",
tables=["DIAGNOSES_ICD", "PROCEDURES_ICD", "PRESCRIPTIONS"],
code_mapping={"ICD9CM": "CCSCM", "ICD9PROC": "CCSPROC", "NDC": "ATC"},
)
print(dataset.stat())

# STEP 2: set task
dataset.set_task(mortality_prediction_mimic3_fn)
print(dataset.stat())

train_dataset, val_dataset, test_dataset = split_by_patient(dataset, [0.8, 0.1, 0.1])
train_dataloader = get_dataloader(train_dataset, batch_size=32, shuffle=True)
val_dataloader = get_dataloader(val_dataset, batch_size=32, shuffle=False)
test_dataloader = get_dataloader(test_dataset, batch_size=32, shuffle=False)

# STEP 3: define model
model = RNN(
dataset=dataset,
feature_keys=["conditions", "procedures", "drugs"],
label_key="label",
mode="binary",
operation_level="visit",
)

# STEP 4: define trainer
trainer = Trainer(model=model)
trainer.train(
train_dataloader=train_dataloader,
val_dataloader=val_dataloader,
epochs=50,
monitor="roc_auc",
)

# STEP 5: evaluate
trainer.evaluate(test_dataloader)
125 changes: 0 additions & 125 deletions examples/playground_drugrec.py

This file was deleted.

121 changes: 0 additions & 121 deletions examples/playground_length_of_stay.py

This file was deleted.

Loading

0 comments on commit ae10132

Please sign in to comment.