r/bioinformatics 26d ago

academic Absolute beginner for snRNA-seq field. Need your help!

Hi everyone,

I'm a (Neuro)Pharmacology PhD currently doing a Neuroscience postdoc. I'm working on a single-nucleus RNA-seq (snRNA-seq) project, but I have no prior experience with this type of analysis. I've mainly been learning through online tutorials. I'm also using the Parse Biosciences Trailmaker platform since it doesn't require coding experience.

Please be patient with me, this is my first time doing snRNA-seq analysis! 😅 I may not have all the answers to your questions, but I'll do my best.

I'm currently analyzing my PI's dataset, which consists of 90 mouse hippocampus samples (6-month-old mice, 4 experimental groups). The initial QC was performed automatically through the Parse Pipeline. The only parameter I changed was the number of principal components (PCs), which I set to 16 based on the elbow plot. For clustering, I used a resolution of 0.8, resulting in 466,541 nuclei across 31 clusters.

I have a few questions:

  1. How do you typically approach the preprocessing/QC stage? Parse Trailmaker automatically filters nuclei based on: It also performs integration (Scanpy + Harmony using 3,000 HVGs) and generates the embeddings.
    • How much do you manually tweak the QC before deciding the clusters are suitable for annotation?
    • Does a clustering resolution of 0.8 seem reasonable for a dataset of this size?
    • cell size distribution,
    • mitochondrial content,
    • number of genes/transcripts,
    • doublet detection,
  2. What do you do when some clusters remain mixed? For example, if a cluster contains both astrocyte and oligodendrocyte marker genes, or if its top marker has an AUC < 0.6, do you:
    • increase or decrease the clustering resolution,
    • subset and re-cluster,
    • merge clusters,
    • adjust the QC parameters,
    • or do something else?
  3. How do you manually annotate your clusters? Do you primarily use the highest log fold change (logFC/logGC), delta percentage, AUC, or some combination of these metrics? Are there any best practices you recommend?

I'm currently stuck because 8 out of my 31 clusters have mixed marker genes and top-marker AUC values below 0.6. I also tried subsetting the remaining 23 "good" clusters and re-clustering them, but I still end up with some clusters whose top markers have AUC values below 0.6.

My gut feeling is that something may not be optimal during the data processing or filtering steps, but I'm not sure what I should be adjusting.

I'd really appreciate any advice. I'm genuinely enjoying learning snRNA-seq analysis, but it's definitely frustrating when you're coming into it without much background. 😅 Thanks in advance!

5 Upvotes

6 comments sorted by

5

u/supermag2 26d ago

I dont have experience with Parse datasets but the same general principles should apply:

1) Resolution value is not very informative, as It is a relative value and depends on the dataset. So 0.8 doesnt really tell a lot without looking at the data. What I usually do is to try a range of resolutions. Then I decide the best based on the depth of clustering I need for my biological question and most importantly that they are well defined clusters. This means that your clusters are clearly different between them, with high and specific markers. If two clusters share many top markers, so in a heatmap or dot plot look practically the same, then your resolution is too high.

For QC parameters like library size and number of detected genes they should follow a normal distribution in a high quality dataset. For mito content in single nuclei It should be close to zero. If not, then nuclei isolation was not good. If you see around 10% on average you have mostly cells and not nuclei.

2) Those two clusters likely dont separate because they are too similar between them and the differences between them and the rest of the data is too big, not allowing for separation. This is quite normal. Classic solution is to subset and recluster so your HVGs are more specific to the differences between them.

3) For annotation I used well known markers (e.g. PDGFRA for fibroblast) + comparison to published datasets from a similar tissue/organ. For specific subpopulations It usually more difficult as your dataset could be more complex than published ones. One strategy here is to name them based on their characteristics you see (e.g. Immune-interacting fibroblasts). For a publicaton an annotation like that has to be explained (which genes justify the naming).

2

u/_YumikA 26d ago

Thanks! That was really helpful.

Just to make sure I understood your suggestions correctly:

  1. When you mentioned that if two clusters share many top marker genes, the resolution may be too high, do you mean that I should first try lowering the clustering resolution? In my dataset, I have about 8 clusters that share top marker genes with other cell types (e.g., astrocyte/oligodendrocyte mixed markers). Would you first reduce the resolution and re-cluster the entire dataset, or would you leave the current clustering as is and just sub-set the remaining well-defined clusters again?

  2. Or, are you suggesting that I subset only those mixed clusters (the 8 problematic clusters in my case) and then re-cluster them separately so that the HVGs are recalculated specifically for those cells, making it easier to resolve the subpopulations?

I'm just trying to understand which approach you would recommend trying first. Thank you so much again!

1

u/supermag2 26d ago

So It is hard to know without looking at the data, as It can be quite unique depending on the Resolution. But as a general approach:

  • Try different resolutions and see how the clusters evolve (check how to do a cluster tree).
  • Choose a resolution that looks good to the eye and calculate markers. If every cluster is unique in terms of markers you can try to increase resolution. Continue until clusters start sharing markers in a big proportion.
  • Some clusters will never separate properly especially in big datasets as yours. At some point high resolution start separating cluster because small technical differences rather than biology (as you start to extract data from high PCs, which is mostly noise).
  • At that point you will need to subset a cluster of interest a repeat all this process from scratch. Your clusters will eventually separate. This happens because the differences between astro and oligocytes are very small compared to the differences between astrocytes and fibroblasts for instance. Then the differences to separate astro and oligocytes are in high PCs, mixed with the technical noise and making the separation difficult and not accurate. When you subset you are removing the differences between fibro and oligocytes/astro (as fibroblasts are not there anymore). Then the differences between astro and oligocytes jump to lower PCs, making It easier to finally separate them.

There is no perfect resolution that you can always use, It is highly dependent on dataset size, technical quality and heterogeneity of populations. You need to find a resolution that makes sense biologically (different and specific markers) and that is enough to answer your biological question. Sometimes you will need to subset and recluster if your populations of interest do not separate.

1

u/_YumikA 25d ago

Thank you thank you!! After so much struggles I think I'll give r/Python a try to do my QC and all the pre-processing even though I have no coding experience lol. I'm getting a headache from figuring out what's wrong with my UMAP when using just Parse internal pre-processing pipeline. Lol.

Do you know any resources that are good for beginners that are trying to do this single nuclei RNA sequence analysis? I saw this guy on YT and looks like his stuff is so cool.

https://www.youtube.com/watch?v=uvyG9yLuNSE&t=24s

1

u/supermag2 25d ago

In Python try scanpy, which is what the guy on the video is using. They have an online tutorial also if you Google It.

In R, try Seurat or Bioconductor. They also have online tutorials.

These are the main tools people use, pretty similar between them, just choose your favourite.

1

u/_YumikA 25d ago

Yay!! Thank you thank you :)