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.