RNAseq|组学分型-ConsensusClusterPlus(一致性聚类), NMF(非负矩阵分解)

简介: RNAseq|组学分型-ConsensusClusterPlus(一致性聚类), NMF(非负矩阵分解)

肿瘤分型分析是生信文章中的常客,大致是通过将基因的表达量进行聚类或者非负矩阵分解,发现新的亚型,然后对不同亚型的临床特征,免疫特征等进行比较分析,文章末尾简单的列了一些应用。

本文简答的大概介绍一下文献常用的一致性聚类(ConsensusClusterPlus )和 非负矩阵分解(NMF )方法 。

一 载入R包,数据

使用之前得到的RNAseq.SKCM.RData数据集。


library(tidyverse)
library(openxlsx)
#BiocManager::install("ConsensusClusterPlus")
library(ConsensusClusterPlus)
#install.packages("NMF")   # 安装包的命令
library(NMF) # 加NMF包
#使用之前得到的数据
load("RNAseq.SKCM.RData")
#此处展示,选择较小的数据集
table(substr(names(expr),14,16))
expr2 <- expr %>% 
  select(! ends_with("11A"))
expr2 <- as.matrix(expr2)[1:5000,1:100]
expr2[1:4,1:4]
   TCGA-EE-A2GJ-06A TCGA-EE-A2GI-06A TCGA-WE-A8ZM-06A TCGA-DA-A1IA-06A
MT-CO2         13.45460         12.86170         13.42982         12.99413
MT-CO3         12.67183         11.81769         13.10443         12.62491
MT-ND4         13.21440         12.37920         13.10761         12.44728
MT-CO1         13.14420         12.23376         12.93742         12.69075

注意输入数据需要转为矩阵形式,这里的基因可以是某个家族的基因某个通路的基因,某个预后模型中的基因,hub基因等等,这不就有机的结合起来了。

二 一致性聚类(ConsensusClusterPlus)


一致性聚类是一种无监督聚类方法,可以利用ConsensusClusterPlus R包完成分析,表达量矩阵准备好之后,代码很简单,如下


con <- ConsensusClusterPlus(expr, #矩阵形式
                            maxK=10, #最大聚类簇数量
                            reps=100, #抽取的子样本数量
                            pItem=0.8,#抽样样本的比例 
                            pFeature=1,
                            title="resultstrain", #输出文件夹名字
                            clusterAlg="km", #选择聚类算法
                            distance="euclidean", #指定聚类时使用的距离或相关性类型
                            seed=1234, #中子数
                            plot="png", #输出格式 (pdf可能会比较难打开)
                            writeTable=TRUE)

本示例使用的聚类算法是K-means聚类算法,距离是基于欧氏距离(euclidean),输出格式为png,结果在resultstrain文件夹中。


代码简单但是难点在于选择最优K值,以下仅供参考。


1,Delta area图


展示每个K和K-1相比,CDF 曲线下面积的相对变化,值越大表明该k值下的聚类效果相比k-1的聚类效果的优度提升更明显。可以用来帮助决定最佳的K值。


2,一致性累积分布函数


consensus cumulative distribution function,consensus CDF ,图中展示了不同聚类簇数量k下的CDF分布,CDF图可以用来帮助决定最佳的K值


3,一致性矩阵热图


矩阵的数值代表同属一个cluster的可能性,取值范围从0到1, 颜色从白色到深蓝色,尽量不选择蓝白参杂的K值


这里可能会倾向选择2 或者 3。(主观,不供参考)

4,每个患者的分型结果在resultstrain (自定义的名字)文件夹中的


resultstrain.k=N.consensusClass.csv文件,N为选择的K数字,注意该文件无表头。

三 非负矩阵分解(NMF)


除了Consensus Clustering外,non-negative matrix factorization (NMF) consensus cluster也是很多文章经常用来分子分型的方式,使用NMF包的nmf函数即可。1,运行NMF

输入表达量矩阵,在初始不清楚rank选择为多少,可以先设置一个范围


ranks <- 2:10
seed <- 1234
result = nmf(expr2,
          ranks,
          method="brunet", 
          nrun=10,
          seed =1234)
plot(result)


如何确定分成几个亚组最合适呢?常用的一个标准就是cophenetic 曲线下降范围最大的前点
由左一图发现4-5下降最大,选择K=4 。确定后,再次进行NMF分析

result2 <- nmf(expr2,
               rank = 4,
               seed = 1234)
index <- extractFeatures(result2,"max") # 提取关键基因
group <- predict(result2) # 提出亚型
table(group)



group
 1  2  3  4 
16 36 28 20


最重要的是保存每个患者的NMF的group结果

NMF_result <- as.data.frame(group)
head(NMF_result,2)
#                group
#TCGA-EE-A2GJ-06A     3
#TCGA-EE-A2GI-06A     1
write.csv(NMF_result,"NMF_result.csv")

2, 可视化
针对NMF结果,一种评估基于指定rank评估聚类稳定性的方法是考虑由多个独立NMF运行结果计算得到的连接矩阵,可以使用consensusmap函数进行绘制。

consensusmap(result2,
             labRow  = NA,
             labCol = NA,
             annCol = data.frame("cluster"=group[colnames(expr2)]))


可以自定义颜色

jco <- c("#2874C5","#EABF00","#C6524A","#868686")
consensusmap(result2,
             labRow  = NA,
             labCol = NA,
             annCol = data.frame("cluster"=group[colnames(expr2)]),
             annColors = list(cluster=c("1"=jco[1],"2"=jco[2],"3"=jco[3],"4"=jco[4])))

这样就完成了2种常见分子分型方法方法,后续就可以做各种文献中的结合分析。

1)输入数据的基因可以是某个家族的基因某个通路的基因,某个预后模型中的基因,hub基因

2)得到分子分型后,可以对不同亚型的临床特征,病理分期,生存状态,免疫特征(RNAseq|免疫浸润也杀疯了,cibersoert?xCELL?ESTIMATE?你常用哪一个)等进行比较分析

3)可以进行差异分析,得到差异基因后可以批量进行单因素生存分析R|生存分析-结果整理

4)分型可以做生存分析以及KM可视化R|生存分析 - KM曲线 ,必须拥有姓名和颜值


相关文章
|
7天前
|
云安全 人工智能 运维
阿里云联动百位企业安全专家,共识Agent防御最佳实践
当Agent成为新员工,你的安全边界在哪里?
1922 6
阿里云联动百位企业安全专家,共识Agent防御最佳实践
|
5天前
|
存储 人工智能 关系型数据库
阿里云AI产品与云产品最新组合套餐:Token Plan、AI coding及云服务器和建站等组合优惠价
阿里云推出全新“算力+模型+应用”一站式云与AI组合套餐活动,覆盖从个人开发者到中大型企业的全场景需求。核心亮点为分三档定价的Token Plan订阅服务,支持Qwen3.8-Max-Preview大模型调用,错峰时段最低可享0.2折优惠。活动同步推出AI Coding、智能体部署、云电脑托管、0代码建站等十余类场景化组合,搭配99元/年的普惠云服务器、88元/年的入门数据库等经典特惠产品,还为企业提供1V1定制化AI转型方案,大幅降低了不同用户群体拥抱AI的技术门槛与采购成本。
652 111
|
15天前
|
人工智能 JSON 安全
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
阿里云AI安全产品联动防御Fastjson攻击
2556 13
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
|
7天前
|
人工智能 弹性计算 数据库
阿里云优惠券种类解析:主要券种区别和适用群体及领取和使用指南
2026年阿里云构建了覆盖全用户的七类优惠券,本文逐一拆解了每类优惠券的核心规则、适用人群与使用技巧:大促限定的阶梯满减券分个人、企业双通道,最高可减800元;学生专属300元无门槛券支持全品类通用;按量付费用户可参与消费达标返券形成循环优惠;新用户有低门槛专享满减券尝鲜;老用户可领取系统自动发放的随机福利券;中大型企业迁云可申请最高100万元的专项补贴;云产品通用券还能在活动价基础上实现折上折。不同身份、不同采购场景的用户均可通过精准匹配对应优惠券,最大化享受优惠力度。
462 110
阿里云优惠券种类解析:主要券种区别和适用群体及领取和使用指南
|
13天前
|
人工智能 前端开发 Linux
Codex 桌面版安装 + CC Switch 接入第三方 API 完整教程(2026 最新)
2026最新教程:手把手教你安装Codex桌面版,通过CC Switch v3.17.0一键接入Fenno等国产API(兼容OpenAI Responses格式),跳过账号登录,完整启用代码审查、多步任务与上下文感知功能。零基础友好,全程图文实操。(239字)
1624 2
|
15天前
|
人工智能 自然语言处理 数据挖掘
Qwen3.8-Max-Preview深度全解析:2.4万亿参数旗舰MoE模型+Token Plan限时优惠完整落地指南
2026年7月,全新旗舰级混合专家大模型Qwen3.8-Max-Preview正式开放抢先体验,作为通义千问Qwen3系列规格最高、综合推理能力顶尖的新一代模型,该模型总参数量达到2.4万亿(2.4T),是当前线上可调用的原生多模态旗舰模型,综合推理水准对标海外顶级Fable 5模型,在复杂工程开发、长文档深度分析、多步骤智能体自治、跨境多语言创作、海量数据挖掘五大高难度业务场景实现跨越式性能提升。
1428 2
|
17天前
|
人工智能
Qwen3.8抢先体验!正式版即将发布并开源!
千问Qwen3.8即将开源,参数达2.4T,进化速度以“天”计,实力媲美Fable 5。预览版Qwen3.8-Max已上线阿里Token Plan等平台,限时优惠:日间Credits低至1折,夜间更优,个人/团队版月付仅35元起!
1500 55
|
2天前
Qoder 一周年 × Qwen3.8-Max 正式上线,多重好礼限时领
8月3日,Qwen3.8-Max 正式上线Qoder,迎来Qoder一周年。新老用户可领800次免费调用,下单再赠2000次;夜间(22:00–08:00)调用5折;邀请好友双方得积分与调用额度。
250 0