Code Examples
Step-by-step examples for common drug discovery workflows using the Omic platform.
1. Target Discovery from RNA-seq
Identify druggable targets from patient cohort expression data.
from omic import Omic
import pandas as pd
# Initialize client
client = Omic(api_key="your_api_key")
# Load your data
expression = pd.read_csv("counts_matrix.csv", index_col=0)
metadata = pd.read_csv("sample_metadata.csv")
# Run target discovery
job = client.discover_targets(
expression_data=expression,
metadata=metadata,
condition_column="disease_status",
case_value="disease",
control_value="healthy",
options={
"include_druggability": True,
"include_patient_stratification": True,
"min_fold_change": 1.5
}
)
# Wait for results
results = job.wait()
# Get top targets
for target in results.targets[:10]:
print(f"{target.gene_symbol}: "
f"druggability={target.druggability_score:.2f}, "
f"FC={target.fold_change:.2f}")2. Structure-Based Compound Generation
Generate novel compounds optimized for a protein target.
from omic import Omic, AlphaFold
client = Omic(api_key="your_api_key")
# Get protein structure from AlphaFold
structure = AlphaFold.get_structure("EGFR_HUMAN")
# Identify binding sites
binding_sites = structure.find_binding_sites()
primary_site = binding_sites[0]
# Generate optimized compounds
job = client.generate_compounds(
target_structure=structure,
binding_site=primary_site,
num_molecules=100,
constraints={
"mw_range": (350, 500),
"logp_range": (1, 4),
"tpsa_max": 140,
"rotatable_bonds_max": 8
},
optimize_for=["binding_affinity", "selectivity", "admet"]
)
results = job.wait()
# Export to SDF for further analysis
results.to_sdf("generated_compounds.sdf")3. Structure-Activity Relationship Analysis
Analyze SAR from ChEMBL bioactivity data.
from omic import Omic, ChEMBL
client = Omic(api_key="your_api_key")
# Get bioactivity data from ChEMBL
activities = ChEMBL.get_activities(
target="CHEMBL203", # EGFR
activity_type="IC50",
max_value=1000 # nM
)
# Run SAR analysis
sar = client.analyze_sar(
activities=activities,
include_mmp=True, # Matched molecular pairs
include_scaffolds=True
)
# Get key SAR insights
print("Activity cliffs detected:", len(sar.activity_cliffs))
print("Key pharmacophores:", sar.pharmacophores)
# Visualize SAR
sar.plot_mmp_network("mmp_network.html")
sar.plot_scaffold_tree("scaffold_tree.html")4. Digital Patient Cohort Simulation
Simulate drug response across a virtual patient population.
from omic import Omic
client = Omic(api_key="your_api_key")
# Define patient population
population = client.create_population(
size=1000,
disease="non_small_cell_lung_cancer",
demographics={
"age_range": (45, 75),
"sex_ratio": 0.55, # proportion male
"smoking_status": {"current": 0.3, "former": 0.4, "never": 0.3}
},
genomic_features={
"EGFR_mutation_rate": 0.15,
"KRAS_mutation_rate": 0.25,
"ALK_fusion_rate": 0.05
}
)
# Simulate drug response
simulation = client.simulate_treatment(
population=population,
drug_smiles="CC1=C(C=C(C=C1)NC2=NC=NC3=CC(=C(C=C32)OC)OC)NC(=O)C=C",
dosing={
"dose": 150,
"unit": "mg",
"frequency": "daily"
},
duration_weeks=12
)
# Analyze results
print(f"Overall response rate: {simulation.response_rate:.1%}")
print(f"Median PFS: {simulation.median_pfs:.1f} months")
# Identify responder subgroups
for subgroup in simulation.responder_subgroups:
print(f" {subgroup.name}: {subgroup.response_rate:.1%}")SDK Installation
Python
pip install omic
R
# Install from GitHub
devtools::install_github("omic-ai/omic-r")Jupyter Notebooks
Interactive notebooks with complete examples are available in our GitHub repository.
