有一篇文章“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. 18.Python格式化字符串(格式化输出)

    Python 提供了“%”对各种类型的数据进行格式化输出,例如如下代码: price = 108 print ("the book's price is %s" % price) ...

  2. APUE学习之进程控制 - fork 与 vfork

    最后编辑: 2019-11-6 版本: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11) 一.进程标识 每一个进程都有一个唯一的非 ...

  3. [笔记]makefile编写

    makefile的隐含规则默认处理第一个目标 函数:wildcard可以进行文本匹配 patsubst内容替换 变量: $@代表目标 $^  代表全部依赖 $<  第一个依赖 $?   第一个变 ...

  4. Java使用FileOutputStream写入文件

    From: http://beginnersbook.com/2014/01/how-to-write-to-a-file-in-java-using-fileoutputstream/ /* 使用F ...

  5. 解析XML的几种方式:DOM、SAX、PULL

    DOM解析 解析器读入整个文档,然后构建一个主流内存的树结构,然后代码就可以使用dom接口来操作这个树结构. 优点: 整个文档树在内存中,便于操作:支持删除.修改.重新排列等多种功能. 通过树形结构存 ...

  6. java期末总结

    java期末总结: java语言特点:1.简洁有效 2.可移植性 3.面向对象 4.解释型 5.适合分布式计算 6.拥有较好的性能 7.健壮.防患于未然 8.具有多线程处理能力 9.具有较高的安全性 ...

  7. mybatis 中的 update 返回值

    摘自:https://www.jianshu.com/p/80270b93082a 如果定义一个如下的update函数,那么这个函数的返回值到底是啥意思呢?是受影响的行数吗? 验证之前我们先看看数据库 ...

  8. spark 笔记 10: TaskScheduler相关

    任务调度器的接口类.应用程序可以定制自己的调度器来执行.当前spark只实现了一个任务调度器) )))))val createTime = System.currentTimeMillis()clas ...

  9. 威胁猎杀实战(三):基于Wazuh, Snort/Suricata和Elastic Stack的SOC

    https://www.secpulse.com/archives/81629.html

  10. MySQL 数据库 高级查询

    1.连接查询select * from Info,Nation #笛卡尔积select * from Info,Nation where Info.Nation=Nation.Code join on ...