| flag {MANOR} | R Documentation |
A flag object is a list which contains essentially a function
(flag action) and a character, optionally arguments to be passed to the
function.
We make the distinction between two different flag types,
corresponding to two different purposes:
- permanent flags identify poor quality spots or clones and remove them from further
analysis (eg spots with low signal to noise ratio)
- temporary flags identify spots or clones that have not to be taken into account for
the computation of a (scaling) normalization coefficient (eg X chromosome in case of sex mismatch)
to.flag(FUN, char=NULL, args=NULL, type="perm.flag", label=NULL)
FUN |
a R function to be applied to an arrayCGH, and optionally
other arguments. If char is not NULL, must return a list of spots (lines of
arrayCGH$arrayValues) to be flagged out; if char==NULL, must return
an object of type arrayCGH |
char |
a character value to identify flagged spots; defaults to NULL |
args |
a list of further arguments to be passed to FUN; defaults
to NULL (ie arrayCGH is the only argument to FUN) |
type |
a character value defaulting to "perm.flag" which makes the distinction between permanent flags (type="perm.flag") and temporary flags (type="temp.flag") |
label |
a character value for flag labelling |
If flag$char is null, flag$FUN is supposed to return a
arrayCGH object; if it is not null, flag$FUN is supposed
to return a list of spots to be flagged with flag$char.
An object of class flag.
People interested in tools for array-CGH analysis can visit our web-page: http://bioinfo.curie.fr.
Pierre Neuvial, manor@curie.fr.
### 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