### creation of a permanent flag:
## flag spots with low signal to noise ratios
SNR.FUN <- function(arrayCGH, snr.thr)
which(arrayCGH$arrayValues$F2 < arrayCGH$arrayValues$B2+log(snr.thr, 2))
SNR.char <- "B"
SNR.flag <- to.flag(SNR.FUN, SNR.char, args=alist(snr.thr=3))
### creation of a permanent flag returning an arrayCGH object:
## correct log-ratios for spatial trend
global.spatial.FUN <- function(arrayCGH, var)
{
Trend <- arrayTrend(arrayCGH, var, span=0.03, degree=1,
iterations=3, family="symmetric")
arrayCGH$arrayValues[[var]] <- Trend$arrayValues[[var]]-Trend$arrayValues$Trend
arrayCGH
}
global.spatial.flag <- to.flag(global.spatial.FUN, args=alist(var="LogRatio"))
### creation of a temporary flag:
## exclude sexual chromosomes from signal scaling
chromosome.FUN <- function(arrayCGH, var)
which(!is.na(match(as.character(arrayCGH$arrayValues[[var]]), c("X", "Y"))))
chromosome.char <- "X"
chromosome.flag <- to.flag(chromosome.FUN, chromosome.char, type="temp.flag",
args=alist(var="Chromosome"))
data(spatial)
SNR.flag$args$snr.thr <- 3 ## set SNR threshold
gradient <- flag.arrayCGH(SNR.flag, gradient) ## apply SNR.flag to array CGH
gradient <- flag.arrayCGH(global.spatial.flag, gradient)
gradient <- flag.arrayCGH(chromosome.flag, gradient)
summary.factor(gradient$arrayValues$Flag) ## permanent flags
summary.factor(gradient$arrayValues$FlagT) ## temporary flags
Run the code above in your browser using DataLab