gpr格式的芯片原始数据处理

0.背景知识

参考地址:https://bioconductor.org/help/course-materials/2005/BioC2005/labs/lab01/beta7/

如果你在GEO数据库挖过数据,有没有碰到一些错误的、空的表达矩阵?有的作者上传的表达矩阵是标准化过的,带有负值,通常不拿这种标准化过的数据去做后续的分析。我们生信技能树前面已经分享过CEL格式的芯片原始数据处理方法。

最近复现文章时,发现了一些.gpr格式的x芯片原始数据,查了一下,发现是双色芯片处理产生的文件,是用Genepix软件得到的,比较古老的东西。总结一下gpr格式的原始数据怎样处理。

1.R包和文件准备

limma的userguide文档里提到了gpr文件处理的代码,没有找到相应的数据。我们使用的数据下载自:https://bioconductor.org/help/course-materials/2005/BioC2005/labs/lab01/Data/integrinbeta7.zip

读取gpr文件的R包不多,除了limma还有PAA、marray。limma够用了,如果对另外两个有兴趣的话也可自己探索。

输入数据是:6个gpr文件,一个target文件。

rm(list = ls())
library(limma)
dir()
##  [1] "6Hs.166.gpr"     "6Hs.168.gpr"     "6Hs.187.1.gpr"   "6Hs.194.gpr"    
##  [5] "6Hs.195.1.gpr"   "6Hs.243.1.gpr"   "gpr.html"        "gpr.Rmd"        
##  [9] "gpr_example.R"   "gprdata.R"       "main.Rproj"      "SpotTypes.txt"  
## [13] "TargetBeta7.txt"
targets <- rio::import("TargetBeta7.txt")
targets
##       FileNames Subject ID #  Cy3  Cy5       Hyb buffer Hyb Temp (deg C)
## 1 6Hs.195.1.gpr            1 b7 - b7 + Ambion Hyb Slide               55
## 2   6Hs.168.gpr            3 b7 + b7 - Ambion Hyb Slide               55
## 3   6Hs.166.gpr            4 b7 + b7 - Ambion Hyb Slide               55
## 4 6Hs.187.1.gpr            6 b7 - b7 + Ambion Hyb Slide               55
## 5   6Hs.194.gpr            8 b7 - b7 + Ambion Hyb Slide               55
## 6 6Hs.243.1.gpr           11 b7 + b7 - Ambion Hyb Slide               55
##   Hyb Time (h) Date of Blood Draw Amplification  Slide Type Date of Scan
## 1           40         2002.10.11       R2 aRNA Aminosilane   2003.07.25
## 2           40         2003.01.16       R2 aRNA Aminosilane   2003.08.07
## 3           40         2003.01.16       R2 aRNA Aminosilane   2003.08.07
## 4           40         2002.09.16       R2 aRNA Aminosilane   2003.07.18
## 5           40         2002.09.18       R2 aRNA Aminosilane   2003.07.25
## 6           40         2003.01.13       R2 aRNA Aminosilane   2003.08.06
f <- function(x) as.numeric(x$Flags > -75)
RG <- read.maimages(targets, source="genepix", wt.fun=f)
## Read 6Hs.195.1.gpr 
## Read 6Hs.168.gpr 
## Read 6Hs.166.gpr 
## Read 6Hs.187.1.gpr 
## Read 6Hs.194.gpr 
## Read 6Hs.243.1.gpr

target文件在limma帮助文档中也有说明,有三列必须的:一列是gpr文件名,另两列是Cy3和Cy5,表示在每个gpr文件中Cy3和Cy5两种染料标记了哪组样本。 ### 2.读取spottypes文件(可选)

这个芯片中设置了几种除probe外的其他类型的位点,对应的文件也在下载的文件夹里。使用plotMA可以查看每个gpr文件中spot类型的分布。

spottypes <- readSpotTypes()
spottypes
##      SpotType                         Name          ID     col cex
## 1       Probe                            *           *   black 0.2
## 2       Empty                  Empty|EMPTY Empty|EMPTY  yellow 1.0
## 3      Buffer                      Buffer*      Buffer  orange 1.0
## 4    Negative  Randomized negative control       H2NC* magenta 1.0
## 5 Arabidopsis                *A. thaliana*       AT00*   green 1.0
## 6         SPC *Stratagene Positive Control       AT00*    blue 1.0
## 7   BetaActin           ACTB - Actin, beta         H2*     red 1.0
RG$genes$Status <- controlStatus(spottypes, RG)
## Matching patterns for: Name ID 
## Found 23184 Probe 
## Found 1328 Empty 
## Found 3 Buffer 
## Found 192 Negative 
## Found 30 Arabidopsis 
## Found 3 SPC 
## Found 34 BetaActin 
## Setting attributes: values col cex
plotMA(RG)
image.png
plotMA(RG,array=6)
image.png

3.背景校正和标准化

RGne <- backgroundCorrect(RG, method="normexp", offset=25)
## Array 1 corrected
## Array 2 corrected
## Array 3 corrected
## Array 4 corrected
## Array 5 corrected
## Array 6 corrected
## Array 1 corrected
## Array 2 corrected
## Array 3 corrected
## Array 4 corrected
## Array 5 corrected
## Array 6 corrected
MA <- normalizeWithinArrays(RGne)

此时得到的MA文件就类似于表达矩阵的前体了,可以直接拿来做差异分析

4. 差异分析

试验设计矩阵的构建,有一点点差别,是直接从targets里面得到的分组。

design <- modelMatrix(targets, ref="b7 -")
## Found unique target names:
##  b7 - b7 +
design
##   b7 +
## 1    1
## 2   -1
## 3   -1
## 4    1
## 5    1
## 6   -1
design2 <- cbind(Dye=1, design)
colnames(design2)[2] = "Beta7"
design2
##   Dye Beta7
## 1   1     1
## 2   1    -1
## 3   1    -1
## 4   1     1
## 5   1     1
## 6   1    -1

有了试验设计矩阵,差异分析就很简单,lmFit、eBayes、topTable三部搞定:

fit <- lmFit(MA, design2)
## Warning: Partial NA coefficients for 3 probe(s)
fit <- eBayes(fit)
deg <- topTable(fit, coef="Beta7", adjust="fdr",number = Inf)
deg = deg[,c((ncol(deg)-5):ncol(deg),1:(ncol(deg)-6))]
deg = na.omit(deg)

可以统计一下差异基因的数量

deg$change = ifelse(deg$logFC > 1 & deg$adj.P.Val<0.05,
                    "up",
                    ifelse(deg$logFC < -1 & deg$adj.P.Val<0.05,
                           "down",
                           "stable"))
table(deg$change)
## 
##   down stable     up 
##      4  21844      3

差异基因数量个位数,可以考虑调整logFC的阈值,和常规的分析木有差别

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