Q (haiku): What is the correlation between tumor mutational burden and microsatellite instability status in colorectal cancer patients from the MSK-CHORD Study?
▶ read_guide
{
"uri": "cbioportal://statistical-tests-guide"
}
◀ result
Statistical Test Selection Guide
================================
Purpose
-------
This guide ensures the correct statistical test is selected before performing any group comparison, matching cBioPortal's own Group Comparison defaults.
HARD RULES — NEVER FABRICATE A STATISTIC
----------------------------------------
ClickHouse cannot run statistical tests. The agent therefore must NEVER produce a derived statistic that is not a literal column value from a SQL result. Specifically:
1. **Never invent a p-value.** Not "p < 0.001", not "p ≈ 0.05", not any p-value. If the user asks "what is the p-value?", the answer is *"I can't compute that — here is the 2x2 contingency table (or group statistics). Run it in cBioPortal's Group Comparison tab, in R with `fisher.test(...)` / `wilcox.test(...)`, or in Python with `scipy.stats.fisher_exact(...)` / `mannwhitneyu(...)`."*
2. **Never claim mutual exclusivity (or co-occurrence) from a contingency table alone.** A 2x2 table is not a test. The shape "altered/not altered × group A/group B" needs Fisher's exact + a defined direction (odds ratio < 1 with significant p). Without that test, the agent presents the table and stops. Descriptive phrasing is also a claim: "largely/mostly mutually exclusive", "rarely co-occur", "tend to co-occur" are forbidden without the test — point to cBioPortal's Mutual Exclusivity tab instead.
3. **Never report a "median" that came from `AVG(...)` or any non-median aggregate.** "Median" and "mean" are different statistics; for skewed clinical distributions (especially survival) they differ substantially. Use ClickHouse's `quantile(0.5)(...)` for actual median, and label arithmetic averages as "mean", never "median".
4. **Never report a hazard ratio, odds ratio, risk ratio, or relative risk** that wasn't computed by an external tool. These require regression / model fitting that ClickHouse does not do.
5. **Never report median overall survival from `AVG(OS_MONTHS)` or even `quantile(0.5)(OS_MONTHS)`.** Median OS requires Kaplan-Meier estimation, which handles censoring (`OS_STATUS = 0:LIVING` means the event hasn't happened yet). Naive medians/means over `OS_MONTHS` ignore censoring and are systematically wrong. The correct handoff: return the raw `(OS_MONTHS, OS_STATUS)` pairs (or descriptive counts: N events, N censored, follow-up range) and tell the user to run KM in R (`survival::survfit`) or Python (`lifelines.KaplanMeierFitter`), or use cBioPortal's Survival comparison.
If asked to do any of (1)–(5), respond with the appropriate handoff template from the "Approved Response Templates" section below — do not produce the number.
Ambiguous-Term Clarification (before any analysis)
--------------------------------------------------
If the user's question uses an ambiguous term, ask before computing anything. Examples:
- **"aggressive"** → could mean shorter overall survival, higher metastasis rate, higher grade/stage, higher TMB, or specific molecular features. Ask which definit … (9984 more chars)
▶ read_guide
{
"uri": "cbioportal://clinical-data-guide"
}
◀ result
# Clinical Data Query Guide
## Overview
Clinical data in cBioPortal is stored at both patient and sample levels. Understanding the distinction is crucial for accurate analysis.
## Data Organization
### Patient-Level vs Sample-Level Data
- **Patient-level**: Demographics, overall survival, disease stage (stored once per patient)
- **Sample-level**: Sample type, sequencing platform, purity (can have multiple per patient)
### Key Tables
- `clinical_patient`: Patient-level clinical attributes
- `clinical_sample`: Sample-level clinical attributes
- `clinical_data_derived`: Pre-joined view combining both levels
- `clinical_attribute_meta`: Metadata about available clinical attributes
## Recommended Approach: Use clinical_data_derived
The `clinical_data_derived` table is pre-joined and optimized for most queries:
```sql
-- Get clinical data for specific attributes
SELECT
sample_unique_id,
patient_unique_id,
attribute_name,
attribute_value
FROM clinical_data_derived
WHERE
cancer_study_identifier = 'your_study_id'
AND attribute_name IN ('CANCER_TYPE', 'SAMPLE_TYPE', 'TMB_NONSYNONYMOUS');
```
## Clinical Attribute Discovery
### Use clinical_attribute_meta for Discovering Available Attributes
**Always start here** to see what clinical attributes are available for a specific study:
```sql
-- Discover available clinical attributes for a study
SELECT
attr_id,
description,
patient_attribute,
cancer_study_id
FROM clinical_attribute_meta
WHERE
cancer_study_id = (
SELECT cancer_study_id
FROM cancer_study
WHERE cancer_study_identifier = 'your_study_id'
)
ORDER BY patient_attribute, attr_id;
```
**Key Fields:**
- **attr_id**: matches attr_id in clinical_sample/clinical_patient tables
- **description**: human-readable description of the attribute
- **patient_attribute**: true = patient attribute, false = sample attribute
- **cancer_study_id**: links to cancer_study table (filter by study)
## Attribute Semantics and Matching
### Case-Insensitive Matching for Attribute Values
Clinical values are free text across studies and may differ only by case. For example, a controlled-looking value such as germline mutation status may appear as `GERMLINE`, `Germline`, or another case variant.
When filtering `clinical_data_derived.attribute_value`, use case-insensitive matching unless you have already profiled the exact values in the target study:
```sql
-- Correct: case-insensitive clinical value filter
SELECT DISTINCT sample_unique_id, patient_unique_id
FROM clinical_data_derived
WHERE cancer_study_identifier = 'your_study_id'
AND attribute_name = 'MUTATION_STATUS'
AND upper(attribute_value) = 'GERMLINE';
```
Do not write `attribute_value = 'GERMLINE'` without first checking all distinct values for that attribute in the study.
### Query the Requested Attribute, Not a Proxy
Do not infer one clinical attribute from a related subtype or marker. Query the actual requested attribute when it … (17073 more chars)
▶ list_studies
{
"search": "MSK-CHORD colorectal",
"verbose": true
}
◀ result
{"result":[]}
▶ list_studies
{
"search": "MSK-CHORD",
"verbose": true
}
▶ list_studies
{
"search": "CHORD",
"verbose": true
}
◀ result
{"result":[{"cancer_study_identifier":"msk_chord_2024","name":"MSK-CHORD (MSK, Nature 2024)","description":"Targeted sequencing of 25040 tumors from 24950 patients and their matched normals via MSK-IMPACT, along with clinical annotations, some of which are derived from natural language processing (denoted NLP). This data is available under the Creative Commons BY-NC-ND 4.0 license. For commercial use, please contact datarequests@mskcc.org","type_of_cancer_id":"mixed","sample_count":25040,"has_guide":true,"url":"https://www.cbioportal.org/study/summary?id=msk_chord_2024"}]}
◀ result
{"result":[{"cancer_study_identifier":"msk_chord_2024","name":"MSK-CHORD (MSK, Nature 2024)","description":"Targeted sequencing of 25040 tumors from 24950 patients and their matched normals via MSK-IMPACT, along with clinical annotations, some of which are derived from natural language processing (denoted NLP). This data is available under the Creative Commons BY-NC-ND 4.0 license. For commercial use, please contact datarequests@mskcc.org","type_of_cancer_id":"mixed","sample_count":25040,"has_guide":true,"url":"https://www.cbioportal.org/study/summary?id=msk_chord_2024"}]}
▶ get_study_guide
{
"study_id": "msk_chord_2024"
}
▶ clickhouse_list_table_columns
{
"table": "clinical_attribute_meta"
}
◀ result
# MSK-CHORD (MSK, Nature 2024)
**Study ID:** `msk_chord_2024`
## Overview
Targeted sequencing via MSK-IMPACT panels. Clinical annotations include some derived from natural language processing (denoted NLP).
**Exactly five cancer types** (`CANCER_TYPE`, patients): Non-Small Cell Lung Cancer 7,809, Colorectal Cancer 5,543, Breast Cancer 5,368, Prostate Cancer 3,211, Pancreatic Cancer 3,109. There is **no melanoma** or any other cancer type; say so up front if asked, instead of substituting another type.
**No therapy-response variable.** There is no RECIST, objective response, or best-response attribute or event. For treatment-outcome questions (e.g. immunotherapy response), say this first; the only proxies are `OS_MONTHS`/`OS_STATUS`, or NLP radiology progression events (`Diagnosis` events with `SUBTYPE = 'Progression'`, key `PROGRESSION` = Y/N/Indeterminate), in patients with `Treatment` events of the relevant `SUBTYPE` (e.g. `Immuno`: 3,341 patients). Hand off the comparison to cBioPortal group comparison / survival.
**Nearly one sample per patient: 24,950 patients / 25,040 samples.** Only 90 patients have more than one sample, and all 90 have samples from two different cancer types (second primaries); only 26 have both a `Primary` and a `Metastasis` sample. There is no meaningful same-patient (paired) primary-vs-metastasis cohort. For "same patient" / paired questions, say this up front, then offer the **unpaired** comparison of all `Primary` vs `Metastasis` samples (`SAMPLE_TYPE`), labelled as unpaired.
```sql
SELECT countIf(n > 1) AS multi_sample_patients, -- 90
countIf(has_p AND has_m) AS primary_and_met -- 26
FROM (SELECT patient_unique_id, count() AS n,
has(groupArray(attribute_value), 'Primary') AS has_p,
has(groupArray(attribute_value), 'Metastasis') AS has_m
FROM clinical_data_derived
WHERE cancer_study_identifier = 'msk_chord_2024' AND attribute_name = 'SAMPLE_TYPE'
GROUP BY patient_unique_id);
```
## Gene Panels
This study uses multiple MSK-IMPACT panel versions:
- **IMPACT341**: Earlier version, 341 genes
- **IMPACT410**: 410 genes
- **IMPACT468**: 468 genes
- **IMPACT505**: Latest version, 505 genes
**Important:** Different samples may have different gene coverage. Always use gene-specific denominators when calculating mutation frequencies.
## Clinical Attributes - Semantic Guide
### Cancer Classification
| Attribute | Description | Values |
|-----------|-------------|--------|
| `CANCER_TYPE` | Broad cancer category | e.g., "Non-Small Cell Lung Cancer", "Breast Cancer" |
| `CANCER_TYPE_DETAILED` | Specific subtype | e.g., "Lung Adenocarcinoma", "Invasive Ductal Carcinoma" |
| `ONCOTREE_CODE` | OncoTree classification code | Standardized cancer type codes |
### Sample Information
| Attribute | Description | Values |
|-----------|-------------|--------|
| `SAMPLE_TYPE` | Sample origin | Primary, Metastasis, Local Recurrence, Unknown |
| `SAMPLE_CLASS` | Sample … (5439 more chars)
◀ result
{"columns":[{"name":"attr_id","type":"String"},{"name":"display_name","type":"String"},{"name":"description","type":"String"},{"name":"datatype","type":"String"},{"name":"patient_attribute","type":"Int32"},{"name":"priority","type":"String"},{"name":"cancer_study_id","type":"Int64"}]}
▶ clickhouse_run_select_query
{
"query": "
-- Query TMB and MSI status in colorectal cancer from MSK-CHORD
WITH crc_patients AS (
SELECT DISTINCT sample_unique_id, patient_unique_id, cancer_study_identifier
FROM clinical_data_derived
WHERE cancer_study_identifier = 'msk_chord_2024'
AND attribute_name = 'CANCER_TYPE'
AND attribute_value = 'Colorectal Cancer'
),
tmb_data AS (
SELECT sample_unique_id, toFloat64OrNull(attribute_value) AS tmb_value
FROM clinical_data_derived
WHERE cancer_study_identifier = 'msk_chord_2024'
AND attribute_name = 'TMB_NONSYNONYMOUS'
AND toFloat64OrNull(attribute_value) IS NOT NULL
),
msi_data AS (
SELECT sample_unique_id, attribute_value AS msi_status
FROM clinical_data_derived
WHERE cancer_study_identifier = 'msk_chord_2024'
AND attribute_name = 'MSI_TYPE'
)
SELECT
cp.sample_unique_id,
cp.patient_unique_id,
COALESCE(msi.msi_status, 'Not Available') AS msi_status,
tmb.tmb_value
FROM crc_patients cp
LEFT JOIN tmb_data tmb ON cp.sample_unique_id = tmb.sample_unique_id
LEFT JOIN msi_data msi ON cp.sample_unique_id = msi.sample_unique_id
ORDER BY msi_status, tmb_value DESC
LIMIT 10000
",
"max_rows": 10000
}
◀ result
Error: result (843,160 characters) exceeds maximum allowed tokens. Output has been saved to /home/ino/.claude-cbioportal-team/projects/-tmp-mcp-qa-claude-5mhnjm0m/1416d663-0f78-4e7c-9a6f-cd90bbee4119/tool-results/mcp-claude_ai_cBioPortal_MCP-clickhouse_run_select_query-1790440569864.txt.
Format: JSON with schema: {rows: [{...}]}
- For targeted queries (find a value, filter by field): use jq on the file directly.
- For analysis or summarization that requires reading the full content: first probe the structure (e.g., jq 'type, length, keys?' /home/ino/.claude-cbioportal-team/projects/-tmp-mcp-qa-claude-5mhnjm0m/1416d663-0f78-4e7c-9a6f-cd90bbee4119/tool-results/mcp-claude_ai_cBioPortal_MCP-clickhouse_run_select_query-1790440569864.txt), then extract slices with jq or python — Read's line-based offset/limit will not chunk this file.
- If the Agent tool is available, do this inside a subagent so the full output stays out of your main context. Give it the instruction above verbatim, and be explicit about what it must return — e.g. "/home/ino/.claude-cbioportal-team/projects/-tmp-mcp-qa-claude-5mhnjm0m/1416d663-0f78-4e7c-9a6f-cd90bbee4119/tool-results/mcp-claude_ai_cBioPortal_MCP-clickhouse_run_select_query-1790440569864.txt is JSON with schema: {rows: [{...}]}; probe the structure with jq (type/length/keys), then extract and read the content in full with jq or python, then summarize and quote any key findings verbatim." A vague "summarize this" may lose detail.
▶ clickhouse_run_select_query
{
"query": "
-- Aggregate TMB and MSI status in colorectal cancer from MSK-CHORD
WITH crc_patients AS (
SELECT DISTINCT sample_unique_id, patient_unique_id, cancer_study_identifier
FROM clinical_data_derived
WHERE cancer_study_identifier = 'msk_chord_2024'
AND attribute_name = 'CANCER_TYPE'
AND attribute_value = 'Colorectal Cancer'
),
tmb_data AS (
SELECT sample_unique_id, toFloat64OrNull(attribute_value) AS tmb_value
FROM clinical_data_derived
WHERE cancer_study_identifier = 'msk_chord_2024'
AND attribute_name = 'TMB_NONSYNONYMOUS'
AND toFloat64OrNull(attribute_value) IS NOT NULL
),
msi_data AS (
SELECT sample_unique_id, attribute_value AS msi_status
FROM clinical_data_derived
WHERE cancer_study_identifier = 'msk_chord_2024'
AND attribute_name = 'MSI_TYPE'
),
combined AS (
SELECT
cp.sample_unique_id,
cp.patient_unique_id,
COALESCE(msi.msi_status, 'Not Available') AS msi_status,
tmb.tmb_value
FROM crc_patients cp
LEFT JOIN tmb_data tmb ON cp.sample_unique_id = tmb.sample_unique_id
LEFT JOIN msi_data msi ON cp.sample_unique_id = msi.sample_unique_id
)
SELECT
msi_status,
COUNT(*) AS sample_count,
COUNT(DISTINCT patient_unique_id) AS patient_count,
ROUND(AVG(tmb_value), 2) AS mean_tmb,
ROUND(quantile(0.5)(tmb_value), 2) AS median_tmb,
ROUND(MIN(tmb_value), 2) AS min_tmb,
ROUND(MAX(tmb_value), 2) AS max_tmb,
ROUND(stddevPop(tmb_value), 2) AS stddev_tmb
FROM combined
WHERE tmb_value IS NOT NULL
GROUP BY msi_status
ORDER BY median_tmb DESC
",
"max_rows": 100
}
◀ result
{"rows":[{"msi_status":"Instable","sample_count":586,"patient_count":586,"mean_tmb":64.63,"median_tmb":56.68,"min_tmb":0,"max_tmb":490.57,"stddev_tmb":42.15},{"msi_status":"Indeterminate","sample_count":188,"patient_count":188,"mean_tmb":18.57,"median_tmb":6.56,"min_tmb":1.64,"max_tmb":343.53,"stddev_tmb":41.56},{"msi_status":"Stable","sample_count":4682,"patient_count":4682,"mean_tmb":7.58,"median_tmb":5.87,"min_tmb":0,"max_tmb":570.96,"stddev_tmb":20.23},{"sample_count":38,"patient_count":38,"mean_tmb":8.06,"median_tmb":3.69,"min_tmb":0,"max_tmb":95.12,"stddev_tmb":16.91},{"msi_status":"Do not report","sample_count":49,"patient_count":49,"mean_tmb":7.06,"median_tmb":3.33,"min_tmb":0,"max_tmb":74.31,"stddev_tmb":12.41}]}
▶ clickhouse_run_select_query
{
"query": "
-- Contingency table: MSI status vs TMB categories in CRC
WITH crc_patients AS (
SELECT DISTINCT sample_unique_id, patient_unique_id, cancer_study_identifier
FROM clinical_data_derived
WHERE cancer_study_identifier = 'msk_chord_2024'
AND attribute_name = 'CANCER_TYPE'
AND attribute_value = 'Colorectal Cancer'
),
tmb_data AS (
SELECT sample_unique_id, toFloat64OrNull(attribute_value) AS tmb_value
FROM clinical_data_derived
WHERE cancer_study_identifier = 'msk_chord_2024'
AND attribute_name = 'TMB_NONSYNONYMOUS'
AND toFloat64OrNull(attribute_value) IS NOT NULL
),
msi_data AS (
SELECT sample_unique_id, attribute_value AS msi_status
FROM clinical_data_derived
WHERE cancer_study_identifier = 'msk_chord_2024'
AND attribute_name = 'MSI_TYPE'
),
combined AS (
SELECT
cp.sample_unique_id,
cp.patient_unique_id,
COALESCE(msi.msi_status, 'Not Available') AS msi_status,
tmb.tmb_value,
CASE
WHEN tmb.tmb_value IS NULL THEN 'No TMB data'
WHEN tmb.tmb_value >= 20 THEN 'High TMB (≥20)'
WHEN tmb.tmb_value >= 10 THEN 'Intermediate TMB (10-20)'
ELSE 'Low TMB (<10)'
END AS tmb_category
FROM crc_patients cp
LEFT JOIN tmb_data tmb ON cp.sample_unique_id = tmb.sample_unique_id
LEFT JOIN msi_data msi ON cp.sample_unique_id = msi.sample_unique_id
WHERE msi.msi_status IS NOT NULL
)
SELECT
msi_status,
tmb_category,
COUNT(*) AS sample_count
FROM combined
GROUP BY msi_status, tmb_category
ORDER BY msi_status,
CASE tmb_category
WHEN 'High TMB (≥20)' THEN 1
WHEN 'Intermediate TMB (10-20)' THEN 2
WHEN 'Low TMB (<10)' THEN 3
ELSE 4
END
",
"max_rows": 100
}
◀ result
{"rows":[{"tmb_category":"High TMB (≥20)","sample_count":4},{"tmb_category":"Intermediate TMB (10-20)","sample_count":1},{"tmb_category":"Low TMB (<10)","sample_count":33},{"msi_status":"Do not report","tmb_category":"High TMB (≥20)","sample_count":3},{"msi_status":"Do not report","tmb_category":"Intermediate TMB (10-20)","sample_count":5},{"msi_status":"Do not report","tmb_category":"Low TMB (<10)","sample_count":41},{"msi_status":"Indeterminate","tmb_category":"High TMB (≥20)","sample_count":33},{"msi_status":"Indeterminate","tmb_category":"Intermediate TMB (10-20)","sample_count":14},{"msi_status":"Indeterminate","tmb_category":"Low TMB (<10)","sample_count":141},{"msi_status":"Instable","tmb_category":"High TMB (≥20)","sample_count":574},{"msi_status":"Instable","tmb_category":"Intermediate TMB (10-20)","sample_count":8},{"msi_status":"Instable","tmb_category":"Low TMB (<10)","sample_count":4},{"msi_status":"Stable","tmb_category":"High TMB (≥20)","sample_count":53},{"msi_status":"Stable","tmb_category":"Intermediate TMB (10-20)","sample_count":304},{"msi_status":"Stable","tmb_category":"Low TMB (<10)","sample_count":4325}]}
▶ resolve_and_route
{
"studyIds": [
"msk_chord_2024"
]
}
◀ result
{"success":true,"message":"Found 1 study. Use the metadata to call the appropriate navigation tool(s).","data":{"totalCount":1,"studiesWithMetadata":[{"studyId":"msk_chord_2024","name":"MSK-CHORD (MSK, Nature 2024)","sampleCount":25040,"studyViewUrl":"https://www.cbioportal.org/study?id=msk_chord_2024","metadata":{"clinicalAttributeIds":["ADRENAL_GLANDS","BONE","CANCER_TYPE","CANCER_TYPE_DETAILED","CLINICAL_GROUP","CLINICAL_SUMMARY","CNS_BRAIN","CURRENT_AGE_DEID","DIAGNOSIS_DESCRIPTION","ETHNICITY","FRACTION_GENOME_ALTERED","GENDER","GENE_PANEL","GLEASON_FIRST_REPORTED","GLEASON_HIGHEST_REPORTED","GLEASON_SAMPLE_LEVEL","HER2","HISTORY_OF_PDL1","HR","ICD_O_HISTOLOGY_DESCRIPTION","INTRA_ABDOMINAL","LIVER","LUNG","LYMPH_NODES","METASTATIC_SITE","MSI_COMMENT","MSI_SCORE","MSI_TYPE","MUTATION_COUNT","NUM_ICDO_DX","ONCOTREE_CODE","OS_MONTHS","OS_STATUS","OTHER","PATHOLOGICAL_GROUP","PDL1_POSITIVE","PLEURA","PRIMARY_SITE","PRIOR_MED_TO_MSK","RACE","REPRODUCTIVE_ORGANS","SAMPLE_CLASS","SAMPLE_COUNT","SAMPLE_COVERAGE","SAMPLE_TYPE","SMOKING_PREDICTIONS_3_CLASSES","SOMATIC_STATUS","STAGE_HIGHEST_RECORDED","TMB_NONSYNONYMOUS","TUMOR_PURITY"],"molecularProfileIds":["msk_chord_2024_cna","msk_chord_2024_mutations","msk_chord_2024_structural_variants"],"availableComparisonTabs":["overlap","clinical","survival","alterations","mutations"]}}]}}
▶ navigate_to_group_comparison
{
"studyIds": [
"msk_chord_2024"
],
"groups": [
{
"name": "MSI-High (Instable)",
"studyViewFilter": {
"clinicalDataFilters": [
{
"attributeId": "CANCER_TYPE",
"values": [
{
"value": "Colorectal Cancer"
}
]
},
{
"attributeId": "MSI_TYPE",
"values": [
{
"value": "Instable"
}
]
}
]
}
},
{
"name": "MSI-Stable",
"studyViewFilter": {
"clinicalDataFilters": [
{
"attributeId": "CANCER_TYPE",
"values": [
{
"value": "Colorectal Cancer"
}
]
},
{
"attributeId": "MSI_TYPE",
"values": [
{
"value": "Stable"
}
]
}
]
}
}
],
"tab": "clinical"
}
◀ result
{"success":true,"message":"Navigating to https://www.cbioportal.org/comparison/clinical?comparisonId=6ab7f48cc2115c492d885142","url":"https://www.cbioportal.org/comparison/clinical?comparisonId=6ab7f48cc2115c492d885142","data":{"description":"Group comparison (2 custom groups)","studies":["msk_chord_2024"],"totalGroups":2,"groups":[{"name":"MSI-High (Instable)","sampleCount":586},{"name":"MSI-Stable","sampleCount":4682}],"studyViewUrl":"https://www.cbioportal.org/study?id=msk_chord_2024","groupUrls":[{"groupName":"MSI-High (Instable)","url":"https://www.cbioportal.org/study?id=msk_chord_2024#filterJson=%7B%22clinicalDataFilters%22%3A%5B%7B%22attributeId%22%3A%22CANCER_TYPE%22%2C%22values%22%3A%5B%7B%22value%22%3A%22Colorectal%20Cancer%22%7D%5D%7D%2C%7B%22attributeId%22%3A%22MSI_TYPE%22%2C%22values%22%3A%5B%7B%22value%22%3A%22Instable%22%7D%5D%7D%5D%7D"},{"groupName":"MSI-Stable","url":"https://www.cbioportal.org/study?id=msk_chord_2024#filterJson=%7B%22clinicalDataFilters%22%3A%5B%7B%22attributeId%22%3A%22CANCER_TYPE%22%2C%22values%22%3A%5B%7B%22value%22%3A%22Colorectal%20Cancer%22%7D%5D%7D%2C%7B%22attributeId%22%3A%22MSI_TYPE%22%2C%22values%22%3A%5B%7B%22value%22%3A%22Stable%22%7D%5D%7D%5D%7D"}],"pageDescription":"Clinical attribute distributions compared across MSI-High (Instable) (586) vs MSI-Stable (4682)."}}
▶ navigate_to_study_view
{
"studyIds": [
"msk_chord_2024"
],
"filterJson": {
"clinicalDataFilters": [
{
"attributeId": "CANCER_TYPE",
"values": [
{
"value": "Colorectal Cancer"
}
]
}
]
},
"tab": "clinicalData"
}
◀ result
{"success":true,"message":"Navigating to https://www.cbioportal.org/study/clinicalData?id=msk_chord_2024#filterJson=%7B%22clinicalDataFilters%22%3A%5B%7B%22attributeId%22%3A%22CANCER_TYPE%22%2C%22values%22%3A%5B%7B%22value%22%3A%22Colorectal%20Cancer%22%7D%5D%7D%5D%7D","url":"https://www.cbioportal.org/study/clinicalData?id=msk_chord_2024#filterJson=%7B%22clinicalDataFilters%22%3A%5B%7B%22attributeId%22%3A%22CANCER_TYPE%22%2C%22values%22%3A%5B%7B%22value%22%3A%22Colorectal%20Cancer%22%7D%5D%7D%5D%7D","data":{"studyIds":["msk_chord_2024"],"studies":[{"studyId":"msk_chord_2024","name":"MSK-CHORD (MSK, Nature 2024)","sampleCount":25040}],"tab":"clinicalData","hasFilters":true,"hasPlotsConfig":false,"pageDescription":"Table of clinical attributes per sample."}}
═ answer (success)
Perfect! Now I have all the data I need. Let me compile the comprehensive answer:
---
## Correlation Between Tumor Mutational Burden and Microsatellite Instability in MSK-CHORD Colorectal Cancer
I've analyzed 5,543 colorectal cancer samples from the MSK-CHORD study with both TMB and MSI status data. Here are the key findings:
### Summary by MSI Status
| MSI Status | Samples | Patients | Mean TMB | Median TMB | Range |
|---|---|---|---|---|---|
| **Instable (MSI-High)** | 586 | 586 | 64.63 | **56.68** | 0–490.6 |
| **Indeterminate** | 188 | 188 | 18.57 | 6.56 | 1.6–343.5 |
| **Stable (MSI-Low/MSS)** | 4,682 | 4,682 | 7.58 | **5.87** | 0–571 |
| Do not report | 49 | 49 | 7.06 | 3.33 | 0–74.3 |
| No MSI data | 38 | 38 | 8.06 | 3.69 | 0–95.1 |
### Key Observations
**1. Strong Association Between MSI-High and Elevated TMB:**
- MSI-unstable (MSI-H) samples show **~10-fold higher median TMB** (56.68 vs 5.87 mutations/Mb)
- **97.4% of MSI-H samples** (574/586) have high TMB (≥20 mutations/Mb)
- Only **1.1%** of MSI-H samples (4/586) show low TMB (<10 mutations/Mb)
**2. MSI-Stable Samples Predominantly Have Low TMB:**
- **92.4%** of MSI-stable samples (4,325/4,682) have low TMB (<10 mutations/Mb)
- Only **1.1%** (53/4,682) meet high TMB threshold (≥20 mutations/Mb)
**3. Distribution of TMB by MSI Category:**
| TMB Category | MSI-High | MSI Indeterminate | MSI-Stable | Do not report |
|---|---|---|---|---|
| High (≥20) | 574 (98%) | 33 (18%) | 53 (1%) | 3 (6%) |
| Intermediate (10–20) | 8 (1%) | 14 (7%) | 304 (6%) | 5 (10%) |
| Low (<10) | 4 (1%) | 141 (75%) | 4,325 (92%) | 41 (84%) |
### Statistical Interpretation
**Important:** I cannot compute a p-value or correlation coefficient directly—ClickHouse lacks statistical test functions. However, the pattern is striking: MSI status and TMB show a **strong positive association**. For formal statistical testing (Mann-Whitney U test, Spearman's ρ correlation, or Chi-squared test), use the interactive tools below.
### Explore the Data
**[Compare MSI-High vs MSI-Stable distributions](https://www.cbioportal.org/comparison/clinical?comparisonId=6ab7f48cc2115c492d885142)**
- View 586 MSI-unstable vs 4,682 MSI-stable colorectal cancer samples
- Clinical attributes, survival, and alterations comparison
- p-values for group differences (computed by cBioPortal's Group Comparison)
**[Browse all colorectal cancer samples](https://www.cbioportal.org/study/clinicalData?id=msk_chord_2024#filterJson=%7B%22clinicalDataFilters%22%3A%5B%7B%22attributeId%22%3A%22CANCER_TYPE%22%2C%22values%22%3A%5B%7B%22value%22%3A%22Colorectal%20Cancer%22%7D%5D%7D%5D%7D)**
- Full clinical data table for 5,543 colorectal cancer samples
- Filter, sort, and export TMB and MSI values
### Biological Context
The strong TMB elevation in MSI-H colorectal cancers aligns with established biology: microsatellite instability (typically from mismatch repair deficiency) leads to widespread mutations, resulting in high tumor mutational burden. This association is well-documented in colorectal cancer and forms the basis for MSI-H as a biomarker for immunotherapy eligibility (e.g., checkpoint inhibitor response in high-TMB MSI-H tumors).