# Seurat with normalized count matrix?

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.

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.

And here:

If you want to run your own normalization function, please place the data in log scale before placing it into object@data

And here:

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.