下载安装

if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("affy")
BiocManager::install("estrogen")

affy 包为 Bioconductor 之中一个用于数据预处理的包。

affy 包的功能只有一个:读取 affymetrix 的基因表达芯片数据,即CEL格式文件,然后处理成表达矩阵。

先解释以下为什么这个包叫这个名字,这是因为affy其实是一个生产芯片的公司,这个公司做的芯片所产生的的数据肯定不是拿过来就能用的,不同的实验组,不同的PM和MM都是需要处理的。所以他们官方出了一个工具包叫做affy,专门用来处理原始的实验数据。

Affymetrix 的探针(proble)一般是长度为25bp的寡聚核苷酸;探针总是以 perfect match 和 mismatch 成对出现,其信号值称为 PM 和 MM,成对的 perfect match 和 mismatch 有一个共同的 affyID。

CEL文件:信号值和定位信息

CDF文件:探针对在芯片上的定位信息

CEL文件的下载地址(以GSE1438为例),一般在网页的最下方,下载后解压到指定目录即可。

下载到本地并解压之后可以用下面的代码读取 cel 文件

读取过程比较费事,这里使用了 mas5() 对表达数据进行 normalization,当然也可以使用 rma() 函数

> library(affy)
> dir_cels <- "cel_files" # cel文件存放的路径
> affy_data <- ReadAffy(celfile.path = dir_cels)
> eset.mas5 <- mas5(affy_data)

理论上,处理得到的数据应该和直接从官网下载的表达量数据是一样的 即 XXX_series_matrix.txt.gz 文件

严格讲,这个芯片得到的表达矩阵,是需要过滤的。

setwd('../')
library(affy)
dir_cels='GSE34824_RAW'
data <- ReadAffy(celfile.path=dir_cels)
eset <- rma(data)
calls <- mas5calls(data) # get PMA calls
calls <- exprs(calls)
absent <- rowSums(calls == 'A') # how may samples are each gene 'absent' in all samples
absent <- which (absent == ncol(calls)) # which genes are 'absent' in all samples
rmaFiltered <- eset[-absent,] # filters out the genes 'absent' in all samples

54675 features 经过过滤后,剩下 42482 features

基因芯片的原始数据是一个 .cel 文件,当然在我们的 estrogen 包中自带了一小部分 .cel 数据,可以用来学习。

参考

http://treeh.cn/?id=22

https://www.jianshu.com/p/ca908850bd84

Affy包 estrogen包的更多相关文章

  1. 关于war包 jar包 ear包 及打包方法

    关于war包 jar包 ear包 及打包方法 war包:是做好一个web应用后,通常是网站打成包部署到容器中 jar包:通常是开发的时候要引用的通用类,打成包便于存放管理. ear包:企业级应用 通常 ...

  2. 记录一个UDP收包丢包的问题

    这几天写GB28181平台接入层代码,对收到的PS包进行解包时,总是出现误码,最终导致rtsp点播服务中画面花屏. 分析了码流抓包数据之后,发现网络上没有丢包,遂认为PS流解包代码有bug,于是埋头分 ...

  3. linux包之包管理命令rpm-yum

    背景 YUM(Yellow dog Updater, Modified)为多个Linux发行版的前端软件包管理器,例如 Redhat RHEL, CentOS & Fedora. YUM通过调 ...

  4. Python标准库03 路径与文件 (os.path包, glob包)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 路径与文件的简介请参看Linux文件系统 os.path包 os.path包主要是 ...

  5. 【MINA】粘包断包处理

    1.先解释下什么叫粘包和断包 粘包 就是数据以字节的形式在网络中传输,一个数据包的字节可能经过多次的读取粘合才能形成一个完整的数据包 断包 一次读取的内容可能包含了两个或多个数据包的内容,那么我们必须 ...

  6. c#有关udp可靠传输(包传输数据包) 升级

    在c#有关udp可靠传输(包传输数据包)我们讨论,UDP包的发送,可是上一个程序有一个问题.就是数据比較大.一个Message类序列化后都有2048B,而实际的数据量也就只是 50B罢了,这就说明当中 ...

  7. PL/SQL 编程(三 )程序包和包体,触发器,视图,索引

    一.程序包和包体 程序包(package):存储在数据库中的一组子程序.变量定义.在包中的子程序可以被其它程序包或子程序调用.但如果声明的是局部子程序,则只能在定义该局部子程序的块中调用该局部子程序. ...

  8. UNIX网络编程——Socket/TCP粘包、多包和少包, 断包

    为什么TCP 会粘包 前几天,调试mina的TCP通信, 第一个协议包解析正常,第二个数据包不完整.为什么会这样吗,我们用mina这样通信框架,还会出现这种问题? TCP(transport cont ...

  9. 【TCP协议】(3)---TCP粘包黏包

    [TCP协议](3)---TCP粘包黏包 有关TCP协议之前写过两篇博客: 1.[TCP协议](1)---TCP协议详解 2.[TCP协议](2)---TCP三次握手和四次挥手 一.TCP粘包.拆包图 ...

随机推荐

  1. @Bean修饰的方法参数的注入方式

    @Bean修饰的方法参数的注入方式: 方法参数默认注入方式为Autowired,即先根据类型匹配,若有多个在根据名称进行匹配. 1:复杂类型可以通过@Qualifier(value=“XXX”)限定; ...

  2. virtual DOM的作用:将DOM的维护工作由系统维护转交给virtual DOM维护

    virtual DOM的作用:将DOM的维护工作由系统维护转交给virtual DOM维护 两个方面:对应用端 & 对DOM端(渲染准备的计算) 1.将DOM状态的维护工作由系统维护转交给vi ...

  3. Java se课程设计详解——数据库接口类(1)

    开始做课程设计的时候根本无从下手,后来查阅资料后发现是先从数据库开始的.整个课程设计需要用到的如下图,今天总结一下数据库接口! 数据库接口需要用到两个类,一个是DAO.java,另一个是propert ...

  4. oracle 获取表\视图的列名

     select COLUMN_NAME FROM user_col_comments WHERE TABLE_NAME='视图名'  select COLUMN_NAME from all_tab_c ...

  5. BAT: 获取时间有空格问题

    最近在项目上需要把文件定时备份,用BAT文件来自动生成文件夹名,精确到秒: bat脚本时间设定如下: pushd E:\Test set T=%date:~0,10%-%time:~0,2%%time ...

  6. uni-app通过判断接口403跳转登录页面的问题

    需求: 当向后端请求接口返回 403 的时候,直接跳到登录页面让用户登录 实现方案: 在请求结束后拦截器中判断,如果是 403 就跳转 遇到难题: 一级页面(我的) onShow() 中有接口请求,用 ...

  7. OpenInstall实现APP无邀请码推广

    1.登录OpenInstall网站,这里会为你创建一个AppKey,而这个东西在web页面会用到. 2.在推广页面中加入推广下载. <script type="text/javascr ...

  8. IDEA Mac 快捷键

    智能提示 ⌘ -> command ⇧ -> shift ⌥ -> option ⬆ -> 上箭头 ⬇ -> 下箭头 ⌃ -> Control 编辑 快捷键 说明 ...

  9. Django框架(十三)--Django分页组件

    一.分页器 数据量大的话,可以分页获取,查看 例如:图书管理中,如果有成千上万本书,要是都在一个页面中渲染出来,会影响页面美观,所以就要用分页器分页渲染 二.分页器的使用 基本写法 基本写法: 后端: ...

  10. apache2.4

    介绍 Apache HTTP server是Apache软件基金会的一个开源的网页服务器,可以运行在几乎所有广泛使用的计算机平台上,由于跨平台和安全性被广泛使用,是目前最流行的web服务器软件之一,目 ...