Skip to content
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

Normalization for Dataset with Multiple Conditions and Multiple Samples in Each Condition #8800

Open
Nack3l opened this issue Apr 20, 2024 · 0 comments

Comments

@Nack3l
Copy link

Nack3l commented Apr 20, 2024

I have a dataset containing multiomodal (RNA + ADT) data that has 9 samples across three different batches, with each batch loading 3, multiplexed samples. Batch 1 contains 3 samples corresponding to three healthy controls; batch 2 contains 3 samples taken from a single patient at 3 different time points (0, 3, 12 months); batch 3 contains 3 samples taken from another patient at 3 different time points (0, 3, 12 months). This dataset is a bit unique because while each batch contains 3 samples, batch 1 contains 3 unique replicates, while batch 2 and 3 contain only a single replicate at 3 time points.

I currently have a Seurat object that merges all 9 samples after standard demultiplexing and QC, and I understand that it is most appropriate to split my assays into multiple layers before I perform normalization (SCT for RNA and CLR for ADT). However, I am unsure as to whether I should split my object into 9 layers, with each layer corresponding to a sample, or 3 layers, with each layer corresonding to a batch. In other words, should I normalize each sample individually or each batch individually? I've currently gone with the former option, so my code looks as follows:

#Splitting merged Seurat object by sample (not batch), generating 9 different lyaers
comb.nonorm2[["RNA"]] <- split(comb.nonorm2[["RNA"]], f = comb.nonorm2$sample)
comb.nonorm2[["ADT"]] <- split(comb.nonorm2[["ADT"]], f = comb.nonorm2$sample)

#Normalizing both RNA and ADT by layer, so normalization is performed individually for each of the 9 layers
comb.nonorm2 <- NormalizeData(comb.nonorm2, assay = "ADT", normalization.method = "CLR")
comb.nonorm2 <- SCTransform(comb.nonorm2)

#Performing integration
comb.nonorm3 <- IntegrateLayers(object = comb.nonorm3, method = CCAIntegration, normalization.method = "SCT", verbose = F)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant