Artificial Intelligence in Drug Discovery: How Machine Learning is Speeding Up Development Based on active 2025-2026 research - shows you're aware of where pharma is heading. I decide to write an article on these topic

Searching PubMed

machine learning drug discovery 2025

Searching PubMed

generative AI molecular design clinical trials

Searching the Web

AI drug discovery breakthroughs 2025 2026 clinical trials machine learning pharma

Reading Article

PMID: 40547666

Reading Article

PMID: 42491104

Reading Web Page

https://intuitionlabs.ai/articles/ai-drug-development-pipeli…

Here is your fully researched article, grounded in 2025-2026 data:

Artificial Intelligence in Drug Discovery: How Machine Learning is Speeding Up Development

July 2026 | Science & Technology

The Problem AI Set Out to Solve

Traditional drug discovery is brutal. On average it takes 10-15 years and $1-2 billion to bring a single drug from lab bench to pharmacy shelf - and nine out of ten candidates still fail in clinical trials. Most of those failures are discovered late, after years of investment, because biology is complex, data is siloed, and the chemical space of potential drug-like molecules is estimated at 10^60 compounds - far too vast for any human team to explore manually.
That is the problem machine learning (ML) walked into. And as of mid-2026, it is making real, measurable progress.

Where We Are Right Now (2025-2026)

Industry observers widely regard 2025 as the inflection year when AI drug discovery shifted from proof-of-concept to operational reality. By early 2026:
  • Over 173 AI-originated drug programs are in active clinical development, up from roughly 24 in late 2023 - a 7-fold increase in under three years.
  • 30% of all new drug programs now incorporate AI at some stage of development.
  • AI-discovered molecules are showing an 80-90% success rate in Phase I clinical trials, compared with the historical average of ~52%.
  • The global AI drug discovery market reached an estimated $4.46-5 billion in 2025-2026, projected to hit $12+ billion by 2034.
  • McKinsey estimates that generative AI could save the pharmaceutical industry $60-110 billion annually across the full value chain.
No AI-discovered drug has received full FDA approval yet as of July 2026, but that milestone is projected for 2026-2027, with 15-20 AI programs expected to enter pivotal Phase III trials this year alone.

The Core Technologies

1. Deep Learning for Molecular Design

Deep neural networks - particularly transformer architectures borrowed from natural language processing - have become the engine of generative molecule design. Models like those behind Insilico Medicine's Chemistry42 platform treat molecular structures as a "language," learning the rules of chemical grammar from millions of known compounds and then generating novel molecules optimized for target binding, selectivity, and synthetic accessibility.
A landmark 2026 review in the Journal of Pharmaceutical Analysis (Oliveira et al., 2026, PMID: 42491104) provides a comprehensive map of how deep learning is applied across molecular generation, binding affinity prediction, and multi-modal ligand-protein integration - covering both AI-discovered and AI-repurposed molecules now in clinical trials.

2. Graph Neural Networks (GNNs)

Molecules are naturally represented as graphs - atoms as nodes, bonds as edges. GNNs exploit this geometry directly, learning molecular properties without needing hand-crafted chemical descriptors. They are now widely used for:
  • Property prediction (solubility, toxicity, metabolic stability)
  • Protein-ligand binding affinity
  • Drug-drug interaction modeling

3. AlphaFold and Protein Structure Prediction

DeepMind's AlphaFold, now in its third generation, has been arguably the single biggest catalyst in the field. By solving the decades-old protein folding problem - predicting 3D structure from amino acid sequence - it opened up thousands of previously undruggable targets. Researchers can now perform structure-based drug design against targets whose crystal structures were never experimentally solved.

4. Generative AI for De Novo Drug Design

Generative models (diffusion models, variational autoencoders, large language models fine-tuned on chemical data) design molecules from scratch given a target profile. Rather than screening a fixed compound library, these tools explore chemical space actively, proposing novel scaffolds that human medicinal chemists would not have imagined.

5. Machine Learning-Enabled Toxicity Prediction

A major cause of late-stage failure is unforeseen toxicity. A 2025 review in Advanced Science (Bai et al., PMID: 39899688) details how ML models trained on large toxicology datasets now predict drug-induced liver injury, cardiotoxicity (hERG inhibition), and genotoxicity in silico - before a compound is ever synthesized - dramatically reducing costly late-stage failures.

6. Reinforcement Learning (RL) for Molecular Optimization

RL agents are now being trained to navigate chemical space like a strategic game, proposing modifications to a molecule and receiving rewards based on predicted properties. Production-ready RL infrastructure for scientific agents emerged as a genuine technical advance in 2025-2026, enabling automated multi-objective optimization cycles that previously required teams of medicinal chemists working for months.

Landmark Case Studies

Insilico Medicine: The First End-to-End AI Drug

The most closely watched story in AI drug discovery is Insilico Medicine's rentosertib (ISM001-055), a TNIK kinase inhibitor for idiopathic pulmonary fibrosis (IPF). The target (TNIK) was identified by Insilico's PandaOmics platform using AI-driven multi-omics analysis of disease networks - a target traditional methods had missed. The molecule was designed entirely by the Chemistry42 generative chemistry platform.
The result: Phase IIa trials showed dose-dependent improvement in lung function, published in Nature Medicine as the first clinical proof-of-concept for a fully end-to-end AI-discovered drug. Total discovery cost: approximately $6 million. The traditional path to the same milestone costs $100-200 million and takes 6-8 years.
That cost inversion is the number most pharma executives are staring at right now.

Recursion Pharmaceuticals: Biology at Scale

Recursion runs a "biological operating system" - automated lab infrastructure that generates millions of cellular imaging experiments per week, with ML models extracting phenotypic patterns from the data. It has 13+ programs in the clinic across oncology, rare disease, and neuroscience. However, a Phase II miss in 2025-2026 was a sobering reminder that preclinical AI prediction does not automatically transfer to human biology.

Antibody Design: AI Enters Biologics

A December 2025 review in MAbs (Vecchietti et al., PMID: 40677216) documents how AI methods - including structure-prediction networks and sequence-space exploration - are now accelerating antibody optimization, epitope mapping, and bispecific antibody design, extending AI's reach beyond small molecules into the biologics space. A companion 2025 review in Trends in Pharmacological Sciences (Wang et al., PMID: 41219042) covers AI applications specifically in antibody-drug conjugate (ADC) development, one of oncology's hottest drug classes.

Antimicrobial Peptides: Fighting AMR with AI

Given the global antibiotic resistance crisis, AI-driven discovery of antimicrobial peptides (AMPs) has become a priority. A 2025 review in Accounts of Chemical Research (Szymczak et al., PMID: 40459283) covers how generative ML models are now mining natural sequence databases and designing entirely novel AMPs, opening a new front against drug-resistant pathogens.

Big Pharma's Strategic Response

The AI-native biotechs have forced a reaction across Big Pharma:
  • Eli Lilly (September 2025) launched a public ML platform giving biotech firms access to drug discovery models trained on decades of its internal research data. In early 2026, Lilly also partnered with AI biotech Chai Discovery.
  • GSK partnered with Noetik (early 2026) and runs an in-house AI unit that has identified novel drug targets independently.
  • Pfizer partnered with Boltz (2026), an AI platform for protein-ligand structure prediction.
  • Sanofi launched a company-wide "digital twin" initiative across clinical and manufacturing operations.
  • Roche is partnering with AI startups for clinical data mining and trial optimization.
These deals - collectively worth hundreds of millions of dollars - signal that AI is now viewed as core R&D infrastructure, not an experimental add-on.

AI in Clinical Trials: Beyond Discovery

The pipeline benefit of AI does not stop at molecule design. Machine learning is accelerating clinical development too:
  • Patient stratification: ML models analyzing genomic and electronic health record data identify which patients are most likely to respond, enabling smaller, faster trials.
  • Trial site optimization: NLP/ML tools pre-screening electronic medical records have improved enrollment speed by ~25% in pilot cardiovascular trials.
  • Drug repurposing: By training models on existing approved drugs and disease pathways, AI identifies new indications for compounds that have already cleared safety hurdles - the fastest possible path to the clinic.
  • Synthetic control arms: ML models trained on historical trial data can construct virtual control arms, reducing placebo group requirements and patient burden.
The FDA launched its CDER AI Pilot Program to partner with AI companies on chemistry and clinical data analysis, and in December 2025 qualified its first AI tool for use within clinical trials - a regulatory signal that the framework is adapting.

The Real Picture: What AI Cannot (Yet) Do

A balanced view requires honesty about the limits. Drug Target Review's 2026 analysis is direct: AI demonstrably compresses early discovery timelines by 30-40% and reduces preclinical candidate development to 13-18 months (versus the traditional 3-4 years). But:
  • Clinical trial duration is not compressed by AI. Patient enrollment, biological endpoints, and regulatory review timelines impose hard constraints.
  • Clinical failures remain common. Multiple AI-designed programs were deprioritized or shelved after Phase II in 2025-2026. Biology is messy, and no model fully captures the complexity of human disease.
  • Model interpretability remains limited. Many deep learning models are black boxes, making it hard for medicinal chemists to understand why a prediction was made - which undermines trust and iterative improvement.
  • Data quality is the hidden constraint. AI models are only as good as the datasets they train on. Inconsistent, biased, or small training sets lead to models that perform well on benchmarks but fail in practice.
  • One candid assessment from a pharma CEO, quoted in Drug Target Review: "AI has really let us all down in the last decade when it comes to drug discovery - we've just seen failure after failure." That voice represents a real counterweight to the hype.

What to Watch in the Next 12-18 Months

  1. First FDA approval of an AI-discovered drug. Projected with ~60% probability in 2026-2027. If it happens, it will be a watershed moment.
  2. Phase III readouts from Insilico and Recursion programs. Success at scale is the field's defining test.
  3. Regulatory framework maturation. FDA and EMA are actively developing AI-specific guidance for drug approval dossiers.
  4. Foundation models for biology. Large language models trained on protein sequences, genomics, and chemical data are converging into general-purpose "biology foundation models." Companies like Chai Discovery, Isomorphic Labs (Google DeepMind's spinout), and EvolutionaryScale are in active development.
  5. AI-designed biologics. The move from small molecules into antibodies, cell therapies, and RNA medicines represents AI's next frontier.

Conclusion

The story of AI in drug discovery in 2025-2026 is neither pure hype nor pure breakthrough - it is a field in the difficult middle stage, where early promise is meeting clinical reality. The tools are real, the timelines are genuinely compressing, and the economics are fundamentally better than traditional approaches. But the biology is still hard, failures are still common, and the definitive moment - an FDA-approved AI-discovered drug - has not yet arrived as of July 2026.
What is clear is that this transition is irreversible. Over 173 programs in the clinic, $60-110 billion in projected annual savings, and every major pharma company now betting on AI as core infrastructure. The question is no longer whether machine learning will change drug discovery - it already has. The question is how quickly that change reaches patients.

Key Sources:

This article is ~2,000 words and structured for a general professional/science audience. If you want me to adapt it - shorter executive summary, deeper technical dive on a specific ML architecture, or reformatted for a particular publication style - just say the word.

Generate a professional presentation (PPTX) on this article for investor or stakeholder briefing

Reading File
Reading File
Reading File
Running Command

mkdir -p /tmp/workspace/ai-drug-discovery-pptx && ls /tmp/workspace/

Writing File

~/ai-drug-discovery-pptx/build_deck.py

"""
AI in Drug Discovery — Investor/Stakeholder Briefing Deck
Professional 16:9 presentation, dark-blue corporate theme
"""

from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.enum.shapes import MSO_SHAPE
from pptx.enum.shapes import MSO_CONNECTOR
from io import BytesIO

# ── Palette ─────────────────────────────────────────────────────────────────
NAVY        = RGBColor(0x0A, 0x1F, 0x44)   # slide background dark
BLUE        = RGBColor(0x00, 0x5B, 0xB5)   # accent bar / shapes
TEAL        = RGBColor(0x00, 0xB4, 0xD8)   # highlight accent
WHITE       = RGBColor(0xFF, 0xFF, 0xFF)
LIGHT_GRAY  = RGBColor(0xE8, 0xF0, 0xFE)
MID_GRAY    = RGBColor(0xA0, 0xB4, 0xCC)
GOLD        = RGBColor(0xFF, 0xC3, 0x00)
DARK_TEXT   = RGBColor(0x0D, 0x1B, 0x2A)

W = Inches(13.333)
H = Inches(7.5)

prs = Presentation()
prs.slide_width  = W
prs.slide_height = H
blank = prs.slide_layouts[6]   # fully blank — we place everything

# ── Helper Functions ─────────────────────────────────────────────────────────

def add_bg(slide, color=NAVY):
    bg = slide.background
    fill = bg.fill
    fill.solid()
    fill.fore_color.rgb = color

def add_rect(slide, x, y, w, h, fill_color, line_color=None, line_width=Pt(0)):
    shp = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, x, y, w, h)
    shp.fill.solid()
    shp.fill.fore_color.rgb = fill_color
    if line_color:
        shp.line.color.rgb = line_color
        shp.line.width = line_width
    else:
        shp.line.fill.background()
    shp.shadow.inherit = False
    return shp

def add_rounded_rect(slide, x, y, w, h, fill_color, line_color=None, line_width=Pt(0)):
    shp = slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, x, y, w, h)
    shp.fill.solid()
    shp.fill.fore_color.rgb = fill_color
    if line_color:
        shp.line.color.rgb = line_color
        shp.line.width = line_width
    else:
        shp.line.fill.background()
    shp.shadow.inherit = False
    return shp

def txb(slide, text, x, y, w, h, size=18, bold=False, color=WHITE,
        align=PP_ALIGN.LEFT, italic=False, font="Calibri", wrap=True, valign=MSO_ANCHOR.TOP):
    tb = slide.shapes.add_textbox(x, y, w, h)
    tf = tb.text_frame
    tf.word_wrap = wrap
    tf.vertical_anchor = valign
    tf.margin_left  = 0
    tf.margin_right = 0
    tf.margin_top   = 0
    tf.margin_bottom= 0
    p = tf.paragraphs[0]
    p.alignment = align
    run = p.add_run()
    run.text = text
    run.font.name  = font
    run.font.size  = Pt(size)
    run.font.bold  = bold
    run.font.italic= italic
    run.font.color.rgb = color
    return tf

def add_multiline_txb(slide, lines, x, y, w, h, size=14, bold_first=False,
                      color=WHITE, line_spacing=None, font="Calibri"):
    """lines = list of (text, bold, color_override_or_None)"""
    tb = slide.shapes.add_textbox(x, y, w, h)
    tf = tb.text_frame
    tf.word_wrap = True
    tf.margin_left  = 0
    tf.margin_right = 0
    tf.margin_top   = 0
    tf.margin_bottom= 0
    for i, entry in enumerate(lines):
        if isinstance(entry, str):
            text, bold, col = entry, (i == 0 and bold_first), color
        else:
            text, bold, col = entry
        if i == 0:
            p = tf.paragraphs[0]
        else:
            p = tf.add_paragraph()
        if line_spacing:
            from pptx.util import Pt as _Pt
            from pptx.oxml.ns import qn
            from lxml import etree
            pPr = p._pPr if p._pPr is not None else p._p.get_or_add_pPr()
        run = p.add_run()
        run.text = text
        run.font.name  = font
        run.font.size  = Pt(size)
        run.font.bold  = bold
        run.font.color.rgb = col if col else color
    return tf

def add_divider(slide, y, color=BLUE, thickness=Pt(2)):
    ln = slide.shapes.add_connector(MSO_CONNECTOR.STRAIGHT,
                                     Inches(0.5), y, Inches(12.833), y)
    ln.line.color.rgb = color
    ln.line.width = thickness

def stat_card(slide, x, y, w, h, number, label, sublabel="",
              card_color=BLUE, num_color=GOLD, lbl_color=WHITE):
    add_rounded_rect(slide, x, y, w, h, card_color)
    # number
    txb(slide, number, x + Inches(0.15), y + Inches(0.12),
        w - Inches(0.3), Inches(0.85),
        size=32, bold=True, color=num_color, align=PP_ALIGN.CENTER)
    # label
    txb(slide, label, x + Inches(0.1), y + Inches(0.95),
        w - Inches(0.2), Inches(0.5),
        size=13, bold=True, color=lbl_color, align=PP_ALIGN.CENTER, wrap=True)
    if sublabel:
        txb(slide, sublabel, x + Inches(0.1), y + Inches(1.45),
            w - Inches(0.2), Inches(0.35),
            size=10, color=MID_GRAY, align=PP_ALIGN.CENTER, wrap=True)

# ─────────────────────────────────────────────────────────────────────────────
# SLIDE 1 — Cover
# ─────────────────────────────────────────────────────────────────────────────
s1 = prs.slides.add_slide(blank)
add_bg(s1, NAVY)

# Left accent bar
add_rect(s1, Inches(0), Inches(0), Inches(0.12), H, BLUE)

# Top accent line
add_rect(s1, Inches(0.12), Inches(0), W - Inches(0.12), Inches(0.06), TEAL)

# Big title
txb(s1, "Artificial Intelligence\nin Drug Discovery",
    Inches(0.8), Inches(1.2), Inches(8.5), Inches(2.8),
    size=52, bold=True, color=WHITE, font="Calibri Light")

# Subtitle
txb(s1, "How Machine Learning is Speeding Up\nPharmaceutical Development",
    Inches(0.8), Inches(4.0), Inches(8.0), Inches(1.2),
    size=22, bold=False, color=TEAL, font="Calibri Light")

# Divider
add_rect(s1, Inches(0.8), Inches(5.3), Inches(4.0), Inches(0.05), GOLD)

# Tag line
txb(s1, "Investor & Stakeholder Briefing  |  July 2026",
    Inches(0.8), Inches(5.5), Inches(7.0), Inches(0.45),
    size=14, color=MID_GRAY)

# Right side — decorative molecule node graphic (circles)
circle_data = [
    (Inches(10.0), Inches(1.5), Inches(1.2), BLUE),
    (Inches(11.5), Inches(2.8), Inches(0.9), TEAL),
    (Inches(9.6),  Inches(3.5), Inches(0.7), RGBColor(0x1A, 0x3A, 0x6C)),
    (Inches(11.2), Inches(4.5), Inches(1.0), BLUE),
    (Inches(10.5), Inches(5.6), Inches(0.6), TEAL),
    (Inches(9.2),  Inches(5.1), Inches(0.45), GOLD),
    (Inches(12.0), Inches(1.2), Inches(0.5), GOLD),
]
for cx, cy, cr, cc in circle_data:
    shp = s1.shapes.add_shape(MSO_SHAPE.OVAL, cx, cy, cr, cr)
    shp.fill.solid(); shp.fill.fore_color.rgb = cc
    shp.line.fill.background(); shp.shadow.inherit = False

# Connector lines between circles
def connect(slide, x1, y1, x2, y2, color=BLUE, w=Pt(1.5)):
    ln = slide.shapes.add_connector(MSO_CONNECTOR.STRAIGHT, x1, y1, x2, y2)
    ln.line.color.rgb = color; ln.line.width = w

connect(s1, Inches(10.6), Inches(2.1), Inches(11.95), Inches(3.25), BLUE)
connect(s1, Inches(11.95), Inches(3.25), Inches(10.3), Inches(3.85), TEAL)
connect(s1, Inches(10.3), Inches(3.85), Inches(11.7), Inches(5.0), BLUE)
connect(s1, Inches(11.7), Inches(5.0), Inches(10.8), Inches(5.93), TEAL)
connect(s1, Inches(10.8), Inches(5.93), Inches(9.65), Inches(5.37), GOLD)
connect(s1, Inches(9.65), Inches(5.37), Inches(9.95), Inches(4.0), MID_GRAY)

# ─────────────────────────────────────────────────────────────────────────────
# SLIDE 2 — The Problem
# ─────────────────────────────────────────────────────────────────────────────
s2 = prs.slides.add_slide(blank)
add_bg(s2, NAVY)
add_rect(s2, Inches(0), Inches(0), Inches(0.12), H, BLUE)

txb(s2, "The Problem AI Set Out to Solve",
    Inches(0.4), Inches(0.2), Inches(11.0), Inches(0.75),
    size=30, bold=True, color=WHITE)
add_rect(s2, Inches(0.4), Inches(0.95), Inches(5.5), Inches(0.05), TEAL)

# Three pain-point cards
pain = [
    ("10-15 Years", "Average time from lab to pharmacy shelf", BLUE),
    ("$1-2 Billion", "Average cost per approved drug", RGBColor(0x1A, 0x52, 0x9E)),
    ("~90% Failure", "Of candidates fail in clinical trials", RGBColor(0x0D, 0x3D, 0x7A)),
]
for i, (num, lab, col) in enumerate(pain):
    stat_card(s2, Inches(0.4 + i * 4.2), Inches(1.2), Inches(3.9), Inches(2.1),
              num, lab, card_color=col, num_color=GOLD)

# Two challenge boxes
challenges = [
    ("Chemical Space Too Vast",
     "~10\u2076\u2070 possible drug-like molecules — impossible to screen manually. "
     "AI explores this space at machine speed."),
    ("Late-Stage Failures Are Costly",
     "Most failures discovered after years of investment. "
     "ML identifies toxicity, off-targets, and poor bioavailability before synthesis."),
]
for i, (title, body) in enumerate(challenges):
    bx = add_rounded_rect(s2, Inches(0.4 + i * 6.45), Inches(3.5), Inches(6.1), Inches(3.5),
                           RGBColor(0x0F, 0x2D, 0x5A), line_color=TEAL, line_width=Pt(1.2))
    txb(s2, title,
        Inches(0.7 + i * 6.45), Inches(3.65), Inches(5.5), Inches(0.55),
        size=16, bold=True, color=TEAL)
    txb(s2, body,
        Inches(0.7 + i * 6.45), Inches(4.25), Inches(5.5), Inches(2.5),
        size=13, color=LIGHT_GRAY, wrap=True)

# ─────────────────────────────────────────────────────────────────────────────
# SLIDE 3 — Market Snapshot 2025-2026
# ─────────────────────────────────────────────────────────────────────────────
s3 = prs.slides.add_slide(blank)
add_bg(s3, NAVY)
add_rect(s3, Inches(0), Inches(0), Inches(0.12), H, TEAL)

txb(s3, "Market Snapshot: 2025–2026",
    Inches(0.4), Inches(0.2), Inches(11.0), Inches(0.75),
    size=30, bold=True, color=WHITE)
add_rect(s3, Inches(0.4), Inches(0.95), Inches(5.0), Inches(0.05), GOLD)

# 6 KPI stat cards in 2 rows
kpis = [
    ("173+",  "AI-originated drug\nprograms in the clinic", "Up from ~24 in late 2023"),
    ("$4.5B", "AI drug discovery\nmarket size (2025)", "→ $12.5B by 2034"),
    ("80-90%", "Phase I success rate\nfor AI molecules", "vs. 52% historical avg."),
    ("30%",   "New drug programs\nincorporate AI", "2026 industry estimate"),
    ("$60-110B", "Potential annual savings\nfor pharma (McKinsey)", "Generative AI across value chain"),
    ("2026-27", "Projected first\nFDA approval", "~60% probability"),
]
cols = 3
for i, (num, lab, sub) in enumerate(kpis):
    row = i // cols
    col = i % cols
    stat_card(s3,
              Inches(0.4 + col * 4.28), Inches(1.2 + row * 2.85),
              Inches(4.0), Inches(2.55),
              num, lab, sub,
              card_color=BLUE if row == 0 else RGBColor(0x0D, 0x3D, 0x7A),
              num_color=GOLD)

# Bottom note
txb(s3, "Sources: IntuitionLabs 2026 | McKinsey | Fortune Business Insights | PubMed literature (2025-2026)",
    Inches(0.4), Inches(7.05), Inches(12.0), Inches(0.35),
    size=9, color=MID_GRAY, italic=True)

# ─────────────────────────────────────────────────────────────────────────────
# SLIDE 4 — Core Technologies
# ─────────────────────────────────────────────────────────────────────────────
s4 = prs.slides.add_slide(blank)
add_bg(s4, NAVY)
add_rect(s4, Inches(0), Inches(0), Inches(0.12), H, BLUE)

txb(s4, "Core Technologies Powering the Revolution",
    Inches(0.4), Inches(0.2), Inches(12.0), Inches(0.75),
    size=30, bold=True, color=WHITE)
add_rect(s4, Inches(0.4), Inches(0.95), Inches(6.0), Inches(0.05), TEAL)

techs = [
    ("Deep Learning\n& Transformers",
     "Treat molecules as 'language' — generate novel candidates with desired profiles. "
     "Backbone of generative molecule design platforms."),
    ("Graph Neural\nNetworks (GNNs)",
     "Model atoms as nodes, bonds as edges. Used for binding affinity, "
     "ADMET property prediction, and drug-drug interaction modeling."),
    ("AlphaFold 3\n& Structure AI",
     "Solved the protein-folding problem. Opens thousands of previously "
     "undruggable targets. Enables structure-based drug design without X-ray crystallography."),
    ("Generative AI &\nDe Novo Design",
     "Diffusion models and LLMs design molecules from scratch. "
     "Active exploration of chemical space — not limited to known compound libraries."),
    ("Reinforcement\nLearning (RL)",
     "RL agents optimize molecules iteratively. Production-ready RL for scientific agents "
     "emerged in 2025-2026 as a genuine advance in automated discovery workflows."),
    ("ML Toxicity\nPrediction",
     "Predict DILI, cardiotoxicity (hERG), and genotoxicity in silico — before any synthesis. "
     "Cuts late-stage attrition dramatically. (Bai et al., Adv Sci 2025)"),
]

# 2 rows × 3 cols
for i, (title, body) in enumerate(techs):
    row = i // 3
    col = i % 3
    bx_x = Inches(0.35 + col * 4.32)
    bx_y = Inches(1.2 + row * 2.9)
    add_rounded_rect(s4, bx_x, bx_y, Inches(4.1), Inches(2.7),
                     RGBColor(0x0F, 0x2D, 0x5A), line_color=TEAL, line_width=Pt(0.8))
    # number badge
    badge = s4.shapes.add_shape(MSO_SHAPE.OVAL, bx_x + Inches(0.15), bx_y + Inches(0.12),
                                 Inches(0.4), Inches(0.4))
    badge.fill.solid(); badge.fill.fore_color.rgb = TEAL
    badge.line.fill.background(); badge.shadow.inherit = False
    txb(s4, str(i + 1), bx_x + Inches(0.17), bx_y + Inches(0.12),
        Inches(0.36), Inches(0.38), size=12, bold=True, color=NAVY,
        align=PP_ALIGN.CENTER, valign=MSO_ANCHOR.MIDDLE)
    txb(s4, title, bx_x + Inches(0.65), bx_y + Inches(0.12),
        Inches(3.3), Inches(0.65), size=13, bold=True, color=TEAL)
    txb(s4, body, bx_x + Inches(0.18), bx_y + Inches(0.82),
        Inches(3.7), Inches(1.78), size=11, color=LIGHT_GRAY, wrap=True)

# ─────────────────────────────────────────────────────────────────────────────
# SLIDE 5 — Case Studies
# ─────────────────────────────────────────────────────────────────────────────
s5 = prs.slides.add_slide(blank)
add_bg(s5, NAVY)
add_rect(s5, Inches(0), Inches(0), Inches(0.12), H, GOLD)

txb(s5, "Landmark Case Studies",
    Inches(0.4), Inches(0.2), Inches(11.0), Inches(0.75),
    size=30, bold=True, color=WHITE)
add_rect(s5, Inches(0.4), Inches(0.95), Inches(4.5), Inches(0.05), GOLD)

cases = [
    ("Insilico Medicine\n(Rentosertib / IPF)",
     "First fully AI-designed drug (target ID + molecule design) to show Phase IIa proof-of-concept.\n"
     "Target: TNIK kinase — found by PandaOmics AI, missed by traditional methods.\n"
     "Cost: ~$6M vs. $100-200M traditional | Timeline: 18 months vs. 6-8 years.\n"
     "Published in Nature Medicine. Now in pivotal Phase III.",
     GOLD),
    ("Recursion\nPharmaceuticals",
     "Automated biological OS: millions of cellular imaging experiments per week.\n"
     "ML extracts phenotypic disease patterns at scale.\n"
     "13+ programs in clinical development across oncology, rare disease, neuroscience.\n"
     "Phase II miss in 2025 — reminder that AI doesn't eliminate clinical risk.",
     TEAL),
    ("Big Pharma\nPartnerships 2026",
     "Eli Lilly + Chai Discovery | GSK + Noetik | Pfizer + Boltz\n"
     "Sanofi company-wide 'digital twin' initiative | Roche AI clinical data mining.\n"
     "Eli Lilly opened its ML platform to external biotech partners (Sep 2025).\n"
     "Collectively worth hundreds of millions — AI is now core R&D infrastructure.",
     BLUE),
]

for i, (title, body, accent) in enumerate(cases):
    bx_x = Inches(0.35 + i * 4.32)
    add_rounded_rect(s5, bx_x, Inches(1.15), Inches(4.1), Inches(5.85),
                     RGBColor(0x0F, 0x2D, 0x5A), line_color=accent, line_width=Pt(1.5))
    add_rect(s5, bx_x, Inches(1.15), Inches(4.1), Inches(0.08), accent)
    txb(s5, title, bx_x + Inches(0.2), Inches(1.28),
        Inches(3.7), Inches(0.9), size=14, bold=True, color=accent, wrap=True)
    txb(s5, body, bx_x + Inches(0.2), Inches(2.2),
        Inches(3.7), Inches(4.5), size=11.5, color=LIGHT_GRAY, wrap=True)

# ─────────────────────────────────────────────────────────────────────────────
# SLIDE 6 — Drug Discovery Pipeline with AI
# ─────────────────────────────────────────────────────────────────────────────
s6 = prs.slides.add_slide(blank)
add_bg(s6, NAVY)
add_rect(s6, Inches(0), Inches(0), Inches(0.12), H, BLUE)

txb(s6, "AI Across the Drug Discovery Pipeline",
    Inches(0.4), Inches(0.2), Inches(12.0), Inches(0.75),
    size=30, bold=True, color=WHITE)
add_rect(s6, Inches(0.4), Inches(0.95), Inches(6.5), Inches(0.05), TEAL)

stages = [
    ("Target\nIdentification", "AI mines genomics,\nomics & literature\nto find novel targets",   BLUE),
    ("Hit\nDiscovery",         "Generative AI designs\ncandidates; GNNs\npredict binding",         RGBColor(0x00, 0x7A, 0xC1)),
    ("Lead\nOptimization",     "RL agents iterate\non ADMET, selectivity\n& synthesizability",     RGBColor(0x00, 0x9A, 0xD0)),
    ("Preclinical\nTesting",   "ML toxicity models\npredict failure\nbefore animal studies",       TEAL),
    ("Clinical\nTrials",       "AI stratifies patients,\noptimizes sites,\ncreates synthetic arms", RGBColor(0x00, 0x96, 0x88)),
    ("Regulatory\n& Approval", "FDA CDER AI Pilot;\nFirst approval\nprojected 2026-27",            RGBColor(0x00, 0x70, 0x64)),
]

box_w = Inches(1.95)
box_h = Inches(3.5)
start_x = Inches(0.35)
for i, (stage, desc, col) in enumerate(stages):
    bx = start_x + i * (box_w + Inches(0.08))
    # Top box (stage name)
    add_rounded_rect(s6, bx, Inches(1.15), box_w, Inches(1.0), col)
    # Stage number circle
    circ = s6.shapes.add_shape(MSO_SHAPE.OVAL, bx + Inches(0.77), Inches(0.7), Inches(0.45), Inches(0.45))
    circ.fill.solid(); circ.fill.fore_color.rgb = GOLD
    circ.line.fill.background(); circ.shadow.inherit = False
    txb(s6, str(i + 1), bx + Inches(0.79), Inches(0.72),
        Inches(0.41), Inches(0.41), size=14, bold=True, color=NAVY,
        align=PP_ALIGN.CENTER, valign=MSO_ANCHOR.MIDDLE)
    txb(s6, stage, bx + Inches(0.08), Inches(1.2),
        box_w - Inches(0.16), Inches(0.9), size=12, bold=True, color=WHITE,
        align=PP_ALIGN.CENTER, wrap=True, valign=MSO_ANCHOR.MIDDLE)
    # Description box
    add_rounded_rect(s6, bx, Inches(2.3), box_w, Inches(2.2),
                     RGBColor(0x0F, 0x2D, 0x5A), line_color=col, line_width=Pt(0.8))
    txb(s6, desc, bx + Inches(0.1), Inches(2.4),
        box_w - Inches(0.2), Inches(2.0), size=11, color=LIGHT_GRAY,
        align=PP_ALIGN.CENTER, wrap=True, valign=MSO_ANCHOR.MIDDLE)
    # Arrow (not after last)
    if i < len(stages) - 1:
        arr_x = bx + box_w + Inches(0.0)
        arr_y = Inches(1.6)
        add_rect(s6, arr_x, arr_y, Inches(0.08), Inches(0.25), TEAL)

# Timeline comparison
add_rect(s6, Inches(0.35), Inches(4.75), Inches(12.65), Inches(0.06), RGBColor(0x1A, 0x3A, 0x6C))
txb(s6, "Traditional timeline: 10–15 years    |    AI-accelerated timeline: 4–7 years (preclinical compressed 30–40%)",
    Inches(0.4), Inches(4.85), Inches(12.0), Inches(0.5),
    size=13, color=GOLD, bold=True, align=PP_ALIGN.CENTER)

txb(s6, "AI compresses target ID → preclinical by 30–40%. Clinical phases remain biologically constrained.",
    Inches(0.4), Inches(5.4), Inches(12.0), Inches(0.45),
    size=11.5, color=MID_GRAY, align=PP_ALIGN.CENTER)

# Source
txb(s6, "Sources: Drug Target Review 2026 | Ferreira & Carneiro, ACS Omega 2025 | Oliveira et al., J Pharm Anal 2026",
    Inches(0.4), Inches(7.05), Inches(12.0), Inches(0.35),
    size=9, color=MID_GRAY, italic=True)

# ─────────────────────────────────────────────────────────────────────────────
# SLIDE 7 — AI Beyond Discovery: Clinical Trials
# ─────────────────────────────────────────────────────────────────────────────
s7 = prs.slides.add_slide(blank)
add_bg(s7, NAVY)
add_rect(s7, Inches(0), Inches(0), Inches(0.12), H, TEAL)

txb(s7, "AI in Clinical Trials: Beyond Discovery",
    Inches(0.4), Inches(0.2), Inches(12.0), Inches(0.75),
    size=30, bold=True, color=WHITE)
add_rect(s7, Inches(0.4), Inches(0.95), Inches(5.5), Inches(0.05), GOLD)

apps = [
    ("Patient Stratification",
     "ML on genomics and EHR identifies responders upfront — smaller, faster trials with better signal.",
     "🎯"),
    ("Recruitment Acceleration",
     "NLP prescreening of medical records improved enrollment speed ~25% in cardiovascular trial pilots.",
     "📈"),
    ("Drug Repurposing",
     "Models trained on approved drugs + disease pathways identify new indications — fastest path to clinic.",
     "♻️"),
    ("Synthetic Control Arms",
     "ML on historical data builds virtual placebo arms — reduces patient burden and trial size requirements.",
     "🔬"),
    ("Regulatory AI",
     "FDA CDER AI Pilot launched 2025. First AI tool qualified for use in clinical trials: December 2025.",
     "✅"),
    ("Safety Monitoring",
     "Real-time ML on trial data detects safety signals and adverse event patterns earlier than traditional review.",
     "🛡️"),
]

for i, (title, body, icon) in enumerate(apps):
    row = i // 2
    col = i % 2
    bx_x = Inches(0.35 + col * 6.5)
    bx_y = Inches(1.2 + row * 1.95)
    add_rounded_rect(s7, bx_x, bx_y, Inches(6.2), Inches(1.75),
                     RGBColor(0x0F, 0x2D, 0x5A), line_color=TEAL, line_width=Pt(0.8))
    txb(s7, icon + "  " + title, bx_x + Inches(0.2), bx_y + Inches(0.12),
        Inches(5.8), Inches(0.45), size=14, bold=True, color=TEAL, wrap=True)
    txb(s7, body, bx_x + Inches(0.2), bx_y + Inches(0.6),
        Inches(5.8), Inches(1.05), size=11.5, color=LIGHT_GRAY, wrap=True)

# ─────────────────────────────────────────────────────────────────────────────
# SLIDE 8 — Risks & Realities (Balanced View)
# ─────────────────────────────────────────────────────────────────────────────
s8 = prs.slides.add_slide(blank)
add_bg(s8, NAVY)
add_rect(s8, Inches(0), Inches(0), Inches(0.12), H, RGBColor(0xFF, 0x60, 0x0A))

txb(s8, "The Balanced Picture: Risks & Realities",
    Inches(0.4), Inches(0.2), Inches(12.0), Inches(0.75),
    size=30, bold=True, color=WHITE)
add_rect(s8, Inches(0.4), Inches(0.95), Inches(6.0), Inches(0.05), RGBColor(0xFF, 0x60, 0x0A))

# Two columns: Strengths | Challenges
col_titles = ["What AI Demonstrably Delivers", "What AI Cannot (Yet) Fix"]
col_colors = [TEAL, RGBColor(0xFF, 0x60, 0x0A)]
strengths = [
    "30–40% compression of early discovery timelines",
    "Preclinical candidate dev: 13–18 months (vs. 3–4 yrs)",
    "80–90% Phase I success for AI-originated molecules",
    "Novel target identification in weeks (vs. years)",
    "In silico toxicity screening before synthesis",
    "173+ programs in clinical development (2026)",
]
challenges = [
    "Clinical phase timelines unchanged — biology is hard",
    "Phase II/III failures still common (Recursion 2025)",
    "Model interpretability: black-box predictions limit trust",
    "Data quality: inconsistent training sets = poor generalization",
    "No FDA-approved AI-designed drug yet (as of July 2026)",
    "Smaller AI biotechs face existential funding pressure",
]

for ci, (items, ctitle, ccolor) in enumerate(zip([strengths, challenges], col_titles, col_colors)):
    cx = Inches(0.4 + ci * 6.5)
    add_rounded_rect(s8, cx, Inches(1.15), Inches(6.1), Inches(0.65),
                     ccolor if ci == 0 else RGBColor(0xBF, 0x40, 0x00))
    txb(s8, ctitle, cx + Inches(0.15), Inches(1.2),
        Inches(5.8), Inches(0.55), size=14, bold=True, color=WHITE,
        align=PP_ALIGN.CENTER, valign=MSO_ANCHOR.MIDDLE)
    for j, item in enumerate(items):
        iy = Inches(1.9 + j * 0.83)
        icon_col = TEAL if ci == 0 else RGBColor(0xFF, 0x60, 0x0A)
        add_rounded_rect(s8, cx, iy, Inches(6.1), Inches(0.72),
                         RGBColor(0x0F, 0x2D, 0x5A), line_color=icon_col, line_width=Pt(0.5))
        prefix = "✓  " if ci == 0 else "⚠  "
        txb(s8, prefix + item, cx + Inches(0.2), iy + Inches(0.08),
            Inches(5.7), Inches(0.56), size=12, color=LIGHT_GRAY, wrap=True,
            valign=MSO_ANCHOR.MIDDLE)

# ─────────────────────────────────────────────────────────────────────────────
# SLIDE 9 — What to Watch: 12-18 Month Outlook
# ─────────────────────────────────────────────────────────────────────────────
s9 = prs.slides.add_slide(blank)
add_bg(s9, NAVY)
add_rect(s9, Inches(0), Inches(0), Inches(0.12), H, GOLD)

txb(s9, "What to Watch: 12–18 Month Outlook",
    Inches(0.4), Inches(0.2), Inches(12.0), Inches(0.75),
    size=30, bold=True, color=WHITE)
add_rect(s9, Inches(0.4), Inches(0.95), Inches(5.0), Inches(0.05), GOLD)

watchlist = [
    ("1", "First FDA Approval",
     "Insilico's rentosertib in pivotal trials. Projected ~60% probability of first AI-designed drug approval "
     "in 2026-2027. A watershed moment for the entire sector."),
    ("2", "Phase III Readouts",
     "Multiple AI-designed programs entering pivotal trials in 2026. "
     "Success at scale is the field's defining test — watch Insilico and Recursion closely."),
    ("3", "Biology Foundation Models",
     "LLMs trained on protein sequences, omics, and chemical data are converging. "
     "Chai Discovery, Isomorphic Labs (DeepMind), and EvolutionaryScale in active development."),
    ("4", "Regulatory Framework",
     "FDA and EMA actively developing AI-specific drug approval guidance. "
     "Clear compliance requirements will unlock larger industry adoption."),
    ("5", "AI-Designed Biologics",
     "Move from small molecules into antibodies, ADCs, cell therapies, and RNA medicines. "
     "AI methods for antibody optimization now reviewed in MAbs 2025 and Trends Pharmacol Sci 2025."),
]

for i, (num, title, body) in enumerate(watchlist):
    iy = Inches(1.15 + i * 1.21)
    # Number badge
    circ = s9.shapes.add_shape(MSO_SHAPE.OVAL, Inches(0.4), iy + Inches(0.18),
                                Inches(0.65), Inches(0.65))
    circ.fill.solid(); circ.fill.fore_color.rgb = GOLD
    circ.line.fill.background(); circ.shadow.inherit = False
    txb(s9, num, Inches(0.42), iy + Inches(0.18),
        Inches(0.61), Inches(0.65), size=18, bold=True, color=NAVY,
        align=PP_ALIGN.CENTER, valign=MSO_ANCHOR.MIDDLE)
    # Content
    add_rounded_rect(s9, Inches(1.2), iy, Inches(11.7), Inches(1.05),
                     RGBColor(0x0F, 0x2D, 0x5A), line_color=TEAL, line_width=Pt(0.6))
    txb(s9, title, Inches(1.4), iy + Inches(0.05),
        Inches(3.2), Inches(0.45), size=14, bold=True, color=TEAL)
    txb(s9, body, Inches(4.65), iy + Inches(0.1),
        Inches(8.1), Inches(0.85), size=11.5, color=LIGHT_GRAY, wrap=True,
        valign=MSO_ANCHOR.MIDDLE)
    add_rect(s9, Inches(4.5), iy + Inches(0.18), Inches(0.04), Inches(0.65), TEAL)

# ─────────────────────────────────────────────────────────────────────────────
# SLIDE 10 — Key Takeaways / Closing
# ─────────────────────────────────────────────────────────────────────────────
s10 = prs.slides.add_slide(blank)
add_bg(s10, NAVY)
add_rect(s10, Inches(0), Inches(0), Inches(0.12), H, BLUE)

# Large left block
add_rect(s10, Inches(0.12), Inches(0), Inches(5.8), H, RGBColor(0x0A, 0x2A, 0x5C))

txb(s10, "Key Takeaways",
    Inches(0.4), Inches(0.3), Inches(5.2), Inches(0.7),
    size=28, bold=True, color=WHITE)
add_rect(s10, Inches(0.4), Inches(1.0), Inches(3.5), Inches(0.05), GOLD)

takeaways = [
    "AI has compressed early drug discovery timelines\nby 30-40% — and the economics are transformational.",
    "173+ AI programs in the clinic. Phase I success\nrate of 80-90% vs. 52% historically.",
    "2025 was the inflection year. 2026-27 brings the\nfirst potential FDA-approved AI-discovered drug.",
    "Every major pharma company now treats AI\nas core R&D infrastructure — not optional.",
    "Clinical biology remains hard. AI amplifies human\nscience; it does not replace it.",
]
for i, t in enumerate(takeaways):
    iy = Inches(1.2 + i * 1.12)
    circ = s10.shapes.add_shape(MSO_SHAPE.OVAL, Inches(0.4), iy, Inches(0.35), Inches(0.35))
    circ.fill.solid(); circ.fill.fore_color.rgb = TEAL
    circ.line.fill.background(); circ.shadow.inherit = False
    txb(s10, t, Inches(0.88), iy - Inches(0.03),
        Inches(4.95), Inches(1.0), size=12, color=LIGHT_GRAY, wrap=True)

# Right column — closing quote + contact area
txb(s10, '"The question is no longer whether machine\nlearning will change drug discovery —\nit already has."',
    Inches(6.5), Inches(1.5), Inches(6.4), Inches(2.0),
    size=19, bold=False, italic=True, color=WHITE, font="Calibri Light")
add_rect(s10, Inches(6.3), Inches(1.5), Inches(0.05), Inches(2.0), GOLD)

txb(s10, "— AI in Drug Discovery Report, July 2026",
    Inches(6.5), Inches(3.55), Inches(6.0), Inches(0.45),
    size=11, color=MID_GRAY, italic=True)

# Call to action box
add_rounded_rect(s10, Inches(6.3), Inches(4.3), Inches(6.6), Inches(2.7),
                 BLUE)
txb(s10, "For More Information",
    Inches(6.6), Inches(4.45), Inches(6.0), Inches(0.55),
    size=16, bold=True, color=WHITE)
txb(s10,
    "Full research sources available on PubMed:\n"
    "• Ferreira & Carneiro, ACS Omega 2025 (PMID: 40547666)\n"
    "• Oliveira et al., J Pharm Anal 2026 (PMID: 42491104)\n"
    "• Bai et al., Adv Sci 2025 (PMID: 39899688)\n"
    "• Vecchietti et al., MAbs 2025 (PMID: 40677216)",
    Inches(6.6), Inches(5.05), Inches(6.0), Inches(1.8),
    size=11, color=LIGHT_GRAY, wrap=True)

# Bottom bar
add_rect(s10, Inches(0), H - Inches(0.4), W, Inches(0.4), RGBColor(0x07, 0x16, 0x30))
txb(s10, "AI in Drug Discovery  |  Investor & Stakeholder Briefing  |  July 2026  |  Confidential",
    Inches(0.5), H - Inches(0.38), Inches(12.0), Inches(0.35),
    size=9, color=MID_GRAY, italic=True)

# ─────────────────────────────────────────────────────────────────────────────
# Save
# ─────────────────────────────────────────────────────────────────────────────
output_path = "/tmp/workspace/ai-drug-discovery-pptx/AI_Drug_Discovery_Investor_Briefing_2026.pptx"
buf = BytesIO()
prs.save(buf)
with open(output_path, "wb") as f:
    f.write(buf.getvalue())

print(f"Saved: {output_path}")
print(f"Slides: {len(prs.slides)}")
Running Command

cd /tmp/workspace/ai-drug-discovery-pptx && python build_deck.py 2>&1

Running Command

python -c " from pptx import Presentation prs = Presentation('/tmp/workspace/ai-drug-discovery-pptx/AI_Drug_Discovery_Investor_Briefing_2026.pptx') print(f'Total slides: {len(prs.slides)}') for i, slide in enumerate(prs.slides, 1): texts = [] for shape in slide.shapes: if shape.has_text_frame: t = shape.text_frame.text.strip() if t: texts.append(t[:60].replace(chr(10), ' ')) print(f'Slide {i}: {\" | \".join(texts[:3])}') "

All 10 slides verified. Your presentation is ready:

AI Drug Discovery Investor Briefing 2026

Presentation · PPTX


Here's what's in the deck:
#SlideContents
1CoverTitle, subtitle, date tag, decorative molecule network graphic
2The Problem3 stat cards (10-15 yrs, $1-2B, 90% failure) + 2 challenge callout boxes
3Market Snapshot 2025-20266 KPI cards — 173+ programs, $4.5B market, 80-90% Phase I success, $60-110B savings potential
4Core Technologies6 numbered cards — Deep Learning, GNNs, AlphaFold, Generative AI, Reinforcement Learning, Toxicity ML
5Landmark Case StudiesInsilico Medicine/Rentosertib, Recursion Pharmaceuticals, Big Pharma Partnerships 2026
6Discovery Pipeline6-stage visual pipeline (Target ID → Approval) with AI role per stage + timeline comparison
7AI in Clinical Trials6 application boxes — stratification, recruitment, repurposing, synthetic controls, FDA regulatory, safety monitoring
8Risks & RealitiesTwo-column balanced view: 6 strengths vs. 6 challenges — honest for investor scrutiny
912-18 Month Outlook5 watchlist items — First FDA approval, Phase III readouts, Foundation Models, Regulation, Biologics
10Key Takeaways5 bullet takeaways + closing quote + PubMed source references
Design: Dark navy (#0A1F44) corporate theme with blue/teal/gold accents, 16:9 widescreen, professional investor-grade layout throughout.
This is a shared conversation. Sign in to Orris to start your own chat.