I did this the same earlier, but is it the right way to do it?
I am working with the raw count data, and the metadata consists of three groups, A, B, and C. Each group has four-time points, 3h, 6h, 12h, and 18h, and two treatment and control conditions.
What I want is quite simple; I want to measure control vs. treatment from one group or within the group. For example, In A, there are two replicates for control and treatment for each time. I want to compare control vs. treatment to get an overall differential expression of genes across all time points in A only.
I hope I made it understandable. How do I design the DESeqDataSet?
1 answer
You can create a new column where it's a combination of Group and Condition. For example, new column Class which will contains row as controlA, controlA, TreatedA, ...., controlC. Then it's easy to make dds object
#read the expression data in raw counts
readcounts <- read.table("expression_raw_counts.txt", header=TRUE, row.names = 1)
#read the sample information
sample_info <- read.table('sample_information.txt', sep='\t', header = TRUE, row.names = 1)
#Create a DESeq2 object named dds from the gene read count and sample information
dds <- DESeqDataSetFromMatrix(countData = readcounts,
colData = sample_info,
design = ~ Class)
#remove genes with 0 counts
keep_genes <- rowSums(counts(dds)) > 0
dds <- dds[ keep_genes, ]
#run deseq2
dds <- DESeq(dds, betaPrior=FALSE)
#generate results
res = results(dds, contrast = c("Class", "TreatedA", "controlA"))
write.table(res, "TreatedA_controlA.txt", sep='\t')
#run lfcShrink
res = lfcShrink(dds, contrast = c("Class", "TreatedA", "controlA"), res=res)
write.table(res, "TreatedA_controlA.lfc.txt", sep='\t')
Log in to answer this question.
Can you provide a table with sample information, group, replicate and time point ?
You can create a new column where it's a combination of
GroupandCondition. For example, new columnClasswhich will contains row ascontrolA,controlA,TreatedA,....controlC. Then it's easy to makeddsobject