我在处理和未处理的两种条件下具有200种基因的表达值(log2),并且对于每种条件,我有20次重复。我想计算每个基因的每个条件之间的相关性,并将它们从最高到最低排列。
这更像是一个生物定位系统的问题,但我认为对于生物学家/生物程序员而言,我们很多人都会遇到这个问题。
数据集如下所示:
Gene UT1 UT2 T1 T2
DDR1 8.111795978 7.7606511867 7.9362235824 7.5974674936
RFC2 10.2418824097 9.7752152714 10.0085488406 9.5723427524
HSPA6 6.5850239731 6.7916563534 6.6883401632 7.3659252344
PAX8 9.2965160827 9.2031177653 9.249816924 8.667772504
GUCA1A 5.4828021059 5.3797749957 5.4312885508 5.1297319374
我在样本数据中只为每个样本显示了两次重复。
我正在寻找R或python的解决方案。 R中的cor函数不能给我我想要的东西。
答案 0 :(得分:1)
如果我从您的问题中正确理解,您需要计算所有基因的UT1和T1以及UT2和T2之间的相关性。 有一种方法可以在R:
中完成df <- data.frame(Gene = c("DDR1","RFC2","HSPA6","PAX8","GUCA1A")
, UT1 = c(8.111796, 10.241882, 6.585024 , 9.296516 , 5.482802),
UT2 =c( 7.760651 ,9.775215 ,6.791656, 9.203118, 5.379775),
T1 =c(7.936224 ,10.008549, 6.688340 , 9.249817 , 5.431289),
T2 =c(7.597467 ,9.572343 ,7.365925 ,8.667773 ,5.129732))
制作一个这样的矩阵:
mat1 <- cbind(file$UT1,file$T1)
初始化相关矩阵:
cor1 <- matrix(0,length(file$Gene),length(file$Gene))
然后计算所有基因的相关性,如下所示:
for(i in 1:length(df$Gene)) cor1[i,] = apply(mat1,1,function(x) cor(x,mat1[df$Gene[i],]))
我希望这会有所帮助。
答案 1 :(得分:0)
假设第一列记录了行名称和第一列的名称,即假设您的数据只包含数值,您只需在R中执行以下操作,这将为您提供所有的焦虑矩阵基因之间的成对相关性。
COR(数据)
您可能想要指定要使用的关联类型...时间序列的长度是多少?为解决选择适当措施的问题,已经开展了全部研究,例如,见:
Pablo A. Jaskowiak,Ricardo J. G. B. Campello,Ivan G. Costa Filho,“聚类基因表达微阵列数据的接近度量:验证方法和比较分析”,IEEE / ACM计算生物学和生物信息学交易,第一卷。 99,不。 PrePrints,p。 1,,2013
答案 2 :(得分:0)
我读过的所有来源都表明您需要为每个复制创建平均值度量。虽然您可能希望查看更高级的预处理/规范化方法(例如mean
),但我已经看到使用了median
和RMA
。完成后,您可以计算未治疗和治疗之间的相关性。
无法以您正在寻找的方式计算相关性。任何这样做的方法最终都归结为通过在重复项中获得摘要探测测量来总结两种情况下的信息(如上所述)。
或者,你可以做一些事情,比如计算每个探针的每个处理和未处理的重复之间的相关性,并取平均值。