text: user2005: 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.
  
  user35: 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.
  
original_text: 2005: <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>
   35: <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>
  