I know that in
Seurat we have the function
CreateSeuratObject from which the analysis starts, but it accepts raw count matrix according to the documentation. I have only the already normalized count matrix, so is there a way to work with
Seurat using normalized data? I would try maybe to feed in the normalized data instead of raw to
CreateSeuratObject, but I do not know what
Seurat is doing behind the scenes, whether it is a good idea. Besides,
Seurat provides by default only one
log - normalization method, but I may want to normalize the data by myself with various methods and only then start the analysis with
Seurat - that is the other reason why I want to find a way to start from normalized data.
I know that in
This was addressed by the Seurat developers here:
if you have TPM counts, I suggest you don't use Seurat::NormalizeData(), since TPM counts are already normalized for sequencing depth and transcript/gene length. Note that Seurat::NormalizeData() normalizes the data for sequencing depth, and then transforms it to log space. If you have TPM data, you can simply manually log transform the gene expression matrix in the object@data slot before scaling the data.
If you want to run your own normalization function, please place the data in log scale before placing it into object@data
If you're supplying already normalized values to CreateSeuratObject, you should skip the normalization step. You will likely see a warning when you run ScaleData (which is checking whether you normalized using Seurat). You can ignore this or turn it off by setting check.for.norm to FALSE.
This is a lot of quotes, but I found them all to be helpful in different ways.