Nothing
#########################################################################/**
# @RdocFunction makeCgh
#
# @alias makeCgh,QDNAseqCopyNumbers-method
#
# @title "Constructs a 'cghRaw', 'cghSeg', or 'cghCall' object"
#
# @synopsis
#
# \description{
# @get "title".
# }
#
# \arguments{
# \item{object}{A @see "QDNAseqCopyNumbers" object.}
# \item{filter}{If @TRUE, bins are filtered, otherwise not.}
# \item{chromosomeReplacements}{A named integer vector of chromosome name
# replacements to be done. QDNAseq stores chromosome names as
# characters, but CGHcall expects them to be integers. Defaults to
# \code{c(X=23, Y=24, MT=25)} for human. Value of "auto" will use
# running numbers in order of appearance in the bin annotations.}
# \item{...}{Not used.}
# }
#
# \value{
# Returns a @see "CGHbase::cghRaw" if the object has not been segmented,
# a @see "CGHbase::cghSeg" if it has been segmented but not called,
# or @see "CGHbase::cghCall" if it has been called as well.
# }
#
# \examples{
# data(LGG150)
# readCounts <- LGG150
# readCountsFiltered <- applyFilters(readCounts)
# readCountsFiltered <- estimateCorrection(readCountsFiltered)
# copyNumbers <- correctBins(readCountsFiltered)
# copyNumbersNormalized <- normalizeBins(copyNumbers)
# copyNumbersSmooth <- smoothOutlierBins(copyNumbersNormalized)
# cgh <- makeCgh(copyNumbersSmooth)
# }
#
# @author "IS"
#
# @keyword manip
#*/#########################################################################
setMethod('makeCgh', signature=c(object='QDNAseqCopyNumbers'),
definition=function(object, filter=TRUE,
chromosomeReplacements=c(X=23, Y=24, MT=25), ...) {
# Decide which cgh* class to create
names <- assayDataElementNames(object)
if ('calls' %in% names) {
className <- 'cghCall'
segmented(object) <- log2adhoc(segmented(object))
copynumber(object) <- log2adhoc(copynumber(object))
} else if ('segmented' %in% names) {
className <- 'cghSeg'
segmented(object) <- log2adhoc(segmented(object))
copynumber(object) <- log2adhoc(copynumber(object))
} else if ('copynumber' %in% names) {
className <- 'cghRaw'
copynumber(object) <- log2adhoc(copynumber(object))
} else {
stop("Cannot create a CGHbase::cgh* object without assay data element",
" 'copynumber': ", paste(sQuote(names), collapse=", "))
}
# Filter bins?
if (filter) {
keep <- binsToUse(object)
## NOTE: Produces warnings "In seq.default(along = versions) :
## partial argument match of 'along' to 'along.with'"
object <- object[keep,]
keep <- NULL # Not needed anymore
}
# Coerce chromosomes to integer indices
tmp <- chromosomes(object)
if (identical(chromosomeReplacements, "auto")) {
chrs <- unique(tmp)
for (i in seq_along(chrs)) {
tmp[tmp == chrs[i]] <- i
}
} else {
for (chromosomeReplacement in names(chromosomeReplacements)) {
tmp[tmp == chromosomeReplacement] <-
chromosomeReplacements[chromosomeReplacement]
}
}
## NOTE: Produces warnings "In seq.default(along = versions) :
## partial argument match of 'along' to 'along.with'"
fData(object)$chromosome <- as.integer(tmp)
if (any(is.na(fData(object)$chromosome)))
stop(paste0("Unknown chromosome names:\n",
paste(unique(tmp[is.na(fData(object)$chromosome)]), collapse=", "),
"\n", "Please adjust argument chromosomeReplacements."))
# Update column names
names <- colnames(fData(object))
names[names == 'chromosome'] <- 'Chromosome'
names[names == 'start'] <- 'Start'
names[names == 'end'] <- 'End'
## NOTE: Produces warnings "In seq.default(along = versions) :
## partial argument match of 'along' to 'along.with'"
colnames(fData(object)) <- names
# Instantiate choose cgh* object
new(className, assayData=assayData(object),
featureData=featureData(object),
phenoData=phenoData(object))
})
# Methods for coercing a QDNAseqCopyNumbers object into
# cghRaw, cghSeg and cghCall object using as(from, to).
setAs("QDNAseqCopyNumbers", "cghRaw", function(from) {
makeCgh(from, filter=FALSE)
})
setAs("QDNAseqCopyNumbers", "cghSeg", function(from) {
makeCgh(from, filter=FALSE)
})
setAs("QDNAseqCopyNumbers", "cghCall", function(from) {
makeCgh(from, filter=FALSE)
})
# EOF
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.