[med-svn] [r-bioc-limma] 02/06: New upstream version 3.32.10+dfsg
Andreas Tille
tille at debian.org
Sun Oct 22 17:16:49 UTC 2017
This is an automated email from the git hooks/post-receive script.
tille pushed a commit to branch master
in repository r-bioc-limma.
commit c3d48d4e1cccc0335eda31c82aa10be974f3fd22
Author: Andreas Tille <tille at debian.org>
Date: Sun Oct 22 18:46:40 2017 +0200
New upstream version 3.32.10+dfsg
---
DESCRIPTION | 6 +--
R/beadCountWeights.R | 45 ++++++++++++++-------
R/diffSplice.R | 105 ------------------------------------------------
R/plotSplice.R | 65 ++++++++++++++++++++++++++++++
R/topSplice.R | 57 ++++++++++++++++++++++++++
build/vignette.rds | Bin 231 -> 231 bytes
inst/doc/changelog.txt | 13 +++++-
inst/doc/intro.pdf | Bin 43301 -> 43301 bytes
man/beadCountWeights.Rd | 28 ++++++++-----
man/ebayes.Rd | 20 +++++----
man/topSplice.Rd | 12 ++++--
11 files changed, 207 insertions(+), 144 deletions(-)
diff --git a/DESCRIPTION b/DESCRIPTION
index b7a20e1..8f65beb 100755
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,6 +1,6 @@
Package: limma
-Version: 3.32.7
-Date: 2017-09-21
+Version: 3.32.10
+Date: 2017-10-12
Title: Linear Models for Microarray Data
Description: Data analysis, linear models and differential expression for microarray data.
Author: Gordon Smyth [cre,aut], Yifang Hu [ctb], Matthew Ritchie [ctb], Jeremy Silver [ctb], James Wettenhall [ctb], Davis McCarthy [ctb], Di Wu [ctb], Wei Shi [ctb], Belinda Phipson [ctb], Aaron Lun [ctb], Natalie Thorne [ctb], Alicia Oshlack [ctb], Carolyn de Graaf [ctb], Yunshun Chen [ctb], Mette Langaas [ctb], Egil Ferkingstad [ctb], Marcus Davy [ctb], Francois Pepin [ctb], Dongseok Choi [ctb]
@@ -21,4 +21,4 @@ biocViews: ExonArray, GeneExpression, Transcription,
MultipleComparison, Normalization, Preprocessing,
QualityControl
NeedsCompilation: yes
-Packaged: 2017-09-21 22:27:18 UTC; biocbuild
+Packaged: 2017-10-12 22:15:31 UTC; biocbuild
diff --git a/R/beadCountWeights.R b/R/beadCountWeights.R
index 73d7de1..428d482 100644
--- a/R/beadCountWeights.R
+++ b/R/beadCountWeights.R
@@ -1,34 +1,51 @@
beadCountWeights <- function(y, x, design=NULL, bead.stdev=NULL, bead.stderr=NULL, nbeads=NULL, array.cv=TRUE, scale=FALSE)
# Compute weights for BeadChips based on bead-level counts and standard deviations
# Charity Law and Gordon Smyth
-# 4 August 2010. Last modified 19 Dec 2013.
+# Created 4 August 2010. Last modified 4 Oct 2017.
{
+# Matrix of normalized expression values
E <- as.matrix(y)
+ P <- nrow(E)
+ A <- ncol(E)
+
+# Matrix of non-normalized expression values on unlog scale
E.raw <- as.matrix(x)
+ if(nrow(E.raw) != P) stop("dimensions don't match")
+ if(ncol(E.raw) != A) stop("dimensions don't match")
+
+# Check design matrix
+ if(is.null(design)) design <- y$design
+ if(is.null(design))
+ design <- matrix(1,A,1)
+ else {
+ design <- as.matrix(design)
+ if(mode(design) != "numeric") stop("design must be a numeric matrix")
+ if(nrow(design) != A) stop("row dimension of design doesn't match column dimension of data object")
+ }
+
+# Number of beads per probe
if(is.null(nbeads)) {
nbeads <- y$other$Avg_NBEADS
- if(is.null(nbeads)) stop("NBEADS not found in data object")
+ if(is.null(nbeads)) stop("nbeads not provided and Avg_NBEADS not found in data object")
}
+ if(nrow(nbeads) != P) stop("dimensions don't match")
+ if(ncol(nbeads) != A) stop("dimensions don't match")
+
+# Standard deviation of beads per probe
if(is.null(bead.stdev)) {
- if (is.null(bead.stderr)) {
- if (is.null(y$other$BEAD_STDEV)) {
- y$other$BEAD_STDEV <- y$other$BEAD_STDERR*sqrt(nbeads)
+ if(is.null(bead.stderr)) {
+ if(is.null(y$other$BEAD_STDEV)) {
+ if(is.null(y$other$BEAD_STDERR)) stop("Neither bead.stdev nor bead.stderr were provided (and neither could be found in the data object y). At least one is required.")
+ bead.stdev <- y$other$BEAD_STDERR*sqrt(nbeads)
} else {
- bead.stdev <- y$other$BEAD_STDEV
+ bead.stdev <- y$other$BEAD_STDEV
}
} else {
bead.stdev <- bead.stderr*sqrt(nbeads)
}
- if(is.null(bead.stdev)) stop("BEAD_STDEV and BEAD_STDERR are missing. At least one is required.")
- }
- P <- nrow(E)
- A <- ncol(E)
- if(nrow(E.raw) != P) stop("dimensions don't match")
- if(ncol(E.raw) != A) stop("dimensions don't match")
+ }
if(nrow(bead.stdev) != P) stop("dimensions don't match")
if(ncol(bead.stdev) != A) stop("dimensions don't match")
- if(nrow(nbeads) != P) stop("dimensions don't match")
- if(ncol(nbeads) != A) stop("dimensions don't match")
# Coefficient of variation of bead-level observations
# Array-specific or constant.
diff --git a/R/diffSplice.R b/R/diffSplice.R
index 95745f5..c44fe17 100644
--- a/R/diffSplice.R
+++ b/R/diffSplice.R
@@ -145,108 +145,3 @@ diffSplice <- function(fit,geneid,exonid=NULL,robust=FALSE,verbose=TRUE)
out
}
-
-topSplice <- function(fit, coef=ncol(fit), test="simes", number=10, FDR=1)
-# Collate diffSplice results into data.frame, ordered from most significant at top
-# Gordon Smyth
-# Created 18 Dec 2013. Last modified 18 Aug 2014.
-{
- coef <- coef[1]
- test <- match.arg(test,c("simes","F","f","t"))
- if(test=="f") test <- "F"
- switch(test,
- "t" = {
- number <- min(number,nrow(fit$coefficients))
- P <- fit$p.value[,coef]
- BH <- p.adjust(P, method="BH")
- if(FDR<1) number <- min(number,sum(BH<FDR))
- o <- order(P)[1:number]
- data.frame(fit$genes[o,,drop=FALSE],logFC=fit$coefficients[o,coef],t=fit$t[o,coef],P.Value=P[o],FDR=BH[o])
- },
- F = {
- number <- min(number,nrow(fit$gene.F))
- P <- fit$gene.F.p.value[,coef]
- BH <- p.adjust(P, method="BH")
- if(FDR<1) number <- min(number,sum(BH<FDR))
- o <- order(P)[1:number]
- data.frame(fit$gene.genes[o,,drop=FALSE],F=fit$gene.F[o,coef],P.Value=P[o],FDR=BH[o])
- },
- simes = {
- number <- min(number,nrow(fit$gene.F))
- P <- fit$gene.simes.p.value[,coef]
- BH <- p.adjust(P, method="BH")
- if(FDR<1) number <- min(number,sum(BH<FDR))
- o <- order(P)[1:number]
- data.frame(fit$gene.genes[o,,drop=FALSE],P.Value=P[o],FDR=BH[o])
- }
- )
-}
-
-plotSplice <- function(fit, coef=ncol(fit), geneid=NULL, genecolname=NULL, rank=1L, FDR = 0.05)
-# Plot exons of chosen gene
-# fit is output from diffSplice
-# Gordon Smyth and Yifang Hu
-# Created 3 Jan 2014. Last modified 7 October 2014.
-{
- if(is.null(genecolname))
- genecolname <- fit$genecolname
- else
- genecolname <- as.character(genecolname)
-
- if(is.null(geneid)) {
-# Find gene from specified rank
- if(rank==1L)
- i <- which.min(fit$gene.F.p.value[,coef])
- else
- i <- order(fit$gene.F.p.value[,coef])[rank]
- geneid <- paste(fit$gene.genes[i,genecolname], collapse = ".")
- } else {
-# Find gene from specified name
- geneid <- as.character(geneid)
- i <- which(fit$gene.genes[,genecolname]==geneid)[1]
- if(!length(i)) stop(paste("geneid",geneid,"not found"))
- }
-
-# Row numbers containing exons
- j <- fit$gene.firstexon[i]:fit$gene.lastexon[i]
-
- exoncolname <- fit$exoncolname
-
-# Get strand if possible
- strcol <- grepl("strand", colnames(fit$gene.genes), ignore.case = TRUE)
- if(any(strcol)) geneid <- paste0(geneid, " (", as.character(fit$gene.genes[i, strcol])[1], ")")
-
- if(is.null(exoncolname)) {
-
- plot(fit$coefficients[j,coef], xlab = "Exon", ylab = "logFC (this exon vs rest)", main = geneid, type = "b")
-
- } else {
-
- exon.id <- fit$genes[j, exoncolname]
- xlab <- paste("Exon", exoncolname, sep = " ")
-
- plot(fit$coefficients[j, coef], xlab = "", ylab = "logFC (this exon vs rest)", main = geneid,type = "b", xaxt = "n")
- axis(1, at = 1:length(j), labels = exon.id, las = 2, cex.axis = 0.5)
- mtext(xlab, side = 1, padj = 5.2)
-
-# Mark the topSpliced exons
- top <- topSplice(fit, coef = coef, number = Inf, test = "t", FDR = FDR)
- m <- which(top[,genecolname] %in% fit$gene.genes[i,genecolname])
- if(length(m) > 0){
- if(length(m) == 1)
- cex <- 1.5
- else {
- abs.fdr <- abs(log10(top$FDR[m]))
- from <- range(abs.fdr)
- to <- c(1,2)
- cex <- (abs.fdr - from[1])/diff(from) * diff(to) + to[1]
- }
- mark <- match(top[m, exoncolname], exon.id)
- points((1:length(j))[mark], fit$coefficients[j[mark], coef], col = "red", pch = 16, cex = cex)
- }
-
- }
-
- abline(h=0,lty=2)
- invisible()
-}
diff --git a/R/plotSplice.R b/R/plotSplice.R
new file mode 100644
index 0000000..96d401f
--- /dev/null
+++ b/R/plotSplice.R
@@ -0,0 +1,65 @@
+plotSplice <- function(fit, coef=ncol(fit), geneid=NULL, genecolname=NULL, rank=1L, FDR=0.05)
+# Plot exons of chosen gene
+# fit is output from diffSplice
+# Gordon Smyth, Yifang Hu and Yunshun Chen
+# Created 3 Jan 2014. Last modified 28 Sep 2017.
+{
+ if(is.null(genecolname))
+ genecolname <- fit$genecolname
+ else
+ genecolname <- as.character(genecolname)
+
+ if(is.null(geneid)) {
+# Find gene from specified rank
+ if(rank==1L)
+ i <- which.min(fit$gene.F.p.value[,coef])
+ else
+ i <- order(fit$gene.F.p.value[,coef])[rank]
+ geneid <- paste(fit$gene.genes[i,genecolname], collapse=".")
+ } else {
+# Find gene from specified name
+ geneid <- as.character(geneid)
+ i <- which(fit$gene.genes[,genecolname]==geneid)[1]
+ if(!length(i)) stop(paste("geneid",geneid,"not found"))
+ }
+
+# Row numbers containing exons
+ j <- fit$gene.firstexon[i]:fit$gene.lastexon[i]
+
+ exoncolname <- fit$exoncolname
+
+# Get strand if possible
+ strcol <- grepl("strand", colnames(fit$gene.genes), ignore.case=TRUE)
+ if(any(strcol)) geneid <- paste0(geneid, " (", as.character(fit$gene.genes[i, strcol])[1], ")")
+
+ if(is.null(exoncolname)) {
+ plot(fit$coefficients[j, coef], xlab="Exon", ylab="logFC (this exon vs rest)", main=geneid, type="b")
+ } else {
+ exon.id <- fit$genes[j, exoncolname]
+ xlab <- paste("Exon", exoncolname, sep=" ")
+ plot(fit$coefficients[j, coef], xlab="", ylab="logFC (this exon vs rest)", main=geneid, type="b", xaxt="n")
+ axis(1, at=1:length(j), labels=exon.id, las=2, cex.axis=0.5)
+ mtext(xlab, side=1, padj=5.2)
+ }
+
+# Mark the topSpliced exons
+ top <- topSplice(fit, coef=coef, number=Inf, test="t", sort.by="none")
+ m <- which(top[, genecolname] %in% fit$gene.genes[i, genecolname])
+ fdr <- top$FDR[m]
+ sig <- fdr < FDR
+ if(any(sig)){
+ fdr.sig <- fdr[sig]
+ if(length(unique(fdr.sig))==1)
+ cex <- 1.5
+ else {
+ abs.fdr <- abs(log10(fdr.sig))
+ from <- range(abs.fdr)
+ to <- c(1,2)
+ cex <- (abs.fdr - from[1])/diff(from) * diff(to) + to[1]
+ }
+ points((1:length(j))[sig], fit$coefficients[j[sig], coef], col="red", pch=16, cex=cex)
+ }
+
+ abline(h=0,lty=2)
+ invisible()
+}
diff --git a/R/topSplice.R b/R/topSplice.R
new file mode 100644
index 0000000..6d72674
--- /dev/null
+++ b/R/topSplice.R
@@ -0,0 +1,57 @@
+topSplice <- function(fit, coef=ncol(fit), test="simes", number=10L, FDR=1, sort.by="p")
+# Collate diffSplice results into data.frame, ordered from most significant at top
+# Gordon Smyth and Yunshun Chen
+# Created 18 Dec 2013. Last modified 29 Sep 2017.
+{
+# Check fit is as produced by diffSplice
+ if(is.null(fit$gene.genes$NExons)) stop("fit should be fit object produced by diffSplice")
+
+# Can only specify one coefficient
+ coef <- coef[1]
+
+ test <- match.arg(test,choices=c("simes","F","f","t"))
+ if(test=="f") test <- "F"
+
+ sort.by <- match.arg(sort.by,choices=c("p","none","logFC","NExons"))
+ if(sort.by=="logFC" & test!="t") stop("Sorting by logFC only available with Simes test")
+ if(sort.by=="NExons" & test=="t") stop("Sorting by NExons only available with gene-level tests")
+
+# Assemble data.frame of results for this coef
+ switch(test,
+ t = {
+ out <- fit$genes
+ out$logFC <- as.matrix(fit$coefficients)[,coef]
+ out$t <- as.matrix(fit$t)[,coef]
+ out$P.Value <- as.matrix(fit$p.value)[,coef]
+ },
+
+ F = {
+ out <- fit$gene.genes
+ out$F <- as.matrix(fit$gene.F)[,coef]
+ out$P.Value <- as.matrix(fit$gene.F.p.value)[,coef]
+ },
+
+ simes = {
+ out <- fit$gene.genes
+ out$P.Value <- as.matrix(fit$gene.simes.p.value)[,coef]
+ }
+ )
+ out$FDR <- p.adjust(out$P.Value, method="BH")
+
+# Reduce to significant genes
+ if(FDR<1) out <- out[out$FDR <= FDR,]
+
+# Is the number of rows requested more than number available?
+ number <- min(number, nrow(out))
+ if(number <= 1L) return(out)
+
+# Sort rows
+ o <- switch(sort.by,
+ p = order(out$P.Value, decreasing=FALSE),
+ logFC = order(abs(out$logFC), decreasing=TRUE),
+ NExons = order(out$NExons, -out$P.Value, decreasing=TRUE),
+ none = 1:nrow(out)
+ )
+ o <- o[1:number]
+ out[o,]
+}
diff --git a/build/vignette.rds b/build/vignette.rds
index 18bda60..42a8011 100644
Binary files a/build/vignette.rds and b/build/vignette.rds differ
diff --git a/inst/doc/changelog.txt b/inst/doc/changelog.txt
index 9296fbd..2ecd58a 100755
--- a/inst/doc/changelog.txt
+++ b/inst/doc/changelog.txt
@@ -1,5 +1,16 @@
+ 4 Oct 2017: limma 3.32.8
+
+- Bug fixes for beadCountWeights(). Default is now set correct for
+ 'design' and the function now works correctly when 'y' is an EList
+ object contain bead standard errors but not standard deviations.
+
+- Bug fixes for plotSplice() which, in some circumstances, was not
+ highlight significant exons.
+
+- New argument 'sort.by' for topSplice().
+
21 Sep 2017: limma 3.32.7
-
+
- volcanoplot() didn't work with MArrayLM objects produced by
treat(). Now fixed.
diff --git a/inst/doc/intro.pdf b/inst/doc/intro.pdf
index aa43f6b..5ed4444 100644
Binary files a/inst/doc/intro.pdf and b/inst/doc/intro.pdf differ
diff --git a/man/beadCountWeights.Rd b/man/beadCountWeights.Rd
index 2bbbc7c..c165afa 100644
--- a/man/beadCountWeights.Rd
+++ b/man/beadCountWeights.Rd
@@ -13,14 +13,14 @@ beadCountWeights(y, x, design = NULL, bead.stdev = NULL, bead.stderr = NULL,
}
\arguments{
- \item{y}{normalized log2-expression values.}
- \item{x}{raw expression values, with the same dimensions as \code{y}.}
+ \item{y}{an \code{"EList"} object or a numeric matrix containing normalized log2-expression values.}
+ \item{x}{an \code{"EListRaw"} object or a numeric matrix of raw expression values, with same dimensions as \code{y}.}
\item{design}{the design matrix of the microarray experiment, with rows
corresponding to arrays and columns to coefficients to be
- estimated. Defaults to the unit vector meaning that the
+ estimated. Defaults to \code{y$design} or, if that is \code{NULL}, then to a column of ones meaning that the
arrays are treated as replicates.}
- \item{bead.stdev}{numeric matrix containing bead-level standard deviations.}
- \item{bead.stderr}{numeric matrix containing bead-level standard errors.}
+ \item{bead.stdev}{numeric matrix of bead-level standard deviations.}
+ \item{bead.stderr}{numeric matrix of bead-level standard errors. Not required if \code{bead.stdev} is set.}
\item{nbeads}{numeric matrix containing number of beads.}
\item{array.cv}{logical, should technical variation for each observation be calculated from a constant or array-specific coefficient of variation? The default is to use array-specific coefficients of variation.}
\item{scale}{logical, should weights be scaled so that the average weight size is the mean of the inverse technical variance along a probe? By default, weights are scaled so that the average weight size along a probe is 1.}
@@ -44,7 +44,11 @@ Coefficients of variation are calculated using raw expression values.
The biological variance for each probe across the arrays are estimated using a Newton iteration, with the assumption that the total residual deviance for each probe from \code{lmFit} is inversely proportional to the sum of the technical variance and biological variance.
-If any of the arguments \code{design}, \code{bead.stdev}, \code{bead.stderr} or \code{nbeads} are set explicitly in the call they will over-ride the slots or components in the data \code{object}. The argument \code{design} does not normally need to be set in the call but will be extracted from the data \code{object} if available. If arguments \code{bead.stdev}, \code{bead.stderr} and \code{nbeads} are not set explicitly in the call, it is necessary that they are available for extraction [...]
+Only one of \code{bead.stdev} or \code{bead.stderr} needs to be set.
+If \code{bead.stdev} is not provided, then it will be computed as \code{bead.stderr * sqrt(nbeads)}.
+
+If arguments \code{bead.stdev} and \code{nbeads} are not set explicitly in the call, then they will be extracted from\code{y$other$BEAD_STDEV} and \code{y$other$Avg_NBEADS}.
+An \code{EList} object containing these components can be created by \code{read.idat} or \code{read.ilmn}, see the example code below.
}
\value{
@@ -53,8 +57,8 @@ A list object with the following components:
\item{weights}{numeric matrix of bead number weights}
\item{cv.constant}{numeric value of constant bead-level coefficient of variation}
\item{cv.array}{numeric vector of array-specific bead-level coefficient of variation}
-\item{var.technical}{numeric matrix of technical variance}
-\item{var.biological}{numeric vector of biological variance}
+\item{var.technical}{numeric matrix of technical variances}
+\item{var.biological}{numeric vector of biological variances}
}
\references{
@@ -68,11 +72,11 @@ PhD Thesis. University of Melbourne, Australia.
\examples{
\dontrun{
-ps <- read.ilmn(files="probesummaryprofile.txt",
+z <- read.ilmn(files="probesummaryprofile.txt",
ctrfiles="controlprobesummary.txt",
other.columns=c("BEAD_STDEV","Avg_NBEADS"))
-y <- neqc(ps)
-x <- ps[ps$genes$Status=="regular",]
+y <- neqc(z)
+x <- z[z$genes$Status=="regular",]
bcw <- beadCountWeights(y,x,design)
fit <- lmFit(y,design,weights=bcw$weights)
fit <- eBayes(fit)
@@ -80,5 +84,7 @@ fit <- eBayes(fit)
}
\seealso{
+\code{\link{read.ilmn}}, \code{\link{read.idat}}, \code{\link{neqc}}.
+
An overview of linear model functions in limma is given by \link{06.LinearModels}.
}
diff --git a/man/ebayes.Rd b/man/ebayes.Rd
index 7959730..e1b1261 100755
--- a/man/ebayes.Rd
+++ b/man/ebayes.Rd
@@ -108,25 +108,31 @@ Smyth, G. K. (2004). Linear models and empirical Bayes methods for assessing dif
# Simulate gene expression data,
# 6 microarrays and 100 genes with one gene differentially expressed
-set.seed(2004); invisible(runif(100))
-M <- matrix(rnorm(100*6,sd=0.3),100,6)
-M[1,] <- M[1,] + 1
-fit <- lmFit(M)
+set.seed(2016)
+sigma2 <- 0.05 / rchisq(100, df=10) * 10
+y <- matrix(rnorm(100*6,sd=sqrt(sigma2)),100,6)
+design <- cbind(Intercept=1,Group=c(0,0,0,1,1,1))
+y[1,4:6] <- y[1,4:6] + 1
+fit <- lmFit(y,design)
# Moderated t-statistic
fit <- eBayes(fit)
-topTable(fit)
+topTable(fit,coef=2)
# Ordinary t-statistic
-ordinary.t <- fit$coef / fit$stdev.unscaled / fit$sigma
+ordinary.t <- fit$coef[,2] / fit$stdev.unscaled[,2] / fit$sigma
# Q-Q plots of t statistics
# Points off the line may be differentially expressed
par(mfrow=c(1,2))
qqt(ordinary.t, df=fit$df.residual, main="Ordinary t")
abline(0,1)
-qqt(fit$t, df=fit$df.total,main="Moderated t")
+qqt(fit$t[,2], df=fit$df.total,main="Moderated t")
abline(0,1)
par(mfrow=c(1,1))
+
+# Treat
+tfit <- treat(fit,lfc=log2(1.1))
+topTreat(tfit,coef=2)
}
\keyword{htest}
diff --git a/man/topSplice.Rd b/man/topSplice.Rd
index 509996d..9d4342e 100644
--- a/man/topSplice.Rd
+++ b/man/topSplice.Rd
@@ -5,17 +5,23 @@
Top table ranking the most differentially spliced genes or exons.
}
\usage{
-topSplice(fit, coef=ncol(fit), test="simes", number=10, FDR=1)
+topSplice(fit, coef = ncol(fit), test = "simes", number = 10, FDR=1, sort.by = "p")
}
\arguments{
\item{fit}{\code{MArrayLM} fit object produced by \code{diffSplice}.}
\item{coef}{the coefficient (column) of fit for which differentially splicing is assessed.}
- \item{test}{character string, possible values are \code{"simes"}, \code{"F"} or \code{"t"}.
+ \item{test}{character string specifying which statistical test to apply.
+ Possible values are \code{"simes"}, \code{"F"} or \code{"t"}.
\code{"F"} gives F-tests for each gene.
\code{"t"} gives t-tests for each exon.
- \code{"simes"} gives genewise p-values derived from the t-tests after Simes adjustment for each gene.}
+ \code{"simes"} gives genewise p-values derived from the t-tests after Simes adjustment for each gene.
+ }
\item{number}{integer, maximum number of rows to output.}
\item{FDR}{numeric, only show exons or genes with false discovery rate less than this cutoff.}
+ \item{sort.by}{character string specifying which column to sort results by.
+ Possible values for \code{"p"}, \code{"logFC"}, \code{"NExons"} or \code{"none"}.
+ \code{"logFC"} is only available if \code{test="t"} and \code{"NExons"} is only available if \code{test="simes"} or \code{test="F"}.
+ }
}
\details{
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/r-bioc-limma.git
More information about the debian-med-commit
mailing list