I have a follow up question to this. I indeed found several sources saying you should not use TPM values for DE analysis. However, I got confused when reading Seurat's tutorial because it seems to me that they're using log(TPM+1) values there for DE.
First, the FindAllMarkers() is used to calculate differentially expressed genes for each cluster. The reference for this function shows that the "data" slot is used as a default to pull data from. Second, the "data" slot contains the normalized data which is generated from raw counts with NormalizeData. By default this function uses "LogNormalize" method. My understanding after reading the reference is that the method 1. calculates the number of total counts in each cell 2. divides all feature counts within the cell with this total count 3. multiplies values with the scaling factor 10,000 4. natural log transforms the values. But aren't the steps 1, 2 and 3 just creating TP10K values - slightly different version of TPM? Moreover, the developers have stated that TPM values should be ok (https://bioinformatics.stackexchange.com/questions/5115/seurat-with-normalized-count-matrix). Have I misunderstood something here?