Nothing
## Load Arabidopsis data
data(arab);
## Estimate normalization factors (we want to use the entire data set)
norm.factors = estimate.norm.factors(arab);
## Prepare the data
## For demonstration purpose, only the first 50 rows are used
nb.data = prepare.nb.data(arab[1:50,], lib.sizes = colSums(arab), norm.factors = norm.factors);
## For real analysis, we will use the entire data set, and can omit lib.sizes parameter)
## nb.data = prepare.nb.data(arab, norm.factors = norm.factors);
print(nb.data);
plot(nb.data);
## Specify the model matrix (experimental design)
grp.ids = as.factor(c(1, 1, 1, 2, 2, 2));
x = model.matrix(~grp.ids);
## Estimate dispersion model
dispersion = estimate.dispersion(nb.data, x);
print(dispersion);
plot(dispersion);
## Specify the null hypothesis
## The null hypothesis is beta[2]=0 (beta[2] is the log fold change).
beta0 = c(NA, 0);
## Test regression coefficient
res = test.coefficient(nb.data, dispersion, x, beta0);
## The result contains the data, the dispersion estimates and the test results
print(str(res));
## Show HOA test results for top ten most differentially expressed genes
top = order(res$HOA$p.values)[1:10];
print(cbind(nb.data$counts[top,], res$HOA[top,]));
## Plot log fold change versus the fitted mean of sample 1 (analagous to an MA-plot).
plot(res$mu.tilde[,1], res$beta.hat[,2]/log(2), log="x",
xlab="Fitted mean of sample 1 under the null",
ylab="Log (base 2) fold change");
## Highlight top DE genes
points(res$mu.tilde[top,1], res$beta.hat[top,2]/log(2), col="magenta");
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.