Analysis tools
Parameterized analyses for common molecular-oncology questions. Fill a few slots and
get summary statistics plus plot-ready data back — every tool is readOnlyHint: true. The
rhythm is always the same: resolve → analyze → (re-verify).
x_type/y_type — one of: RNA expression · Somatic mutation · Protein
(mass-spec) · Protein (RPPA) · Infiltrating cells · GO function (RNA) · GO function (Protein) · Drug
response (cell) · CRISPR · shRNA. And every tool needs a lin_code from
resolve (the lone exception is neoantigen, which is pan-lineage). Symbol names
(gene / drug / residue) are auto-resolved server-side — usually you pass the name straight as
x_symbol/y_symbol.01Start here — resolve
Map a natural-language name to what the tools need. kind=lineage is the one you
must use: it maps a cancer name to the lin_code every analysis tool requires
(e.g. "breast cancer" → BRCA, "lung adenocarcinoma" → LUAD) and returns
the candidates with their sample_type (Tissue vs Cell_line) so you pick the right one.
kind=gene|drug|go_term is optional — the analysis tools resolve symbols for you;
use it only to check a name exists or to disambiguate.
02Core analyses
One feature (or a pair) in one cohort → a single figure with grounded stats. These are the everyday tools; reach for them first.
Per-feature & pairwise5 tools
Kaplan-Meier survival difference between patient groups split by an omics measure. Returns logrank
p-value + KM curve data. Stage- or sex-stratify with stage_sel/gender_sel;
two-gene combinations via combi_*.
resolveNormal vs Tumor (N/T) differential of a single feature in a tissue cohort. Use when the intent is specifically comparing normal against tumor tissue. Returns N/T group distribution stats and box data.
Box-plot comparison: distribution of a y measure across groups defined by an x measure.
y_type="Pan-cancer Profile" returns x's pan-cancer profile instead. Returns per-group
summary stats (+ p-value) and box data.
y_symbol when y is a named feature; the rest stratify the cohortScatter correlation between two specific named features (x_symbol vs y_symbol): a
point-per-sample scatter with a Pearson coefficient (pcc). Use for "correlate gene A with gene B" —
not for relating two whole data types (use cross).
Association between two omics data types: how an x feature relates to a whole y data type
across a cohort → a volcano of the top y-associations (direction-balanced, ranked). Also the CCLE
cell-line drug path (mutation × drug in cells). The effect (des_fold_change) is a
group-split log2 fold-change, not a Pearson r — for a pairwise coefficient use
correlation.
max_hits default 10003Ranked discovery & tables
"Which are the top hits?" questions. These return a ranked table or a volcano — leave the specific symbol empty to discover and rank, or set it to test one candidate. An empty result is an honest "no hit", not an error.
Discovery5 tools
Ranked consensus hit table — the grounded answer to "which genes/partners are the top hits",
ordered by S_Cscore (sampling reproducibility) using the platform's own hit criteria.
Prefer this over parsing a volcano for a ranked list. analysis=survival|nt → top hit
entities in the lineage; analysis=association → the consensus partners of
x_symbol.
Patient (clinical) drug-response biomarkers: which molecular features separate RECIST
responders from non-responders for a specific patient drug, from the pre-computed consensus table.
Leave x_symbol empty to rank features (a volcano); set it to test one. Direction:
fold_change > 0 = higher in responders. (For CCLE cell-line drug sensitivity use
cross.)
x_symbol to test one feature; else rankDrug-Induced Gene expression: which genes a drug changes across 4 dose conditions in NCI60
cell lines. Drug-anchored (unlike the entity-anchored tools) — the drug's effect on
expression, not whether a feature predicts response. fold_change > 0 = induced,
< 0 = repressed. Only ~15 drugs stored.
x_symbol to test one gene; else rankProteogenomic tumor-antigen discovery: which mutant proteins/phosphosites are over- (or under-)
expressed vs wild-type. A candidate antigen is over-expressed. Mass-spec (CPTAC) only, all
lineages (no lin_code), consensus-exempt.
Synthetic lethality — candidate drug targets that become essential when a partner gene is lost (the
BRCA×PARP archetype). Give only x_symbol to list a gene's SL partners (a
consensus-ranked table); add y_symbol to draw the specific pair —
sample_class=tissue gives a 3-arm co-low survival curve, cell gives the
partner's knockout-dependency box.
04Re-verify — consensus
Q-omics's core robustness measure: a finding is validated by sampling/lineage consensus to avoid single-split artifacts. Re-verify only when a result is surprising, borderline, or decides the answer — one cross-check, never an identical re-run.
Consensus2 tools
Re-verify a survival or nt finding against the pre-computed consensus.
Returns two axes: S_Cscore = how many sampling combinations stay significant in the
queried lineage (technical reproducibility; 0 = possible artifact), and L_Cscore = the
pan-cancer footprint (number of lineages where the entity is a hit).
The pair analogue of consensus — re-verify an X↔Y association's robustness (use
consensus for a single-entity survival/nt finding, this for a two-entity association).
S_Cscore = the pair's sampling reproducibility at its strongest lineage;
L_Cscore = pair recurrence across lineages. Needs both symbols. Not a stored
consensus pair → 0/0.
S_Cscore answers "is this reproducible in
this cancer?" and L_Cscore answers "is it pan-cancer or lineage-specific?". A high
S_Cscore with low L_Cscore = a robust but lineage-specific hit.05Examples
Conceptual tool calls — the assistant fills the arguments from the conversation. The
lineage is always resolved to its lin_code first.
Does high MKI67 expression predict worse survival in breast cancer?
// 1) resolve the lineage name → code resolve({ kind: "lineage", query: "breast cancer" }) → { resolved: true, candidates: [{ lin_code: "BRCA", lin_name: "Breast invasive carcinoma", sample_type: "Tissue" }, …] } // 2) Kaplan-Meier split by RNA expression survival({ x_type: "RNA expression", x_symbol: "MKI67", lin_code: "BRCA", measure: "OS", grp: "Median" }) → { stats: { p_value }, plot_data: { curves } }
Which genes are the top survival hits in BRCA — and is MKI67 robust?
// 1) the ranked consensus table (prefer over reading a volcano) browse({ analysis: "survival", lin_code: "BRCA", x_type: "RNA expression" }) → [ { entity, best_p, S_Cscore, L_Cscore }, … ] // 2) re-verify one borderline hit consensus({ kind: "survival", x_type: "RNA expression", x_symbol: "MKI67", lin_code: "BRCA" }) → { S_Cscore, L_Cscore }
Is EGFR RNA correlated with EGFR protein in lung cancer?
correlation({ sample_class: "tissue", x_type: "RNA expression", x_symbol: "EGFR", y_type: "Protein (mass-spec)", y_symbol: "EGFR", lin_code: "LUAD" // resolved from "lung adenocarcinoma" }) → { stats: { pcc }, plot_data: { points } }
correlation for two specific named
features (gene A vs gene B), and cross for one feature against a whole data type.
For anything the fixed tools can't express — counts, frequencies, custom cross-tabs — drop to
PQL →