大家都知道,这十几年来最流行的差异分析软件就是R的limma包了,但是它以前只支持microarray的表达数据。
考虑到大家都熟悉了它,它又发了一个voom的方法,让它从此支持RNA-seq的count数据啦!
大家都知道芯片数据跟RNA-seq数据的本质就是value的分布不一样,所以各种针对RNA-seq的差异分析包也就是提出来一个新的normalization方法而已。
而我们limma本身就提出了一个voom的方法来对RNA-seq数据进行normalization
使用这个包也需要三个数据:
表达矩阵
分组矩阵
差异比较矩阵
用法与limma一模一样的,只是多了一个normalization而已。
读取自己的数据
一般我们会自己读取表达矩阵和分组信息,下面是一个例子:
options(warn=-1)
suppressMessages(library(DESeq2))
suppressMessages(library(limma))
suppressMessages(library(pasilla))
data(pasillaGenes)
exprSet=counts(pasillaGenes)
head(exprSet) ##表达矩阵如下
## treated1fb treated2fb treated3fb untreated1fb untreated2fb
## FBgn0000003 0 0 1 0 0
## FBgn0000008 78 46 43 47 89
## FBgn0000014 2 0 0 0 0
## FBgn0000015 1 0 1 0 1
## FBgn0000017 3187 1672 1859 2445 4615
## FBgn0000018 369 150 176 288 383
## untreated3fb untreated4fb
## FBgn0000003 0 0
## FBgn0000008 53 27
## FBgn0000014 1 0
## FBgn0000015 1 2
## FBgn0000017 2063 1711
## FBgn0000018 135 174
(group_list=pasillaGenes$condition)
## [1] treated treated treated untreated untreated untreated untreated
## Levels: treated untreated
##这是分组信息,7个样本,3个处理的,4个未处理的对照!
另外一个例子是从airway里面得到表达矩阵和分组信息
library(airway)
data(airway)
exprSet=assays(airway)$counts ## 表达矩阵
group_list=colData(airway)$dex ## 分组信息
第一步:构建分组矩阵
suppressMessages(library(limma))
design <- model.matrix(~factor(group_list))
colnames(design)=levels(factor(group_list))
rownames(design)=colnames(exprSet)
design
## treated untreated
## treated1fb 1 0
## treated2fb 1 0
## treated3fb 1 0
## untreated1fb 1 1
## untreated2fb 1 1
## untreated3fb 1 1
## untreated4fb 1 1
## attr(,"assign")
## [1] 0 1
## attr(,"contrasts")
## attr(,"contrasts")$`factor(group_list)`
## [1] "contr.treatment"
第二步:根据分组信息和表达矩阵进行normalization
这里构建了一个对象 An object of class “EList”
v <- voom(exprSet,design,normalize="quantile")
## 下面的代码如果你不感兴趣不需要运行,免得误导你
## 就是看看normalization前面的数据分布差异
#png("RAWvsNORM.png")
exprSet_new=v$E
par(cex = 0.7)
n.sample=ncol(exprSet)
if(n.sample>40) par(cex = 0.5)
cols <- rainbow(n.sample*1.2)
par(mfrow=c(2,2))
boxplot(exprSet, col = cols,main="expression value",las=2)
boxplot(exprSet_new, col = cols,main="expression value",las=2)
hist(exprSet)
hist(exprSet_new)
#dev.off()
可以很明显看到normalization前后数据分布差异非常大!
fit <- lmFit(v,design)
fit2 <- eBayes(fit)
tempOutput = topTable(fit2, coef=2, n=Inf)
DEG_voom = na.omit(tempOutput)
head(DEG_voom)
## logFC AveExpr t P.Value adj.P.Val
## FBgn0029167 2.1608689 7.880589 41.19142 5.195806e-08 0.0007518331
## FBgn0003137 -0.9560776 8.421903 -29.97211 2.920473e-07 0.0021129620
## FBgn0003748 -1.0385933 6.395990 -23.78787 1.020682e-06 0.0049230892
## FBgn0035085 2.5190255 5.221183 21.01339 1.993995e-06 0.0058809216
## FBgn0050185 -0.4886279 5.487547 -19.95422 2.635106e-06 0.0058809216
## FBgn0015568 -1.1040979 3.922438 -19.96954 2.624231e-06 0.0058809216
## B
## FBgn0029167 9.065020
## FBgn0003137 7.800063
## FBgn0003748 6.652695
## FBgn0035085 5.870585
## FBgn0050185 5.734162
## FBgn0015568 5.557560
差异分析结果就不解释啦!
文章浏览阅读3.6k次。npm报错处理_npm安装报错
文章浏览阅读2.5k次。问题本文主要针对的问题是在Unity中对Button类进行Onclick事件绑定的时候出现的函数参数错误进行分析解决,具体例子如下: Button[] button = GetComponentsInChildren<Button>(); int buttonCnt = 3; for (int i = 0; i < buttonCnt; i++) { button[i].SetActive(true); Debug.Log("i: " + i);_unity 按钮onclick参数类型
文章浏览阅读6.5k次,点赞5次,收藏43次。Halcon矩阵(Matrix)详细说明创建(Creation)create_matrixcopy_matrixrepeat_matrix访问(Access)算法(Arithmetic)分解(Decomposition)特征值(Eigenvalues)特性(Features)文件操作(File)新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注_get_full_matrix
文章浏览阅读2.5k次。欧氏距离(Euclidean Distance)欧式距离是最经典的一种距离算法,适用于求解两点之间直线的距离,适用于各个向量标准统一的情况,如各种药品的使用量、商品的售销量等。 欧氏距离也是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式。 二维空间上两点a(x1,y1)a(x_1,y_1)与b(x2,y2)b(x_2,y_2)之间的欧式距离: d12=(x1−x2)2+(y1−y_两条线之间的欧式距离怎么算
文章浏览阅读3.9w次,点赞78次,收藏436次。我参加过的数学建模比赛很多,除了本校的两次数学建模(二三等)外,全国数学建模(省二),亚太数学建模(s),ICM/MCM(M),五一建模联赛,电工杯(最近正在准备),之前错过mathorcup,有点遗憾。到2019年暑假前,总计自己一年左右参加7次建模比赛,说下自己建模常用的软件使用,本人在队里主要负责编程,但是写作和建模也同样会和队友交流。论文类LaTeX与WordWor..._什么软件可以分析数学建模的问题,以及给出合理的解释和分析
文章浏览阅读3k次。计算机网络原理╭第一章 计算机网络概述|第二章 网络应用|第三章 传输层|第四章 网络层内容大纲<|第五章 数据链路层与局域网|第六章 物理层|第七章 无线与移动网络╰第八章 网络安全基础第一章 计算机网络概述1.计算机网络基本概念(填空选择题)1>计算机网络定义*1.定义:1)计算机网络是 互连的、自治的 计算机的集合;互连: 是指利用通信链路链接相互独立的计算机系统;自治: 是指互连的计算机系统 彼此独立 ,不存在主从或控制与被控制的关系;2)一个计算机网络_throught up速率
文章浏览阅读6.1k次,点赞7次,收藏41次。图数据可视化_R语言ggplot2包和tidybayes包绘制小提琴图进阶概述:绘制小提琴图时按数据分布的密度填充不同透明度的颜色(渐变填充)。使用工具:R语言中的ggplot2和tidybayes工具包本文使用的数据及计算方式与之前的博文一致:数据可视化——R语言ggplot2包绘制精美的小提琴图(并箱线图或误差条图组合)。本文采用tidybayes包中stat_eye()绘制小提琴图,通过设置aes(alpha = stat(f)可实现渐变填充。由于stat_eye()会默认采用中位数及分位数作_分半小提琴图
文章浏览阅读1.4k次。江苏省专转本计算机_计算机硬件系统是执行软件程序的物质基础,其中能执行程序指令的是( )
文章浏览阅读4.4k次。在Robocode中,坦克分为3个部件: 身体(Body)、炮塔(Gun)、雷达(Radar)。 因此,在Robot类(还记得吗,它是任何坦克的父类)中,有对这些部件操作的方法。要查看Robocode提供的API,可以在robocode目录下的javadoc下找到,也可以在Robocode程序的帮助菜单中找到: 对于Body来说,Robot类提供了4个方法:_robocode炮和机身的运动分离
文章浏览阅读77次。Problem DescriptionA number whose only prime factors are 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, ... shows the first...
文章浏览阅读6.6k次,点赞6次,收藏5次。一位大学毕业生第一份工作不太满意,裸辞跳槽的故事_前端转后端
文章浏览阅读3.2k次,点赞3次,收藏21次。背景: 骑士周游问题在棋盘格里,马走日,遍历所有网格点,找到每个网格都走过,且只有一次的路径。算法实现:用于解决骑士周游问题的图搜索算法是深度优先搜索(DFS),该算法是逐层建立搜索树,沿着树的单支尽量深入的向下搜索。连接尽量多的顶点,必要时可以进行分支。深度优先搜索同样要用到顶点的“前驱”属性,来构建树或森林。另外需要设置“发现时间”和“结束时间”属性。发现时间是在第几步访问到了这个顶点(设置灰色);结束时间是在第几步完成了此顶点的探索(设置黑色)。通用的深度优先搜索算法代码:# BFS采_用python代码写深度优先遍历算法的时间复杂度