1

我真的是 R 的新手,我想用它来进行微生物类群的共现分析。我有一张这样的表(制表符分隔),其中包含相对丰富的分类群:

Taxon Sample1 Sample2 Sample3.......Sample54
OTU1    0.2     0.005   0.009         0.12
OTU2    0.62.....
OTU3
....
OTU136

我想获得分类群的 Spearman 等级相关矩阵,然后将其绘制在一些漂亮的图表中。我应该在运行 corr.test 命令之前将我的表转换为矩阵,对吗?所以,我尝试转换它并没有给我任何错误,但是当我尝试调整 corr.test 时,它说矩阵不是数字......

谁能帮我弄清楚该怎么做?

谢谢弗朗西斯卡

4

1 回答 1

0

我只是想出了怎么做,所以我发布了我自己问题的答案,希望它对其他人有用:

    require(gplots)  # for heatmap.2()

    mydata <- read.csv(file="otu_tab_L4.txt", header=T, row.names=1, sep="\t")

    #transposes it and makes a matrix
    mydata_t <- t(as.matrix(mydata))

    #makes Spearman's correlation
    cor.matrix <- cor(mydata_t, method = "spearman")

    #remove upper part of the matrix, since it gives the same informations 
    cor.matrix[upper.tri(cor.matrix )] <- NA

    #checks matrix dimensions
    dim(cor.matrix)

    #Finally, I plotted a triangular heatmap of my matrix
    ##the standard function will put the y labels on the right!! I wanted them on the         left! So ##changed the heatmap.2 function code in this way:

    ####open the code:
    fix(heatmap.2)

    ###modify it in this way:
    ##when it says: " axis(4, iy, labels = labRow, las = 2, line = -0.5, tick = 0, 
     cex.axis = cexRow) "
    ##I put 2 in place of 4!! 

    heatmap<-      heatmap.2(cor.matrix,scale="none",Rowv=NA,Colv=NA,col=rainbow,margins(5,5),cexRow=0.5,cexCol=1.0,key=TRUE,keysize=1.5,trace="none")
于 2013-10-02T18:37:01.467 回答