TheJackBright's picture
Deploy PolyGuard OpenEnv Space
877add7 verified
"""Graph dataset builder."""
from __future__ import annotations
from dataclasses import dataclass
from app.knowledge.ddi_knowledge import top_risky_pairs
from app.knowledge.side_effect_ontology import SIDE_EFFECT_TAGS
@dataclass(slots=True)
class GraphSample:
drugs: list[str]
side_effects: list[str]
severe_alert: int
def build_graph_samples(regimens: list[list[str]]) -> list[GraphSample]:
samples: list[GraphSample] = []
for regimen in regimens:
tags: list[str] = []
for drug in regimen:
tags.extend(SIDE_EFFECT_TAGS.get(drug, []))
samples.append(
GraphSample(
drugs=regimen,
side_effects=sorted(set(tags)),
severe_alert=1 if top_risky_pairs(regimen) else 0,
)
)
return samples