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探针都有了对应的残差值和颜色,绘制成图像就是残差图了。
11、权重残差图、RLE和NUSE的更多相关文章
- 优化深度神经网络(一) dropout 初始化
Coursera吴恩达<优化深度神经网络>课程笔记(1)-- 深度学习的实用层面 1. Train/Dev/Test sets 训练集(Training sets).验证集(Develo ...
- Java 负载均衡
什么是负载均衡 负载均衡,英文 名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助.通过某种 负载分 ...
- Solr搜索解析及查询解析器用法概述
一.简介 大多数查询都使用 了标准的Solr语法.这种语法是Solr最常见的,由默认查询解析器负责处理.Solr的默认查询解析器是Lucene查询解析器[LuceneQParserPlugin类实现] ...
- R 《回归分析与线性统计模型》page121,4.4
rm(list = ls()) A = read.xlsx("xiti_4.xlsx",sheet = 4) names(A) = c("ord"," ...
- Spring Cloud Gateway简单入门,强大的微服务网关
我最新最全的文章都在南瓜慢说 www.pkslow.com,欢迎大家来喝茶! 1 简介 见名知义,Spring Cloud Gateway是用于微服务场景的网关组件,它是基于Spring WebFlu ...
- Kubernetes实战:高可用集群的搭建和部署
摘要:官方只提到了一句"使用负载均衡器将 apiserver 暴露给工作节点",而这恰恰是部署过程中需要解决的重点问题. 本文分享自华为云社区<Kubernetes 高可用集 ...
- 地区sql
/*Navicat MySQL Data Transfer Source Server : localhostSource Server Version : 50136Source Host : lo ...
- 查验身份证 (15 分) 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:
// test4.cpp : 此文件包含 "main" 函数.程序执行将在此处开始并结束.// #include "pch.h"#include <ios ...
- 前端极易被误导的css选择器权重计算及css内联样式的妙用技巧
记得大学时候,专业课的网页设计书籍里面讲过css选择器权重的计算:id是100,class是10,html标签是5等等,然后全部加起来的和进行比较... 我只想说:真是误人子弟,害人不浅! 最近,在前 ...
随机推荐
- Docker入门-数据挂载
Docker数据管理 在容器中管理数据主要有两种方式: 数据卷(Volumes) 挂载主机目录(Bind mounts) 数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很 ...
- 简易的文件上传 tp5
/** * 保存新建的资源 * @return \think\Response */ public function save() { //判断一下提交类型 if ($this->request ...
- Spring——原理解析-利用反射和注解模拟IoC的自动装配
解析Spring的IoC容器基于注解实现的自动装配(自动注入依赖)的原理 1.本文案例 使用注解和反射机制来模拟Spring中IoC的自动装配功能 定义两个注解:@Component,用来标注组件:@ ...
- 9. 获得图片路径,构造出训练集和验证集,同时构造出相同人脸和不同人脸的测试集,将结果存储为.csv格式 1.random.shuffle(数据清洗) 2.random.sample(从数据集中随机选取2个数据) 3. random.choice(从数据集中抽取一个数据) 4.pickle.dump(将数据集写成.pkl数据)
1. random.shuffle(dataset) 对数据进行清洗操作 参数说明:dataset表示输入的数据 2.random.sample(dataset, 2) 从dataset数据集中选取2 ...
- CondenseNet: An Efficient DenseNet using Learned Group Convolutions
1. 摘要 作者提出了一个前所未有高效的新奇网络结构,称之为 CondenseNet,该结构结合了密集连接性和可学习的分组卷积模块. 密集连接性有利于网络中的特征复用,而可学习的分组卷积模块则可以移除 ...
- 解决打开AS多次提示Untrusted Server's certificate问题
解决方法如下: 打开Studio左上角的file—>Setting-->Tools-->Server Certificates ->最后勾上 Accept non-truste ...
- if-else判断语句
<1>if-else的使用格式 if 条件: 满足条件时要做的事情1 满足条件时要做的事情2 满足条件时要做的事情3 ...(省略)... else: 不满足条件时要做的事情1 不满足条件 ...
- Web自动化测试—— Selenium+Python Windows环境搭建
环境搭建前的准备: 1.到Python官网下载Python安装包:https://www.python.org/ 如果不能访问,可以试试下面的解决办法: a).安装VPN网络连接工具,推荐用Green ...
- 63不同路径II
题目: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” ).机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为“Finish”).现在考 ...
- python学习笔记:(十一)模块
模块是指一个包含定义的函数和变量的文件,其后缀名为.py.模块可以被别的程序引用,并使用其中的函数等功能. 1.import语句 如果需要使用模块,只需要在新模块中导入模块.使用import关键字 如 ...