File: testsuite.Rmd

package info (click to toggle)
r-bioc-deseq2 1.30.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,720 kB
  • sloc: cpp: 413; sh: 14; makefile: 2
file content (173 lines) | stat: -rw-r--r-- 5,015 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
# Test suite

```{r functionDefs}

medianPercentShrinkage <- function(res,...) {
  idx <- res$baseMean > 10
  baseMean <- res$baseMean[idx]
  qs <- quantile(baseMean, 0:10/10)
  nms <- unname( round( (qs[-1] + qs[-length(qs)])/2 ) )
  f <- cut(baseMean, qs)
  delta <- 100 * ( (res$lfcMLE - res$log2FoldChange) / res$lfcMLE )[ idx ]
  barplot(tapply(delta, f, median, na.rm=TRUE), las=2,
          names=nms, xlab="mean expression", ylab="median percent LFC shrinkage",
          ...)
}

summarizeDESeqRun <- function(x,Wald=TRUE) {
  name <- x$name
  time <- x$time
  res <- x$res
  dds <- x$dds
  cat(name,"\n")
  cat(paste(as.character(design(dds)),collapse=""),"\n")
  cat(paste(nrow(dds),"genes",ncol(dds),"samples \n"))
  cat(paste(round(unname(time[3])),"seconds \n"))
  summary(res)
  if (Wald) {
    par(mfrow=c(2,2))
    yext <- max(abs(res$log2FoldChange),na.rm=TRUE)
    plotMA(res,ylim=c(-yext,yext),main=name)
    medianPercentShrinkage(res,main=name)
  } else {
    par(mfrow=c(1,2))
  }
  plotDispEsts(dds,main=name)
  hist(res$pvalue[res$baseMean > 10],col="grey",main="p-values | base-mean > 10",xlab="")
}

library("GenomicRanges")

recount2SE <- function(name) {
  filename <- paste0(name,"_eset.RData")
  if (!file.exists(filename)) download.file(paste0(
    "http://bowtie-bio.sourceforge.net/recount/ExpressionSets/",
    filename),filename)
  load(filename)
  e <- get(paste0(name,".eset"))
  se <- SummarizedExperiment(SimpleList(counts=exprs(e)),
                             colData=DataFrame(pData(e)))
  se                   
}

```


```{r runAirway, cache=TRUE}
library("airway")
data(airway)
dds <- DESeqDataSet(airway, ~ cell + dex)
time <- system.time({ dds <- DESeq(dds) })
res <- results(dds,addMLE=TRUE)
airwayRes <- list(name="airway", time=time, res=res, dds=dds)
rm(time, res, dds)
```


```{r runPasilla, cache=TRUE}
library("pasilla")
library("Biobase")
data("pasillaGenes")
countData <- counts(pasillaGenes)
colData <- pData(pasillaGenes)[,c("condition","type")]
dds <- DESeqDataSetFromMatrix(countData = countData,
                              colData = colData,
                              design = ~ type + condition)
dds$condition <- relevel(dds$condition, "untreated","treated")
time <- system.time({ dds <- DESeq(dds) })
res <- results(dds,addMLE=TRUE)
pasillaRes <- list(name="pasilla", time=time, res=res, dds=dds)
rm(time, res, dds)
```

```{r runHammer, cache=TRUE}
se <- recount2SE("hammer")
se$Time[4] <- "2 months"
se$Time <- droplevels(se$Time)
dds <- DESeqDataSet(se, ~ Time + protocol)
dds$protocol <- relevel(dds$protocol, "control")
time <- system.time({ dds <- DESeq(dds) })
res <- results(dds,addMLE=TRUE)
hammerRes <- list(name="hammer", time=time, res=res, dds=dds)
rm(time, res, dds)
```

```{r runBottomly, cache=TRUE}
se <- recount2SE("bottomly")
dds <- DESeqDataSet(se, ~ strain)
time <- system.time({ dds <- DESeq(dds) })
res <- results(dds,addMLE=TRUE)
bottomlyRes <- list(name="bottomly", time=time, res=res, dds=dds)
rm(time, res, dds)
```


```{r runParathyroid, cache=TRUE}
library("DESeq2")
library("parathyroidSE")
data(parathyroidGenesSE)
se <- parathyroidGenesSE
dds0 <- DESeqDataSet(se, ~ patient + treatment)
dds0 <- dds0[,dds0$treatment != "OHT" & dds0$time == "48h"]
dds <- collapseReplicates(dds0, groupby = dds0$sample, run = dds0$run)
dds$treatment <- factor(dds$treatment, levels=c("Control","DPN"))
time <- system.time({ dds <- DESeq(dds) })
res <- results(dds,addMLE=TRUE)
parathyroidRes <- list(name="parathyroid", time=time, res=res, dds=dds)
rm(time, res, dds)
```

```{r runFission, cache=TRUE}
library("fission")
data(fission)
dds <- DESeqDataSet(fission, ~ strain + minute + strain:minute)
time <- system.time({ dds <- DESeq(dds, test="LRT", reduced= ~ strain + minute) })
res <- results(dds)
fissionRes <- list(name="fission", time=time, res=res, dds=dds)
rm(time, res, dds)
```

```{r plotAirway, fig.width=9, fig.height=9}
summarizeDESeqRun(airwayRes)
```

```{r plotPasilla, fig.width=9, fig.height=9}
summarizeDESeqRun(pasillaRes)
```

```{r plotHammer, fig.width=9, fig.height=9}
summarizeDESeqRun(hammerRes)
```

```{r plotBottomly, fig.width=9, fig.height=9}
summarizeDESeqRun(bottomlyRes)
```


```{r plotParathryoid, fig.width=9, fig.height=9}
summarizeDESeqRun(parathyroidRes)
```

```{r plotFission, fig.width=9, fig.height=4}
summarizeDESeqRun(fissionRes, Wald=FALSE)
```

```{r, fig.width=5, fig.height=5}
gene <- rownames(fissionRes$res)[which.min(fissionRes$res$pvalue)]
data <- plotCounts(fissionRes$dds, gene, intgroup=c("minute","strain"),
                   returnData=TRUE, transform=TRUE)
library("ggplot2")
ggplot(data, aes(minute, count, color=strain, group=strain)) +
  ylab("log2 count") + geom_point() + geom_smooth(se=FALSE,method="loess") +
  ggtitle(gene)
```

```{r}
sapply(list(airway=airwayRes, pasilla=pasillaRes, hammer=hammerRes,
            bottomly=bottomlyRes, parathyroid=parathyroidRes, fission=fissionRes),
       function(z) unname(z$time[3]))
```

```{r}
sessionInfo()
```