Residual Disease Paper

Comparing RD Results

by Shelley Herbrich

1 Executive Summary

1.1 Introduction

Using the true residual disease (RD) status for the validation cohort, we are interested to check our predictions using FABP4 and ADH1B.

1.2 Data and Methods

We work with the results dataset, PCRResults.

For both target genes, we define our subset of patients with enriched proportion of residual disease as those with the top 25% of expression (this corresponds to the top 35 samples).

1.3 Results

We plot the sorted log2 FABP4 and ADH1B values based on our quantification method. We also plot ADH1B against FABP4.

2 Loading Libraries and Quantification Data

We load the PCR results, containing our quantification summaries and true RD status.

library(qpcR)
library(gdata)
load(file.path("RDataObjects", "PCRResults.RData"))
load(file.path("RDataObjects", "rawPCRData.RData"))
sampleID <- PCRResults$Sample.Name
rd <- PCRResults$RDStatus
names(rd) <- sampleID

3 Flagging RD Using FABP4

First, we graphically examine our cutoff of the top 25th percentile based on levels of FABP4.

plot(rev(PCRResults$FABP4), ylab = "Initial Amount (log2)", xlab = "", pch = 21, 
    bg = c("grey", "red")[rev(factor(rd))], main = "Sorted FABP4 Concentrations")
abline(h = -20.05, lty = 2)
mtext("25%", side = 4, at = -16.5, las = 2, line = 0.5, cex = 0.8)
legend("topleft", c("Yes", "No"), pch = 19, col = c("red", "grey"), bty = "n", 
    title = "RD Status")

plot of chunk plotSortedFABP4

We do see a subgroup with an enriched proportion of residual disease that is associated with high FABP4. In our cohort where the overall percentage of patients with residual disease is 60%, we are able to identify a subgroup with 86% residual disease.

table(rd[1:35])/sum(table(rd[1:35]))
## 
##     No    Yes 
## 0.1429 0.8571
table(rd[36:139])/sum(table(rd[36:139]))
## 
##     No    Yes 
## 0.4808 0.5192

fisher.test(matrix(c(30, 5, 54, 50), ncol = 2), alternative = "greater")
## 
##  Fisher's Exact Test for Count Data
## 
## data:  matrix(c(30, 5, 54, 50), ncol = 2)
## p-value = 0.0002489
## alternative hypothesis: true odds ratio is greater than 1
## 95 percent confidence interval:
##  2.191   Inf
## sample estimates:
## odds ratio 
##      5.494

Based on a one-sided Fisher's Exact test, the difference in proportion of residual disease is significantly higher for those with elevated FABP4.

4 Flagging RD Using ADH1B

Now, we look at the top 25th percentile based on ADH1B.

orderADH1B <- order(PCRResults$ADH1B)

plot(PCRResults$ADH1B[orderADH1B], ylab = "Initial Amount (log2)", xlab = "", 
    pch = 21, bg = c("grey", "red")[factor(rd[orderADH1B])], main = "Sorted ADH1B Concentrations")
abline(h = -19.15, lty = 2)
mtext("25%", side = 4, at = -16.5, las = 2, line = 0.5, cex = 0.8)
legend("topleft", c("Yes", "No"), pch = 19, col = c("red", "grey"), bty = "n", 
    title = "RD Status")

plot of chunk plotSortedADH1B

Using ADH1B alone, we are also able to define a subgroup with an enriched proportion (86%) of residual disease.

table(rd[rev(orderADH1B)[1:35]])/sum(table(rd[rev(orderADH1B)[1:35]]))
## 
##     No    Yes 
## 0.1429 0.8571
table(rd[rev(orderADH1B)[36:139]])/sum(table(rd[rev(orderADH1B)[36:139]]))
## 
##     No    Yes 
## 0.4808 0.5192

fisher.test(matrix(c(30, 5, 54, 50), ncol = 2), alternative = "greater")
## 
##  Fisher's Exact Test for Count Data
## 
## data:  matrix(c(30, 5, 54, 50), ncol = 2)
## p-value = 0.0002489
## alternative hypothesis: true odds ratio is greater than 1
## 95 percent confidence interval:
##  2.191   Inf
## sample estimates:
## odds ratio 
##      5.494

Again, we see the difference in proportion of residual disease is significantly higher for those with elevated ADH1B.

byBoth <- intersect(PCRResults$Sample.Name[1:35], PCRResults$Sample.Name[rev(orderADH1B)[1:35]])
rd[byBoth]
##   W20   W46   M80   M71   M61   M22   W38   M64   M24   W34   M54    W4 
##  "No" "Yes" "Yes" "Yes" "Yes" "Yes" "Yes" "Yes" "Yes" "Yes" "Yes" "Yes" 
##   W44   M52   W28   W55   M81   M32   W22   M76   M18   W16   M40 
## "Yes" "Yes" "Yes" "Yes" "Yes" "Yes" "Yes" "Yes" "Yes" "Yes" "Yes"

Of the 35 samples flagged by either marker, 23 were flagged by both (22 RD, 1 no RD).

rawPCRData[which(rawPCRData$Sample.Name == "W20"), 1:5]
##         Source   Plate Well Sample.Name Target.Name
## 205 Washington Plate.4   C1         W20       ADH1B
## 208 Washington Plate.4   C4         W20       FABP4
## 211 Washington Plate.4   C7         W20         18S
## 212 Washington Plate.4   C8         W20         18S
## 213 Washington Plate.4   C9         W20         18S

Here, we note that for the single sample with RD two wells for both ADH1B and FABP4 were removed due to poor PCR quality leaving only a single replicate to quantify each target gene.

5 Flagging RD Using Both ADH1B and FABP4

plot(PCRResults$FABP4, PCRResults$ADH1B, ylab = "ADH1B", xlab = "FABP4", pch = 21, 
    bg = c("grey", "red")[factor(rd)], main = "")
abline(a = -39.5, b = -1)

plot of chunk both

sum(-39.5 - PCRResults$FABP4 < PCRResults$ADH1B, na.rm = TRUE)
## [1] 35
byBothSim <- PCRResults$Sample.Name[which(-39.5 - PCRResults$FABP4 < PCRResults$ADH1B)]
table(rd[byBothSim])
## 
##  No Yes 
##   4  31

By using both markers simultaneously, we improve our enriched subgroup to 89% residual disease.

Appendix

getwd()
## [1] "/Users/slt/SLT WORKSPACE/EXEMPT/OVARIAN/Ovarian residual disease study 2012/RD manuscript/Web page for paper/Webpage"
sessionInfo()
## R version 3.0.2 (2013-09-25)
## Platform: x86_64-apple-darwin10.8.0 (64-bit)
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] gdata_2.13.2      qpcR_1.3-7.1      robustbase_0.9-10 rgl_0.93.963     
## [5] minpack.lm_1.1-8  MASS_7.3-29       knitr_1.5        
## 
## loaded via a namespace (and not attached):
## [1] evaluate_0.5.1 formatR_0.9    gtools_3.1.0   stringr_0.6.2 
## [5] tools_3.0.2