DESeq2问题:无法创建DESeq2对象

问题描述 投票:0回答:1

我正在尝试使用 R 中的 DESeq2 包来分析 RNAseq 数据,但我对此还很陌生。当我想创建 DESeqDataSheet 时遇到问题。我不断收到以下错误:

DESeqDataSetFromMatrix 中的错误(countData = my_matrix,colData = my_dataframe,: ncol(countData) == nrow(colData) 不为 TRUE

我已经检查并仔细检查了我的计数矩阵和元数据表,矩阵的列号与数据帧的行号相同。矩阵的列名与数据框中的行名相同。 此外,我很确定我已经以正确的方式下载并安装了该软件包。

这是我使用的代码和示例数据集的最小版本。我用它的最后一部分来仔细检查所有内容的正确长度和名称。

library(DESeq2)

# Create a matrix
my_matrix <- matrix(data = c(1, 2, 3, 4, 5, 6, 7, 8, 9,
                              10, 11, 12, 13, 14, 15, 16, 17, 18,
                              19, 20, 21, 22, 23, 24, 25, 26, 27,
                              28, 29, 30),
                    nrow = 3,
                    ncol = 30,
                    byrow = TRUE)  # Fill matrix by rows
rownames(my_matrix)<-c("Gene1", "Gene2", "Gene3")

my_dataframe <- data.frame(
  sample = c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD"),
  condition = c("apple", "banana", "orange"),
  experiment = c(TRUE, FALSE, TRUE)
)

rownames(my_dataframe)<-c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30")

dds <- DESeqDataSetFromMatrix(countData=my_matrix, 
                              colData=my_dataframe, 
                              design= ~ sample + experiment + genotype:condition , tidy = TRUE)

ncol(my_matrix)
nrow(my_dataframe)
ncol(my_matrix) == nrow(my_dataframe)
all(colnames(my_matrix) == rownames(my_dataframe))

这是我收到的错误,包括我双重检查的结果。

> dds <- DESeqDataSetFromMatrix(countData=my_matrix, 
+                               colData=my_dataframe, 
+                               design= ~ sample + experiment + genotype:condition , tidy = TRUE)
Error in DESeqDataSetFromMatrix(countData = my_matrix, colData = my_dataframe,  : 
  ncol(countData) == nrow(colData) is not TRUE
> ncol(my_matrix)
[1] 30
> nrow(my_dataframe)
[1] 30
> ncol(my_matrix) == nrow(my_dataframe)
[1] TRUE
> all(colnames(my_matrix) == rownames(my_dataframe))
[1] TRUE

我使用 Bioconductor 的计数矩阵和元数据表尝试了具有最小版本的相同代码。我遇到了同样的问题。我尝试过卸载并重新安装该软件包。我已经重新启动 R Studio 多次。我已经删除了所有内容并开始新的。我不知道该再尝试什么了。 我已阅读有关 Bioconductor 的小插图和文档以及其他教程。我已经在这里和其他论坛上检查过,但找不到任何有帮助的东西。我询问了 ChatGPT 并观看了一些 YouTube 视频。我不知道还能去哪里寻求帮助。

我真的很感激任何帮助! 预先感谢!

r rstudio rna-seq
1个回答
0
投票

问题解决了。问题出在 tidy=TRUE 中,它假设 countData 的第一列是计数矩阵的行名。这会扭曲列号。将其设置为 FALSE 解决了该问题。

© www.soinside.com 2019 - 2024. All rights reserved.