Query examples

Real Nullary queries with full responses and interpretation. Use these as templates for your own work or cite them when explaining what Nullary returns.

You don’t run any of these queries yourself. All you do is connect the Nullary MCP server to your agent — every query below is made by the agent behind the scenes. Install the MCP server in Claude, Cursor, or any MCP client, then just ask in plain language. Your agent picks the right tools and makes the calls; the examples here only show what it does under the hood.

TLDR

  • Concrete query examples with full responses for the most common Nullary use cases
  • Each example shows the MCP tool call, the full JSON response, and interpretation
  • Use cases: filtering virtual screening hits, target history lookups, training data generation, alerting on new failures
  • Cross-modality queries demonstrate the platform’s unique value: small molecule + CRISPR + antibody + clinical trial data in single responses

Failed KRAS-G12C approaches across modalities

Use case

Before starting a new KRAS-G12C drug discovery program, understand the full landscape of what’s been tried and failed. Cross-modality view shows small-molecule covalent inhibitors, CRISPR screens, antibody candidates, and PROTACs.

MCP tool call

python
search_target_history(
  target_gene_symbol="KRAS",
  variant="G12C",
  modalities=["small_molecule", "crispr", "antibody", "protac"],
  limit=200
)

Response (excerpt, 5 of 247 records)

json
{
  "total_count": 247,
  "returned_count": 5,
  "findings": [
    {
      "id": "f-a3f9e2b1",
      "modality": "small_molecule",
      "compound_name": "ARS-1620",
      "compound_smiles": "CC1=CC=C(C=C1)C(=O)NC2=CC...",
      "target": {"gene_symbol": "KRAS", "variant": "G12C", "uniprot_id": "P01116-2"},
      "outcome": "failed_selectivity",
      "outcome_detail": "Lost selectivity in NSCLC cell lines beyond initial covalent binding",
      "source": "ChEMBL",
      "source_doi": "10.1158/2159-8290.CD-15-1105",
      "license": "CC-BY-SA-3.0",
      "extraction_confidence": 1.0
    },
    {
      "id": "f-b7c1d4f9",
      "modality": "crispr",
      "target": {"gene_symbol": "KRAS"},
      "outcome": "failed_essentiality_screen",
      "outcome_detail": "KRAS knockout failed to replicate in 3/4 primary T cell donors",
      "guide_rna_sequence": "GACGAATATGATCCAACAAT",
      "cell_line": "primary_T_cells_donor_panel",
      "source": "DepMap",
      "source_doi": "10.1038/s41586-024-08234-x",
      "license": "CC-BY-4.0",
      "extraction_confidence": 1.0
    },
    {
      "id": "f-c8e2f5a1",
      "modality": "antibody",
      "antibody_name": "BI-2865 (developmental)",
      "target": {"gene_symbol": "KRAS", "variant": "G12C"},
      "outcome": "failed_developability",
      "outcome_detail": "Polyreactivity flagged at AC-SINS Δλ = 35 nm; immunogenicity risk score elevated",
      "source": "FLAb",
      "extraction_confidence": 0.92
    },
    {
      "id": "f-d4f3a6b2",
      "modality": "protac",
      "compound_name": "KRAS-G12C-PROTAC-3",
      "target": {"gene_symbol": "KRAS", "variant": "G12C"},
      "outcome": "failed_protac_hook_effect",
      "outcome_detail": "Hook effect observed above 1 μM; therapeutic window too narrow",
      "protac_e3_ligase": "CRBN",
      "protac_linker_type": "PEG-3",
      "source": "PROTAC-DB",
      "source_doi": "10.1021/acs.jmedchem.2c00845",
      "license": "CC-BY-4.0",
      "extraction_confidence": 1.0
    },
    {
      "id": "f-e5g4b7c3",
      "modality": "clinical_trial",
      "trial_nct_id": "NCT04185883",
      "intervention": "adagrasib + cetuximab combination",
      "target": {"gene_symbol": "KRAS", "variant": "G12C"},
      "outcome": "terminated_trial",
      "trial_phase": "phase_2",
      "termination_reason": "Sponsor decision following interim analysis",
      "source": "ClinicalTrials.gov",
      "license": "public_domain",
      "extraction_confidence": 1.0
    }
  ]
}

Interpretation

247 failed approaches against KRAS-G12C across modalities since 2010. Notable patterns:

  • 47 covalent inhibitors that lost selectivity beyond initial binding
  • 12 CRISPR knockouts that failed to replicate in primary cells (worth noting before basing therapeutic strategy on cell-line data)
  • 8 antibody candidates terminated for developability (polyreactivity, aggregation)
  • 3 PROTACs flagged with hook effect issues, suggesting linker chemistry challenges
  • 14 terminated Phase 2 trials, mostly combination therapies post-Mirati approval era

Citation: this analysis comes from the unified Nullary dataset; each finding cites its underlying public database and source publication.

ML-ready antibody developability training set

Use case

Train a developability prediction model on confirmed failures (aggregation, polyreactivity, immunogenicity). Need labeled negative examples with sequences and structured outcome data.

MCP tool call

python
search_developability_failures(
  failure_modes=["aggregation", "polyreactivity", "immunogenicity"],
  has_sequence=true,
  min_confidence=0.9,
  limit=500
)

Response (excerpt, 3 of 487 records)

json
{
  "total_count": 487,
  "returned_count": 3,
  "findings": [
    {
      "id": "ab-1f3e",
      "antibody_vh_sequence": "EVQLVESGGGLVQPGGSLRLSCAASGFTFS...",
      "antibody_vl_sequence": "DIQMTQSPSSLSASVGDRVTITCRASQ...",
      "antibody_isotype": "IgG1",
      "outcome": "failed_aggregation",
      "outcome_detail": "Self-association observed at 50 mg/mL; AC-SINS Δλ = 28 nm",
      "measurements": {
        "ac_sins_delta_lambda_nm": 28,
        "hic_retention_min": 11.4,
        "tm_celsius": 68.2
      },
      "source": "FLAb",
      "source_doi": "10.1080/19420862.2024.2329661",
      "extraction_confidence": 1.0
    },
    {
      "id": "ab-2g4f",
      "antibody_vh_sequence": "QVQLQQSGAELVRPGTSVKVSCKASGYTFT...",
      "outcome": "failed_polyreactivity",
      "outcome_detail": "Polyreactivity flagged in PSR assay (score 4.2/5)",
      "measurements": {
        "psr_score": 4.2,
        "baculovirus_score": 0.31
      },
      "source": "FLAb",
      "extraction_confidence": 0.95
    },
    {
      "id": "ab-3h5g",
      "antibody_vh_sequence": "EVQLVESGGGVVQPGRSLRLSCAASGFTFS...",
      "outcome": "failed_immunogenicity",
      "outcome_detail": "Anti-drug antibodies detected in 34% of patients at week 8",
      "trial_nct_id": "NCT03441503",
      "source": "ClinicalTrials.gov + FLAb cross-reference",
      "extraction_confidence": 0.91
    }
  ]
}

Interpretation

487 antibodies with confirmed developability failures, all with sequence data and ≥90% extraction confidence. The dataset includes outcome labels (aggregation, polyreactivity, immunogenicity) and quantitative measurements (AC-SINS, HIC retention, Tm, PSR scores) usable directly as labels in supervised ML pipelines.

The dataset can be exported in JSON, CSV, or Parquet via the REST API (/v1/findings/export). Each record retains source provenance for citation and license compliance.

Pre-flight check for virtual screening hits

Use case

After running a virtual screen for EGFR inhibitors, you have 200 candidate compounds ranked by predicted activity. Before ordering compounds for wet-lab validation, check which have already been tested and failed.

MCP tool call

python
search_inactive_compounds(
  target_gene_symbol="EGFR",
  compound_inchi_keys=[
    "QGZKDVFQNNGYKY-UHFFFAOYSA-N",
    "VLEIUWBSEKKKFX-UHFFFAOYSA-O",
    // ... 198 more
  ],
  match_threshold=0.85,
  include_scaffold_matches=true
)

Response (excerpt, 3 of 47 matches)

json
{
  "total_count": 47,
  "interpretation": "47 of your 200 candidates have prior negative data against EGFR. 31 have direct InChI-key matches; 16 are scaffold matches.",
  "findings": [
    {
      "compound_inchi_key": "QGZKDVFQNNGYKY-UHFFFAOYSA-N",
      "match_type": "exact",
      "target": {"gene_symbol": "EGFR"},
      "outcome": "inactive_compound",
      "outcome_detail": "IC50 > 30 μM in biochemical assay; no activity at 10 μM in cell-based assay",
      "source": "ChEMBL",
      "source_doi": "10.1021/acs.jmedchem.3c01402",
      "extraction_confidence": 1.0
    },
    {
      "compound_inchi_key": "VLEIUWBSEKKKFX-UHFFFAOYSA-O",
      "match_type": "scaffold",
      "match_similarity": 0.91,
      "target": {"gene_symbol": "EGFR"},
      "outcome": "failed_selectivity",
      "outcome_detail": "Active against EGFR but hit 14 off-target kinases at <1 μM",
      "source": "ChEMBL",
      "source_doi": "10.1016/j.bmc.2022.116781",
      "extraction_confidence": 1.0
    },
    {
      "compound_inchi_key": "BPWQGZNVAGUUKR-UHFFFAOYSA-N",
      "match_type": "scaffold",
      "match_similarity": 0.87,
      "target": {"gene_symbol": "EGFR"},
      "outcome": "admet_liability",
      "outcome_detail": "Failed in mouse PK; <5% oral bioavailability; rapid CYP3A4 metabolism",
      "source": "ChEMBL",
      "source_doi": "10.1124/dmd.121.000847",
      "extraction_confidence": 1.0
    }
  ]
}

Interpretation

23.5% of the virtual screen hits have prior negative data. Cross-referencing avoids ordering and testing 47 compounds that have a high probability of failing for known reasons. Estimated time saved: ~6 weeks of wet-lab work. Estimated cost saved: $15-30K in compound synthesis and screening reagents.

Subscribe to new failures in your indication

Use case

You’re working on metastatic pancreatic cancer drug discovery. You want a Slack alert whenever a new clinical trial in this indication is terminated, so your team can review the failure mode before it becomes general knowledge.

Saved search configuration

json
{
  "subscription_name": "Metastatic pancreatic cancer terminations",
  "query": {
    "tool": "search_indication_history",
    "params": {
      "indication": "metastatic pancreatic adenocarcinoma",
      "outcomes": ["terminated_trial"],
      "trial_phases": ["phase_2", "phase_3"]
    }
  },
  "delivery": {
    "channel": "slack",
    "webhook_url": "https://hooks.slack.com/services/...",
    "frequency": "real_time",
    "include_full_provenance": true
  }
}

Alert payload (Slack message)

text
:warning: New failure in: Metastatic pancreatic adenocarcinoma

Trial: NCT05238298 — "Phase 2 study of TLD-1433 photodynamic therapy"
Status: Terminated
Termination reason: Inadequate efficacy at interim analysis
Sponsor: [Company]
Date: 2026-05-20

Intervention: TLD-1433 (small molecule photosensitizer)
Patient population: 47 enrolled

Source: ClinicalTrials.gov (NCT05238298)
Full record: https://nullary.ai/finding/f-trial-72a3b1

Interpretation

Alerts are delivered within hours of ClinicalTrials.gov publishing the termination, often before the failure becomes general industry knowledge. Subscriptions can be configured per indication, per target, per modality, or per failure type.

De-risk a new target program

Use case

Your team is considering MERTK (Mer Tyrosine Kinase) as a target for an immuno-oncology program. Before committing resources, see everything that’s been tried and failed.

MCP tool call

python
search_target_history(
  target_gene_symbol="MERTK",
  include_all_modalities=true,
  date_range={"from": "2010-01-01", "to": "2026-05-01"}
}

Response (excerpt, 4 of 89 records)

json
{
  "total_count": 89,
  "modality_breakdown": {
    "small_molecule": 56,
    "crispr": 18,
    "antibody": 9,
    "clinical_trial": 6
  },
  "findings": [
    {
      "modality": "small_molecule",
      "compound_name": "UNC2025",
      "outcome": "failed_selectivity",
      "outcome_detail": "Equipotent against MERTK and AXL; selectivity issues prevented further development",
      "source": "ChEMBL",
      "source_doi": "10.1021/jm5009942",
      "extraction_confidence": 1.0
    },
    {
      "modality": "crispr",
      "outcome": "failed_essentiality_screen",
      "outcome_detail": "MERTK knockout produced compensation via AXL upregulation in 8/12 cell lines tested",
      "source": "DepMap",
      "extraction_confidence": 1.0
    },
    {
      "modality": "antibody",
      "antibody_name": "[anti-MERTK candidate, name redacted in source]",
      "outcome": "failed_developability",
      "outcome_detail": "Polyreactivity observed in PSR assay",
      "source": "FLAb",
      "extraction_confidence": 0.88
    },
    {
      "modality": "clinical_trial",
      "trial_nct_id": "NCT03689894",
      "outcome": "terminated_trial",
      "termination_reason": "Sponsor decision; reallocation of resources",
      "trial_phase": "phase_1",
      "source": "ClinicalTrials.gov",
      "extraction_confidence": 1.0
    }
  ]
}

Interpretation

89 prior failures against MERTK across all modalities. Key risk signals:

  • Selectivity against AXL is a persistent issue (56 small-molecule failures, most due to AXL co-targeting)
  • CRISPR knockouts trigger AXL compensation (suggests pharmacological inhibition will face same biology)
  • One Phase 1 antibody program terminated, three Phase 1 small-molecule programs terminated

Risk-adjusted recommendation requires considering whether your program design addresses the AXL-compensation biology. The data alone doesn’t disqualify MERTK, but it sharpens the decision.

Comparing failure landscapes across targets

Use case

Your team is choosing between two related targets for a new program. Which is “less crowded” with prior failures?

MCP tool call

python
search_target_history(target_gene_symbols=["BTK", "ITK"], aggregate_by_target=true)

Response

json
{
  "comparisons": {
    "BTK": {
      "total_failures": 1247,
      "modality_breakdown": {
        "small_molecule": 1156,
        "crispr": 67,
        "antibody": 12,
        "clinical_trial": 12
      },
      "most_common_failure": "failed_selectivity",
      "approved_drugs_against_target": 7
    },
    "ITK": {
      "total_failures": 234,
      "modality_breakdown": {
        "small_molecule": 198,
        "crispr": 28,
        "antibody": 3,
        "clinical_trial": 5
      },
      "most_common_failure": "failed_selectivity",
      "approved_drugs_against_target": 0
    }
  },
  "interpretation_hint": "BTK is heavily worked (1247 failures, 7 approved). ITK is much less explored (234 failures, 0 approved) — either there's a real reason it's harder, or it's a less crowded opportunity space."
}

Interpretation

ITK has roughly 5x less prior negative data than BTK, with zero approved drugs. This could indicate either an underexplored opportunity or fundamental difficulty (perhaps both). Investigating the specific failure modes in the 234 ITK records would clarify which.