为了验证杂交的质量,Affymetrix公司加入了两类嵌入探针组:

一、poly-A内参:包括lys、phe、thr、dap

对应的探针组名称为:AFFX-r2-Bs-lys-3_at、AFFX-r2-Bs-dap-3_at、

AFFX-r2-Bs-phe-3_at、AFFX-r2-Bs-thr-3_s_at

(注意:一般只取3’的表达值)

期望检测到的信号强度为lys<phe<thr<dap

期望lys检测值(Detection Call)为P

以样品GSM362947_LTT.CEL和GSM362948_LTT.CEL为例:

1)获取lys、phe、thr、dap的信号强度

library(yaqcaffy)

rawData<-ReadAffy("GSM362947_LTT.CEL","GSM362948_LTT.CEL")

yaqcResult<-yaqc(rawData)

> yaqcResult@morespikes[grep("(lys|phe|thr|dap).*3",rownames(yaqcResult@morespikes), ignore.case = TRUE),]

GSM362947_LTT.CEL GSM362948_LTT.CEL

dap3         621.85881         618.93019

thr3         157.46776         141.04182

lys3          26.22679          24.34060

phe3          80.33482          78.98733

在这个例子中,两个样品的lys、phe、thr、dap信号强度都符合lys<phe<thr<dap

2)arrayanalysis的问题

用R语言软件arrayanalysis分析以上样品得出的结论却是:

这明显不符合lys<phe<thr<dap,这是为什么?

我们先来看看yaqcResult@morespikes是什么:

GSM362947_LTT.CEL GSM362948_LTT.CEL

b5           102.92636         123.20557

b3            98.75225         106.84035

bm           113.12133         129.45077

c5           298.87382         322.52600

c3           361.89032         421.07440

d5          1289.20872        1334.69642

d3          1489.85897        1702.89382

dap5         303.57364         156.58720

dap3         621.85881         618.93019

dapm         414.50848         333.24881

thr5         108.41316          39.60845

thr3         157.46776         141.04182

thrm         129.56930          98.51053

lys5          23.28581          21.26793

lys3          26.22679          24.34060

lysm          30.29455          28.88963

phe5          31.29219          12.49173

phe3          80.33482          78.98733

phem          47.31779          32.76261

在arrayanalysis的源码functions_imagesQC.R中,先用正则表达提取出yaqcResult@morespikes中符合"(lys|phe|thr|dap).*3"条件的:

> spnames<-rownames(yaqcResult@morespikes[grep("(lys|phe|thr|dap).*3", # only 3' !

+ rownames(yaqcResult@morespikes), ignore.case = TRUE),])

> spnames

[1] "dap3" "thr3" "lys3" "phe3"

注意到spnames的顺序是"dap3" "thr3" "lys3" "phe3"而不是"lys3" "phe3" "thr3" "dap3"

然后把名称为spnames的探针组也就是"dap3" "thr3" "lys3" "phe3"的信号强度赋给sprep

> sprep<-t(yaqcResult@morespikes[spnames,])

> sprep

dap3     thr3     lys3     phe3

GSM362947_LTT.CEL 621.8588 157.4678 26.22679 80.33482

GSM362948_LTT.CEL 618.9302 141.0418 24.34060 78.98733

sprep的数据就直接用来作图了,所以上图的信号强度趋势的顺序应该是dap、thr、lys、phe,而不是预想的lys、phe、thr、dap

(现在我所使用的arrayanalysis版本确实存在这个问题,但是也许以后会改进)

3)获取lys的检测值:

calls<-detection.p.val(rawData)$call

lysCall<-calls[rownames(calls)[grep("AFFX-r2-Bs-lys-3_at",rownames(calls), ignore.case = TRUE)],]

> lysCall

GSM362947_LTT.CEL.present  GSM362948_LTT.CEL.present

"P"                       "P"

结论:两个样品的lys的检测值都为P

二、杂交内参:包括BioB、BioC、BioD、CreX

对应的探针组名称为:AFFX-r2-Ec-bioB-3_at、AFFX-r2-Ec-bioC-3_at、

AFFX-r2-Ec-bioD-3_at、AFFX-r2-P1-cre-3_at

(注意:一般只取3’的表达值)

期望检测到的信号强度为BioB<BioC<BioD<CreX

期望BioB检测值(Detection Call)为P

以样品GSM286756.CEL为例:

1)获取BioB、BioC、BioD、CreX的信号强度

library(simpleaffy)

qcResult<-qc(rawData)

> spikeInProbes(qcResult)

AFFX-r2-Ec-bioB-3_at AFFX-r2-Ec-bioC-3_at

GSM362947_LTT.CEL             6.625742             8.499409

GSM362948_LTT.CEL             6.739313             8.717931

AFFX-r2-Ec-bioD-3_at AFFX-r2-P1-cre-3_at

GSM362947_LTT.CEL             10.54096            12.37574

GSM362948_LTT.CEL             10.73377            12.48219

在这个例子中,两个样品的BioB、BioC、BioD、CreX信号强度都符合BioB<BioC<BioD<CreX

2)获取BioB的检测值:

> show(yaqcResult)

GSM362947_LTT.CEL   GSM362948_LTT.CEL

……

AFFX-r2-Ec-bioB-3_at_call  "P"                 "P"

……

结论:两个样品的BioB检测值都为P

三、计算poly-A内参和杂交内参的信号强度表达值采用了JustMAS算法,芯片中必须含有MM探针。除此之外,芯片中还要包含AFFX-r2-Bs-lys-3_at、AFFX-r2-Bs-dap-3_at、AFFX-r2-Bs-phe-3_at、AFFX-r2-Bs-thr-3_s_at、AFFX-r2-Ec-bioB-3_at、AFFX-r2-Ec-bioC-3_at、AFFX-r2-Ec-bioD-3_at、AFFX-r2-P1-cre-3_at探针组。不过这些步骤都由yaqc和qc函数完成了,读者不必过多关心JustMAS算法。yaqc和qc有一点不同,就是计算出信号强度表达值x后,yaqc会取2的x次方,qc则是2的x次方再取2的对数,也就是又变回x了。

07、poly-A内参和杂交内参(arrayanalysis的问题)的更多相关文章

  1. 相机标定过程(opencv) + matlab参数导入opencv + matlab标定和矫正

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 辛苦原创所得,转载请注明出处 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...

  2. SfMLearner论文笔记——Unsupervised Learning of Depth and Ego-Motion from Video

    1. Abstract 提出了一种无监督单目深度估计和相机运动估计的框架 利用视觉合成作为监督信息,使用端到端的方式学习 网络分为两部分(严格意义上是三个) 单目深度估计 多视图姿态估计 解释性网络( ...

  3. Autoware 进行 Robosense-16 线雷达与 ZED 双目相机联合标定!

    项目要标定雷达和相机,这里记录下我标定过程,用的速腾 Robosense - 16 线雷达和 ZED 双目相机. 一.编译安装 Autoware-1.10.0 我没有安装最新版本的 Autoware, ...

  4. MySQL--运维内参中的binlog_summary脚本

    #!/bin/bash ##===================================================## ## 脚本出自<MySQL运维内参> ##===== ...

  5. Revit API取得变量的内参名称

    与取得元素变量的内参名称类别有个BuiltInParameter //取得内参名称 [Transaction(TransactionMode.Manual)] [Regeneration(Regene ...

  6. 摄像机内参相关(3ds max)

    一般的原理参考:http://ksimek.github.io/2012/08/13/introduction/ 对于3ds max建模时使用的target camera,如果想得到它的内外参,可以利 ...

  7. Nginx实现内参:为什么架构很重要?

    Nginx在web开发者眼中就是高并发高性能的代名词,其基于事件的架构也被众多开发者效仿.我从Nginx的网站找到一篇技术文章将Nginx是怎样实现的,文章是Nginx的产品老大Owen Garret ...

  8. 极客时间|AI技术内参

    学习进度: 014 | 精读AlphaGo Zero论文

  9. imu内参标定

    https://medium.com/@tomas789/iphone-calibration-camera-imu-and-kalibr-33b8645fb0aa how kalibr model ...

随机推荐

  1. AcWing:110. 防晒(贪心)

    有C头奶牛进行日光浴,第i头奶牛需要minSPF[i]到maxSPF[i]单位强度之间的阳光. 每头奶牛在日光浴前必须涂防晒霜,防晒霜有L种,涂上第i种之后,身体接收到的阳光强度就会稳定为SPF[i] ...

  2. html密码框value为空,但是总有默认密码(原)

    input输入框加属性:autocomplete="new-password" ,浏览器就不会给他填充默认密码. <input class="form-contro ...

  3. R_Studio(神经网络)BP神经网络算法预测销量的高低

    BP神经网络 百度百科:传送门 BP(back propagation)神经网络:一种按照误差逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络 #设置文件工作区间 setwd('D:\\ ...

  4. C++入门经典-例3.17-使用while循环进行计算

    1:代码如下: // 3.17.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> usin ...

  5. LeetCode----两两交换链表中的节点

    给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 说明: 你的算法只能使用常数的 ...

  6. js 函数定义的方式

    js 函数定义的方式 一.总结 一句话总结: 最常见就下面三种 最常见:function func1([参数]){/*函数体*/} 将匿名函数赋值给变量:var func2=function([参数] ...

  7. 后盾网lavarel视频项目---3、lavarel中子控制器继承父控制器以判断是否登录

    后盾网lavarel视频项目---3.lavarel中子控制器继承父控制器以判断是否登录 一.总结 一句话总结: 在common控制器的构造方法中验证登录中间件,其它的控制器继承common控制器 p ...

  8. SpringMvc 支持一下类型Serlvet 原生的 API 作为目标方法的参数

    /** * 可以使用 Serlvet 原生的 API 作为目标方法的参数 具体支持以下类型 * * HttpServletRequest * HttpServletResponse * HttpSes ...

  9. 7. 进行图片的数据补全和增强(随机亮度,随机饱和度,随机翻转) Image.open(进行图片的读入) 2.ImageEnhance.Brightness(亮度变化) 3.ImageEnhance.Contrast(饱和度变化) 4.enhance_image.transpose(图片随机翻转) 5.enhance_image.save(进行图片保存)

    1.Image.open(image_path)  进行图片的打开 参数说明:image_path 表示图片的路径 2. ImageEnhance.Brightness(image)  # 进行图片的 ...

  10. linux添加新用户

    使用root用户adduser yj 后面操作有提示 用这种方法新建的用户会在home下生成用户文件夹