Q (haiku): What percentage of colorectal cancer samples have KRAS mutations in the MSK-CHORD Study? ▶ read_guide { "uri": "cbioportal://mutation-frequency-guide" } ▶ list_studies { "search": "MSK-CHORD" } ◀ result # Mutation Frequency Analysis Guide ## IMPORTANT: Reporting Mutation Frequencies - **ALWAYS report frequencies as percentages**, not raw counts: `frequency = (altered_samples / total_profiled_samples) × 100` - For quick frequency lookups, **prefer the TCGA Pan-Cancer Atlas study first**, then offer to expand to other studies - When reporting across multiple studies, show **ranges** (e.g., "TP53 is mutated in 30–60% of samples") rather than a single average - **NEVER** sum mutation events across studies to compute an aggregate frequency — this can exceed 100% due to double-counting - Warn users that samples may overlap across cohorts (e.g., MSK studies may share patients) - **Choose and state the counting unit**: use patient-level frequencies for prevalence/rate questions unless the user explicitly asks for samples; use sample-level frequencies when the user asks about samples. - **For "across cancer types" questions**, jump to the [Cross-Cancer-Type Mutation Frequency](#cross-cancer-type-mutation-frequency) section below — there is one correct recipe and several common wrong ones. ## Counting Unit: Samples vs Patients Before answering any mutation count or frequency question, decide whether the unit is samples or patients and state that choice in the answer. | User wording | Counting unit | |--------------|---------------| | "prevalence", "rate", "fraction of patients", "patients with", "how common is" | Patient-level: `COUNT(DISTINCT patient_unique_id)` | | "samples", "specimens", "biopsies", sample-level cohort composition | Sample-level: `COUNT(DISTINCT sample_unique_id)` | | Ambiguous | Ask, or default to patient-level for prevalence/rate language and say so | ### Cross-study sample-count caveat When an answer touches more than one study and reports a sample count, prepend a one-line caveat: > Sample IDs are unique within cBioPortal study prefixes, not guaranteed biological-sample identifiers across studies; overlapping cohorts can count the same patient/sample more than once. Prefer one of these safer approaches: - Use a shipped `cancer_study_query_preferences` cohort such as `pan_cancer_tcga` or `all_studies_non_redundant`. - Restrict to one named study. - Aggregate by `patient_unique_id` when the biological question is patient prevalence. ## STOP rule: a frequency above 100% means your query is wrong If your query returns a frequency over 100%, **do not try to debug or explain the data inconsistency to the user**. The cause is always one of these query bugs: - Summing mutation events instead of `COUNT(DISTINCT sample_unique_id)` for the numerator - Using a study-wide sample count as the denominator instead of the gene-specific profiled count - Cross-study aggregation where the same biological sample appears under multiple `sample_unique_id` values (e.g., MSK-IMPACT and MSK-CHORD share patients) - **Joining the profiled CTE through `gene_panel` / `gene_panel_list` without a WES branch.** `gene_panel_id = 'WES'` is *not* a row in … (36467 more chars) ◀ result {"result":[{"cancer_study_identifier":"msk_chord_2024","name":"MSK-CHORD (MSK, Nature 2024)","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": "genomic_event_derived" } ◀ 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":"sample_unique_id","type":"String"},{"name":"hugo_gene_symbol","type":"String","comment":"HUGO gene symbol (e.g., TP53, KRAS, BRAF). Use for gene-specific queries."},{"name":"entrez_gene_id","type":"Int32"},{"name":"gene_panel_stable_id","type":"LowCardinality(String)"},{"name":"cancer_study_identifier","type":"LowCardinality(String)"},{"name":"genetic_profile_stable_id","type":"LowCardinality(String)"},{"name":"variant_type","type":"LowCardinality(String)","comment":"Type of genomic event: \"mutation\" for SNVs/indels, \"cna\" for copy number alterations, \"structural_variant\" for SVs. Always filter by this."},{"name":"mutation_variant","type":"String","comment":"Protein change notation (e.g., p.V600E, p.R175H). Use for specific variant queries. \"NA\" for non-mutation events."},{"name":"mutation_type","type":"LowCardinality(String)"},{"name":"mutation_status","type":"LowCardinality(String)","comment":"For mutations: Somatic, Germline, UNKNOWN, or UNCALLED. Filter mutation_status != \"UNCALLED\" to exclude uncertain calls. Include all other statuses."},{"name":"driver_filter","type":"LowCardinality(String)"},{"name":"driver_filter_annotation","type":"String"},{"name":"driver_tiers_filter","type":"LowCardinality(String)"},{"name":"driver_tiers_filter_annotation","type":"String"},{"name":"cna_alteration","type":"Nullable(Int8)","comment":"Copy number alteration: only 2 = amplification (AMP) and -2 = deep deletion (HOMDEL) are stored. Shallow deletion (-1), diploid (0) and gain (1) are not in this table; query genetic_alteration_derived WHERE profile_type = 'gistic' (alteration_value is a String, e.g. '-1'). NULL for non-CNA events."},{"name":"cna_cytoband","type":"String"},{"name":"sv_event_info","type":"String"},{"name":"patient_unique_id","type":"String"},{"name":"off_panel","type":"Bool","comment":"Boolean: 1 = mutation outside gene panel coverage (off-panel), 0 = within panel (on-panel). Filter off_panel = 0 for reliable frequency calculations."}]} ▶ clickhouse_run_select_query { "query": " -- Get colorectal cancer samples with KRAS mutations in MSK-CHORD -- First, identify colorectal cancer samples WITH crc_samples AS ( SELECT DISTINCT sample_unique_id FROM clinical_data_derived WHERE cancer_study_identifier = 'msk_chord_2024' AND attribute_name = 'CANCER_TYPE' AND attribute_value = 'Colorectal Cancer' ), -- Count samples with KRAS mutations in colorectal cancer kras_mutated AS ( SELECT COUNT(DISTINCT ged.sample_unique_id) AS mutated_samples FROM genomic_event_derived ged WHERE ged.cancer_study_identifier = 'msk_chord_2024' AND ged.hugo_gene_symbol = 'KRAS' AND ged.variant_type = 'mutation' AND ged.mutation_status != 'UNCALLED' AND ged.off_panel = 0 AND ged.sample_unique_id IN (SELECT sample_unique_id FROM crc_samples) ), -- Count profiled samples (those with mutation profiling data for KRAS) kras_profiled AS ( SELECT COUNT(DISTINCT ged.sample_unique_id) AS profiled_samples FROM genomic_event_derived ged WHERE ged.cancer_study_identifier = 'msk_chord_2024' AND ged.hugo_gene_symbol = 'KRAS' AND ged.variant_type = 'mutation' AND ged.sample_unique_id IN (SELECT sample_unique_id FROM crc_samples) ) SELECT km.mutated_samples, kp.profiled_samples, ROUND(km.mutated_samples * 100.0 / NULLIF(kp.profiled_samples, 0), 1) AS frequency_pct FROM kras_mutated km CROSS JOIN kras_profiled kp ", "max_rows": 10 } ◀ result {"rows":[{"mutated_samples":2355,"profiled_samples":2355,"frequency_pct":100}]} ▶ clickhouse_run_select_query { "query": " -- Proper query: Use gene-specific profiling coverage for KRAS -- First, identify colorectal cancer samples WITH crc_samples AS ( SELECT DISTINCT sample_unique_id FROM clinical_data_derived WHERE cancer_study_identifier = 'msk_chord_2024' AND attribute_name = 'CANCER_TYPE' AND attribute_value = 'Colorectal Cancer' ), -- Count samples with KRAS mutations in colorectal cancer kras_mutated AS ( SELECT COUNT(DISTINCT ged.sample_unique_id) AS mutated_samples FROM genomic_event_derived ged WHERE ged.cancer_study_identifier = 'msk_chord_2024' AND ged.hugo_gene_symbol = 'KRAS' AND ged.variant_type = 'mutation' AND ged.mutation_status != 'UNCALLED' AND ged.off_panel = 0 AND ged.sample_unique_id IN (SELECT sample_unique_id FROM crc_samples) ), -- Get gene-specific profiled samples from mutation panel coverage kras_profiled AS ( SELECT COUNT(DISTINCT stgp.sample_unique_id) AS profiled_samples FROM sample_to_gene_panel_derived stgp WHERE stgp.cancer_study_identifier = 'msk_chord_2024' AND stgp.alteration_type = 'MUTATION_EXTENDED' AND stgp.sample_unique_id IN (SELECT sample_unique_id FROM crc_samples) AND EXISTS ( SELECT 1 FROM gene_panel_list gpl JOIN gene g ON gpl.gene_id = g.entrez_gene_id WHERE g.hugo_gene_symbol = 'KRAS' AND gpl.internal_id = ( SELECT internal_id FROM gene_panel WHERE stable_id = stgp.gene_panel_id ) ) ) SELECT km.mutated_samples, kp.profiled_samples, ROUND(km.mutated_samples * 100.0 / NULLIF(kp.profiled_samples, 0), 1) AS frequency_pct FROM kras_mutated km CROSS JOIN kras_profiled kp ", "max_rows": 10 } ◀ result {"error_message":"Query execution failed: HTTPDriver for https://dl96orhu96.us-east-1.aws.clickhouse.cloud:8443 received ClickHouse error code 1\n Code: 1. DB::Exception: Resolved identifier 'stgp.gene_panel_id' in parent scope to expression 'stgp.gene_panel_id' with correlated columns 'gene_panel_id' (Enable 'allow_experimental_correlated_subqueries' setting to allow correlated subqueries execution). In scope (SELECT _CAST(1, 'UInt64') FROM (SELECT 1 FROM cbioportal_public_librechat_blue.gene_panel_list AS gpl ALL INNER JOIN cbioportal_public_librechat_blue.gene AS g ON gpl.gene_id = g.entrez_gene_id WHERE (g.hugo_gene_symbol = 'KRAS') AND (gpl.internal_id = (SELECT cbioportal_public_librechat_blue.gene_panel.internal_id FROM cbioportal_public_librechat_blue.gene_panel WHERE stable_id = stgp.gene_panel_id))) LIMIT _CAST(1, 'UInt64')). (UNSUPPORTED_METHOD) (version 26.4.1.2359 (official build))\n"} ▶ clickhouse_run_select_query { "query": " -- Proper query using mutation_panel_gene_coverage view WITH crc_samples AS ( SELECT DISTINCT sample_unique_id FROM clinical_data_derived WHERE cancer_study_identifier = 'msk_chord_2024' AND attribute_name = 'CANCER_TYPE' AND attribute_value = 'Colorectal Cancer' ), -- Count samples with KRAS mutations in colorectal cancer kras_mutated AS ( SELECT COUNT(DISTINCT ged.sample_unique_id) AS mutated_samples FROM genomic_event_derived ged WHERE ged.cancer_study_identifier = 'msk_chord_2024' AND ged.hugo_gene_symbol = 'KRAS' AND ged.variant_type = 'mutation' AND ged.mutation_status != 'UNCALLED' AND ged.off_panel = 0 AND ged.sample_unique_id IN (SELECT sample_unique_id FROM crc_samples) ), -- Get gene-specific profiled samples from mutation panel coverage kras_profiled AS ( SELECT COUNT(DISTINCT mpgc.sample_unique_id) AS profiled_samples FROM mutation_panel_gene_coverage mpgc WHERE mpgc.cancer_study_identifier = 'msk_chord_2024' AND mpgc.hugo_gene_symbol = 'KRAS' AND mpgc.sample_unique_id IN (SELECT sample_unique_id FROM crc_samples) ) SELECT km.mutated_samples, kp.profiled_samples, ROUND(km.mutated_samples * 100.0 / NULLIF(kp.profiled_samples, 0), 1) AS frequency_pct FROM kras_mutated km CROSS JOIN kras_profiled kp ", "max_rows": 10 } ◀ result {"rows":[{"mutated_samples":2355,"profiled_samples":5543,"frequency_pct":42.5}]} ▶ 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_study_view { "studyIds": [ "msk_chord_2024" ], "filterJson": { "clinicalDataFilters": [ { "attributeId": "CANCER_TYPE", "values": [ { "value": "Colorectal Cancer" } ] } ] } } ◀ result {"success":true,"message":"Navigating to https://www.cbioportal.org/study/summary?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/summary?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":"summary","hasFilters":true,"hasPlotsConfig":false,"pageDescription":"Overview of all study data displayed as interactive charts summarizing available clinical and genomic data. Click within a chart to filter. Additional charts may be available in the Charts menu."}} ▶ navigate_to_results_view { "studyIds": [ "msk_chord_2024" ], "genes": [ "KRAS" ], "studyViewFilter": { "clinicalDataFilters": [ { "attributeId": "CANCER_TYPE", "values": [ { "value": "Colorectal Cancer" } ] } ] }, "tab": "oncoprint" } ◀ result {"success":true,"message":"Navigating to https://www.cbioportal.org/results/oncoprint?session_id=6ab42840c2115c492d88493c","url":"https://www.cbioportal.org/results/oncoprint?session_id=6ab42840c2115c492d88493c","data":{"studyIds":["msk_chord_2024"],"studies":[{"studyId":"msk_chord_2024","name":"MSK-CHORD (MSK, Nature 2024)","sampleCount":25040}],"genes":["KRAS"],"filteredSampleCount":5543,"caseSetId":"-1","sessionId":"6ab42840c2115c492d88493c","studyViewUrl":"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%5D%7D","pageDescription":"Visual summary of alterations in queried genes across samples."}} ═ answer (success) ## Result In the **MSK-CHORD study**, **42.5%** of colorectal cancer samples (2,355 out of 5,543 profiled samples) have **KRAS mutations**. ### Key Details: - **Study:** MSK-CHORD (MSK, Nature 2024) - **Cancer type:** Colorectal Cancer (5,543 samples) - **KRAS-mutated samples:** 2,355 - **Profiled denominator:** 5,543 samples (gene-specific profiling coverage) - **Frequency:** 42.5% ### Explore Further: [View colorectal cancer cohort in StudyView](https://www.cbioportal.org/study/summary?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) — Overview of colorectal cancer samples with clinical and genomic distributions [View KRAS mutations in OncoPrint](https://www.cbioportal.org/results/oncoprint?session_id=6ab42840c2115c492d88493c) — Visual summary of KRAS alterations in colorectal cancer samples