我的数据集是一个大型基因计数表,其中包含500,000个基因作为行,6列作为样本(1:3是对照,4:6是疾病)。虽然我的一些样本有很多0值,但是没有一列包含所有0值。
我正在尝试根据Bray-Curtis相异性计算来运行PCoA图。
这是我的代码;
gctab <- read.csv("final.gene.count.table.nonzero.csv", row.names=1)
DF = data.frame(id=colnames(gctab),type=rep(c("ctrl","disease"),each=3))
dds =DESeqDataSetFromMatrix(gctab,DF,~type)
vsd <- vst(dds, blind=TRUE)
vegDistOut=vegdist(t(assay(vsd)),"bray")
我无法继续制作PCoA,因为得到的错误消息是:在vegdist(t(assay(vsd)),“ bray”)中:结果可能没有意义,因为数据在方法“ bray”中包含负数。
我不太确定如何克服此错误。请有人指教吗?没有值是负数。
我对PCoA和Permanova的其余代码如下(不确定上面给出的代码是否能正常工作,尤其是Permanova代码,如果有人对此有任何建议,将不胜感激)。
pcoaOut=pcoa(vegDistOut)
varExplained = pcoaOut$values$Relative_eig * 100
varExplained = round(varExplained, digits = 1)
pcoaCols = rep("#009966",6)
pcoaCols[4:6] ="#330099"
plot(pcoaOut$vectors[,1], pcoaOut$vectors[,2],
col="black", bg=pcoaCols, pch=21, cex=2,
xlab=paste("PCoA 1 (", varExplained[1], "%)", sep=""),
ylab=paste("PCoA 2 (", varExplained[2], "%)", sep=""))
legend("topleft", legend = c("Cirrhosis", "Control"), fill=c("#330099", "#009966"))
##PERMANOVA **
adonis(formula=vegDistOut ~type, data=gctab, permutations=999, method= “bray”)
不确定PERMANOVA的代码是否正确,因为我不确定如何计算疾病与对照,因此我不确定如何计算阿多尼斯代码的公式部分,所以〜type就足够了吗?
编辑:使用dput(head(gctab))获取我的数据;
structure(list(ERR527028 = c(37L, 1L, 187L, 97L, 162L, 16L),
ERR527031 = c(0L, 0L, 0L, 0L, 0L, 0L), ERR527081 = c(2L,
0L, 3L, 6L, 0L, 0L), ERR528324 = c(0L, 0L, 0L, 0L, 0L, 0L
), ERR528725 = c(0L, 0L, 0L, 0L, 0L, 0L), ERR528726 = c(0L,
0L, 0L, 0L, 0L, 0L)), row.names = c("NODE_1_length_36040_cov_12.4365_1",
"NODE_1_length_36040_cov_12.4365_3", "NODE_2_length_32139_cov_10.3119_1",
"NODE_2_length_32139_cov_10.3119_2", "NODE_2_length_32139_cov_10.3119_3",
"NODE_3_length_27992_cov_10.5976_1"), class = "data.frame").
谢谢