\name{dyebias.trendplot} \alias{dyebias.trendplot} \title{Creates a trend-plot of all reporters, binned by dye bias, with all slides ordered by slide bias. } \description{ The aim of this routine is to show the monotonicity of the total dye bias in the (uncorrected) data set. This is to judge whether the total dye bias of one reporter in one hybridization indeed behaves as the product of an intrinsic gene specific dye bias (iGSDB) and a slide specific factor (the slide bias), which is at the heart of the GASSCO method. Showing the total dye bias of all reporters is too overwhelming, therefore the medians of the total dye bias after binning by intrinsic gene specific dye bias (as given in \code{dyebias$dyebias}) are plotted. } \synopsis{ dyebias.trendplot <- function(data, iGSDBs, dyebias.percentile=5, application.subset=TRUE, n.bins=20, type="median", order, output=NULL, ylim=c(-2,2), cex=0.3, lty=1, lwd=1, main="dye bias trend plot", xlab="slide bias rank", ylab="M", sub=NULL, \dots) } \arguments{ \item{data}{The \code{marrayNorm} to trendplot. } \item{iGSDBs}{A data frame with intrinsic gene-specific dye biases, the same as that used in \code{\link{dyebias.apply.correction}}, probably returned by \cr \code{\link{dyebias.estimate.iGSDBs}}; see there for documentation. } \item{dyebias.percentile}{ The percentile of intrinsic gene specific dye biases (iGSDBs) for which to highlight the reporters. Default should suffice in almost all cases. } \item{application.subset}{ The set of reporters that was eligible for dye bias correction; same argument as for \code{\link{dyebias.apply.correction}}. } \item{n.bins}{The number of bins into which to classify the reporters, based on their intrinsic gene-specific dye bias. The median of each bin is plotted.} \item{type}{What to print for each bin and hybridization. Valid values are: \itemize{ \item{median}{Plot the bin-median: the median of all genes in that bin and hybridization} \item{mean}{Plot the mean of all genes in that bin and hybridization} \item{gene}{Plot the single gene that has the lowest squared distance to the bin-median over \emph{all} hybridizations} \item{median.gene}{Plot the single gene that has the median squared distance to the bin-medians over \emph{all} hybridizations} \item{worst.gene}{Plot the single gene that correlates worst with the bin-median over \emph{all} hybridizations} } } \item{order}{ If \code{order==NULL}, the slides are sorted by increasing slide bias prior to boxplotting. This is typically done for data that is not yet dye bias corrected. This order is also returned as a value. If \code{order!=NULL}, the slides are put into this order before trendplotting. This is typically done for a dye bias-corrected data set, using the order of the uncorrected set. } \item{output}{ Specifies the output. If \code{NULL}, the existing output device is used; if \code{output} is one of \code{"X11", "windows", "quartz"}, a new X11 (Unix)/windows (Windows)/quartz (Mac) device is created. If \code{output} is a string ending in one of \code{".pdf", ".png", ".eps", ".ps"} is given, a file of that name and type is created and closed afterwards.} \item{ylim, lty, lwd, main, sub, cex, xlab, ylab}{As for \code{matplot()}} \item{\dots}{Other arguments are passed on to \code{matplot()}. } } \value{ The order obtained, for use in a later call to this same function. } \examples{ \dontshow{ options(stringsAsFactors = FALSE) library(dyebias) library(dyebiasexamples) data(data.raw) data(data.norm) ### obtain estimate for the iGSDBs: iGSDBs.estimated <- dyebias.estimate.iGSDBs(data.norm, is.balanced=TRUE, verbose=FALSE) ### choose the estimators and which spots to correct: estimator.subset <- dyebias.umcu.proper.estimators(maInfo(maGnames(data.norm))) application.subset <- maW(data.norm) == 1 & dyebias.application.subset(data.raw=data.raw, use.background=TRUE) ### do the correction: correction <- dyebias.apply.correction(data.norm=data.norm, iGSDBs = iGSDBs.estimated, estimator.subset=estimator.subset, application.subset = application.subset, verbose=FALSE) } % dontshow ## show trend plots of uncorrected and corrected next to each other: ylim <- c(-0.6, 0.6) layout(matrix(1:2, nrow=1,ncol=2)) order <- dyebias.trendplot(data=data.norm, iGSDBs=iGSDBs.estimated, # from e.g. dyebias.estimate.iGSDBs order=NULL, # i.e., order by increasing slide bias output=NULL, main="before correction", ylim=ylim ) order <- dyebias.trendplot(data=correction$data.corrected, # from dyebias.apply.correction iGSDBs=iGSDBs.estimated, order=order, # order by the original slide bias output=NULL, main="after correction", ylim=ylim ) } \author{Philip Lijnzaad \email{p.lijnzaad@umcutrecht.nl} } \seealso{ \code{\link{dyebias.estimate.iGSDBs}}, \code{\link{dyebias.apply.correction}}, \code{\link{dyebias.rgplot}}, \code{\link{dyebias.maplot}}, \code{\link{dyebias.monotonicity}} \code{\link{dyebias.monotonicityplot}} } \references{ Margaritis, T., Lijnzaad, P., van Leenen, D., Bouwmeester, D., Kemmeren, P., van Hooff, S.R and Holstege, F.C.P. (2009). Adaptable gene-specific dye bias correction for two-channel DNA microarrays. \emph{Molecular Systems Biology}, 5:266, 2009. doi: 10.1038/msb.2009.21. } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{hplot} % silly, but one keyword is compulsary \keyword{misc} % silly, but one keyword is compulsary