I am interested in calculating differential expression of genes for tumor vs. normal samples from RNASeq V2 level 3 datasets for TCGA (downloaded from UCSC Cancer Browser). This data is from *.rsem.genes.normalized_results
, log2(x+1) transformed and upper quantile normalized
After browsing a lot of literature, blogs and forums, I am able to note following methods of calculate differential expression from TCGA datasets.
- Fold change Since the values from UCSC are already log 2 transformed, for a gene x, of tumor y, Log 2 fold change can be calculated as (log 2 transformed gene expression value of tumor sample) - (log 2 transformed gene expression value of matched normal sample).
- Packages like limma to fit a linear model to the log2-transformed data using an empirical Bayes method to moderate standard errors.
- Package EBSeq, as RSEM's original paper since that algorithm takes into account the stochastic nature of the RSEM output.
- Or, I should get expected_counts or scaled-estimates from TCGA data-portal and then use voom() to normalize, as well as packages like DESeq, EBSeq, limma for differential expression
- Z-score (if comparing tumor vs. normal) = [(value gene X in tumor Y) - (mean gene X in normal)] / (standard deviation of gene X in normal)
I also see variation of Z-score application as
(A) in the TCGA cases where tumor samples are more than normal like say 500 tumor samples out of which only 65 have matched normal sample
(B) In TCGA cases where you have only tumor samples or you want to consider only tumor samples and you can compare it with data of normal tissues as from GTEx
(C) In cases where you have only tumor samples and twisting the calculations as
Z-score= [(gene x log value - mean of log values gene x for all tumor tissues)/ standard deviation of gene x from mean of all tumor tissues]
I would appreciate is you can comment or suggest or share your experience on dealing with such kind of datasets, on the following lines:
Query 1: Have I understood these methods correct? How else we can calculate differential from TCGA datasets?
Query 2. Since, Z-score assumes normal distribution and for RNASeq expression values one would not expect normal distribution, one should go for quantile normalization, but as TCGA datasets in UCSC is already quantile normalized, should these values be used directly and simply calculate fold change with that.
Query 3. Are all the variations of Z-score mentioned in point 5 valid?
Query 4: Which of the above or any other method is the most recommended method to calculate differential expression for tumor vs. normal samples from TCGA datasets and why?
Sean, thank you for your feedback. I would really appreciate if you could as well explain, why you would not suggest other methods and prefer to go via counts and apply limma voom(), DESeq2, or edgeR.
I realize this is an old reply, but I ran across it today. The reason Sean suggested this is because voom/limma, DESeq2, and EdgeR normalize the data, and so you need to start with raw count data if possible to avoid normalizing normalized data.