New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CLR normalization and scaling #1268
Comments
What function are you using to calculate CLR? |
I'm closing this issue now as we have not heard back, but please note that you can see the exact code that we use when running CLR normalization in the |
Hi, I am also concerned in the way CITE-seq data is normalized. Here you can see how the scanpy team is tackling the issue, although they do not provide much detail. Do you have any updates on the current best practices? Thanks a lot! |
It looks like the inverse used for
|
an invertible version of the Seurat CLR is as follows:
This gives roughly the same results as the stock Seurat CLR but has the benefit of being invertible if needed, given ADT counts. |
Hi Seurat team,
I'm using multi-processing output from CITE-seq count as input to Seurat v3. I used CLR normalization on my ADT counts, but I'm wondering about an observation I'm seeing with regards to the distribution of noisy signals. From left to right in the image below, I plotted a simple distribution of raw counts, the CLR normalized values from Seurat and then values where CLR is calculated manually.
You can see that raw counts are heavily right-tailed skewed… not a huge surprise. The Seurat version makes all values positive and has some right skewness, ranging from about 0 to 10 (if you estimate from the x-axis of the plot). However, antibodies that have low signal (the majority) get fattened in this transformation. This okay for the very high expressing antibodies, but for some that have a real but more subtle positive signal, it would get lost in the noise. The manually calculated CLR you can see has a similar range as the Seurat normalization, but you can see that the distribution of the noise is thinner, allowing positive values in the right tail come out. (Some values are less than 0 but I think that’s okay.)
It appears that Seurat applies a scaling factor that brings up the noise of antibody signals which would be otherwise low in the manually calculated CLR normalization. Can you provide more insight on what the scaling factor is doing and possibly comment on our data? (I can't see what the normalization function is doing). Your insights would be much appreciated.
Thanks,
Ben
The text was updated successfully, but these errors were encountered: