Skip to contents

Read in FCS files, put them together in a gating set and apply the gating strategy as previously defined.

Usage

makeAddGatingSet(
  patt = NULL,
  fn = ".",
  gateStrat = ".",
  foN.gateStrat = ".",
  type.gateStrat = ".",
  comp = ".",
  tx = ".",
  channel = ".",
  fcsRepair = FALSE,
  verbose = "."
)

Arguments

patt

A regular expression defining a possible subset of FCS files residing in the directory specified by fn to read in. Only matching patterns will be included.

fn

Character length one. The name of the folder where FCS files should be read from. If left at the default '.', the folder name as defined in the settings file (key: 'foN_fcsFiles') will be used.

gateStrat

Character length one. The name of the file defining the gating strategy. If left at the default '.', the name as defined in the settings file (key: 'fiN_gateStrat') will be used.

foN.gateStrat

Character length one. The name of the folder where the file defining the gating strategy and the gate definitions reside. If left at the default '.', the name as defined in the settings file (key: 'foN_gating') will be used.

type.gateStrat

Character length one, can be either 'csv' or 'xlsx'. The type of file defining the gating strategy. Currently, csv and xlsx files are supported. If left at the default '.', the filetype as defined in the settings (key: 'dV_gateStratInputType') file will be used.

comp

Logical. If compensation should be applied or not. If left at the default '.', the value as defined in the settings file (key 'dV_comp') will be used.

tx

Character length one. The transformation applied to *all* channels within the individual flow sets. If left at the default '.', the value as defined in the settings file (key 'dV_tx') will be used. (Currently only 'fjbiex' is implemented.)

channel

A regular expression indicating which channels, i.e. which columns to keep from the original flowFrames; is passed down to argument column.pattern of read.flowSet. Set to NULL to read data from all channels. If left at the default '.', the value as defined in the settings file (key 'dV_channel') will be used.

fcsRepair

Logical. If set to TRUE, fcs-files in the folder specified at argument 'fn' will be checked for multiplied entries in the keywords, as after some testing the author came to the humble conclusion that these multiplied keywords can be the reason for the error message:
"The HEADER and the TEXT segment define different starting point ... to read the data".
If 'fcsRepair' is set to TRUE, all except the last of each multiplied keyword will be removed and the fcs file will be saved to disc, overwriting the original fcs file without further warning.
Use the function checkRepairFcsFiles which does offer more options to manually check and repair afflicted fcs files. There, it is possible to display multiplied keywords and to select which one to keep.

verbose

Logical. If status messages should be displayed. If left at the default '.', the value as defined in the settings file (key 'dV_verbose') will be used.

Value

An object of class-GatingSet_fd with added and recomputed gates.

Details

This is a convenience wrapper for the two functions makeGatingSet and addGates. In order to see a schematic representation of 'parent' and 'child' gates, simply use 'plot'.

See also

Other Extraction functions: addGates(), makeGatingSet(), makefdmat()

Examples

td <- tempdir()
data_source <- "https://github.com/bpollner/data/raw/main/flowdex_examples/flowdex_examples.zip"
check_download_data(td, data_source)
exp_home <- paste0(td, "/flowdex_examples")
old_wd <- getwd()
setwd(exp_home)
#
assign("get_settings_from_flowdex_package_root", TRUE, pos=.GlobalEnv)
# only required to make the examples run automatically
# you should not call 'assign' if you run the examples manually
# the effect of setting 'get_settings_from_flowdex_package_root' to TRUE
# is that the file 'flowdex_settings.R' in 'root' of the installed package
# 'flowdex' will be sourced instead of the one in the user-defined location.
#
gs1 <- makeAddGatingSet()
#> Reading in fcs files... ok. 
#> Producing gating set... Applying fjbiexp transformation... ok. 
#> Gating: (1 gate) 
#> done!
gs2 <- makeAddGatingSet(patt = "T4")
#> Reading in fcs files... ok. 
#> Producing gating set... Applying fjbiexp transformation... ok. 
#> Gating: (1 gate) 
#> done!
gs3 <- makeAddGatingSet(gateStrat = "gateStrat_2")
#> Reading in fcs files... ok. 
#> Producing gating set... Applying fjbiexp transformation... ok. 
#> Gating: (6 gates)
#> done!
gs3
#> A GatingSet of class 'GatingSet_fd' with 12 samples:
#> 
#>    Index             SampleNames
#> 1      1 N_na_GNeg_T4_th1_b1.fcs
#> 2      2 N_na_GNeg_T4_th1_b2.fcs
#> 3      3 N_na_GNeg_T4_th1_b3.fcs
#> 4      4 N_na_GNeg_T5_th1_b1.fcs
#> 5      5 N_na_GNeg_T5_th1_b2.fcs
#> 6      6 N_na_GNeg_T5_th1_b3.fcs
#> 7      7 N_na_GPos_T4_th1_b1.fcs
#> 8      8 N_na_GPos_T4_th1_b2.fcs
#> 9      9 N_na_GPos_T4_th1_b3.fcs
#> 10    10 N_na_GPos_T5_th1_b1.fcs
#> 11    11 N_na_GPos_T5_th1_b2.fcs
#> 12    12 N_na_GPos_T5_th1_b3.fcs
#> 
#> 
#> The following 10 channels are available:
#> FSC.A    SSC.A    FITC.A    PE.A    PerCP.A    PE.Cy7.A    APC.A    APC.Cy7.A    V450.A    V500.A
#> 
#> The following gating strategy derived from file 'gateStrat_2.xlsx' has been applied:
#>           GateName           Parent GateOnX GateOnY  GateDefinition extractOn
#> 1             DNA+             root  FITC.A PerCP.A     BactStainV1    FITC.A
#> 2        Unstained             root  FITC.A PerCP.A     UnstainedV1    FITC.A
#> 3      HighSSC_fsc        Unstained   FSC.A   SSC.A  HighSSC_FSC_V1     FSC.A
#> 4     HighSSC_fitc             root  FITC.A PerCP.A HighSSC_FITC_V1    FITC.A
#> 5 HighSSC_fsc.fitc      HighSSC_fsc  FITC.A PerCP.A HighSSC_FITC_V1    FITC.A
#> 6     HighSSC_ffif HighSSC_fsc.fitc   FSC.A   SSC.A  HighSSC_FSC_V1     FSC.A
#>   minRange maxRange keepData
#> 1     1250     4000     TRUE
#> 2        0     1000    FALSE
#> 3        0     4000    FALSE
#> 4        0     1000    FALSE
#> 5        0     1000    FALSE
#> 6        0     4000     TRUE
#
setwd(old_wd)