我想生成我的批量 RNAseq 資料的 PCA,由 DESeq2 物件“vsd”中的每個變數著色。我當前的代碼如下所示(生成單個圖):
pcaData <- plotPCA(vsd, intgroup=c("Age", "BlastRate"), returnData=TRUE)
percentVar <- round(100 * attr(pcaData, "percentVar"))
ggplot(pcaData, aes(PC1, PC2, color=Age, shape=BlastRate))
geom_point(size=3)
xlab(paste0("PC1: ",percentVar[1],"% variance"))
ylab(paste0("PC2: ",percentVar[2],"% variance"))
geom_text(aes(label=name),hjust=-.2, vjust=0)
ggtitle("Principal Component Analysis")
誰能建議一種方法來回圈并與 vsd 的其他變數列交換“年齡”?
>head(colData(vsd),1)
DataFrame with 1 row and 14 columns
LibSize LibDiversity PercMapped Age SpermStatus SpConc SpMot Subject.Group PairedSample FertRate
<factor> <factor> <factor> <factor> <character> <factor> <factor> <factor> <factor> <factor>
sRNA_1 Low High High 42-46 unk unk unk Male-Male 2 Low
BlastRate RNABatch LibPrepBatch sizeFactor
<factor> <factor> <factor> <numeric>
sRNA_1 Low 1 6 0.929408
uj5u.com熱心網友回復:
讓我們模擬一些資料,因為您提供的示例太短且格式錯誤,無法進行任何操作。我假設您有大致以下結構的資料:
library(ggplot2)
library(DESeq2)
dds <- makeExampleDESeqDataSet()
colData(dds) <- cbind(colData(dds), age = runif(ncol(dds), max = 50))
dds <- DESeq(dds)
vsd <- vst(dds, nsub = 200) # 200 is for example purposes
pcaData <- plotPCA(vsd, returnData = TRUE)
接下來,我們可以選擇要作為字串向量說明的列名并回圈遍歷它們。.data使用 tidyverse 風格的非標準評估時,您可以使用代詞對特定列進行子集化。
vars <- tail(colnames(pcaData), 2)
plot_list <- lapply(vars, function(myvar) {
ggplot(pcaData, aes(PC1, PC2, colour = .data[[myvar]]))
geom_point()
})
# Just to show that there are multiple plots
patchwork::wrap_plots(plot_list)

由reprex 包于 2022-03-09 創建(v2.0.1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/442931.html
上一篇:R回圈直到條件匹配,然后繼續
