Drug Knowledge Graph
Table of Contents
Drug Transformer
PyTrial also offers utilities for processing and transforming drug related data. The first one is
pytrial.model_utils.drug.DrugTransformer
that works for mapping between different drug
terminologies, e.g., from ATC to NDC, from ATC to SMILES, etc.
A colab example is available at demo_drug_utils.ipynb.
from pytrial.model_utils.drug import DrugTransformer
# Create a transformer
dt = DrugTransformer()
# drug name to SMILES
print(dt.name2smiles('Acetylsalicylic acid'))
# NDC to ATC4
print(dt.ndc2atc('00002140701'))
# ATC4 to NDC
print(dt.atc2ndc('C01BA'))
# drug name to NDC
print(dt.name2ndc('NEO*IV*Gentamicin'))
# NDC to drug name
print(dt.ndc2name('63323017302'))
# ATC4 to drug name
print(dt.atc2name('S01HA'))
# drug name to ATC4
print(dt.name2atc('atomoxetine'))
# NDC to SMILES
print(dt.ndc2smiles(['00002140701','00088222033']))
# ATC4 to SMILES
print(dt.atc2smiles(['S01HA','N06AX']))
Drug Graph
pytrial.model_utils.drug.DrugGraph
is a class for creating a drug knowledge graph.
A colab example is available at demo_drug_graph.ipynb.
from pytrial.model_utils.drug import DrugGraph
dg = DrugGraph()
print(dg.graph)
'''
DiGraph with 251947 nodes and 303921 edges
'''
The yielded dg.Graph
is a networkx.DiGraph
object, which can be used to analyze the drug knowledge graph
or create a graph neural network model.