####################################################################
## Author: Gro Nilsen, Knut Liestøl and Ole Christian Lingjærde.
## Maintainer: Gro Nilsen <gronilse@ifi.uio.no>
## License: Artistic 2.0
## Part of the copynumber package
## Reference: Nilsen and Liestøl et al. (2012), BMC Genomics
####################################################################
#Function that updates pcfPlot parameters
#Updates or sets main, ylimits, xlimits, tickmarks, mgp, and margin
#Input:
### seg.lim: segmentation limits
### xmax: maximum on xaxis
### type: plot type
### xaxis: index or positions along xaxis?
### op: list with set plot parameters
### data.lim: data limits
### sampleID: the sampleID to be plotted
### k: the chromosome number to be plotted
###Output:
### op: list with updated plot parameters
### Required by:
### plotObs
### plotSegments
### Requires:
### get.xticks
### get.yticks
updatePlotParameters <- function(seg.lim,xmax,type,xaxis,op,data.lim,sampleID,k){
#Set MAIN TITLE for this plot depending on type of plot:
if(is.null(op$main)){
if(type %in% c("genome","chromosome")){
op$main <- sampleID
}else{
#type = sample or aspcf
op$main <- paste("Chromosome",k,sep=" ")
}
}#endif
#YLIM;if not specified by user:
#leave out the q/2 % most extreme observations in both directions (either based on entire genome or within chromosome), make sure h is included in plot
#and that segment-limits are taken into account:
if(is.null(op$ylim)){
op$ylim[1] <- min(data.lim[1],op$h,seg.lim[1]) #y-min
op$ylim[2] <- max(data.lim[2],op$h,seg.lim[2]) #y-max
}
#set XLIM parameters:
if(is.null(op$xlim)){
op$xlim <- c(0,xmax)
}
#TICK MARKS on x and y axis:
if(is.null(op$at.x)){
if(type=="genome"){
n.ticks <- 10
}
else{
n.ticks <- 6
}
if(xaxis=="pos"){
op$at.x <- get.xticks(op$xlim[1],op$xlim[2],unit=op$plot.unit,ideal.n=n.ticks)
}else{
#xaxis = index:
op$at.x <- get.xticks(op$xlim[1],op$xlim[2],unit="mbp",ideal.n=n.ticks)
}
}
if(is.null(op$at.y)){
op$at.y <- get.yticks(op$ylim[1],op$ylim[2])
}
#MGP; placement of labels and axis annotation:
if(is.null(op$mgp)){
op$mgp <- c(1.3,0.05,0)*op$f
mgp.y <- c(2,0.5,0)*op$f
}else{
mgp.y <- op$mgp
}
op$mgp.y <- mgp.y
#Default is no xlab, if specified by user the BOTTOM MARGIN must be increased:
if(op$xlab!=""){
op$mar[1] <- op$mar[1] + 1
}
return(op)
}#end updatePlotParameters
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.