原文链接:

r语言中使用Bioconductor 分析芯片数据​tecdat.cn

介绍

芯片数据分析流程有些复杂,但使用 R 和 Bioconductor 包进行分析就简单多了。本教程将一步一步的展示如何安装 R 和 Bioconductor,通过 GEO 数据库下载芯片数据, 对数据进行标准化,然后对数据进行质控检查,最后查找差异表达的基因。教程示例安装的各种依赖包和运行命令均是是在 Ubuntu 环境中运行的(版本: Ubuntu 10.04, R 2.121),教程的示例代码和图片在这里。

安装 R 和 Bioconductor 包

打开命令终端,先安装 R 和 Bioconductor 的依赖包,然后安装 R.

$ sudo apt-get install r-base-core libxml2-dev libcurl4-openssl-dev curl$ R

之后在 R 环境中安装 Bioconductor 包

> # 下载 Bioconductor 的安装程序> source("http://bioconductor.org/biocLite.R")> # 安装 Bioconductor 的核心包> biocLite()> # 安装 GEO 包> biocLite("GEOquery")

如果你没有管理员权限,你需要将这些包安装到你个人库目录中。安装 Bioconductor 需要一段时间,GEOquery 包也需要安装,GEOquery 是 NCBI 存储标准化的转录组数据的基因表达综合数据库 GEO 的接口程序。

下载芯片数据

本教程中我们使用 Dr Andrew Browning 发表的数据集 GSE20986。HUVECs(人脐静脉内皮细胞)是从人胎儿脐带血中提取出来的,通常用来研究内皮细胞的病理生理机制。这个实验设计中,从捐献者的眼组织中提取的虹膜、视网膜、脉络膜微血管内皮细胞用来和 HUVEC 细胞进行比对,以便考查 HUVEC 细胞能否替代其他细胞作为研究眼科疾病的样本。 GEO 页面同时也包含了关于本实验研究的其他信息。对于每组样本有三次测量,样品分成四组 iris, retina, HUVEC, choroidal 。

实验平台是 GPL570 -- GEO 数据库对人类转录组芯片 Affymetrix Human Genome U133 Plus 2.0 Array 的缩写。通过 GSM 链接 GSM524662,我们可以得到各个芯片的更多实验条件信息。同一个实验设计中的不同芯片的实验条件应该是相同的。不同细胞系的提取条件,细胞生长条件,RNA 提取程序,RNA 处理程序,RNA 与探针杂交条件,用哪种仪器扫描芯片,这些数据都以符合 MIAME 标准的形式存储着。

对于每一个芯片,数据表中存储着探针组和对应探针组标准化之后的基因表达量值。表头中提供了表达量值标准化所用的算法。本教程中使用 GC-RMA 算法进行数据标准化,关于 GC-RMA 算法的详细细节可以参考这篇文献。

首先,我们从 GEO 数据库下载原始数据,导入 GEOquery 包,用它下载原始数据,下载的原始数据约 53MB。

> library(GEOquery)> getGEOSuppFiles("GSE20986")

下载完成后,打开文件管理器,在启动 R 程序的文件夹里可以看到当前文件夹下生成了一个 GSE20986 文件夹,可以直接查看文件夹里的内容:

$ ls GSE20986/filelist.txt GSE20986_RAW.tar

GSE20986_RAW.tar 文件是压缩打包的 CEL(Affymetrix array 数据原始格式)文件。先解包数据,再解压数据。这些操作可以直接在 R 命令终端中进行:

> untar("GSE20986/GSE20986_RAW.tar", exdir="data")> cels <- pattern="[gz]"> sapply(paste("data", cels, sep="/"), gunzip)> cels

芯片实验信息整理

在对数据进行分析之前,我们需要先整理好实验设计信息。这其实就是一个文本文件,包含芯片名字、此芯片上杂交的样本名字。为了方便在 R 中 使用 simpleaffy 包读取实验信息文本文件,需要先编辑好格式:

$ ls -1 data/*.CEL > data/phenodata.txt

将这个文本文件用编辑器打开,现在其中只有一列 CEL 文件名,最终的实验信息文本需要包含三列数据(用 tab 分隔),分别是 Name, FileName, Target。本教程中 Name 和 FileName 这两栏是相同的,当然 Name 这一栏可以用更加容易理解的名字代替。

Target 这一栏数据是芯片上的样本标签,例如 iris, retina, HUVEC, choroidal,这些标签定义了那些数据是生物学重复以便后面的分析。

这个实验信息文本文件最终格式是这样的:

Name FileName TargetGSM524662.CEL GSM524662.CEL irisGSM524663.CEL GSM524663.CEL retinaGSM524664.CEL GSM524664.CEL retinaGSM524665.CEL GSM524665.CEL irisGSM524666.CEL GSM524666.CEL retinaGSM524667.CEL GSM524667.CEL irisGSM524668.CEL GSM524668.CEL choroidGSM524669.CEL GSM524669.CEL choroidGSM524670.CEL GSM524670.CEL choroidGSM524671.CEL GSM524671.CEL huvecGSM524672.CEL GSM524672.CEL huvecGSM524673.CEL GSM524673.CEL huvec

注意:每栏之间是使用 Tab 进行分隔的,而不是空格!

载入数据并对其进行标准化

需要先安装 simpleaffy 包,simpleaffy 包提供了处理 CEL 数据的程序,可以对 CEL 数据进行标准化同时导入实验信息(即前一步中整理好的实验信息文本文件内容),导入数据到 R 变量 celfiles 中:

> biocLite("simpleaffy")> library(simpleaffy)> celfiles <- read.affy(covdesc="phenodata.txt", path="data")

你可以通过输入 ‘celfiles’ 来确定数据导入成功并添加芯片注释(第一次输入 ‘celfiles’ 的时候会进行注释):

> celfilesAffyBatch objectsize of arrays=1164x1164 features (12 kb)cdf=HG-U133_Plus_2 (54675 affyids)number of samples=12number of genes=54675annotation=hgu133plus2notes=

现在我们需要对数据进行标准化,使用 GC-RMA 算法对 GEO 数据库中的数据进行标准化,第一次运行的时候需要下载一些其他的必要文件:

> celfiles.gcrma <- gcrma(celfiles)Adjusting for optical effect............Done.Computing affinitiesLoading required package: AnnotationDbi.Done.Adjusting for non-specific binding............Done.NormalizingCalculating Expression

如果你想看标准化之后的数据,输入 celfiles.gcrma, 你会发现提示已经不是 AffyBatch object 了,而是 ExpressionSet object,是已经标准化了的数据:

> celfiles.gcrmaExpressionSet (storageMode: lockedEnvironment)assayData: 54675 features, 12 sampleselement names: exprsprotocolDatasampleNames: GSM524662.CEL GSM524663.CEL ... GSM524673.CEL (12 total)varLabels: ScanDatevarMetadata: labelDeionphenoDatasampleNames: GSM524662.CEL GSM524663.CEL ... GSM524673.CEL (12 total)varLabels: sample FileName TargetvarMetadata: labelDeionfeatureData: noneexperimentData: use 'experimentData(object)'Annotation: hgu133plus2

数据质量控制

再进行下一步的数据分析之前,我们有必要对数据质量进行检查,确保没有其他的问题。首先,可以通过对标准化之前和之后的数据画箱线图来检查 GC-RMA 标准化的效果:

> # 载入色彩包> library(RColorBrewer)> # 设置调色板> cols <-> # 对标准化之前的探针信号强度做箱线图> boxplot(celfiles, col=cols)> # 对标准化之后的探针信号强度做箱线图,需要先安装 affyPLM 包,以便解析 celfiles.gcrma 数据> biocLite("affyPLM")> library(affyPLM)> boxplot(celfiles.gcrma, col=cols)> # 标准化前后的箱线图会有些变化> # 但是密度曲线图看起来更直观一些> # 对标准化之前的数据做密度曲线图> hist(celfiles, col=cols)> # 对标准化之后的数据做密度曲线图> hist(celfiles.gcrma, col=cols)

数据标准化之前的箱线图

标准化之前的箱线图

数据标准化之后的箱线图

标准化之后的箱线图

数据标准化之前的密度曲线图

标准化之前的密度曲线图

数据标准化之后的密度曲线图

标准化之后的密度曲线图

通过这些图我们可以看出这12张芯片数据之间差异不大,标准化处理将所有芯片信号强度标准化到具有类似分布特征的区间内。为了更详细地了解芯片探针信号强度,我们可以使用 affyPLM 对单个芯片 CEL 数据进行可视化。

> # 从 CEL 文件读取探针信号强度:> celfiles.qc <-> # 对芯片 GSM24662.CEL 信号进行可视化:> image(celfiles.qc, which=1, add.legend=TRUE)> # 对芯片 GSM524665.CEL 进行可视化> # 这张芯片数据有些人为误差> image(celfiles.qc, which=4, add.legend=TRUE)> # affyPLM 包还可以画箱线图> # RLE (Relative Log Expression 相对表达量取对数) 图中> # 所有的值都应该接近于零。 GSM524665.CEL 芯片数据由于有人为误差而例外。> RLE(celfiles.qc, main="RLE")> # 也可以用 NUSE (Normalised Unscaled Standard Errors)作图比较.> # 对于绝大部分基因,标准差的中位数应该是1。> # 芯片 GSM524665.CEL 在这个图中,同样是一个例外> NUSE(celfiles.qc, main="NUSE")

标准的芯片 AffyPLM 信号图

标准的芯片 AffyPLM 信号图

存在人工误差的芯片 AffyPLM 信号图

存在人工误差的芯片 AffyPLM 信号图

CEL 数据的 RLE 图

RLE (Relative Log Expression) 图

CEL 数据的 NUSE 图

NUSE (Normalised Unscaled Standard Errors) 图

我们还可以通过层次聚类来查看样本之间的关系:

> eset <-> distance <- method="maximum"> clusters <-> plot(clusters)

CEL 数据的层次聚类图

层次聚类图

图形显示,与其他眼组织相比 HUVEC 样品是单独的一组,表现出组织类型聚集的一些特征,另外 GSM524665.CEL 数据在此图中并不显示为异常值。

数据过滤

现在我们可以对数据进行分析了,分析的第一步就是要过滤掉数据中的无用数据,例如作为内参的探针数据,基因表达无明显变化的数据(在差异表达统计时也会被过滤掉),信号值与背景信号差不多的探针数据。下面的 nsFilter 参数是为了不删除没有 Entrez Gene ID 的位点,保留有重复 Entrez Gene ID 的位点:

> celfiles.filtered <- require.entrez="FALSE," remove.dupentrez="FALSE)"> # 哪些位点被过滤掉了?为什么?> celfiles.filtered$filter.log$numLowVar[1] 27307$feature.exclude[1] 62

我们可以看出有 27307 个探针位点因为无明显表达差异(LowVar)被过滤掉,有 62 个探针位点因为是内参而被过滤掉。

keil551的芯片包不能用_r语言中使用Bioconductor 分析芯片数据相关推荐

  1. R语言回归模型构建、回归模型基本假设(正态性、线性、独立性、方差齐性)、回归模型诊断、car包诊断回归模型、特殊观察样本分析、数据变换、模型比较、特征筛选、交叉验证、预测变量相对重要度

    R语言回归模型构建.回归模型基本假设(正态性.线性.独立性.方差齐性).回归模型诊断.car包诊断回归模型.特殊观察样本分析.数据变换.模型比较.特征筛选.交叉验证.预测变量相对重要度 目录

  2. C 语言中的内存分析

    C 语言中的内存分析 一.进制 我们需要了解的4中进制:二进制.八进制.十进制.十六进制 #include <stdio.h> int main() { //默认情况下是十进制 intnu ...

  3. 包无法安装_R语言基础教程——第2章:R下载安装和环境搭建

    R语言安装包下载 官网下载R安装包 下载地址为:https://cran.r-project.org 进入链接,如下图所示,在页面顶部提供了三个下载链接,分别对应三种操作系统:Windows.Mac和 ...

  4. r语言 adf检验_r语言中如何进行两组独立样本秩和检验

    r语言中如何进行两组独立样本秩和检验​tecdat.cn 安装所需的包 wants <- c("coin") has <- wants %in% rownames(in ...

  5. r语言barplot函数图中加标签_R语言中绘制条形图的简单方法

    原标题:R语言中绘制条形图的简单方法 条形图(bar chart)是用宽度相同的条形的高度或长短来表示数据多少的图形.它主要用来展示不同分类(横轴)下某个数值型变量(纵轴)的取值.在实际中,条形图主要 ...

  6. r语言t检验输出检验统计量_R语言中实现T检验及可视化

    T检验,亦称student t检验(Student's t test),主要用于样本含量较小(例如n < 30),总体标准差σ未知的正态分布.T检验是用t分布理论来推论差异发生的概率,从而比较两 ...

  7. r语言plot函数x轴y轴名字_R语言中绘图的注释函数小结

    我们知道一个漂亮而清晰的图像的形成指定缺不了图像中细节的注释.那么今天我们就来总结下在R语言中那些注释函数. 首先,我们看下文本注释函数:text(),mtext(), legend().这些函数都是 ...

  8. r指引到文件夹_R语言中进行文件夹及文件夹内文件操作范例

    rm(list=ls()) path = 'J:/lab/EX29 –在R语言中进行文件(夹)操作' setwd(path) cat("file A\n", file=" ...

  9. c++ error函数_R语言中广义线性模型(GLM)中的分布和连接函数分析

    原文链接:http://tecdat.cn/?p=14874 通常,GLM的连接函数可能比分布更重要.为了说明,考虑以下数据集,其中包含5个观察值 x = c(1,2,3,4,5)y = c(1,2, ...

最新文章

  1. 花里胡哨,如何在Linux终端输出带有颜色的字体,将带颜色的字体赋值给变量...
  2. GIT服务器搭建(转载)
  3. Facebook 工程师是如何高效工作的?
  4. Boost:由内部绑定的值返回的智能指针的测试程序
  5. 15万个监控摄像头被黑,医院、学校、监狱都被看得一清二楚
  6. 在PPT设计中如何制作有效的图表?
  7. 项目中发现 unity运行挂机放那大约半小时,运行项目变得越来越卡顿
  8. c#中对xml文件的基本操作
  9. 在python中使用最小二乘法画出拟合曲线_Python基于最小二乘法实现曲线拟合示例...
  10. better-scroll使用的坑与心得
  11. 【软考高级:信息系统项目管理师】【信息项目十大管理】第二天:项目立项管理
  12. php框架 tp laravel,TP框架和Laravel框架的区别是什么
  13. c语言笔试题7(25),嵌入式软件工程师C语言笔试题(7页)-原创力文档
  14. 工业界论文被CVPR收录有捷径?| CVPR 2017
  15. TCP自时钟/拥塞控制/带宽利用之脉络半景解析
  16. 《日内交易策略-谷物期货交易实战指南》笔记
  17. JS基础特效---网页常用特效
  18. 义嘉泰带你了解环境光和接近传感器
  19. Codeforces - Pokémon Army
  20. 解读vs2003、vs2005、vs2008开发Windows CE环境、默认SDK开发包及测试

热门文章

  1. 打开软件后跳出服务器正在运行中,关于 服务器正在运行中,由于另一个程序正在运行中,此操作没法完成 问题的解决...
  2. 一些可以用于串口的一些通信协议
  3. 如何用计算机得出十三分之一,单片机原理及应用期末考试题试卷大全
  4. Nessus-7.0.1下载与应用
  5. [C/C++语言基础] —函数
  6. 隐式差分格式matlab,二维热传导方程隐式差分格式系数矩阵特征值的求取
  7. android 手机找回密码,如何使用android手机找回以前使用的无线密码
  8. RS232转RS484接线图
  9. 文明使用计算机 教案,三年级信息技术上册- 文明上网守公约 教案
  10. 解决RHEL7无法使用YUM源的问题