脚本更新---NMF识别单细胞数据中的基因模块

作者,Evil Genius

今日更新脚本,NMF在单细胞数据中的分析

NMF在单细胞分析中的主要运用

降维和特征提取:NMF可以用于从高维的基因表达矩阵中提取低维特征,帮助我们发现细胞亚群、基因模块等隐藏的结构。

细胞亚群的识别:通过对单细胞数据进行NMF分解,可以识别细胞的潜在亚群,并将基因表达模式与这些亚群关联起来。

基因模块的发现:NMF可以用于识别在单细胞数据中表达模式相似的基因,这些基因可能在生物学上有共同的功能或调控机制。

数据的噪声过滤和降维:NMF通过分解矩阵的方式提取低秩近似,可以有效地去除数据中的噪声,保留数据的主要结构。

NMF在单细胞分析中的具体应用

1. 单细胞数据的降维与特征提取

NMF的一个主要用途是将高维的单细胞RNA-seq数据分解为低秩近似。通过将基因表达矩阵V分解为W(基矩阵)和H(系数矩阵),可以识别出隐藏在数据中的主要模式:

  • W代表基因的特征模式。
  • H代表细胞的特征表示。

这种方式不仅能够降维,还能帮助我们识别哪些基因在特定细胞类型或状态下表现突出。

library(NMF)

# 假设 scRNA-seq 数据是一个基因(行)- 细胞(列)的矩阵
set.seed(123)
V <- matrix(abs(rnorm(1000)), nrow = 100, ncol = 10)  # 假设100个基因,10个细胞

# 使用NMF对数据进行分解
nmf_results <- nmf(V, rank = 3, nrun = 10)

# 提取W和H矩阵
W <- basis(nmf_results)  # 基因模式
H <- coef(nmf_results)   # 细胞模式

# 可视化W和H
heatmap(W, main = "Gene Feature Matrix (W)")
heatmap(H, main = "Cell Feature Matrix (H)")

通过对W和H的解读,研究人员可以理解哪些基因在不同细胞亚群中具有高表达,并且可以进一步分析这些基因是否与特定的生物学功能或路径有关。

2. 细胞亚群的识别

NMF可以用于识别细胞群体。在单细胞数据中,细胞通常具有不同的状态或类型,而这些类型或状态的差异可以通过NMF分解的H矩阵(细胞模式)来揭示。

例如,通过将H矩阵(细胞特征矩阵)进行聚类,可以发现不同的细胞亚群。

# 假设H是细胞的特征表示
# 可以使用层次聚类或K-means聚类来识别细胞亚群
library(pheatmap)
library(cluster)

# 聚类细胞模式H
cell_clusters <- kmeans(t(H), centers = 3)  # 假设我们希望分成3个细胞亚群

# 绘制热图
pheatmap(t(H), cluster_rows = TRUE, cluster_cols = TRUE, annotation_col = as.data.frame(cell_clusters$cluster))

这样,H矩阵的列可以对应不同的细胞群体,而基于这些群体的表达模式,可以进一步分析细胞类型的特征。

3. 基因模块的发现

NMF也可以用来发现基因模块,即在不同细胞群体或条件下共同表达的基因集合。通过查看W矩阵的行,可以识别在多个细胞群体中共同表达的基因。

# 假设W是基因的特征矩阵
# 你可以识别哪些基因在不同的细胞群体中表现出高表达
# 提取具有高表达模式的基因
top_genes <- apply(W, 1, function(x) mean(x) > 0.5)
genes_of_interest <- rownames(W)[top_genes]

# 打印出这些基因
print(genes_of_interest)

这些基因可能在不同的细胞类型或状态下有相似的表达模式,可能代表具有相似生物学功能的基因。

4. 通过NMF去除噪声并提高数据质量

NMF通过对原始数据的低秩近似分解,可以有效地去除噪声并保留数据的主要特征。在处理单细胞RNA-seq数据时,噪声和技术变异可能会影响分析结果,而NMF能够提供更稳定和一致的特征。

例如,通过NMF分解,细胞和基因的模式会被提取并重建,从而减少不相关的变异。

# 重构数据
reconstructed_V <- W %*% H

# 可视化重构后的数据与原始数据的比较
heatmap(V, main = "Original Data")
heatmap(reconstructed_V, main = "Reconstructed Data")

这种重建能够帮助去除一些与生物学无关的技术噪声,使得下游分析(如聚类、差异表达分析)更加准确。

5. 单细胞转录组数据的多样性分析

NMF还可以用于研究细胞的多样性和变异性。在分析不同细胞群体的基因表达时,NMF能够揭示细胞群体之间的相似性和差异性,并帮助发现潜在的细胞类型或转录状态。

例如,可以使用consensus_nmf方法将多次NMF分解的结果结合起来,得到更加稳定的细胞群体和基因模块。

# 假设我们已经使用多次NMF分解
nmf_results <- nmf(V, rank = 3, nrun = 50)  # 多次分解以获得共识

# 计算共识矩阵
consensus_matrix <- consensus(nmf_results)

# 可视化共识矩阵
heatmap(consensus_matrix, main = "Consensus Matrix")

通过共识NMF方法,可以获得更加稳定和一致的分解结果,从而提高数据分析的可靠性。

NMF方法在实际项目中的运用

我们首先要理解整体的架构
  • (1)选择要分析的基因,一般我们选择高变基因(或者高度变异的前多少个基因,一般5000为主)
  • (2)矩阵的选择,一般要选择经过scale后的矩阵,并且将负值设置为零来调整居中的表达式矩阵。
  • (3)conducted NMF runs with various K values (K = 5,6,7,8,9,10), resulting in 45 NMF
    programs for each sample.
  • (4)识别共识转录程序
  • (5)Spearman correlation was performed to determine the interrelationships between different programs.
  • (6)基于阈值0.8对相关矩阵进行二值化,并对二值化后的矩阵进行层次聚类分析。将不同K运行中相似的程序进行合并,计算合并后程序中细胞和基因的平均归一化系数。根据每个合并程序的系数得分,选择前150个基因作为特征基因。为了识别不同样本中反复出现的NMF程序(“meta程序”),计算Jaccard相似性矩阵,该矩阵表示不同程序的特征基因的重叠。

我们在实际中运用一下,大家要分析好单细胞数据,注释好,获取rds文件。

library(NMF)
library(Seurat)
library(plyr)
library(dplyr)
library(future)
library(gtools)
library(ggplot2)
library(cowplot)
library(data.table)
library(tidyverse)
library(future.apply)
library(RColorBrewer)

获取scale的矩阵

# NMF ======================================================================

# generate input data --------------------

nmf_input <- lapply(allexpmc, function(i){
  
  data <- NormalizeData(i)
  data <- FindVariableFeatures(data, nfeatures = 7000)
  data <- ScaleData(data, do.center = F)
  
  as.matrix(GetAssayData(data,
            slot = "scale.data", assay = "RNA"))
})
识别program,合并并选择特征基因
还有 41% 的精彩内容
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。
支付 ¥50.00 继续阅读
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 228,505评论 6 533
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 98,556评论 3 418
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 176,463评论 0 376
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 63,009评论 1 312
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 71,778评论 6 410
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 55,218评论 1 324
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 43,281评论 3 441
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 42,436评论 0 288
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 48,969评论 1 335
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 40,795评论 3 354
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 42,993评论 1 369
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 38,537评论 5 359
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,229评论 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 34,659评论 0 26
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 35,917评论 1 286
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 51,687评论 3 392
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 47,990评论 2 374

推荐阅读更多精彩内容