美文网首页R优质资源
如何使用R的sweep函数对表达矩阵进行标准化

如何使用R的sweep函数对表达矩阵进行标准化

作者: 生信交流平台 | 来源:发表于2021-05-08 22:01 被阅读0次

我们知道一般做表达谱数据分析之前,第一步就是对我们的表达矩阵进行标准化(归一化),去除由于测序深度,或者荧光强度不均一等原因造成的表达差异。否则后续差异表达分析得到的差异基因,很可能并不是真正生物学意义上的差异,而是由于前面提到的这些原因造成的。

做归一化的方法也很多,有根据中位数进行归一化,即将每个样本中所有基因的表达值的中值转换到同一水平。如下图所示

除了中位数标准化之外,我们还可以使用z-score的方法来对表达谱数据进行标准化:

z-score=(表达量-均值)/标准差

那么下面小编就给大家演示一下如何使用前面讲到的☞R中的sweep函数,使用z-score的方法来对表达谱矩阵进行标准化

#为了保证随机数保持一致,这里设置一下种子序列
set.seed(123)
#随机生成100个数,构造一个10X10的矩阵
data=matrix(runif(100,1,10),nrow=10)
#设置行名是gene1到gene10
rownames(data)=paste0("gene",1:10)
#设置列明是sample1到sample10
colnames(data)=paste0("sample",1:10)

#计算每一行的均值
rowmean=apply(data,1,mean)
#计算每一行的标准差
rowsd=apply(data,1,sd)
#每一行基因表达值减去这一行的均值
data1=sweep(data,1,rowmean)
#每一行基因表达值除以这一行的标准差
data2=sweep(data1,1,rowsd,'/')
data2

得到的结果如下

如果对R里面scale这个函数比较熟悉的小伙伴,可能已经发现了,scale这个函数就能完成z-score的计算,我们来看看这个函数的说明

我们来看看scale这个函数的效果

#因为scale默认对列做操作,所以这里先用t对表达矩阵做一个转置
#计算完再用t转置回来
data3=t(scale(t(data)))
data3

得到的结果如下,有兴趣的小伙伴可以去对比一下跟使用sweep函数得到的结果。(应该是一样的!!!)

如何使用R的sweep函数对表达矩阵进行标准化

相关文章

  • 如何使用R的sweep函数对表达矩阵进行标准化

    我们知道一般做表达谱数据分析之前,第一步就是对我们的表达矩阵进行标准化(归一化),去除由于测序深度,或者荧光强度不...

  • 「转录组」WGCNA实战原理两不误

    表达矩阵的处理 后续分析所用到的数据,均为FPKM标准化后的表达矩阵。 从流程上对WGCNA进行解读 1)当对芯片...

  • R函数-sweep完成标准化

    既然熟知apply函数,那么也该了解sweep函数了。相比于apply函数,sweep的操作性虽然没有前者自定义函...

  • 2019-07-25

    R中常见函数 1、对行和列进行操作的函数: •对矩阵或数据框的行和列调用函数:apply(矩阵/数组,1,func...

  • Seurat构建meta- feature表达矩阵

    对于小数据集 直接使用aggregate函数对数据框形式的表达矩阵进行运算 对于大型稀疏矩阵,推荐使用矩乘的形式进行处理

  • R中的sweep函数

    函数的用途 base包中sweep()函数是处理统计量的工具。所以一般结合apply()函数来使用,一般我们需要将...

  • R中的sweep函数

    base包中的sweep函数是处理统计量的工具,一般可以结合apply()函数来使用。当我们我们需要将apply(...

  • 加权基因共表达网络分析(WGCNA)实例

    获取表达数据矩阵 这里运行R语言包GDCRNATools的帮助文档中的例子获得胆管癌的rna表达矩阵 使用R语言包...

  • 【R>>sweep】array迭代

    刷视频是发现有个大佬在讲sweep()这个函数,那么就来温习下吧。其实sweep()是R的基础函数,有点类似app...

  • LearningR-数据处理

    [TOC] 1. R自带函数 1.1 转置 使用函数t()可对一个矩阵或数据框进行转置,对于数据框,行名将变成变量...

网友评论

    本文标题:如何使用R的sweep函数对表达矩阵进行标准化

    本文链接:https://www.haomeiwen.com/subject/odypdltx.html