Negative Expression in RNA Assay on Dot Plot After SCT Transform
2
0
Entering edit mode
15 months ago

I am working on single-cell data, and I have data from mice that received 2 different therapies. I merged the mice within the 1st group together and applied quality control steps, followed by applying SCT transform. I performed the same process for mice in the 2nd group as well.

I identified variable features using SelectIntegrationFeatures. Then, I merged all the data and plotted a dot plot by selecting RNA assay. I normalized the data before using the RNA assay. The dot plot graph shows an average expression ranging from -1 to 2. Why is this the case?

ps. My goal is not to perform integration, but only to merge the data and then create dot plots for cell type annotation I used Seurat for all the processes.

scttransform scrnaseq merge Normalization scaledata • 2.4k views
ADD COMMENT
0
Entering edit mode
15 months ago
bk11 ★ 3.0k

The dot plot graph shows an average expression ranging from -1 to 2. Why is this the case?

Looks like you are plotting integrated data. Integrated data can have negative values which is expected. However, it is recommended to use uncorrected data for visualization and DE. Can you show the full code you are running?

ADD COMMENT
0
Entering edit mode

No, I did not perform integration. I used the 'SelectIntegrationFeatures' function to choose variable features. After that, I did not perform integration anchor finding, etc, I directly merged the two SCT-transformed objects using the 'Merge' function. Additionally, before creating the dot plot, I set the default assay as RNA assay.

ADD REPLY
1
Entering edit mode

Why would you run SelectIntegrationFeatures since you are not integrating data here? This function is to choose the features to use when integrating multiple datasets. You can simply merge your 1st and 2nd group Seurat objects, and perform standard single cell QC process.

ADD REPLY
0
Entering edit mode

When I apply SCT transform separately to the 2 samples and then merge them, the merged object does not contain variable features, Because of this I used SelectIntegrationFeatures function. However, I'm not sure if doing this is the right approach.

ADD REPLY
0
Entering edit mode

I do not think your approach is right. See this link- https://satijalab.org/seurat/reference/selectintegrationfeatures. Merging your datasets simply using merge function in Seurat and later using integrate function (with method of your choice) if you find batch function will be a valid approach.

ADD REPLY
0
Entering edit mode
15 months ago
fracarb8 ★ 1.7k

DotPlot scales the data before visualisation, did you try with scale = FALSE ?

ADD COMMENT
0
Entering edit mode

Yes, I noticed that. When setting scale =FALSE , the average expressions become positive, but I couldn't figure out which slot the DotPlot function uses. Also, I'm not sure if the scale argument in the DotPlot function is asking for information about whether the data was scaled before or if it scales the data itself when set to true.

ADD REPLY
0
Entering edit mode

If you look at the function in git, the scale part is done after the dataset is subset (subset, group by, and split by) and they data.use <- scale(x = data.use) if scale = TRUE, while data.use <- log1p(x = data.use) if set to FALSE. The fact that they either scale or log norm, should indicate that they either take the counts or the data slot. For sure not the scaled.

ADD REPLY

Login before adding your answer.

Traffic: 1838 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6