有一篇文章“Evolving gene/transcript definitions significantly alter the interpretation of GeneChip data”,提到了“Our results demonstrate that the original Affymetrix probe set definitions are inaccurate, and many conclusions derived from past GeneChip analyses 40 may be significantly flawed. It will be beneficial to re-analyze existing GeneChip data with updated probe set definitions”,意思是说原始的Affymetrix探针组定义是不准确、过时的,要重定义探针组(Custom CDF)。

重定义的格式包括:

名称

含义

ENTREZG

REFSEQ

ENSG

ENSE

ENST

VEGAG

VEGAE

VEGAT

TAIRG

TAIRT

UG

MIRBASEF

MIRBASEG

物种包括:

名称

含义

简写

Anopheles gambiae

冈比亚疟蚊

Ag

Arabidopsis thaliana

拟南芥

At

Bos taurus

Bt

Caenorhabditis elegans

秀丽隐杆线虫

Ce

Canis familiaris

犬类

Cf

Danio rerio

鲐鱼类

Dr

Drosophila melanogaster

黑腹果蝇

Dm

Gallus gallus

原鸡

Gg

Homo sapiens

人类

Hs

Macaca mulatta

猕猴

MAmu

Mus musculus

小家鼠

Mm

Oryza sativa

Os

Rattus norvegicus

鼠类

Rn

Saccharomyces cerevisiae

酿酒酵母

Sc

Schizosaccharomyces pombe

粟酒裂殖酵母

Sp

Sus scrofa

野猪

Ss

在“02、CDF文件”中提到过,每种型号的芯片都有着对应CDF包,那么重定义后CDF的名称命名如下(加号代表连接,不要写进去):

原CDF包名+物种简写小写+格式名小写

如HG-U133_Plus_2阵列原本对应hgu133plus2包,如果选择了Homo sapiens(人类物种),ENSG格式,那么就对应hgu133plus2hsensgcdf包了。

获取hgu133plus2的探针组名称,可以:

library(affy)     ## 导入affy包
cdfname <- "hgu133plus2"
cdfname <-"hgu133plus2hsensgcdf"
how = getOption("BioC")$affy$probesloc
verbose = FALSE
badOut <- list()
for (i in :length(how))
{
cur <- how[[i]]
envir <- switch(cur$what,
environment = cdfFromEnvironment(cdfname, cur$where, verbose),
libPath = cdfFromLibPath(cdfname, cur$where, verbose = verbose),
bioC = cdfFromBioC(cdfname, cur$where, verbose))
}
genenames <- ls(envir) ## 探针组名称
> length(genenames) ## 探针组个数
[]
> genenames[:] ## 输出前100个探针组名称
[] "1007_s_at" "1053_at" "117_at" "121_at"
[] "1255_g_at" "1294_at" "1316_at" "1320_at"
[] "1405_i_at" "1431_at" "1438_at" "1487_at"
[] "1494_f_at" "1552256_a_at" "1552257_a_at" "1552258_at"
[] "1552261_at" "1552263_at" "1552264_a_at" "1552266_at"
[] "1552269_at" "1552271_at" "1552272_a_at" "1552274_at"
[] "1552275_s_at" "1552276_a_at" "1552277_a_at" "1552278_a_at"
[] "1552279_a_at" "1552280_at" "1552281_at" "1552283_s_at"
[] "1552286_at" "1552287_s_at" "1552288_at" "1552289_a_at"
[] "1552291_at" "1552293_at" "1552295_a_at" "1552296_at"
[] "1552299_at" "1552301_a_at" "1552302_at" "1552303_a_at"
[] "1552304_at" "1552306_at" "1552307_a_at" "1552309_a_at"
[] "1552310_at" "1552311_a_at" "1552312_a_at" "1552314_a_at"
[] "1552315_at" "1552316_a_at" "1552318_at" "1552319_a_at"
[] "1552320_a_at" "1552321_a_at" "1552322_at" "1552323_s_at"
[] "1552325_at" "1552326_a_at" "1552327_at" "1552329_at"
[] "1552330_at" "1552332_at" "1552334_at" "1552335_at"
[] "1552337_s_at" "1552338_at" "1552340_at" "1552343_s_at"
[] "1552344_s_at" "1552347_at" "1552348_at" "1552349_a_at"
[] "1552354_at" "1552355_s_at" "1552359_at" "1552360_a_at"
[] "1552362_a_at" "1552364_s_at" "1552365_at" "1552367_a_at"
[] "1552368_at" "1552370_at" "1552372_at" "1552373_s_at"
[] "1552375_at" "1552377_s_at" "1552378_s_at" "1552379_at"
[] "1552381_at" "1552383_at" "1552384_a_at" "1552386_at"
[] "1552388_at" "1552389_at" "1552390_a_at" "1552391_at"

获取hgu133aplus2_Hs_ENSG的探针组名称,把上面的cdfname换成"hgu133plus2hsensgcdf"即可,最后得到以下结果:

> length(genenames)    ## 重定义后的探针组数目
[]
> genenames[:] ## 重定义后的探针组名称的前100个
[] "AFFX-BioB-3_at" "AFFX-BioB-5_at"
[] "AFFX-BioB-M_at" "AFFX-BioC-3_at"
[] "AFFX-BioC-5_at" "AFFX-BioDn-3_at"
[] "AFFX-BioDn-5_at" "AFFX-CreX-3_at"
[] "AFFX-CreX-5_at" "AFFX-DapX-3_at"
[] "AFFX-DapX-5_at" "AFFX-DapX-M_at"
[] "AFFX-HSAC07/X00351_3_at" "AFFX-HSAC07/X00351_5_at"
[] "AFFX-HSAC07/X00351_M_at" "AFFX-hum_alu_at"
[] "AFFX-HUMGAPDH/M33197_3_at" "AFFX-HUMGAPDH/M33197_5_at"
[] "AFFX-HUMGAPDH/M33197_M_at" "AFFX-HUMISGF3A/M97935_3_at"
[] "AFFX-HUMISGF3A/M97935_5_at" "AFFX-HUMISGF3A/M97935_MA_at"
[] "AFFX-HUMISGF3A/M97935_MB_at" "AFFX-HUMRGE/M10098_3_at"
[] "AFFX-HUMRGE/M10098_5_at" "AFFX-HUMRGE/M10098_M_at"
[] "AFFX-LysX-3_at" "AFFX-LysX-5_at"
[] "AFFX-LysX-M_at" "AFFX-M27830_3_at"
[] "AFFX-M27830_5_at" "AFFX-M27830_M_at"
[] "AFFX-PheX-3_at" "AFFX-PheX-5_at"
[] "AFFX-PheX-M_at" "AFFX-r2-Bs-dap-3_at"
[] "AFFX-r2-Bs-dap-5_at" "AFFX-r2-Bs-dap-M_at"
[] "AFFX-r2-Bs-lys-3_at" "AFFX-r2-Bs-lys-5_at"
[] "AFFX-r2-Bs-lys-M_at" "AFFX-r2-Bs-phe-3_at"
[] "AFFX-r2-Bs-phe-5_at" "AFFX-r2-Bs-phe-M_at"
[] "AFFX-r2-Bs-thr-3_s_at" "AFFX-r2-Bs-thr-5_s_at"
[] "AFFX-r2-Bs-thr-M_s_at" "AFFX-r2-Ec-bioB-3_at"
[] "AFFX-r2-Ec-bioB-5_at" "AFFX-r2-Ec-bioB-M_at"
[] "AFFX-r2-Ec-bioC-3_at" "AFFX-r2-Ec-bioC-5_at"
[] "AFFX-r2-Ec-bioD-3_at" "AFFX-r2-Ec-bioD-5_at"
[] "AFFX-r2-P1-cre-3_at" "AFFX-r2-P1-cre-5_at"
[] "AFFX-ThrX-3_at" "AFFX-ThrX-5_at"
[] "AFFX-ThrX-M_at" "AFFX-TrpnX-3_at"
[] "AFFX-TrpnX-5_at" "AFFX-TrpnX-M_at"
[] "ENSG00000000003_at" "ENSG00000000005_at"
[] "ENSG00000000419_at" "ENSG00000000457_at"
[] "ENSG00000000460_at" "ENSG00000000938_at"
[] "ENSG00000000971_at" "ENSG00000001036_at"
[] "ENSG00000001084_at" "ENSG00000001167_at"
[] "ENSG00000001460_at" "ENSG00000001461_at"
[] "ENSG00000001497_at" "ENSG00000001561_at"
[] "ENSG00000001617_at" "ENSG00000001626_at"
[] "ENSG00000001629_at" "ENSG00000001631_at"
[] "ENSG00000002016_at" "ENSG00000002079_at"
[] "ENSG00000002330_at" "ENSG00000002549_at"
[] "ENSG00000002586_at" "ENSG00000002587_at"
[] "ENSG00000002726_at" "ENSG00000002745_at"
[] "ENSG00000002746_at" "ENSG00000002822_at"
[] "ENSG00000002834_at" "ENSG00000002919_at"
[] "ENSG00000002933_at" "ENSG00000003056_at"
[] "ENSG00000003096_at" "ENSG00000003137_at"
[] "ENSG00000003147_at" "ENSG00000003249_at"
[] "ENSG00000003393_at" "ENSG00000003400_at"

从结果可以看出,hgu133plus2有54675个探针组,而hgu133plus2hsensgcdf只有20009个探针组,这是因为有些探针组被合并起来了,可能还有一些被舍弃掉。

03、重定义CDF的更多相关文章

  1. 通过DBMS_REDEFINITION包对表在线重定义

    基础介绍 Oracle Online Redefinition可以保证在数据表进行DDL类型操作,如插入.删除数据列,分区处理的时候,还能够支持DML操作,特别是insert/update/delet ...

  2. C++中重定义的问题——问题的实质是声明和定义的关系以及分离式编译的原理

    这里的问题实质是我们在头文件中直接定义全局变量或者函数,却分别在主函数和对应的cpp文件中包含了两次,于是在编译的时候这个变量或者函数被定义了两次,问题就出现了,因此,我们应该形成一种编码风格,即: ...

  3. Oracle 在线重定义表分区

    ==================原始表================原始表=====================原始表 create table BUILDING_temp(building ...

  4. oracle普通表转分区表(在线重定义方式)

    1.1.TAB_TAOBAO_BILL 1.1.1检查下这张表是否可以在线重定义,无报错表示可以,报错会给出错误信息: exec dbms_redefinition.can_redef_table(' ...

  5. Oracle在线重定义DBMS_REDEFINITION 普通表—>分区表

    实验环境:RHEL 6.4 + Oracle 11.2.0.3实验:在线重定义 普通表 为 分区表,包括主键对应的索引都改造为分区索引. 1,构造普通表t_objects conn test1/tes ...

  6. C++ 重载、重写、重定义

    出自:http://blog.163.com/clevertanglei900@126/blog/ 1 成员函数重载特征: a 相同的范围(在同一个类中) b 函数名字相同 c 参数不同 d virt ...

  7. C++学习笔记 封装 继承 多态 重写 重载 重定义

    C++ 三大特性 封装,继承,多态 封装 定义:封装就是将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成类,其中数据和函数都是类的成员,目的在于将对 ...

  8. warning C4005: “AF_IPX”: 宏重定义的解决办法

    warning C4005: “AF_IPX”: 宏重定义warning C4005: “AF_IPX”: 宏重定义 解决方法: 由以上代码可以看出如果在没有定义WIN32_LEAN_AND_MEAN ...

  9. struct 类型重定义

    类型定义的那个头文件只需要在功能源文件里#include 开始在主函数源文件里也#include,所以出现了重定义

随机推荐

  1. Keil工程Lib库文件的制作和运用

    最近看了百度手环开源项目,发现所有的算法都被封装成了一个lib文件在keil中调用 也是第一次学习到. 问题引出:为什么要做成lib库? 1.有些方案公司为了将自己写的关键部分源代码不进行公开,但是同 ...

  2. Vue页面刷新方法(子组件改变数据后兄弟组件刷新,不闪烁)

    todo https://blog.csdn.net/qq_40571631/article/details/91533248

  3. 利用freemarker生成word,word另存为xml文件的标签解析

    http://wenku.baidu.com/link?url=YxTZWVP3ssO-e_Br3LIZVq2xOQnqaSz8gLPiRUDN8NIR_wX2-Z25OqwbVn5kXqGiOFYU ...

  4. HTML和CSS 入门系列(二):文字、表单、表格、浮动、定位、框架布局、SEO

    上一篇:HTML和CSS 入门系列(一):超链接.选择器.颜色.盒模式.DIV布局.图片 一.文字 1.1 属性 1.2 字体样式:font-family 1.3 字体大小:font-size 1.4 ...

  5. _parameter:解决There is no getter for property named in class java.lang.String

    我们知道在mybatis的映射中传参数,只能传入一个.通过#{参数名} 即可获取传入的值. Mapper接口文件: public int delete(int id) throws Exception ...

  6. SQL Server清空数据库中ldf日志文件

    USE [master] ALTER DATABASE [Whir_InternalSystem] SET RECOVERY SIMPLE WITH NO_WAIT ALTER DATABASE [W ...

  7. HearthBuddy炉石兄弟 Method 'CollectionDeckBoxVisual.IsValid' not found.

    [CollectionManagerScene_COLLECTION] An exception occurred when calling CacheCustomDecks: System.Miss ...

  8. What exactly is the parameter e (event) and why pass it to JavaScript functions?

    What exactly is the parameter e (event) and why pass it to JavaScript functions? 问题 Well, when I lea ...

  9. Python学习笔记:使用request库遇到的问题

    一.在请求参数中包含中文时,需要进行编码,如果不进行编码会报错 报错信息: 如:请求参数为:{"username":"超级管理员"} 在使用xlrd模块进行操作 ...

  10. 使程序在Linux下后台运行,程序运行前后台切换

    一.为什么要使程序在后台执行 我们计算的程序都是周期很长的,通常要几个小时甚至一个星期.我们用的环境是用putty远程连接到日本Linux服务器.所以使程序在后台跑有以下三个好处: 1:我们这边是否关 ...