flag                  package:MANOR                  R Documentation

_C_r_e_a_t_e _a_n _o_b_j_e_c_t _o_f _t_y_p_e _f_l_a_g

_D_e_s_c_r_i_p_t_i_o_n:

     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)

_U_s_a_g_e:

      to.flag(FUN, char=NULL, args=NULL, type="perm.flag", label=NULL)

_A_r_g_u_m_e_n_t_s:

     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

_D_e_t_a_i_l_s:

     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'.

_V_a_l_u_e:

     An object of class 'flag'.

_N_o_t_e:

     People interested in tools for array-CGH analysis can visit our
     web-page: <URL: http://bioinfo.curie.fr>.

_A_u_t_h_o_r(_s):

     Pierre Neuvial, manor@curie.fr.

_S_e_e _A_l_s_o:

     'flag.arrayCGH', 'norm.arrayCGH'

_E_x_a_m_p_l_e_s:

     ### 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

