Answers.Body: <p>This was addressed by the Seurat developers <a href="https://github.com/satijalab/seurat/issues/668" rel="noreferrer">here</a>:</p>
  
  <blockquote>
    <p>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.</p>
  </blockquote>
  
  <p>And <a href="https://github.com/satijalab/seurat/issues/481" rel="noreferrer">here</a>:</p>
  
  <blockquote>
    <p>If you want to run your own normalization function, please place the
    data in log scale before placing it into object@data</p>
  </blockquote>
  
  <p>And <a href="https://github.com/satijalab/seurat/issues/171" rel="noreferrer">here</a>:</p>
  
  <blockquote>
    <p>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.</p>
  </blockquote>
  
  <p>This is a lot of quotes, but I found them all to be helpful in different ways.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-09-26T01:11:30.560Z
Answers.LastActivityDate: 2018-09-26T01:11:30.560Z
Answers.UserDisplayName: burger
Body: <p>I know that in <code>Seurat</code> we have the function <code>CreateSeuratObject</code> 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 <code>Seurat</code> using normalized data? I would try maybe to feed in the normalized data instead of raw to <code>CreateSeuratObject</code>, but I do not know what <code>Seurat</code> is doing behind the scenes, whether it is a good idea. Besides, <code>Seurat</code> provides by default only one <code>log</code> - normalization method, but I may want to normalize the data by myself with various methods and only then start the analysis with <code>Seurat</code> - that is the other reason why I want to find a way to start from normalized data.</p>
  
Tags: <r><seurat>
Title: Seurat with normalized count matrix?
ThreadText: # Seurat with normalized count matrix?
  
  (Asked by: username_0 on 2018-09-24)
  
  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.
  
  **Tags:** r, seurat
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2018-09-26. Score: 6 | Accepted answer
  
  This was addressed by the Seurat developers [here](https://github.com/satijalab/seurat/issues/668):
  
  > 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](https://github.com/satijalab/seurat/issues/481):
  
  > If you want to run your own normalization function, please place the
  > data in log scale before placing it into object@data
  
  And [here](https://github.com/satijalab/seurat/issues/171):
  
  > 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.
  
  
  ---
  
  