有一篇文章“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. Hedera: Dynamic Flow Scheduling for Data Center Networks

    摘要: 当今的数据中心为成千上万台计算机的群集提供了巨大的聚合带宽, 但是即使在最高端的交换机中,端口密度也受到限制,因此数据中心拓扑通常由多根树组成,这些树在任何给定的主机对之间都具有许多等价路径. ...

  2. AtCoder AGC037D Sorting a Grid (二分图匹配)

    题目链接 https://atcoder.jp/contests/agc037/tasks/agc037_d 题解 这场D题终于不像AGC032D和AGC036D一样神仙了-- 还是可做的吧 虽然考场 ...

  3. F - Almost Sorted Array

    F - Almost Sorted Array   We are all familiar with sorting algorithms: quick sort, merge sort, heap ...

  4. Java程序,JVM之间的关系

    java程序是跑在JVM上的,严格来讲,是跑在JVM实例上的.一个JVM实例其实就是JVM跑起来的进程,二者合起来称之为一个JAVA进程.各个JVM实例之间是相互隔离的. 每个java程序都运行于某个 ...

  5. auth 认证组件的补充

    Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...

  6. mybayis分页插件

    转载自 https://www.cnblogs.com/ljdblog/p/6725094.html

  7. leetcode-easy-string-387 First Unique Character in a String

    mycode  24.42% class Solution: def firstUniqChar(self, s: str) -> int: dic = {} for i in range(le ...

  8. 全面解读php-引用变量(&)

    本文讲述引用传值的核心原理,看完即可扫清一切和引用传值相关的内容,不会了记得画图. 一.memory_get_usage的使用 传值赋值 // 定义一个变量 $a = range(0, 10000); ...

  9. 1.4 Navicat Mybatis 占坑

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML ...

  10. ListView 如何提高其效率?

    ① 复用 ConvertView② 自定义静态类 ViewHolder③ 使用分页加载 ④ 使用 WeakRefrence 引用 ImageView 对象 ViewHolder 为什么要声明为静态类? ...