Differential profile for only one normal - tumor pair
1
1
Entering edit mode
takumima ▴ 10
@takumima-16365
Last seen 9 months ago

Hi all,

I analysed the list of DEGs in 10 tumour-normal pairs (without replicates), with edgeR. I used the paired design

design = model.matrix(~Patient+Tissue)

Now, I would like to get the list of differentially expressed genes for each tumour-normal pair, individually. The aim is to get the patient-specific DEG list for the drug discovery in the precision medicine.

edger degs paired design • 393 views
3
Entering edit mode
@gordon-smyth
Last seen 3 hours ago
WEHI, Melbourne, Australia

If you've already analysed the paired design, then you will have a DGEList object with dispersion estimates stored in it. I will call this object dge.

Step 1: Make a new design with patient-specific effects:

design2 <- model.matrix(~Patient + Patient:Tissue)

Step 2: Fit the new glm using the trended dispersion previously estimated with the original design matrix:

fit <- glmFit(dge, design2, dispersion=dge$trended.dispersion) Step 3. Now you can extract patient-specific effects. To get DE genes for the first Patient: lrt <- glmLRT(fit, coef=11) topTags(lrt) Note: do not attempt to re-estimate the dispersion using design2. The patient-specific design matrix does not have any replication. ADD COMMENT 0 Entering edit mode Thank you, Gordon, for your suggestions. Your solution seems to work! However, I'm not sure if my code returns the list of DEGs in the tumour sample. This because by performing the analysis on a publicly available dataset, my gene of interest is up-regulated, exactly the opposite of what is reported in the paper. gr = as.factor(c("N","T")) groups <- rep(gr, times=10) Patient <- factor(c("pat1","pat1","pat2","pat2","pat3","pat3","pat4","pat4","pat5","pat5","pat6","pat6","pat7","pat7","pat8","pat8","pat9","pat9","pat10","pat10")) Tissue <- factor(groups) design = model.matrix(~Patient+Tissue) #compare the tissues (tumor-normal) adjusting for any baseline differences between the patients by fitting an additive model genefit <- glmQLFit(geneList, design) geneqlf <- glmQLFTest(genefit) geneqlf #$comparison
#[1] "TissueT"

0
Entering edit mode

Your code is doing a paired test for T vs N.