2

在处理和未处理的两个条件下,我有 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 函数没有给我我想要的。

4

3 回答 3

1

我读过的所有资料都表明您需要为每个复制创建一个平均度量。尽管您可能想研究更高级的预处理/标准化方法(如) ,但我已经看到mean并使用了这两种方法。完成后,您可以计算未治疗和治疗之间的相关性。medianRMA

无法以您正在寻找的方式计算相关性。任何这样做的方法最终都将归结为通过在复制中获得汇总探测测量来汇总两个条件下的信息(如上所述)。

或者,您可以执行类似计算每个探针的每个处理和未处理重复之间的相关性,并取平均相关性。

于 2013-09-27T06:20:23.543 回答
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],]))

我希望这有帮助。

于 2012-06-15T11:36:18.227 回答
0

假设第一列是行的名称,第一列是它们的名称,即假设您的数据仅包含数值,您可以简单地在 R 中执行以下操作,这将为您提供具有所有成对相关性的 anxn 矩阵基因。

心(数据)

您可能需要指定要使用的相关类型...时间序列的长度是多少?已经开发了完整的研究来解决选择适当措施的问题,例如,参见:

Pablo A. Jaskowiak、Ricardo JGB Campello、Ivan G. Costa Filho,“基因表达微阵列数据聚类的邻近测量:验证方法和比较分析”,IEEE/ACM Transactions on Computational Biology and Bioinformatics,第一卷。99,没有。预印本,p。1, , 2013

于 2013-09-27T04:53:06.897 回答