R:limma表达谱分析

添加第一列列名为id

清空空字符

文件保存为csv格式

#表达矩阵

>exprSet=read.csv("PC表达差异.csv",header = T,row.names = "id")

> exprSet[1:5,1:5]

                           N1        N2       N3        N4       N5

ASCRP000001 7.724977  7.867182 7.716320  7.808999 7.769155

ASCRP000002 9.358083  9.419830 9.366810 10.023439 9.854187

ASCRP000004 9.376542 12.278848 9.372987  9.013128 9.864421

ASCRP000005 8.326384  8.292985 8.341654  8.242107 8.327296

ASCRP000006 8.056148  9.256802 8.053611  8.311279 8.318445

#分组

> group_list = c(rep("normal",6),rep("cancer",6))

> group_list

[1] "normal" "normal" "normal" "normal" "normal" "normal" "cancer" "cancer" "cancer" "cancer" "cancer" "cancer"

#QC检测

> par(cex=0.7)

> n.sample = ncol(exprSet)

> cols=rainbow(n.sample*1.2)

> boxplot(exprSet, col = cols,main="expression value",las=2)

#安装limma

> source("https://bioconductor.org/biocLite.R")

> biocLite("limma")

> suppressMessages(library(limma))

#制作分组矩阵

>design <- model.matrix(~0+factor(group_list))

>colnames(design)=levels(factor(group_list))

>rownames(design)=colnames(exprSet)

> design

   cancer normal

N1      0      1

N2      0      1

N3      0      1

N4      0      1

N5      0      1

N6      0      1

C1      1      0

C2      1      0

C3      1      0

C4      1      0

C5      1      0

C6      1      0

#矩阵声明

> contrast.matrix<-makeContrasts(paste0(unique(group_list),collapse = "-"),levels = design)

> contrast.matrix

        Contrasts

Levels   normal-cancer

cancer            -1

normal             1

#差异分析

> fit <- lmFit(exprSet,design)

> fit2 <- contrasts.fit(fit, contrast.matrix)

> fit2 <- eBayes(fit2)  ## default no trend !!!

> tempOutput = topTable(fit2, coef=1, n=Inf)

> nrDEG = na.omit(tempOutput) 

> head(nrDEG)

                 logFC   AveExpr         t      P.Value  adj.P.Val         B

ASCRP002607 -0.6921963  8.304751 -6.171921 6.396350e-05 0.06249354 1.9542295

ASCRP002273 -0.5178892  8.374084 -5.872071 9.897068e-05 0.06249354 1.5815667

ASCRP004643 -0.3363617  8.378703 -5.805455 1.092339e-04 0.06249354 1.4966747

ASCRP000624  0.4530361 15.559685  5.634824 1.410412e-04 0.06249354 1.2757264

ASCRP001621 -0.3981851  8.270907 -5.389916 2.050045e-04 0.06249354 0.9497525

ASCRP003058 -1.7550218 12.010918 -5.344000 2.201025e-04 0.06249354 0.8874756

> write.csv(nrDEG,"limma_notrend.results.csv",quote = F)

最后附上logFC和-log(P.Value)的火山图

补充:关于limma包差异分析结果的logFC解释

首先,我们要明白,limma接受的输入参数就是一个表达矩阵,而且是log后的表达矩阵(以2为底)。

那么最后计算得到的logFC这一列的值,其实就是输入的表达矩阵中case一组的平均表达量减去control一组的平均表达量的值,那么就会有正负之分,代表了case相当于control组来说,该基因是上调还是下调。

我之前总是有疑问,明明是case一组的平均表达量和control一组的平均表达量差值呀,跟log foldchange没有什么关系呀。

后来,我终于想通了,因为我们输入的是log后的表达矩阵,那么case一组的平均表达量和control一组的平均表达量都是log了的,那么它们的差值其实就是log的foldchange

首先,我们要理解foldchange的意义,如果case是平均表达量是8,control是2,那么foldchange就是4,logFC就是2咯

那么在limma包里面,输入的时候case的平均表达量被log后是3,control是1,那么差值是2,就是说logFC就是2。

这不是巧合,只是一个很简单的数学公式log(x/y)=log(x)-log(y)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容

  • 1.个局部过滤器和全局过滤器的书写格式 2.用过滤器保留两位小数 3.有过滤器获取此时的时间
    信不由衷阅读 209评论 0 0
  • 七月份的尾巴一身疲惫,八月份的前奏重新起航。 18年伊始便开始改变,学习如何高效,学习如何实现目标,学习如何沟通交...
    大贤子Crystal阅读 314评论 2 2
  • 家是幸福的场所,是温暖的港湾,是疲惫身躯的栖息地,是心灵净化的后花园,是情感升华的温馨桃源。 忙碌了四天~忙里偷闲...
    小卜姑娘阅读 1,427评论 38 25
  • 下面是培臻教育小编为大家整理的一篇关于LSAT考试逻辑推理练习题(29)的文章,供大家参考,下面是详细内容。 59...
    peizhenjy阅读 333评论 0 0