调整DESeq2 plotCounts绘图的location条件顺序为West-Mid-East
调整DESeq2 plotCounts中location分组顺序的方法
没问题,这个需求很好解决,核心是通过调整location列的因子水平顺序来改变plotCounts的分组排列逻辑——因为DESeq2默认会按照因子水平的顺序展示分组,而字符型的location会被默认按字母顺序转成因子,所以咱们手动指定因子水平就能实现West-Mid-East的排序。给你两种可行的方案:
方法一:先修改metadata再重建ddsMat
这是最稳妥的方式,先把metadata里的location转成指定顺序的因子,再重新构建DESeqDataSet对象:
# 将metadata中的location转为指定顺序的因子 metadata$location <- factor(metadata$location, levels = c("West", "Mid", "East")) # 重新构建ddsMat对象 ddsMat <- DESeqDataSetFromMatrix(countData = countdata, colData = metadata, design = ~ location) # 再次绘图,此时分组会按West-Mid-East排列 plotCounts(ddsMat, "photosystem II protein D1 1", intgroup=c("location"))
方法二:直接修改已有的ddsMat对象
如果不想重新构建ddsMat,也可以直接修改对象里的colData部分的因子水平:
# 直接修改ddsMat中location的因子水平 colData(ddsMat)$location <- factor(colData(ddsMat)$location, levels = c("West", "Mid", "East")) # 重新绘图即可 plotCounts(ddsMat, "photosystem II protein D1 1", intgroup=c("location"))
两种方法都能达到你想要的效果,选哪种都可以~
内容的提问来源于stack exchange,提问作者Ecg
相关产品推荐
相关产品推荐

