

数据集中8个样本加起来只有6个突变基因,MSK筛选突变基因的底层逻辑是什么
关注引自免费微信小程序:皆我百晓生
在分析cBioPortal的数据时,你可能会发现某些数据集中的突变基因数量较少,这可能是因为样本数较少、选择的癌症类型或分子特征特定于小众群体,或者是预处理步骤(例如过滤低频率变异)的结果。
MSK( Memorial Sloan Kettering Cancer Center)的突变基因筛选逻辑通常基于以下几点:
频率阈值:只考虑在一定比例的样本中发生的突变,比如最常见的可能是5%或10%以上。低于这个阈值的突变会被忽略,因为它们可能是随机事件或实验误差导致的。
统计显著性:通过计算变异与正常对照组之间的差异,使用 Fisher's exact test 或 Chi-squared test 等方法判断突变是否具有统计学意义。
生物学相关性:只关注那些已知与癌症发展相关的基因,这些基因可能在癌症驱动通路中发挥作用,或者与临床标志物有关。
质量控制:排除低质量的测序数据,确保变异是真实的而不是技术原因产生的。
为了模拟一个简单的突变基因筛选过程,我们可以编写一段 R 代码,它将根据给定的频率阈值过滤突变基因。这里假设我们有一个包含突变信息的 DataFrame,名为 mutations_df,其结构如下:
mutations_df <- data.frame(
Gene = c("PBRM1", "YWHAE", "XPO1", "NUTM2B", "FLT3", "CEBPA", "BRCA2", "SUZ12",
"ESR1", "NELL1", "MEN1", "MDC1", "KIFC1", "JAZF1"),
Num_Mutations = c(1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
Freq = round((Num_Mutations / nrow(mutations_df)) * 100, 2)
)
mutations_df
接下来,我们可以根据一个设定的频率阈值(例如,10%)来筛选突变基因:
threshold <- 10
filtered_mutations <- mutations_df[mutations_df$Freq >= threshold, ]
filtered_mutations
这段代码会返回一个仅包含频率高于或等于10%的基因的子DataFrame。你可以根据实际需求调整这个阈值。
如果你想要更深入地理解cBioPortal的筛选逻辑,你需要查看他们的文档或者联系项目团队,因为他们可能有自己独特的算法和参数设置。此外,cBioPortal的数据通常是经过严格预处理的,包含了多个研究的汇总结果,因此在不同的研究之间可能存在差异。
如果你需要画出图1和图2的可视化图表,可以使用 ggplot2 包。由于这里没有具体的数据格式,我可以提供一个通用的示例代码,你可以根据实际情况进行修改:
library(ggplot2)
# 假设你已经有了两个数据框,分别为 mut_genes 和 cnv_genes
mut_genes <- # 结构类似上面的 mutations_df
cnv_genes <- # 结构类似 CN Segments 部分的数据
# 绘制突变基因频率直方图
mut_hist <- ggplot(mut_genes, aes(x = Freq)) +
geom_histogram(binwidth = 5) +
labs(title = "Mutation Frequency Distribution", x = "Frequency (%)", y = "Count")
# 绘制CNA基因频率直方图
cnv_hist <- ggplot(cnv_genes, aes(x = Freq)) +
geom_histogram(binwidth = 5) +
labs(title = "Copy Number Alteration Frequency Distribution", x = "Frequency (%)", y = "Count")
# 将两个图表并排放置
grid.arrange(mut_hist, cnv_hist, ncol = 2)
这个代码将会创建两个直方图,分别展示突变基因和CNA基因的频率分布。你需要根据实际数据对代码进行调整。如果你需要其他类型的图表,也请提供更多的细节描述。