Q (sonnet): How does overall survival compare between prostate cancer patients where TMPRSS2 is acting as the upstream donor to an ERG fusion event and patients without this fusion? ▶ read_guide { "uri": "cbioportal://statistical-tests-guide" } ▶ list_guides {} ◀ 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) ◀ result {"result":[{"uri":"cbioportal://mutation-frequency-guide","description":"Comprehensive guide for calculating gene mutation frequencies with gene-specific profiling denominators"},{"uri":"cbioportal://clinical-data-guide","description":"Guide for querying clinical data including patient vs sample level considerations"},{"uri":"cbioportal://sample-filtering-guide","description":"Guide for filtering samples and studies in cBioPortal queries"},{"uri":"cbioportal://common-pitfalls","description":"Guide to avoid common mistakes when querying cBioPortal data. If you already know which numbered pitfall applies, fetch just that section via read_guide(\"cbioportal://common-pitfalls#\") (e.g. #16) instead of the full guide"},{"uri":"cbioportal://treatment-guide","description":"Guide for querying treatment/clinical event data including drug agents, timelines, and linking to genomic data"},{"uri":"cbioportal://faq-guide","description":"General cBioPortal FAQ: history, how to cite, data types, reference genome, abbreviations, GISTIC thresholds, API access"},{"uri":"cbioportal://statistical-tests-guide","description":"Statistical test selection guide — decision matrix for choosing Fisher's exact, Wilcoxon, chi-squared, t-test, ANOVA, etc. based on data type and group count"},{"uri":"cbioportal://gene-expression-guide","description":"Gene expression / copy-number / methylation analysis. Covers genetic_alteration_derived, profile_type discovery, and the gene_pair_coexpression view for Spearman correlation between two genes"},{"uri":"cbioportal://external-resources-guide","description":"Guide for finding external linked resources such as imaging, pathology, Minerva, HTAN, or other resource_* table links before declaring data unavailable"},{"uri":"cbioportal://gene-resolution-guide","description":"Guide for resolving ambiguous gene symbols, aliases, gene families, and shorthand such as CD3 before querying expression or alteration data"},{"uri":"cbioportal://study-resolution-guide","description":"Guide for resolving requested studies, avoiding silent substitute cohorts, and redirecting to known external cBioPortal instances when data is not in this deployment"},{"uri":"cbioportal://germline-guide","description":"Guide for querying germline variant data — storage columns, study discovery, query patterns, and somatic vs germline considerations"},{"uri":"cbioportal://study-guide/{study_id}","description":"Dynamic study-specific guide - use get_study_guide(study_id) tool to generate"}]} ▶ read_guide { "uri": "cbioportal://common-pitfalls" } ▶ list_studies { "search": "prostate" } ◀ result # Common Query Pitfalls Guide ## Overview This guide highlights frequent mistakes when analyzing cBioPortal data and provides solutions to avoid them. ## Critical Pitfalls ### 1. 🚨 CRITICAL MUTATION FREQUENCY ERRORS #### ❌ WRONG: Using study-wide totals for gene frequencies ```sql -- INCORRECT - This gives wrong frequencies! SELECT hugo_gene_symbol, COUNT(DISTINCT sample_unique_id) as altered_samples, (SELECT COUNT(DISTINCT sample_unique_id) FROM genomic_event_derived WHERE cancer_study_identifier = 'your_study_id') as total_samples FROM genomic_event_derived WHERE variant_type = 'mutation' AND cancer_study_identifier = 'your_study_id' GROUP BY hugo_gene_symbol; ``` **Problem**: Different genes have different profiling coverage - you can't use study-wide totals! #### ❌ WRONG: Not using gene-specific profiling denominators ```sql -- INCORRECT - Missing gene-specific denominators SELECT hugo_gene_symbol, COUNT(DISTINCT sample_unique_id) as altered_samples FROM genomic_event_derived WHERE variant_type = 'mutation' GROUP BY hugo_gene_symbol; -- Missing: WHERE ARE THE DENOMINATORS FOR EACH GENE? ``` #### ❌ WRONG: Skipping individual gene profiling queries **Problem**: Failing to run separate profiling queries for EACH gene in results. **Each gene has different coverage**: TP53 might be profiled in 25,040 samples, MUC16 in 23,000, etc. #### ✅ CORRECT: Complete gene-specific workflow ```sql -- STEP 1: Get altered counts per gene SELECT hugo_gene_symbol, entrez_gene_id, COUNT(DISTINCT CASE WHEN off_panel = 0 THEN sample_unique_id END) AS numberOfAlteredSamplesOnPanel, COUNT(*) AS totalMutationEvents FROM genomic_event_derived WHERE variant_type = 'mutation' AND mutation_status != 'UNCALLED' GROUP BY entrez_gene_id, hugo_gene_symbol ORDER BY numberOfAlteredSamplesOnPanel DESC; -- STEP 2: FOR EACH GENE, run this profiling query: SELECT COUNT(DISTINCT stgp.sample_unique_id) AS numberOfProfiledSamples FROM sample_to_gene_panel_derived stgp JOIN gene_panel gp ON stgp.gene_panel_id = gp.stable_id JOIN gene_panel_list gpl ON gp.internal_id = gpl.internal_id JOIN gene g ON gpl.gene_id = g.entrez_gene_id WHERE stgp.alteration_type = 'MUTATION_EXTENDED' AND g.hugo_gene_symbol = 'TP53' -- Replace with each gene from Step 1 AND stgp.cancer_study_identifier = 'your_study_id'; -- STEP 3: Calculate frequency = numberOfAlteredSamplesOnPanel / numberOfProfiledSamples * 100 ``` #### 🚨 WORKFLOW REQUIREMENTS VIOLATIONS: - **Missing denominator columns**: Must show gene-specific profiled samples per row - **Wrong table format**: Should be | Gene | # Mutations | # Samples | Profiled Samples | Sample % | - **Not replacing gene symbols**: Must replace 'TP53' with actual gene for each query - **Using study totals**: Never use genomic_event_derived for total sample counts ### 2. 🚨 OFF-PANEL MUTATION INCLUSION #### ❌ Wrong: Including off-panel mutations ```sql -- INCORRECT - Includes mutations outside gene panels SELEC … (38012 more chars) ▶ search_oncotree { "search_term": "prostate" } ◀ result {"result":[{"cancer_study_identifier":"msk_met_2021","name":"MSK MetTropism (MSK, Cell 2021)","type_of_cancer_id":"mixed","sample_count":25775,"has_guide":false,"url":"https://www.cbioportal.org/study/summary?id=msk_met_2021"},{"cancer_study_identifier":"prostate_msk_2024","name":"Prostate Cancer (MSK, Clin Cancer Res 2024)","type_of_cancer_id":"prostate","sample_count":2260,"has_guide":false,"url":"https://www.cbioportal.org/study/summary?id=prostate_msk_2024"},{"cancer_study_identifier":"prad_msk_stopsack_2021","name":"Race Differences in Prostate Cancer (MSK, 2021)","type_of_cancer_id":"prad","sample_count":2069,"has_guide":false,"url":"https://www.cbioportal.org/study/summary?id=prad_msk_stopsack_2021"},{"cancer_study_identifier":"prad_cdk12_mskcc_2020","name":"Prostate Adenocarcinoma (MSK, Eur Urol 2020)","type_of_cancer_id":"prad","sample_count":1465,"has_guide":false,"url":"https://www.cbioportal.org/study/summary?id=prad_cdk12_mskcc_2020"},{"cancer_study_identifier":"prad_pik3r1_msk_2021","name":"Prostate Adenocarcinoma (MSK, Clin Cancer Res. 2022)","type_of_cancer_id":"prad","sample_count":1417,"has_guide":false,"url":"https://www.cbioportal.org/study/summary?id=prad_pik3r1_msk_2021"},{"cancer_study_identifier":"prad_p1000","name":"Prostate Adenocarcinoma (MSK/DFCI, Nature Genetics 2018)","type_of_cancer_id":"prad","sample_count":1013,"has_guide":false,"url":"https://www.cbioportal.org/study/summary?id=prad_p1000"},{"cancer_study_identifier":"prad_mskcc_2017","name":"Prostate Cancer (MSK, JCO Precis Oncol 2017)","type_of_cancer_id":"prad","sample_count":504,"has_guide":false,"url":"https://www.cbioportal.org/study/summary?id=prad_mskcc_2017"},{"cancer_study_identifier":"prad_tcga","name":"Prostate Adenocarcinoma (TCGA, Firehose Legacy)","type_of_cancer_id":"prad","sample_count":501,"has_guide":false,"url":"https://www.cbioportal.org/study/summary?id=prad_tcga"},{"cancer_study_identifier":"prad_tcga_gdc","name":"Prostate Adenocarcinoma (TCGA GDC, 2025)","type_of_cancer_id":"prad","sample_count":501,"has_guide":false,"url":"https://www.cbioportal.org/study/summary?id=prad_tcga_gdc"},{"cancer_study_identifier":"prad_tcga_pan_can_atlas_2018","name":"Prostate Adenocarcinoma (TCGA, PanCancer Atlas)","type_of_cancer_id":"prad","sample_count":494,"has_guide":false,"url":"https://www.cbioportal.org/study/summary?id=prad_tcga_pan_can_atlas_2018"},{"cancer_study_identifier":"prad_cpcg_2017","name":"Prostate Adenocarcinoma (CPC-GENE, Nature 2017)","type_of_cancer_id":"prad","sample_count":477,"has_guide":false,"url":"https://www.cbioportal.org/study/summary?id=prad_cpcg_2017"},{"cancer_study_identifier":"prad_su2c_2019","name":"Metastatic Prostate Adenocarcinoma (SU2C/PCF Dream Team, PNAS 2019)","type_of_cancer_id":"prad","sample_count":444,"has_guide":false,"url":"https://www.cbioportal.org/study/summary?id=prad_su2c_2019"},{"cancer_study_identifier":"prad_mcspc_mskcc_2020","name":"Metastatic castration-sensitive prostate cancer (MSK, Clin Cancer R … (1820 more chars) ◀ result {"result":[{"code":"PROSTATE","name":"Prostate","score":100,"mainType":"Prostate Cancer","tissue":"Prostate","hierarchy":"PROSTATE"},{"code":"PRAD","name":"Prostate Adenocarcinoma","score":60,"mainType":"Prostate Cancer","tissue":"Prostate","hierarchy":"PROSTATE > PRAD"},{"code":"PRNE","name":"Prostate Neuroendocrine Carcinoma","score":60,"mainType":"Prostate Cancer","tissue":"Prostate","hierarchy":"PROSTATE > PRNE"},{"code":"PRSC","name":"Prostate Squamous Cell Carcinoma","score":60,"mainType":"Prostate Cancer","tissue":"Prostate","hierarchy":"PROSTATE > PRSC"},{"code":"PRSCC","name":"Prostate Small Cell Carcinoma","score":60,"mainType":"Prostate Cancer","tissue":"Prostate","hierarchy":"PROSTATE > PRSCC"},{"code":"BCCP","name":"Basal Cell Carcinoma of Prostate","score":50,"mainType":"Prostate Cancer","tissue":"Prostate","hierarchy":"PROSTATE > BCCP"}]} ▶ clickhouse_list_table_columns { "table": "structural_variant_derived" } ◀ result {"error_message":"Query execution failed: HTTPDriver for https://dl96orhu96.us-east-1.aws.clickhouse.cloud:8443 received ClickHouse error code 60\n Code: 60. DB::Exception: Table cbioportal_public_librechat_blue.structural_variant_derived does not exist. Maybe you meant cbioportal_public_librechat_blue.structural_variant?. (UNKNOWN_TABLE) (version 26.4.1.2359 (official build))\n"} ▶ clickhouse_run_select_query { "query": "SELECT cancer_study_identifier, sample_count, sv_sample_count FROM cancer_study WHERE cancer_study_identifier IN ('prad_tcga_pan_can_atlas_2018','prad_tcga','prad_tcga_pub','prad_tcga_gdc','prad_cpcg_2017','prad_su2c_2019','prad_p1000','prostate_msk_2024','prad_broad','prad_fhcrc','prad_mskcc')" } ◀ result {"error_message":"Query execution failed: HTTPDriver for https://dl96orhu96.us-east-1.aws.clickhouse.cloud:8443 received ClickHouse error code 47\n Code: 47. DB::Exception: Unknown expression identifier `sv_sample_count` in scope SELECT cancer_study_identifier, sample_count, sv_sample_count FROM cancer_study WHERE cancer_study_identifier IN ('prad_tcga_pan_can_atlas_2018', 'prad_tcga', 'prad_tcga_pub', 'prad_tcga_gdc', 'prad_cpcg_2017', 'prad_su2c_2019', 'prad_p1000', 'prostate_msk_2024', 'prad_broad', 'prad_fhcrc', 'prad_mskcc'). Maybe you meant: ['sample_count']. (UNKNOWN_IDENTIFIER) (version 26.4.1.2359 (official build))\n"} ▶ clickhouse_list_table_columns { "table": "cancer_study" } ▶ clickhouse_list_table_columns { "table": "structural_variant" } ◀ result {"columns":[{"name":"cancer_study_id","type":"Int64","comment":"Internal numeric ID. Prefer cancer_study_identifier for queries as it is more readable and stable."},{"name":"cancer_study_identifier","type":"Nullable(String)","comment":"Stable string identifier for the study (e.g., \"msk_chord_2024\", \"brca_tcga\"). Use this for filtering, not cancer_study_id."},{"name":"type_of_cancer_id","type":"String"},{"name":"name","type":"String","comment":"Full descriptive name of the study (e.g., \"MSK-CHORD (MSK, Nature 2024)\")."},{"name":"description","type":"String"},{"name":"public","type":"Int32"},{"name":"pmid","type":"Nullable(String)"},{"name":"citation","type":"Nullable(String)"},{"name":"groups","type":"Nullable(String)"},{"name":"status","type":"Nullable(Int64)"},{"name":"import_date","type":"Nullable(DateTime64(6))"},{"name":"reference_genome_id","type":"Nullable(Int64)"},{"name":"sample_count","type":"UInt32","comment":"Samples in the study (members of _all), as shown in the portal study list. Precomputed daily at LLM-prep time."},{"name":"mutation_sample_count","type":"UInt32","comment":"Samples profiled for mutations (_sequenced) — portal \"Data type\" filter: \"Mutations\". 0 = no mutation data."},{"name":"cna_sample_count","type":"UInt32","comment":"Samples profiled for copy-number alterations (_cna) — \"CNA\". 0 = no CNA data."},{"name":"structural_variant_sample_count","type":"UInt32","comment":"Distinct samples with at least one structural variant (fusions etc.). 0 = none."},{"name":"rna_seq_sample_count","type":"UInt32","comment":"Samples with RNA-Seq expression (_rna_seq_v2_mrna) — \"RNA-Seq\"."},{"name":"mrna_microarray_sample_count","type":"UInt32","comment":"Samples with microarray mRNA expression (_mrna) — \"RNA (microarray)\"."},{"name":"mirna_sample_count","type":"UInt32","comment":"Samples with microRNA expression (_microrna) — \"miRNA\"."},{"name":"rppa_sample_count","type":"UInt32","comment":"Samples with RPPA protein levels (_rppa) — \"RPPA\"."},{"name":"mass_spectrometry_sample_count","type":"UInt32","comment":"Samples with mass-spectrometry protein quantification (_protein_quantification) — \"Protein Mass-Spectrometry\"."},{"name":"treatment_patient_count","type":"UInt32","comment":"PATIENTS (not samples) with treatment clinical events — \"Treatment\". 0 = no treatment data."},{"name":"resource_sample_counts","type":"Map(String, UInt32)","comment":"Samples with each linked resource, keyed by display name: imaging and pathology such as 'Slide Microscopy', 'Computed Tomography', 'Magnetic Resonance', 'H&E Slide', 'MxIF Image'. Query with mapKeys(resource_sample_counts) or resource_sample_counts['Slide Microscopy'] > 0."},{"name":"mrna_expression_sample_count","type":"UInt32","comment":"Samples in any mRNA expression profile (RNA-Seq, microarray, TPM, z-scores; from sample_profile). Use this for \"does the study have expression data\" — rna_seq_sample_count and mrna_m … (136 more chars) ◀ result {"columns":[{"name":"internal_id","type":"Int64"},{"name":"genetic_profile_id","type":"Int64"},{"name":"sample_id","type":"Int64"},{"name":"site1_entrez_gene_id","type":"Nullable(Int64)"},{"name":"site1_ensembl_transcript_id","type":"Nullable(String)"},{"name":"site1_chromosome","type":"Nullable(String)"},{"name":"site1_region","type":"Nullable(String)"},{"name":"site1_region_number","type":"Nullable(Int64)"},{"name":"site1_contig","type":"Nullable(String)"},{"name":"site1_position","type":"Nullable(Int64)"},{"name":"site1_description","type":"Nullable(String)"},{"name":"site2_entrez_gene_id","type":"Nullable(Int64)"},{"name":"site2_ensembl_transcript_id","type":"Nullable(String)"},{"name":"site2_chromosome","type":"Nullable(String)"},{"name":"site2_region","type":"Nullable(String)"},{"name":"site2_region_number","type":"Nullable(Int64)"},{"name":"site2_contig","type":"Nullable(String)"},{"name":"site2_position","type":"Nullable(Int64)"},{"name":"site2_description","type":"Nullable(String)"},{"name":"site2_effect_on_frame","type":"Nullable(String)"},{"name":"ncbi_build","type":"Nullable(String)"},{"name":"dna_support","type":"Nullable(String)"},{"name":"rna_support","type":"Nullable(String)"},{"name":"normal_read_count","type":"Nullable(Int64)"},{"name":"tumor_read_count","type":"Nullable(Int64)"},{"name":"normal_variant_count","type":"Nullable(Int64)"},{"name":"tumor_variant_count","type":"Nullable(Int64)"},{"name":"normal_paired_end_read_count","type":"Nullable(Int64)"},{"name":"tumor_paired_end_read_count","type":"Nullable(Int64)"},{"name":"normal_split_read_count","type":"Nullable(Int64)"},{"name":"tumor_split_read_count","type":"Nullable(Int64)"},{"name":"annotation","type":"Nullable(String)"},{"name":"breakpoint_type","type":"Nullable(String)"},{"name":"connection_type","type":"Nullable(String)"},{"name":"event_info","type":"Nullable(String)"},{"name":"class","type":"Nullable(String)"},{"name":"length","type":"Nullable(Int64)"},{"name":"comments","type":"Nullable(String)"},{"name":"sv_status","type":"String"},{"name":"annotation_json","type":"Nullable(String)"}]} ▶ clickhouse_run_select_query { "query": "SELECT cancer_study_identifier, sample_count, mutation_sample_count, cna_sample_count, structural_variant_sample_count FROM cancer_study WHERE type_of_cancer_id IN ('prad','prostate') AND structural_variant_sample_count > 0 ORDER BY structural_variant_sample_count DESC" } ▶ clickhouse_list_table_columns { "table": "genomic_event_derived" } ◀ result {"rows":[{"cancer_study_identifier":"prostate_msk_2024","sample_count":2260,"mutation_sample_count":2260,"cna_sample_count":2260,"structural_variant_sample_count":1004},{"cancer_study_identifier":"prad_msk_stopsack_2021","sample_count":2069,"mutation_sample_count":2069,"cna_sample_count":2069,"structural_variant_sample_count":921},{"cancer_study_identifier":"prad_pik3r1_msk_2021","sample_count":1417,"mutation_sample_count":1417,"cna_sample_count":1417,"structural_variant_sample_count":697},{"cancer_study_identifier":"prad_cdk12_mskcc_2020","sample_count":1465,"mutation_sample_count":1465,"cna_sample_count":1465,"structural_variant_sample_count":626},{"cancer_study_identifier":"prad_tcga_pan_can_atlas_2018","sample_count":494,"mutation_sample_count":494,"cna_sample_count":489,"structural_variant_sample_count":431},{"cancer_study_identifier":"prad_p1000","sample_count":1013,"mutation_sample_count":1013,"cna_sample_count":1013,"structural_variant_sample_count":378},{"cancer_study_identifier":"prad_mskcc_2017","sample_count":504,"mutation_sample_count":504,"cna_sample_count":504,"structural_variant_sample_count":201},{"cancer_study_identifier":"prad_tcga_pub","sample_count":333,"mutation_sample_count":333,"cna_sample_count":333,"structural_variant_sample_count":198},{"cancer_study_identifier":"prad_mcspc_mskcc_2020","sample_count":424,"mutation_sample_count":424,"cna_sample_count":424,"structural_variant_sample_count":192},{"cancer_study_identifier":"prad_su2c_2019","sample_count":444,"mutation_sample_count":444,"cna_sample_count":444,"structural_variant_sample_count":178},{"cancer_study_identifier":"prad_su2c_2015","sample_count":150,"mutation_sample_count":150,"cna_sample_count":150,"structural_variant_sample_count":105},{"cancer_study_identifier":"prad_msk_2025","sample_count":120,"mutation_sample_count":120,"cna_sample_count":120,"structural_variant_sample_count":50},{"cancer_study_identifier":"prad_eururol_2017","sample_count":65,"mutation_sample_count":65,"cna_sample_count":65,"structural_variant_sample_count":49},{"cancer_study_identifier":"prad_mich","sample_count":121,"mutation_sample_count":61,"cna_sample_count":61,"structural_variant_sample_count":33},{"cancer_study_identifier":"prad_broad_2013","sample_count":82,"mutation_sample_count":57,"cna_sample_count":56,"structural_variant_sample_count":28},{"cancer_study_identifier":"prad_msk_mdanderson_2023","sample_count":88,"mutation_sample_count":88,"cna_sample_count":44,"structural_variant_sample_count":21},{"cancer_study_identifier":"prad_idhmut_msk_2025","sample_count":99,"mutation_sample_count":99,"cna_sample_count":99,"structural_variant_sample_count":18},{"cancer_study_identifier":"prad_organoids_msk_2022","sample_count":47,"mutation_sample_count":47,"cna_sample_count":47,"structural_variant_sample_count":10},{"cancer_study_identifier":"prad_msk_2019","sample_count":18,"mutation_sample_count":18,"cna_sample_count":18,"structural_variant_sample_count":4}]} ◀ 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": "SELECT hugo_gene_symbol, sv_event_info, count(DISTINCT sample_unique_id) as n FROM genomic_event_derived WHERE cancer_study_identifier = 'prad_tcga_pan_can_atlas_2018' AND variant_type = 'structural_variant' AND (hugo_gene_symbol = 'TMPRSS2' OR hugo_gene_symbol = 'ERG') GROUP BY hugo_gene_symbol, sv_event_info ORDER BY n DESC LIMIT 30" } ◀ result {"rows":[{"hugo_gene_symbol":"ERG","sv_event_info":"TMPRSS2-ERG fusion","n":189},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"TMPRSS2-ERG fusion","n":189},{"hugo_gene_symbol":"ERG","sv_event_info":"SLC45A3-ERG fusion","n":12},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"TMPRSS2-ETV4 fusion","n":8},{"hugo_gene_symbol":"ERG","sv_event_info":"ERG-TMPRSS2 fusion","n":5},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"ERG-TMPRSS2 fusion","n":5},{"hugo_gene_symbol":"ERG","sv_event_info":"NDRG1-ERG fusion","n":3},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"TMPRSS2-TMEM109 fusion","n":2},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"TMPRSS2-DGKG fusion","n":2},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"TMPRSS2-ETV5 fusion","n":2},{"hugo_gene_symbol":"ERG","sv_event_info":"ERG-SRPK2 fusion","n":1},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"AFF3-TMPRSS2 fusion","n":1},{"hugo_gene_symbol":"ERG","sv_event_info":"ERG-SKOR2 fusion","n":1},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"TMPRSS2-MORC3 fusion","n":1},{"hugo_gene_symbol":"ERG","sv_event_info":"GUCA2A-ERG fusion","n":1},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"TMPRSS2-DIAPH1 fusion","n":1},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"TMEFF2-TMPRSS2 fusion","n":1},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"HMGN2P46-TMPRSS2 fusion","n":1},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"TMPRSS2-KLF4 fusion","n":1},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"ATF7IP-TMPRSS2 fusion","n":1},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"TMPRSS2-CALB1 fusion","n":1},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"TMPRSS2-IRS2 fusion","n":1},{"hugo_gene_symbol":"ERG","sv_event_info":"ERG-ABCC4 fusion","n":1},{"hugo_gene_symbol":"ERG","sv_event_info":"ERG-KCNJ6 fusion","n":1},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"PDE9A-TMPRSS2 fusion","n":1},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"HDLBP-TMPRSS2 fusion","n":1},{"hugo_gene_symbol":"ERG","sv_event_info":"ERG-CDHR2 fusion","n":1},{"hugo_gene_symbol":"ERG","sv_event_info":"ERG-SON fusion","n":1},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"SCP2-TMPRSS2 fusion","n":1},{"hugo_gene_symbol":"TMPRSS2","sv_event_info":"TMPRSS2-EML4 fusion","n":1}]} ▶ clickhouse_run_select_query { "query": "SELECT DISTINCT g1.hugo_gene_symbol as site1_gene, g2.hugo_gene_symbol as site2_gene, count() as n FROM structural_variant sv JOIN gene g1 ON sv.site1_entrez_gene_id = g1.entrez_gene_id JOIN gene g2 ON sv.site2_entrez_gene_id = g2.entrez_gene_id JOIN genetic_profile gp ON sv.genetic_profile_id = gp.genetic_profile_id JOIN cancer_study cs ON gp.cancer_study_id = cs.cancer_study_id WHERE cs.cancer_study_identifier = 'prad_tcga_pan_can_atlas_2018' AND ((g1.hugo_gene_symbol='TMPRSS2' AND g2.hugo_gene_symbol='ERG') OR (g1.hugo_gene_symbol='ERG' AND g2.hugo_gene_symbol='TMPRSS2')) GROUP BY site1_gene, site2_gene" } ◀ result {"rows":[{"site1_gene":"TMPRSS2","site2_gene":"ERG","n":189},{"site1_gene":"ERG","site2_gene":"TMPRSS2","n":5}]} ▶ clickhouse_run_select_query { "query": " WITH fusion_patients AS ( SELECT DISTINCT patient_unique_id FROM genomic_event_derived WHERE cancer_study_identifier = 'prad_tcga_pan_can_atlas_2018' AND variant_type = 'structural_variant' AND sv_event_info = 'TMPRSS2-ERG fusion' AND hugo_gene_symbol = 'TMPRSS2' ), sv_profiled_patients AS ( SELECT DISTINCT patient_unique_id FROM genomic_event_derived WHERE cancer_study_identifier = 'prad_tcga_pan_can_atlas_2018' ) SELECT multiIf(patient_unique_id IN (SELECT patient_unique_id FROM fusion_patients), 'TMPRSS2-ERG fusion', 'No TMPRSS2-ERG fusion') AS grp, count(DISTINCT patient_unique_id) AS n_patients FROM sv_profiled_patients GROUP BY grp " } ▶ clickhouse_list_table_columns { "table": "clinical_data_derived" } ◀ result {"rows":[{"grp":"No TMPRSS2-ERG fusion","n_patients":305},{"grp":"TMPRSS2-ERG fusion","n_patients":189}]} ◀ result {"columns":[{"name":"internal_id","type":"Int32"},{"name":"sample_unique_id","type":"String","comment":"Globally unique sample ID: cancer_study_identifier + \"_\" + sample.stable_id. Empty for patient-level attributes. Use this for sample filtering and joins."},{"name":"patient_unique_id","type":"String","comment":"Globally unique patient ID: cancer_study_identifier + \"_\" + patient.stable_id. Present for both sample and patient-level attributes."},{"name":"attribute_name","type":"LowCardinality(String)","comment":"Clinical attribute name (e.g., SAMPLE_TYPE, CANCER_TYPE, AGE, OS_MONTHS). Use with attribute_value for filtering. AGE may be floored or capped for de-identification (e.g. all children recorded as 18, or everyone 89+ recorded as 89 or 90): before age statistics check for a pile-up at the min/max, and if present compute age from DAYS_TO_BIRTH (-days / 365.25)."},{"name":"attribute_value","type":"String","comment":"Value of the clinical attribute (String). For SAMPLE_TYPE: Primary, Metastasis, Local Recurrence, Unknown. Missing values are empty strings, so use toFloat64OrNull(attribute_value) for numeric comparisons — CAST fails on them."},{"name":"cancer_study_identifier","type":"LowCardinality(String)"},{"name":"type","type":"LowCardinality(String)","comment":"Data level: \"sample\" for sample-level attributes (e.g., SAMPLE_TYPE), \"patient\" for patient-level attributes (e.g., AGE, OS_MONTHS)."}]} ▶ clickhouse_list_table_columns { "table": "sample_to_gene_panel_derived" } ◀ result {"columns":[{"name":"sample_unique_id","type":"String"},{"name":"alteration_type","type":"LowCardinality(String)"},{"name":"gene_panel_id","type":"LowCardinality(String)"},{"name":"cancer_study_identifier","type":"LowCardinality(String)"},{"name":"genetic_profile_id","type":"LowCardinality(String)"}]} ▶ clickhouse_run_select_query { "query": "SELECT alteration_type, count(DISTINCT sample_unique_id) FROM sample_to_gene_panel_derived WHERE cancer_study_identifier = 'prad_tcga_pan_can_atlas_2018' GROUP BY alteration_type" } ◀ result {"rows":[{"alteration_type":"PROTEIN_LEVEL","countDistinct(sample_unique_id)":350},{"alteration_type":"GENERIC_ASSAY","countDistinct(sample_unique_id)":494},{"alteration_type":"COPY_NUMBER_ALTERATION","countDistinct(sample_unique_id)":489},{"alteration_type":"MUTATION_EXTENDED","countDistinct(sample_unique_id)":494},{"alteration_type":"MRNA_EXPRESSION","countDistinct(sample_unique_id)":493},{"alteration_type":"STRUCTURAL_VARIANT","countDistinct(sample_unique_id)":494}]} ▶ clickhouse_list_table_columns { "table": "sample_profile" } ▶ clickhouse_list_table_columns { "table": "genetic_profile" } ◀ result {"columns":[{"name":"sample_id","type":"Int64"},{"name":"genetic_profile_id","type":"Int64"},{"name":"panel_id","type":"Nullable(Int64)"}]} ◀ result {"columns":[{"name":"genetic_profile_id","type":"Int64"},{"name":"stable_id","type":"String"},{"name":"cancer_study_id","type":"Int64"},{"name":"genetic_alteration_type","type":"String"},{"name":"generic_assay_type","type":"Nullable(String)"},{"name":"datatype","type":"String"},{"name":"name","type":"String"},{"name":"description","type":"Nullable(String)"},{"name":"show_profile_in_analysis_tab","type":"Int32"},{"name":"pivot_threshold","type":"Nullable(Float64)"},{"name":"sort_order","type":"Nullable(String)"},{"name":"patient_level","type":"Nullable(Int32)"}]} ▶ clickhouse_run_select_query { "query": "SELECT concat(cs.cancer_study_identifier, '_', s.stable_id) as sample_unique_id FROM sample_profile sp JOIN genetic_profile gpf ON sp.genetic_profile_id = gpf.genetic_profile_id JOIN cancer_study cs ON gpf.cancer_study_id = cs.cancer_study_id JOIN sample s ON sp.sample_id = s.internal_id WHERE cs.cancer_study_identifier = 'prad_tcga_pan_can_atlas_2018' AND gpf.genetic_alteration_type = 'STRUCTURAL_VARIANT' LIMIT 5" } ◀ result {"rows":[{"sample_unique_id":"prad_tcga_pan_can_atlas_2018_TCGA-2A-A8VL-01"},{"sample_unique_id":"prad_tcga_pan_can_atlas_2018_TCGA-2A-A8VO-01"},{"sample_unique_id":"prad_tcga_pan_can_atlas_2018_TCGA-2A-A8VT-01"},{"sample_unique_id":"prad_tcga_pan_can_atlas_2018_TCGA-2A-A8VV-01"},{"sample_unique_id":"prad_tcga_pan_can_atlas_2018_TCGA-2A-A8VX-01"}]} ▶ clickhouse_run_select_query { "query": "SELECT count(*) FROM ( SELECT concat(cs.cancer_study_identifier, '_', s.stable_id) as sample_unique_id FROM sample_profile sp JOIN genetic_profile gpf ON sp.genetic_profile_id = gpf.genetic_profile_id JOIN cancer_study cs ON gpf.cancer_study_id = cs.cancer_study_id JOIN sample s ON sp.sample_id = s.internal_id WHERE cs.cancer_study_identifier = 'prad_tcga_pan_can_atlas_2018' AND gpf.genetic_alteration_type = 'STRUCTURAL_VARIANT' )" } ◀ result {"rows":[{"count()":494}]} ▶ clickhouse_run_select_query { "query": " WITH sv_profiled AS ( SELECT DISTINCT concat(cs.cancer_study_identifier, '_', p.stable_id) as patient_unique_id FROM sample_profile sp JOIN genetic_profile gpf ON sp.genetic_profile_id = gpf.genetic_profile_id JOIN cancer_study cs ON gpf.cancer_study_id = cs.cancer_study_id JOIN sample s ON sp.sample_id = s.internal_id JOIN patient p ON s.patient_id = p.internal_id WHERE cs.cancer_study_identifier = 'prad_tcga_pan_can_atlas_2018' AND gpf.genetic_alteration_type = 'STRUCTURAL_VARIANT' ), fusion_patients AS ( SELECT DISTINCT patient_unique_id FROM genomic_event_derived WHERE cancer_study_identifier = 'prad_tcga_pan_can_atlas_2018' AND variant_type = 'structural_variant' AND sv_event_info = 'TMPRSS2-ERG fusion' AND hugo_gene_symbol = 'TMPRSS2' ) SELECT multiIf(sp.patient_unique_id IN (SELECT patient_unique_id FROM fusion_patients), 'TMPRSS2-ERG fusion', 'No TMPRSS2-ERG fusion') AS grp, count(DISTINCT sp.patient_unique_id) AS n_patients, countIf(cd.attribute_name = 'OS_STATUS' AND cd.attribute_value = '1:DECEASED') AS n_events, countIf(cd.attribute_name = 'OS_STATUS' AND cd.attribute_value = '0:LIVING') AS n_censored, min(CASE WHEN cd.attribute_name = 'OS_MONTHS' THEN toFloat64OrNull(cd.attribute_value) END) AS min_os_months, max(CASE WHEN cd.attribute_name = 'OS_MONTHS' THEN toFloat64OrNull(cd.attribute_value) END) AS max_os_months FROM sv_profiled sp LEFT JOIN clinical_data_derived cd ON sp.patient_unique_id = cd.patient_unique_id AND cd.cancer_study_identifier = 'prad_tcga_pan_can_atlas_2018' AND cd.attribute_name IN ('OS_STATUS','OS_MONTHS') GROUP BY grp " } ◀ result {"rows":[{"grp":"TMPRSS2-ERG fusion","n_patients":189,"n_events":4,"n_censored":185,"min_os_months":1.019166913,"max_os_months":165.1707927},{"grp":"No TMPRSS2-ERG fusion","n_patients":305,"n_events":6,"n_censored":299,"min_os_months":0.756156097,"max_os_months":122.1685242}]} ▶ resolve_and_route { "studyIds": [ "prad_tcga_pan_can_atlas_2018" ] } ◀ result {"success":true,"message":"Found 1 study. Use the metadata to call the appropriate navigation tool(s).","data":{"totalCount":1,"studiesWithMetadata":[{"studyId":"prad_tcga_pan_can_atlas_2018","name":"Prostate Adenocarcinoma (TCGA, PanCancer Atlas)","sampleCount":494,"studyViewUrl":"https://www.cbioportal.org/study?id=prad_tcga_pan_can_atlas_2018","metadata":{"clinicalAttributeIds":["AGE","AJCC_PATHOLOGIC_TUMOR_STAGE","AJCC_STAGING_EDITION","ANEUPLOIDY_SCORE","BUFFA_HYPOXIA_SCORE","CANCER_TYPE","CANCER_TYPE_ACRONYM","CANCER_TYPE_DETAILED","DAYS_LAST_FOLLOWUP","DAYS_TO_BIRTH","DAYS_TO_INITIAL_PATHOLOGIC_DIAGNOSIS","DFS_MONTHS","DFS_STATUS","DSS_MONTHS","DSS_STATUS","ETHNICITY","FORM_COMPLETION_DATE","FRACTION_GENOME_ALTERED","GENETIC_ANCESTRY_LABEL","GRADE","HISTORY_NEOADJUVANT_TRTYN","ICD_10","ICD_O_3_HISTOLOGY","ICD_O_3_SITE","INFORMED_CONSENT_VERIFIED","IN_PANCANPATHWAYS_FREEZE","MSI_SCORE_MANTIS","MSI_SENSOR_SCORE","MUTATION_COUNT","NEW_TUMOR_EVENT_AFTER_INITIAL_TREATMENT","ONCOTREE_CODE","OS_MONTHS","OS_STATUS","OTHER_PATIENT_ID","PATH_M_STAGE","PATH_N_STAGE","PATH_T_STAGE","PERSON_NEOPLASM_CANCER_STATUS","PFS_MONTHS","PFS_STATUS","PRIMARY_LYMPH_NODE_PRESENTATION_ASSESSMENT","PRIOR_DX","RACE","RADIATION_THERAPY","RAGNUM_HYPOXIA_SCORE","SAMPLE_COUNT","SAMPLE_TYPE","SEX","SOMATIC_STATUS","SUBTYPE","TBL_SCORE","TISSUE_PROSPECTIVE_COLLECTION_INDICATOR","TISSUE_RETROSPECTIVE_COLLECTION_INDICATOR","TISSUE_SOURCE_SITE","TISSUE_SOURCE_SITE_CODE","TMB_NONSYNONYMOUS","TUMOR_TISSUE_SITE","TUMOR_TYPE","WEIGHT","WINTER_HYPOXIA_SCORE"],"molecularProfileIds":["prad_tcga_pan_can_atlas_2018_gistic","prad_tcga_pan_can_atlas_2018_log2CNA","prad_tcga_pan_can_atlas_2018_mutations","prad_tcga_pan_can_atlas_2018_rna_seq_v2_mrna","prad_tcga_pan_can_atlas_2018_rna_seq_v2_mrna_median_Zscores","prad_tcga_pan_can_atlas_2018_rna_seq_v2_mrna_median_all_sample_Zscores","prad_tcga_pan_can_atlas_2018_rna_seq_v2_mrna_median_all_sample_ref_normal_Zscores","prad_tcga_pan_can_atlas_2018_rppa","prad_tcga_pan_can_atlas_2018_rppa_Zscores","prad_tcga_pan_can_atlas_2018_structural_variants"],"genericAssayProfiles":["prad_tcga_pan_can_atlas_2018_armlevel_cna","prad_tcga_pan_can_atlas_2018_genetic_ancestry","prad_tcga_pan_can_atlas_2018_methylation_hm27_hm450_merge","prad_tcga_pan_can_atlas_2018_methylation_hm450"],"heatmapProfileIds":["prad_tcga_pan_can_atlas_2018_rna_seq_v2_mrna_median_Zscores","prad_tcga_pan_can_atlas_2018_rna_seq_v2_mrna_median_all_sample_Zscores","prad_tcga_pan_can_atlas_2018_rna_seq_v2_mrna_median_all_sample_ref_normal_Zscores","prad_tcga_pan_can_atlas_2018_rppa_Zscores"],"availableComparisonTabs":["overlap","clinical","survival","alterations","mutations","mrna","protein","generic_assay_armlevel_cna","generic_assay_genetic_ancestry","generic_assay_methylation"]}}]}} ▶ get_studyviewfilter_options { "studyId": "prad_tcga_pan_can_atlas_2018", "geneSpecificQueries": [ { "hugoGeneSymbol": "TMPRSS2", "profileType": "structural_variants" } ] } ◀ result {"success":true,"message":"Successfully retrieved StudyView filter options","data":{"studyId":"prad_tcga_pan_can_atlas_2018","geneSpecificCounts":[{"hugoGeneSymbol":"TMPRSS2","profileType":"structural_variants","bins":[]}]}} ▶ navigate_to_results_view { "studyIds": [ "prad_tcga_pan_can_atlas_2018" ], "genes": [ "TMPRSS2::ERG", "TMPRSS2", "ERG" ], "tab": "comparison/survival" } ◀ result {"success":true,"message":"Navigating to https://www.cbioportal.org/results/comparison/survival?cancer_study_list=prad_tcga_pan_can_atlas_2018&gene_list=TMPRSS2%3A%3AERG%0ATMPRSS2%0AERG&case_set_id=prad_tcga_pan_can_atlas_2018_all","url":"https://www.cbioportal.org/results/comparison/survival?cancer_study_list=prad_tcga_pan_can_atlas_2018&gene_list=TMPRSS2%3A%3AERG%0ATMPRSS2%0AERG&case_set_id=prad_tcga_pan_can_atlas_2018_all","data":{"studyIds":["prad_tcga_pan_can_atlas_2018"],"studies":[{"studyId":"prad_tcga_pan_can_atlas_2018","name":"Prostate Adenocarcinoma (TCGA, PanCancer Atlas)","sampleCount":494}],"genes":["TMPRSS2","TMPRSS2","ERG"],"caseSetId":"prad_tcga_pan_can_atlas_2018_all","pageDescription":"Kaplan-Meier survival analysis comparing groups defined by query genes."}} ═ answer (success) ## Overall Survival: TMPRSS2→ERG Fusion vs. No Fusion in Prostate Adenocarcinoma **Cohort:** [Prostate Adenocarcinoma (TCGA, PanCancer Atlas)](https://www.cbioportal.org/study/summary?id=prad_tcga_pan_can_atlas_2018) — 494 samples, 494 patients profiled for structural variants. I restricted the fusion group specifically to the orientation you asked about — **TMPRSS2 as the 5′/upstream donor gene fused to ERG** (confirmed from the breakpoint data: 189 patients have TMPRSS2 at site 1 and ERG at site 2). This excludes 5 patients with the reverse-orientation "ERG–TMPRSS2" call, since that's a different breakpoint configuration than what you described. | Group | Patients | Deaths (events) | Censored (alive) | Follow-up range (months) | |---|---|---|---|---| | TMPRSS2 → ERG fusion | 189 | 4 | 185 | 1.0 – 165.2 | | No TMPRSS2 → ERG fusion | 305 | 6 | 299 | 0.8 – 122.2 | **I can't report a median overall survival or a hazard ratio here** — that requires Kaplan-Meier estimation with censoring, which this database query cannot perform, and with only 4 and 6 deaths respectively across the two groups, a Kaplan-Meier median in either arm is almost certainly **not reached** (fewer than half of patients in either group experienced the event). This is a general feature of the TCGA prostate cohort: it is a primarily localized-disease, short-follow-up cohort with very few deaths overall, so this dataset has limited power to detect an overall-survival difference regardless of fusion status. For a proper comparison (Kaplan-Meier curves + log-rank test), use cBioPortal's built-in survival comparison, pre-configured to split patients by TMPRSS2::ERG fusion status: [**View Kaplan-Meier survival comparison: TMPRSS2::ERG fusion vs. wild-type**](https://www.cbioportal.org/results/comparison/survival?cancer_study_list=prad_tcga_pan_can_atlas_2018&gene_list=TMPRSS2%3A%3AERG%0ATMPRSS2%0AERG&case_set_id=prad_tcga_pan_can_atlas_2018_all) On that page, select the "Altered vs. Unaltered" groups (with the TMPRSS2::ERG structural-variant query) in the Survival tab to see the log-rank p-value directly. **Caveat on statistical power:** Given the very low event counts (10 deaths total across 494 patients), any log-rank result from this specific study should be interpreted cautiously — it may be underpowered to detect a real OS difference even if one exists. If you're interested in a cohort with more mature outcomes (e.g., metastatic castration-resistant disease with more events), I'd recommend the [SU2C/PCF metastatic prostate cohort](https://www.cbioportal.org/study/summary?id=prad_su2c_2019) instead — let me know if you'd like that comparison run there as well.