####################################################################
## 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 checks and returns valid filename(s):
## Input:
### nPage: number of plot pages
### file.name: input desired file.name
### ID: a vector of IDs for each plot page; eg chromosome number or sample name
### type: plot type
## Output:
### file.name: a vector giving valid filename(s)
## Required by:
### plotAllele
### plotChrom
### plotGenome
### plotSample
## Requires:
### none
getFilename <- function(nPage, file.name, ID, type) {
def.name <- switch(type,
genome = "genomeplot",
sample = "sampleplot",
chromosome = "chromosomeplot",
aspcf = "aspcfplot",
genomeFreq = "genome frequencyplot",
chromFreq = "chromosome frequencyplot",
genomeHeat = "genome heatplot",
chromHeat = "chromosome heatplot"
)
if (nPage == 1) {
# Only one file/window
if (is.null(file.name)) {
file.name <- ifelse(length(ID) == 1, paste(def.name, "_", ID, sep = ""), def.name)
} else {
if (length(file.name) != nPage) {
warning("Length of 'file.name' is not equal to number of files to be saved, first element in 'file.name' is used", call. = FALSE, immediate. = TRUE)
}
file.name <- file.name[1] # in case more than one name has been specified
}
} else {
# Each page should be in separate file/window, need multiple file.names
if (is.null(file.name)) {
file.name <- paste(def.name, "_", ID, sep = "")
# Check that number of file names matches number of pages; if not set file.name to genomeplot 1, .., nPage
if (length(file.name) != nPage) {
file.name <- paste(def.name, 1:nPage, sep = "")
}
} else {
if (length(file.name) < nPage) {
file.name <- paste(file.name[1], 1:nPage, sep = "")
warning("Length of 'file.name' is less than number of files to be saved, first element in 'file.name' is reused", call. = FALSE, immediate. = TRUE)
} else {
if (length(file.name) > nPage) {
file.name <- file.name[1:nPage]
}
}
} # endif
} # endif
return(file.name)
} # endfunction
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.