Hi António,
Thank you very much for your reply.
When I sum up the columns, I got this : 760257.6
So I tried transforming with 2^(log(TPM+1)) and then summing up the columns I got this : 157130.48
Do you have any idea why this could be happening?
Hi,
I have been given a normalised count matrix (single-cell) as following :
Cell1 Cell2 Cell3 .....................
Gene1 0.0000 0 0.0000
Gene2 0.0000 0 0.0000
Gene3 155.8516 0 0.0000
Gene4 0.0000 0 280.9867
I have no access to raw counts and I want to create a Seurat object with this matrix. I have seen posts about reading TPM in Seurat and manually log transforming however, I have no experience with this type of data and I'm not sure if this is TPM or log(TPM+1) data. Is there a way to understand this?
Secondly, after reading this in Seurat my initial aim is to combining it with my data (which I created Seurat objects with raw counts). Do you think this is feasible to integrate Seurat objects that are created with TPM and raw counts?
Thank you very much!
Hi,
If the counts are in TPM (Transcripts per Million), if you sum each column it should give you 1e+06 (1 million).
So you can sum up each column to see if its in TPM or not:
head(colSums(data))
head is just to print the sum of the first columns, and colSums it will sum the counts in each column from your data put your matrix there.
If they are not in TPM, but they are in log(TPM+1), you can reverse from log(TPM+1) to TPM by doing: 2^(log(TPM+1)), where 2 assumes that the counts were log2 transformed. If you do this and sum again the columns and if it gives you values around 1e+06, that was your transformation.
Regarding the question about using data sets with different units/scales, I think is not the best approach, but I believe that Seurat has pipelines (transformation and integration) to deal with multiple data-sets from different platforms etc. I think they describe this in detail in this paper: https://www.cell.com/cell/fulltext/S0092-8674(19)30559-8 (though I did not read the paper - so be careful).
I hope this helps,
António
Hi António,
Thank you very much for your reply.
When I sum up the columns, I got this : 760257.6
So I tried transforming with 2^(log(TPM+1)) and then summing up the columns I got this : 157130.48
Do you have any idea why this could be happening?
You get this value 760257.6 or this 157130.48 for all the columns?
Just to be clear, when you did the 2^(log(TPM+1)) the values log(TPM+1) represent just the values in your data table. So, when you apply the reversing of log2(TPM+1), you just provide, let's say the value 155.8516 (from Cell1, Gene3) to: 2^(155.8516). This was how you did it? (of course you need to do this for all the entries in your data and only then sum the each column independently of each other)
If so, this means that you don't have TPM neither log2(TPM+1) data. It was used other transformation/normalization.
How did you obtain the data in first place? You should talk with the person that transformed/normalized the data in order to know exactly the transformation/normalization used.
António
You need to subtract the pseudocount in order to go from log2(TPM+1) to TPM, by doing (2^log2(TPM+1))-1, where this log2(TPM+1) represents counts log2 transformed on TPM plus one pseudocount.
António
Sorry Antonio I was confused. So I got 760257.6 for the columns. And I guess this means it is already TPM?
This was a public data and it was very hard to get a clear answer from the authors.
Thank you for your help :)
If it's public, can you share the link to the data? Then, I can check myself. It's easier this way.
António
Can you share your email address please?
Sorry, the data is not public? If it's you can just share the link to the paper/database whatsoever. I prefer not to share my e-mail (though if you search you might find it!).
If this is not the case, just put the data in your google drive or dropbox and share the link (again assuming that the data is public, you should not be afraid to share because it was already published and it's open to anyone).
If this is not the case, I probably will recommend you to not share the data (though I'll not do anything with it).
António
Log in to answer this question.