DESeq2 Error: ncol(countData) == nrow(colData) is not TRUE
1
0
Entering edit mode
anpham ▴ 40
@anpham-7402
Last seen 4.9 years ago

I tried to build an DESeqDataSet with a count matrix and a table of sample information. My count matrix is read from a csv file. The count matrix has gene names as the first column. Here are my codes and error message. Please advise as how I should address the error message. Thank you.

# read in the count data and column data

# construct the DESeqDataSet object
dds <- DESeqDataSetFromMatrix (countData = countData,
colData = colData,
design = ~age_cut4 + Batch_RNA + Study + sex)

# I got the following error message

Error: ncol(countData) == nrow(colData) is not TRUE

deseq2 error • 9.4k views
2
Entering edit mode
@mikelove
Last seen 19 hours ago
United States

The countData should be only a matrix of counts, where each column corresponds and is in the same order as the rows of colData.

As you have a first column with names, you just need to remove that (and you can assign the names as rownames):

mat <- countData[,-1]
rownames(mat) <- countData[,1]
0
Entering edit mode

Hi. I don't understand how to fix this.

Can you explain it with more details?

Thanks you!

0
Entering edit mode

Can you partner with a bioinformatician or someone with experience with R coding?

0
Entering edit mode

Hello Michael

I could not make the same matrix although I did what you said

0
Entering edit mode

The countData input should be a matrix of counts.

You made need to partner with someone with R / bioinformatics experience if you get stuck here.

0
Entering edit mode

Would you plz help me in this error:

Error in DESeqDataSet(se, design = design, ignoreRank) : some values in assay are negative

0
Entering edit mode

DESeq2 is for count data, if you are trying to provide count values that are negative, you either made a mistake or should use alternative software if you are not working with count data.

0
Entering edit mode

Hi Michael love,

I am having the same problem. I made sure that my counts data is matrix and that the number of rows in the metadata is equal to the columns in the counts data. Here are my inputs:

countdata <- read.csv("/Users/ghidaelbanna/Desktop/Dermatomyositis/Aim #2/Aim2_R/Aim2_Option2_IFNGenes_CountData_R.csv", row.names = "gene_name" ) countData <- countdata[,c(1:20)] countdatamatrix <- as.matrix(countData) metadata <- read.csv("/Users/ghidaelbanna/Desktop/Dermatomyositis/Aim #2/Aim2_R/Aim2_Option2_Metadata_R.csv", row.names = 1) dds <- DESeqDataSetFromMatrix(countData=countdatamatrix, colData = metadata, design = ~dex, tidy = TRUE) Error in DESeqDataSetFromMatrix(countData = countdatamatrix, colData = metadata, : ncol(countData) == nrow(colData) is not TRUE ncol(countdatamatrix) == nrow(metadata) [1] TRUE class(countdatamatrix) [1] "matrix" "array" class(metadata) [1] "data.frame"

Any idea what is the problem on my end? thank you

0
Entering edit mode

See the tidy argument details.