-
Notifications
You must be signed in to change notification settings - Fork 10
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
Inverse normalizations #65
Comments
I think that's a good idea. I think that keeping the parameters for normalization would also help to increase the interoperability of |
Great, I'll work on this! |
Certainly agree on storing the parameters in About the inverse transfromations, could you clarify when you need them instead of just keeping the untransformed data in an |
That's a great point. |
I completely agree that keeping the untransformed data is better. Still, the inverse transformation can be used on batch corrected data, for which we don't have the untransformed values (for instance, after batch effect correction with Scyan). This way, we can visualize the corrected data in FlowJO. But I agree that it's a very specific use case, and maybe a bad practice to do that anyway. So I'll only work on storing the parameters in |
Ok, then let's do it like that for now. If it turns out there are more broadly applicable use-cases we can still add inverse transformations later. Related: in that case working with layers should become more convenient, e.g. all preprocessing functions should support storing the result in a separate layer. There are some ideas how the API for this could look like in scverse/anndata#706: sc.pp.compensate(adata, in_layer="raw", out_layer="raw_compensated") |
It could be great to be able to inverse each of the normalization transformations.
When running normalization, we can store some attributes in
adata.uns
and then we can re-use them for the inverse transformation.I have already implemented this for a few normalization functions in scyan, so I can do a PR if you find it interesting.
The text was updated successfully, but these errors were encountered: