This is a test version of Biostars. For the public version, visit https://www.biostars.org.
ScRNA data question

Hello, I am working with two sample types. One is uninfected and another is infected. I combined them through integration and their orig.ident are 'infected' and 'uninfected'. In the image the infected has straight dotted lines. What do they mean? I am new to scRNA analysis, please let me know if you need more information. enter image description here

scrna vlnplot samples

Which normalization method did you use for your data? I am guessing you had used SCTransform normalization for your data. Can you plot using the following codes and see if it makes a difference?

p1 <- VlnPlot(your_seuratObj, features = 'IL1B' )
p2 <- VlnPlot(your_seuratObj, features = 'IL1B', slot = 'scale.data')
p1|p2

I would recommend you to use Seurat V5 and LogNormalize() method for your data normalization. your_seuratObj <- NormalizeData(your_seuratObj, normalization.method = "LogNormalize", scale.factor = 10000)

enter image description here I am already using Seurat V5 I think. I am using SCTransform as it was recommended by the seurat page. I get this plot with the code you have provided. They look the same. Could it be that due to the cells expressing these genes being too low I am getting those straight lines?

I wonder how the Vlnplots will look if you normalize the data using NormalizeData() function in Seurat. The flat line in your plot are because the data is discrete counts. This is more more noticeable for small values than for larger values as data are log transformed. I do not think you have worry about the data though. One more thing to note here that though recommended SCTransform() to normalize the data (as you said above), you can still used NormalizeData() function to normalize the data. Did you perform data integration here? If so how did you do it?

features <- SelectIntegrationFeatures(object.list = merged_dat)

data.anchors <- FindIntegrationAnchors(object.list = merged_dat, anchor.features = features)

data.combined <- IntegrateData(anchorset = data.anchors)

data.combined <- ScaleData(data.combined, verbose = FALSE)

data.combined <- RunPCA(data.combined, npcs = 30, verbose = FALSE)

elbow <- ElbowPlot(data.combined, ndims = 30)

elbow

data.combined <- RunUMAP(data.combined, reduction = "pca", dims = 1:16)

data.combined <- FindNeighbors(data.combined, reduction = "pca", dims = 1:16)

data.combined <- FindClusters(data.combined, resolution = 0.3)

So here the merged_dat is a list containing the uninfected and infected seurat objects that went through SCTransform. If I want to compare infected and uninfected data this is the way to go right?

The approach you are using here is the old method. Seurat is updated to V5. Please try Seurat V5 integrative analysis described in the link below. You can try with several batch correction methods and decide which one best fits to your data Integrative analysis in Seurat v5.

1 answer

In violin plot, a dot represents a cell. Actually, the straight lines you see in your infected image just means these cells have the same expression level for this gene.

I just thought it was weird that considering each dot is a cell their expressions were all on a single line instead of being spread out like the control? Is it because of this gene expression in the infected being low?

Log in to answer this question.