11、权重残差图、RLE和NUSE
affyPLM包可以对芯片原始数据进行拟合回归,最后得到芯片权重(Weights)残差(Residuals)图、相对对数表达(RLE,Relative log expression)箱线图、相对标准差(NUSE,Normalized unscaled standard errors)箱线图
以样品GSM286757.CEL、GSM286756.CEL、GSM286763.CEL、GSM286762.CEL、GSM286759.CEL、GSM286760.CEL、GSM286765.CEL、GSM286766.CEL为例:
library(affyPLM)
rawData<-ReadAffy("GSM286757.CEL","GSM286756.CEL",
"GSM286763.CEL","GSM286762.CEL",
"GSM286759.CEL","GSM286760.CEL",
"GSM286765.CEL","GSM286766.CEL")
Pset <- fitPLM(rawData)
boxplot(Pset,col=c(1:8),main="NUSE") ## NUSE图
Mbox(Pset,col=c(1:8),main="RLE") ## RLE图
image(Pset,type="weights",which=1,main="Weights") ## 权重图
image(Pset, type="resids", which=2, main="Residuals") ## 残差图
image(Pset, type="sign.resids", which=2, main="Residuals sign") ## 符号残差图
从上面的代码可以看出,经过了fitPLM的计算得到了权重参差、相对对数表达、相对标准差的数据,但是这些数据在Pset中是怎样存储的呢?
运行下面的代码可以看清楚:
model=PM ~ -1 + probes + samples
model.param=verify.model.param(rawData,model)
variable.type <- verify.variable.types (model,c(default="factor"))
constraint.type <- verify.constraint.types(model,c(default="contr.treatment"))
n.probesets <- length(geneNames(rawData))
R.model <- PLM.designmatrix3(rawData,model,variable.type=variable.type,constraint.type=constraint.type)
output <- verify.output.param()
modelparam <- verify.model.param(rawData,model,model.param=model.param)
background.param <- verify.bg.param(R.model, "RMA.2",background.param = list())
normalize.param <- verify.norm.param(R.model, "quantile",normalize.param=list())
Fitresults <- .Call("R_rlm_PLMset_c",pm(rawData),mm(rawData),
probeNames(rawData),
n.probesets,
R.model,
output,
modelparam,
TRUE,
"RMA.2",
background.param,
TRUE,
"quantile",
normalize.param,
0,
PACKAGE="affyPLM")
其中:
一、Fitresults[[4]]和NUSE有关,它是一个阵列,行数是探针组数目,列数是样品数,长度是探针组数目*样品数
grp.rma.se1.median <- apply(Fitresults[[4]], 1,median,na.rm=TRUE)
grp.rma.rel.se1.mtx <- sweep(Fitresults[[4]],1,grp.rma.se1.median,FUN='/')
## 以上2步操作是让每一行都减去该行的中位数
boxplot(grp.rma.rel.se1.mtx,col=c(1,2,3,4,5,6,7,8),main="NUSE")
二、Fitresults[[1]]和RLE有关,它是一个阵列,行数是探针组数目,列数是样品数,长度是探针组数目*样品数
medianchip <- apply(Fitresults[[1]], 1, median)
M <- sweep(Fitresults[[1]],1,medianchip,FUN='-')
## 以上2步操作是让每一行都减去该行的中位数
boxplot(M,col=c(1,2,3,4,5,6,7,8),main="RLE")
三、Fitresults[[3]][[1]]和权重图有关,它是一个阵列,行数是PM探针数目,列数是样品数,长度是探针数目*样品数。在本例中,PM探针数目是604258,样品数是8,那么第一个样品的权重值是Fitresults[[3]][[1]][,1],长度为探针数目604258
## 查看第一个样品的前50个权重值
> Fitresults[[3]][[1]][,1][1:50]
1007_s_at 1007_s_at 1007_s_at 1007_s_at 1007_s_at 1007_s_at 1007_s_at
1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
1007_s_at 1007_s_at 1007_s_at 1007_s_at 1007_s_at 1007_s_at 1007_s_at
1.0000000 0.8790510 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
1007_s_at 1007_s_at 1053_at 1053_at 1053_at 1053_at 1053_at
1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 0.2046946 1.0000000
1053_at 1053_at 1053_at 1053_at 1053_at 1053_at 1053_at
1.0000000 1.0000000 1.0000000 0.4951793 1.0000000 1.0000000 1.0000000
1053_at 1053_at 1053_at 1053_at 117_at 117_at 117_at
1.0000000 0.4462245 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
117_at 117_at 117_at 117_at 117_at 117_at 117_at
1.0000000 1.0000000 0.6728794 1.0000000 0.3876992 0.8266238 0.7217806
117_at 117_at 117_at 117_at 117_at 117_at 121_at
1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
121_at
1.0000000
## 绘制权重图的颜色
col.weights <- terrain.colors(25)
> col.weights
[1] "#00A600FF" "#10AC00FF" "#20B100FF" "#32B700FF" "#45BD00FF" "#59C300FF"
[7] "#6DC900FF" "#83CE00FF" "#9AD400FF" "#B2DA00FF" "#CBE000FF" "#E6E600FF"
[13] "#E6D612FF" "#E7C924FF" "#E8BF36FF" "#E9B848FF" "#EAB35AFF" "#EBB16DFF"
[19] "#ECB27FFF" "#EDB592FF" "#EEBCA5FF" "#EFC5B8FF" "#F0D1CBFF" "#F1E0DFFF"
[25] "#F2F2F2FF"
这里有25个颜色,[1]~[25],从草绿色渐变到橘黄色,再渐变到接近白色。越小的权重值分配到的颜色越接近草绿色,越大的权重值越接近白色。这样,每个PM探针都有了对应的权重值和颜色,绘制成图像就是权重图了。
四、Fitresults[[8]] [[1]]和残差图有关系,原理和权重图是一样的。
符号残差图根据Fitresults[[8]] [[1]]的数据的正负号来确定颜色,正数红色,0白色,负数蓝色。对Fitresults[[8]] [[1]]进行sign(Fitresults[[8]] [[1]])*(log2(abs(Fitresults[[8]] [[1]])+1))计算后得到的数据用于残差图,残差图的颜色是:
col.resids <- pseudoPalette(low="blue",high="red",mid="white")
> col.resids
[1] "#0000FF" "#0B0BFF" "#1515FF" "#2020FF" "#2A2AFF" "#3535FF" "#4040FF"
[8] "#4A4AFF" "#5555FF" "#6060FF" "#6A6AFF" "#7575FF" "#8080FF" "#8A8AFF"
[15] "#9595FF" "#9F9FFF" "#AAAAFF" "#B5B5FF" "#BFBFFF" "#CACAFF" "#D4D4FF"
[22] "#DFDFFF" "#EAEAFF" "#F4F4FF" "#FFFFFF" "#FFFFFF" "#FFF4F4" "#FFEAEA"
[29] "#FFDFDF" "#FFD5D5" "#FFCACA" "#FFBFBF" "#FFB5B5" "#FFAAAA" "#FF9F9F"
[36] "#FF9595" "#FF8A8A" "#FF8080" "#FF7575" "#FF6A6A" "#FF6060" "#FF5555"
[43] "#FF4A4A" "#FF4040" "#FF3535" "#FF2B2B" "#FF2020" "#FF1515" "#FF0B0B"
[50] "#FF0000"
颜色从蓝色渐变到红色,再渐变到白色。越小的残差值分配到的颜色越接近蓝色,
这里有50个颜色,[1]~[50],从蓝色渐变到红色,再渐变到接近白色。越小的残差值分配到的颜色越接近蓝色,越大的权重值越接近白色。这样,每个PM探针都有了对应的残差值和颜色,绘制成图像就是残差图了。
转载于:https://www.cnblogs.com/xianwen/p/4522359.html
11、权重残差图、RLE和NUSE相关推荐
- 2D姿态估计regression-based之RLE损失函数
参考:镜子,Indigo6 使用特定损失函数的前提是我们对标签的分布进行了某种假设,在这种假设的前提下通过极大似然法推出所有样本构成的极大似然公式,然后再使用凸优化的方法比如常见的梯度下降法进行求解. ...
- Bioconductor分析基因芯片数据第五章
使读者初步了解使用Bionconductor完成基因芯片预处理的流程 接着详细讲解戏弄i按预处理和数据分析等内容 最后深入了解实际工作中会遇到的芯片处理问题以及如何用学到的只是解决问题 目的:掌握芯片 ...
- 高通量芯片数据分析:转录组芯片数据分析
利用R的bioconductor包进行分析.由于安装的是R3.5以上版本所以实际用的是用biomanager指令,其他基本一样. 不同的包有各类坑,具体可以查阅bioconductor官网寻找解决办法 ...
- 负载均衡算法及其Java代码实现
负载均衡算法及其Java代码实现 什么是负载均衡 负载均衡,英文 名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须 ...
- java图片转字符_java实现图片转字符图(看的过去的亚子)
普通图片转换为ASSIC码灰度图片 原图: 效果图: 转换方法 读取图片文件到BufferedImage 读取BufferedImage中的RGB值 将RGB三色值按照(0.3,0.59,0.11)权 ...
- Kubernetes实战:高可用集群的搭建和部署
摘要:官方只提到了一句"使用负载均衡器将 apiserver 暴露给工作节点",而这恰恰是部署过程中需要解决的重点问题. 本文分享自华为云社区<Kubernetes 高可用集 ...
- (1)Deep Learning之感知器
What is deep learning? 在人工智能领域,有一个方法叫机器学习.在机器学习这个方法里,有一类算法叫神经网络.神经网络如下图所示: 上图中每个圆圈都是一个神经元,每条线表示神经元之间 ...
- mysql主主复制和mha_MySQL第二章主从复制MHA高可用
1.主从复制架构演变介绍 1.1基础结构 1)一主一从 2)一主多从 3)多级主从 4)双主 5)循环复制 1.2高级应用架构演变 1.2.1高性能架构 1)读写分离架构(读性能较高) 代码级别 My ...
- 网关 翻译版本 spring cloud gateway
Spring Cloud Gateway 官网原文地址 https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html ...
- 日撸java三百行day63-65
文章目录 说明 1. Day63-65 AdaBoosting算法 1 AdaBoostin举例 1.1数据样本 1.2 举例过程 2. 理论知识 3. 总结 2. 代码理解 1. WeightedI ...
最新文章
- Keras【Deep Learning With Python】更优模型探索Keras实现LSTM
- 写在NOIP2018后
- 神经网络调参经验大汇总
- Tensorflow:批归一化和l1l2正则化
- 凸优化第六章逼近与拟合 6.1范数逼近
- 个人CTF入门训练过程WriteUp
- 当前可用的喜马拉雅专辑下载器
- 简单理解t检验与秩和检验
- HP M280 鼠标驱动
- Pcblayout——立创EDA
- ardupilot rover ardurover 电机相关源码 PreArm servo function 33 unassigned
- 复杂网络是怎么应用于神经网络上
- Dolphinscheduler/海豚调度器的安装
- 01超精美渐变色动态背景完整示例【CSS动效实战(纯CSS与JS动效)】
- navicat ssh postgresql 报错:no password supplied
- 仙人掌之歌——上线运营(1)
- MySQL 存储引擎 (SphinxSE)安装详解
- SassPassIass
- Jboss与jdk版本不兼容问题
- stm32点亮LED的有关寄存器配置CRL、CRH、IDR、ODR
热门文章
- 各层电子数排布规则_电子层排布,电子的排布规律
- 基于matlab的Guass-Seidel(高斯--赛德尔) 迭代法求解线性方程组
- 马老师的996,不是鸡汤,是​我的人生信条!
- c语言只中原子变量含义,c语言中的原子操作 - osc_bkg5rgl1的个人空间 - OSCHINA - 中文开源技术交流社区...
- SAP PM快速指南
- java二分法流程图,程序框图的法(二分法).ppt
- 谷歌(google)、百度、必应d等高级搜索指令使用
- PHPExcel导出出现白页
- 敏捷开发 建立愿景、使命_使用愿景板创建敏捷产品策略的10条技巧
- 关于Arcgis中的裁剪说明