GALENAPI

Predictions

Researcher

Predict drug responses, gene essentiality, and mutation effects — each prediction grounded in experimental data with confidence scores and independent verification.

Only in Galen

Galen generates testable biological predictions using template-based reasoning grounded in real experimental data, then verifies them against independent databases. Each prediction includes a confidence score, the verification database used, and whether it was confirmed or contradicted. Accuracy metrics are tracked and exposed via the /accuracy endpoint — full transparency, not a black box.

POST/predictions/drug-response
Researcher

Predict Drug Response

Predict how a compound will affect a gene/target and verify against experimental databases.

Only in Galen

Generates testable biological predictions using template-based reasoning, then immediately verifies them against independent experimental databases (ChEMBL, cBioPortal, and more). Each prediction is a hypothesis that can be confirmed or contradicted by real data — not an LLM opinion.

Parameters

Request Body

Compound and gene/target pair, with optional cancer type for tissue-specific predictions.

FieldTypeDescription
compoundstringDrug or compound name (e.g. small molecule, antibody, or clinical-stage agent).
genestringGene or protein target to predict the drug's effect on.
cancer_typestringOptional cancer type for tissue-specific predictions (e.g. NSCLC, melanoma, AML).

Response Schema

entitystringThe primary entity queried (compound or gene).
entity_typestringType classification of the primary entity.
predictionsarrayIndividual testable predictions with verification results.
├──template_typestringType of prediction template used (e.g. drug_sensitivity, target_inhibition, synergy).
├──hypothesisstringHuman-readable testable statement that can be confirmed or falsified.
├──confidencefloatPrior confidence in this prediction (0.3–0.7) based on knowledge graph evidence.
├──resultstring"confirmed", "contradicted", or "inconclusive" based on database verification.
├──actual_valuestring | nullReal measurement from the verification database (e.g. IC50, effect size). Null if no data available.
├──verification_dbstringDatabase used for verification (e.g. ChEMBL, cBioPortal).
└──verification_time_msintegerTime taken to verify this individual prediction in milliseconds.
confirmedintegerCount of predictions confirmed by experimental data.
contradictedintegerCount of predictions contradicted by experimental data.
inconclusiveintegerCount of predictions where no definitive experimental data was available.
computation_time_msintegerTotal server-side computation time in milliseconds.

Example Request

import requests

resp = requests.post(
    "https://research.usegalen.com/api/v1/predictions/drug-response",
    headers={"X-API-Key": "YOUR_API_KEY"},
    json={
        "compound": "erlotinib",
        "gene": "EGFR",
        "cancer_type": "NSCLC"
    },
)
data = resp.json()
print(f"Confirmed: {data['confirmed']}, Contradicted: {data['contradicted']}")
for pred in data["predictions"]:
    print(f"  [{pred['result']}] {pred['hypothesis']}")
    if pred["actual_value"]:
        print(f"    Evidence: {pred['actual_value']} ({pred['verification_db']})")

Example Response

{
  "entity": "erlotinib",
  "entity_type": "compound",
  "predictions": [
    {
      "template_type": "drug_sensitivity",
      "hypothesis": "EGFR-mutant NSCLC cell lines show sensitivity to erlotinib (IC50 < 1 µM).",
      "confidence": 0.65,
      "result": "confirmed",
      "actual_value": "IC50 = 0.038 µM (HCC827, EGFR del19)",
      "verification_db": "ChEMBL",
      "verification_time_ms": 312
    },
    {
      "template_type": "target_inhibition",
      "hypothesis": "Erlotinib inhibits EGFR kinase activity with nanomolar potency.",
      "confidence": 0.62,
      "result": "confirmed",
      "actual_value": "Ki = 0.7 nM (EGFR wild-type kinase domain)",
      "verification_db": "ChEMBL",
      "verification_time_ms": 187
    },
    {
      "template_type": "resistance_marker",
      "hypothesis": "EGFR T790M mutation confers resistance to erlotinib in NSCLC.",
      "confidence": 0.58,
      "result": "confirmed",
      "actual_value": "T790M detected in 49.3% of erlotinib-resistant cases (n=1,247 patients)",
      "verification_db": "cBioPortal",
      "verification_time_ms": 524
    },
    {
      "template_type": "combination_synergy",
      "hypothesis": "Erlotinib combined with MET inhibitor shows synergy in EGFR-mutant NSCLC.",
      "confidence": 0.45,
      "result": "inconclusive",
      "actual_value": null,
      "verification_db": "cBioPortal",
      "verification_time_ms": 298
    }
  ],
  "confirmed": 3,
  "contradicted": 0,
  "inconclusive": 1,
  "computation_time_ms": 1321
}

Try It

Request Body

Compound and gene/target pair, with optional cancer type for tissue-specific predictions.

POST https://research.usegalen.com/api/v1/predictions/drug-response
POST/predictions/essentiality
Researcher

Predict Gene Essentiality

Predict whether a gene is essential for cancer cell survival, verified against experimental data.

Only in Galen

Predicts whether a gene is essential for cancer cell survival, verified against experimental data. Accuracy is tracked and transparent — you can see exactly how often predictions are confirmed.

Parameters

Request Body

Gene to assess for essentiality, with optional cancer type filter.

FieldTypeDescription
genestringGene symbol to predict essentiality for.
cancer_typestringOptional cancer type for lineage-specific essentiality prediction.

Response Schema

entitystringThe gene queried.
entity_typestringType classification (gene).
predictionsarrayTestable essentiality predictions with experimental verification.
├──template_typestringPrediction template type.
├──hypothesisstringTestable statement about gene essentiality.
├──confidencefloatPrior confidence (0.3–0.7).
├──resultstring"confirmed", "contradicted", or "inconclusive".
├──actual_valuestring | nullReal CRISPR dependency score. More negative = more essential.
├──verification_dbstringDatabase used for verification.
└──verification_time_msintegerVerification time in milliseconds.
confirmedintegerCount of confirmed predictions.
contradictedintegerCount of contradicted predictions.
inconclusiveintegerCount of inconclusive predictions.
computation_time_msintegerTotal computation time in milliseconds.

Example Request

import requests

resp = requests.post(
    "https://research.usegalen.com/api/v1/predictions/essentiality",
    headers={"X-API-Key": "YOUR_API_KEY"},
    json={
        "gene": "MYC",
        "cancer_type": "lymphoma"
    },
)
data = resp.json()
print(f"Gene: {data['entity']}")
for pred in data["predictions"]:
    print(f"  [{pred['result']}] {pred['hypothesis']}")
    if pred["actual_value"]:
        print(f"    Verified: {pred['actual_value']}")

Example Response

{
  "entity": "MYC",
  "entity_type": "gene",
  "predictions": [
    {
      "template_type": "gene_essentiality",
      "hypothesis": "MYC knockout is lethal in lymphoma cell lines (CRISPR dependency score < -0.5).",
      "confidence": 0.63,
      "result": "confirmed",
      "actual_value": "Mean dependency score = -0.87 across 12 lymphoma cell lines (Chronos)",
      "verification_db": "cBioPortal",
      "verification_time_ms": 245
    },
    {
      "template_type": "pan_essential",
      "hypothesis": "MYC is broadly essential across cancer lineages, not specific to lymphoma.",
      "confidence": 0.55,
      "result": "confirmed",
      "actual_value": "Mean dependency = -0.72 across 1,095 cell lines; essential in 78% of lineages",
      "verification_db": "cBioPortal",
      "verification_time_ms": 389
    },
    {
      "template_type": "synthetic_lethality",
      "hypothesis": "MYC-amplified lymphoma cells show increased sensitivity to CDK9 inhibition.",
      "confidence": 0.42,
      "result": "inconclusive",
      "actual_value": null,
      "verification_db": "cBioPortal",
      "verification_time_ms": 178
    }
  ],
  "confirmed": 2,
  "contradicted": 0,
  "inconclusive": 1,
  "computation_time_ms": 812
}

Try It

Request Body

Gene to assess for essentiality, with optional cancer type filter.

POST https://research.usegalen.com/api/v1/predictions/essentiality
POST/predictions/mutation-effect
Researcher

Predict Mutation Effect

Predict the functional impact of a cancer mutation, verified against clinical genomics data.

Only in Galen

Predicts the functional impact of cancer mutations, verified against clinical genomics data from cBioPortal (30.9M mutations) and ClinVar clinical annotations. Particularly valuable for variants of uncertain significance (VUS).

Parameters

Request Body

Gene and variant to assess, with optional cancer type for clinical context.

FieldTypeDescription
genestringGene harboring the mutation.
variantstringSpecific variant in standard notation (e.g. V600E, del19, T790M). Optional — omit for gene-level analysis.
cancer_typestringOptional cancer type for tissue-specific clinical context.

Response Schema

entitystringThe gene queried.
entity_typestringType classification.
predictionsarrayMutation effect predictions with clinical verification.
├──template_typestringPrediction template type.
├──hypothesisstringTestable statement about the mutation's functional impact.
├──confidencefloatPrior confidence (0.3–0.7).
├──resultstring"confirmed", "contradicted", or "inconclusive".
├──actual_valuestring | nullClinical evidence from cBioPortal or ClinVar.
├──verification_dbstringVerification database used.
└──verification_time_msintegerVerification time in milliseconds.
confirmedintegerCount of confirmed predictions.
contradictedintegerCount of contradicted predictions.
inconclusiveintegerCount of inconclusive predictions.
computation_time_msintegerTotal computation time in milliseconds.

Example Request

import requests

resp = requests.post(
    "https://research.usegalen.com/api/v1/predictions/mutation-effect",
    headers={"X-API-Key": "YOUR_API_KEY"},
    json={
        "gene": "BRAF",
        "variant": "V600E",
        "cancer_type": "melanoma"
    },
)
data = resp.json()
for pred in data["predictions"]:
    status = "✓" if pred["result"] == "confirmed" else "✗" if pred["result"] == "contradicted" else "?"
    print(f"  [{status}] {pred['hypothesis']}")

Example Response

{
  "entity": "BRAF",
  "entity_type": "gene",
  "predictions": [
    {
      "template_type": "oncogenic_driver",
      "hypothesis": "BRAF V600E is an oncogenic driver mutation in melanoma, constitutively activating the MAPK pathway.",
      "confidence": 0.67,
      "result": "confirmed",
      "actual_value": "Level 1: FDA-recognized biomarker for vemurafenib/dabrafenib in melanoma",
      "verification_db": "cBioPortal",
      "verification_time_ms": 421
    },
    {
      "template_type": "mutation_frequency",
      "hypothesis": "BRAF V600E is the most frequent BRAF alteration in melanoma (>40% of cases).",
      "confidence": 0.6,
      "result": "confirmed",
      "actual_value": "V600E frequency: 47.2% (n=3,841/8,137 melanoma samples with BRAF mutations)",
      "verification_db": "cBioPortal",
      "verification_time_ms": 356
    },
    {
      "template_type": "drug_sensitivity",
      "hypothesis": "BRAF V600E melanoma is sensitive to BRAF inhibitors (vemurafenib, dabrafenib).",
      "confidence": 0.64,
      "result": "confirmed",
      "actual_value": "Vemurafenib IC50 = 0.031 µM in V600E cell lines vs >10 µM in wild-type (ChEMBL)",
      "verification_db": "cBioPortal",
      "verification_time_ms": 289
    },
    {
      "template_type": "resistance_mechanism",
      "hypothesis": "MEK1 C121S mutation arises as a resistance mechanism to BRAF V600E-targeted therapy.",
      "confidence": 0.41,
      "result": "inconclusive",
      "actual_value": null,
      "verification_db": "cBioPortal",
      "verification_time_ms": 198
    }
  ],
  "confirmed": 3,
  "contradicted": 0,
  "inconclusive": 1,
  "computation_time_ms": 1264
}

Try It

Request Body

Gene and variant to assess, with optional cancer type for clinical context.

POST https://research.usegalen.com/api/v1/predictions/mutation-effect
GET/predictions/accuracy
Researcher

Get Prediction Accuracy

Retrieve transparent accuracy metrics for all predictions Galen has made.

Only in Galen

Full transparency on prediction quality. Every prediction Galen makes is tracked, verified, and the results are exposed here. This is the opposite of a black box — you can see exactly how accurate the system is and how it improves over time.

Parameters

Query Parameters
NameTypeReqDescription
last_n_stepsinteger

Number of recent learning steps to evaluate. Higher values give a broader accuracy picture; lower values show recent performance.

Default: 100

Response Schema

totalintegerTotal predictions evaluated in the window.
confirmedintegerPredictions confirmed by experimental data.
contradictedintegerPredictions contradicted by experimental data.
inconclusiveintegerPredictions where no definitive experimental data was found.
accuracy_ratefloatConfirmation rate: confirmed / (confirmed + contradicted). Inconclusive predictions are excluded from this ratio.
avg_time_msfloatAverage prediction verification time in milliseconds.
steps_with_predictionsintegerNumber of learning steps that generated at least one prediction.
per_step_avgfloatAverage number of predictions generated per learning step.

Example Request

import requests

resp = requests.get(
    "https://research.usegalen.com/api/v1/predictions/accuracy",
    headers={"X-API-Key": "YOUR_API_KEY"},
    params={"last_n_steps": 100},
)
data = resp.json()
print(f"Accuracy: {data['accuracy_rate']:.1%} ({data['confirmed']}/{data['confirmed']+data['contradicted']})")
print(f"Total predictions: {data['total']} ({data['per_step_avg']:.1f} per step)")

Example Response

{
  "total": 847,
  "confirmed": 512,
  "contradicted": 131,
  "inconclusive": 204,
  "accuracy_rate": 0.796,
  "avg_time_ms": 342.7,
  "steps_with_predictions": 89,
  "per_step_avg": 9.5
}

Try It

Query Parameters

integer

Number of recent learning steps to evaluate. Higher values give a broader accuracy picture; lower values show recent performance.

GET https://research.usegalen.com/api/v1/predictions/accuracy