gpr格式的芯片原始数据处理(神技能)

导读

我在生信技能树和生信菜鸟团都系统性总结过常见GEO数据库的芯片处理技巧,但是也有一些小众芯片我懒得去研发它的流程。但是我们生信技能树R语言之统计可视化讲师小洁却可以拿一整年的时间为学员们专心解决各式各样的疑难杂症,前面她已经分享了:aglient芯片原始数据处理,相信大家都获益良多,今天再来一个小众芯片: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的阈值,和常规的分析木有差别!后续常规相关分析流程大家可以在B站学习视频哈!

(0)

相关推荐

  • 少见!这么懒的作者,回答审稿人的问题都不超过5个单词

    最近笔者审了一篇3分+期刊的文章,之前让作者根据审稿意见进行解释与修改,结果收到了作者的返修稿件,真的太失望了,也非常生气,竟然如此回复审稿人(见下图): 审了5年稿,第一次见到这样的作者,竟然这么懒 ...

  • sci论文状态accept是接收吗

    sci论文由于需要全称英文写作发表给国内很多作者带来发表障碍,不单单是写作需要英文,发表过程所有事项的了解与沟通都是英文状态,包括文章各种状态的查询也都是英文状态,sci论文状态accept是接收吗? ...

  • aglient芯片原始数据处理

    导读 我多次在学徒作业强调了 3大基因芯片产商里面,就Agilent公司的芯片比较难搞,比如Agilent芯片表达矩阵处理(学徒作业) 以及 oligo包可以处理agilent芯片吗,这个作业难度非常 ...

  • 烘焙师神技能:教你用一盒牛奶,自制奶油!超好用,建议收藏

    烘焙师神技能:教你用一盒牛奶,自制奶油!超好用,建议收藏

  • 99%的财务会计都要掌握的Excel神技能!

    点击下方 ↓ 关注,每天免费看Excel专业教程 置顶公众号或设为星标 ↑ 才能每天及时收到推送 个人微信号 | (ID:LiRuiExcel520) 微信服务号 | 跟李锐学Excel(ID:LiR ...

  • 图库APP,解密你不知道到的神技能

    图库APP作为大部分小伙伴最常使用的应用之一,除了浏览照片,其实它还隐藏了诸多小功能,你们知道吗?今天,就跟大家讲解几个非常实用的技巧,帮助大家更加了解荣耀手机的图库APP. 多图预览,秒变幻灯片模式 ...

  • 蛋糕装饰神技能,Pascal Hainigue的私藏绝技配方来啦!

    还记得大明湖畔玩转"玻璃灯罩(呃,当然是能吃的,所以打引号,配方和视频戳下去可穿越)"的神奇chef Pascal Hainigue(下图)吗? 他又弄出个神奇的东东,呃,不是不是 ...

  • 神技能!假装懂欧洲建筑,收好这篇够用了!!

    到欧洲旅行得对欧洲建筑有一定的了解,但一座又一座不同时期的教堂和古堡,不仅让人看的眼花缭乱,真的要说也说不出个所以然.我们经常听到罗马式.希腊式.哥特式.文艺复兴式该如何来区分呢? 整个欧洲,不管我们 ...

  • 【WPS神技能】如何在Excel表格中制作联想动态下拉菜单

    在Excel表格中制作下拉菜单已经是小菜一碟了啦,忘记了的小伙伴不妨再瞅瞅推文哈: [WPS神技能]如何在WPS-Excel中制作一级下拉菜单 这不,Sara想着"如果我只是输入几个字,就可 ...

  • 20个生活神技能

    拖地先放醋?20个生活神技能,你居然没一个会的! 2021-04-25央视财经  土豆微信 1.厨房拖地先放醋 厨房的地板很容易屯积油垢,拖地前,不妨在拖把上倒入一些醋,如此就能让油污无处遁形! 2. ...

  • 王者荣耀:S1版本的神技能,属性太bug遭下架,宫本团战能刷2个大

    曼姐出品,必属御品.大家好,我是人见人爱的小曼姐.在王者荣耀中,相信有一些玩家是从远古版本的时候,就已经玩这款游戏了.毕竟王者荣耀从2016年开始,逐渐引起了大家的注意.尽管当初这款手游一度被玩家所看 ...