有了探针排布图像的基础,我们就可以更好地理解CDF文件了。假如每个探针的位置用一个坐标表示,以左上角为(0,0),那么整张芯片的坐标就如下图(行数n必须等于列数m,这里共有n*m个探针):

0,0

1,0

2,0

3,0

m,0

0,1

0,2

0,3

0,n

那么这些探针怎么根据坐标对应到探针组呢?我们来看CDF文件的格式:

[CDF]

Version=GC3.0

[Chip]

Name=HG-U133A_2

Rows=732

Cols=732

NumberOfUnits=22277

MaxUnit=23214

……

[Unit1000_Block1]

Name=1007_s_at

BlockNumber=1

NumAtoms=16

NumCells=32

StartPosition=0

StopPosition=15

CellHeader=X Y PROBE FEAT ……

Cell1=416 177 N control ……

Cell2=416 178 N control ……

Cell3=569 289 N control ……

……

Cell31=568 9 N control ……

Cell32=568 10 N control ……

……

HG-U133A_2是芯片型号,行数(Rows)和列数(Cols)都是732,探针组数目(NumberOfUnits)是22277。其中一个探针组名称为1007_s_at,它包含16对探针,32个Cell(一个Cell代表一个探针,一个特征)。我们已经知道,PM和MM是成对出现的,而且PM总是在与之对应的MM的上方,由此可判断出Cell1和Cell2是一对探针,因为它们的X坐标都是416,且Cell1的Y坐标比Cell2小1,Cell1是PM,Cell2是与之对应的MM。

我们也可以用R语言来获取1007_s_at探针组的PM/MM探针的位置:

library(affy)

rawData <- ReadAffy()

> pmindex(rawData,"1007_s_at") ## MM探针用mmindex(rawData,”1007_s_at”)

$`1007_s_at`

[1] 129981 212118 393384  84268 429999 425542 431862  72955 431473  99100

[11] 504441 441769 340582 205738 460599 7157

这样就能看到1007_s_at探针组的16个PM探针在阵列中的位置了。可以看到,这里的位置已经不是用坐标(X,Y)来表示了,而是用index=(X+Y*列数+1)来表示。如,Cell1是第一个PM,它的X=416,Y=177,那么129981就刚好等于416+177*732+1。相反,如果我们知道了位置,怎么反推出它的坐标?如位置index=129981,我们可以:Y=floor((index-1)/列数)=floor((129981-1)/732)=177,X=(index-1)-列数*Y=(129981-1)-732*177=416。

每种型号的芯片都有着对应的探针定位信息,所以用R语言做分析的时候会自动下载对应的CDF包(若未安装的话),如HG-U133A_2型号下载hgu133a2cdf包。HG-U133A_2是直接从CEL文件读取出来的型号名称,把HG-U133A_2的所有大写字母改成小写字母并去掉短横线(可以用R语言的cleancdfname方法实现),并且在末尾加上“cdf”就是对应的cdf包的名字。

02、CDF文件的更多相关文章

  1. 关于Mathematica 的cdf 文件的嵌入应用

    // // '); cdf.embed('http://files.cnblogs.com/Leonhard-E/AreaOfANormalDistribution.cdf', 635, 913); ...

  2. oracle 11g 数据库恢复技术 ---02 控制文件

    oracle 11g 数据库恢复技术 ---02 控制文件 SYS@ orcl >show parameter control_file NAME TYPE VALUE ------------ ...

  3. PHP学习笔记 02 之文件上传

    我们了解了表单传值后,这些我就可以完成PHP的文件上传了.我们了解PHP文件上传前,先了解PHP文件上传的原理. 一.PHP上传文件原理 第一步:将本地的文件通过form表单上传到服务器的临时目录中, ...

  4. 【C#进阶系列】02 PE文件,程序集,托管模块,元数据——还是那个Hello world

    好了,还是这张图,还是一样的Hello world. 因为本章其实很多都是讲一些命令行编译啊什么鬼的配置类的东西,要用的时候直接百度或者回头查书就可以了, 所以了解一下也就行了,也没有记录下来,接下来 ...

  5. Android 数据存储02之文件读写

    Android文件读写 版本 修改内容 日期 修改人 V1.0 原始版本 2013/2/25 skywang Android文件读写的有两种方式.一种,是通过标准的JavaIO库去读写.另一种,是通过 ...

  6. OpenCV 学习笔记 02 处理文件、摄像头和图形用户界面

    在处理文件前需要引入OpenCV库,同时也引入unmpy库 import cv2 import numpy as np 1 基本的读写操作 1.1 图像文件的读写操作 1.1.1 图像文件的读取操作 ...

  7. 02 svn 文件提交与目录结构

    一:文件操作给svn服务器提交程序文件: ① 在被提交文件的身上点击右键------> tortoiseSVN----->add ② 在被提交文件身上点击右键------> comm ...

  8. 03、重定义CDF

    有一篇文章“Evolving gene/transcript definitions significantly alter the interpretation of GeneChip data”, ...

  9. .net 实现Office文件预览 Word PPT Excel 2015-01-23 08:47 63人阅读 评论(0) 收藏

    先打个广告: .Net交流群:252713569 本人QQ :524808775 欢迎技术探讨, 近期公司要求上传的PPT和Word都需要可以在线预览.. 小弟我是从来没有接触过这一块的东西 感觉很棘 ...

随机推荐

  1. #pragma once vs #ifndef

    最后编辑: 2019-11-20 #pragma once 是一个非标准但被广泛支持的预处理符号, 其主要作用是防止文件重复引入问题. 在头文件中,可以定义 #pragma once 或者 #ifnd ...

  2. Java中String.getBytes()

    在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组.这个表示在不通OS下,返回的东西不一样!  String.getBytes(String decode) ...

  3. C#程序模拟登录批量获取各种邮件内容信息

    一般来说,如果现实中你有这样一种需求“假如你是褥羊毛的羊毛党,你某日发现了一个app有一个活动,通过邮箱注册账号激活可以领5元红包,而恰恰你手上又有一批邮箱可用,那么批量获取邮箱中的激活链接去激活则是 ...

  4. .item布局设置分割线

    <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" ...

  5. ActiveMQ 初学-1:ActiveMQ 创建连接对象

      县创建mq的连接工厂对象 ActiveMQConnectionFactory   // 1 建立ConnectionFactory 工厂对象,需要填入,需要填入用户名密码, // 用户名 密码 在 ...

  6. spark 笔记 16: BlockManager

    先看一下原理性的文章:http://jerryshao.me/architecture/2013/10/08/spark-storage-module-analysis/ ,http://jerrys ...

  7. SAEJ1757-1-2015(一)

    SURFACE VEHICLE STANDARD           表面车辆标准 Standard Metrology for Vehicular Displays             车载显示 ...

  8. 写10个简单的 linux 命令?

    mkdir 创建文件夹rmdir 删除文件夹rm 删除文件 mv 移动文件cp 拷贝文件cat 查看文件 tail 查看文件尾部more 分页查看文件cd 切换当前目录 ls 列出文件清单reboot ...

  9. [Flask]使用sqlite数据库

    app.py from flask import Flask from flask_sqlalchemy import SQLAlchemy import os basedir = os.path.a ...

  10. Python中的super()用法

    Python中对象方法的定义很怪异,第一个参数一般都命名为self(相当于其它语言的this,比如:C#),用于传递对象本身,而在调用的时候则不 必显式传递,系统会自动传递. 今天我们介绍的主角是su ...