2

処理済みと未処理の 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

サンプル データのサンプルごとに 2 つのレプリケートのみを示しました。

Rまたはpythonで解決策を探しています。R の cor 関数は、私が望むものを与えてくれません。

4

3 に答える 3

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 に答える