Seurat is not a Bioconductor package, so debugging what the function does internally with pseudobulks as input is off-topic here. Generally, this indicates a normalization issue since the plot is notably offset along the x-axis to the right.
My advise, if you want to proceed with Bioconductor packages alone, is to pull the matrix of pseudobulk counts from that Seurat object and run it through DESeq2 manually as described in the vignette.
Hi, I recently met this weird problem. One method is to perform DESeq2 directly on pseudobulk data. You can refer to https://hbctraining.github.io/scRNA-seq_online/lessons/pseudobulk_DESeq2_scrnaseq.html. Hope it helps you.
Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Please show code and write down some context. Is this single-cell data? Basic forum etiquette demands that you not just put a plot with nothing else at all.
I'm sorry, this is the first time for me to post a question in bioconductor forum, so I'm not quite familiar with the rule, just wanna ask for some help here. I appreciate for your kind suggestion. My code shows as follows. I want to find the DE genes in epithelial between two different states: healthy and periodontitis. But ,the result is quite weird, I've got that this could be caused by false average log2FC value. So, how to tackle this problem? Thanks a lot!
I both hate that this question doesn't have any text asking or explaining their data or anything specific but also that without text I know exactly what they want to know.
This can happen for a variety of reasons. before we jump and assume whatever you are comparing is have such a biological impact that all genes are higher expresses (which would have impacts on how to interpret results as some DE approaches have the assumption most genes are not DE) , the most common source of this error is normalization was off at a previous step in some capacity. edgeR has a pretty good library normalization functions built in. another normalization possibility is you gave a function of a package like DESeq2 TPMs or something it wasnt expecting when it was expected RAW counts, and then get something wonky like this...
Thanks for your answer! I did use DEseq2 to calculate the DE genes in a pseudobulk object abstracted from a Seurat object. Should I change the R package to edgeR or something else ?
while I am biased to bioconductor packages, Seurat does have Mike Love's DEseq2 as method pre-built into the FindMarkers() function.
but vanilla deseq2 , as the vignette says, expects raw counts. so this might be driving the issue.
you could def do edgeR and limma , or you could change your input into DEseq2 to raw counts. I havent seen your code yet but if that was the problem , that might be a good fix.