Used for efficient addition of factored keyword values to flowstate[['data']]; updates by reference.
Arguments
- flowstate.object
A flowstate object as returned from read.flowstate.
- keywords
Character string; keyword names in
flowstate[['keywords']]whose factored values will be added toflowstate[['data']].- type.convert
Logical; default
TRUE. For anykeywordsof classcharacter, conversion tofactorwill take place before addition to[['data']].
Value
UPDATES BY REFERENCE:
flowstate[['data']]; factoredkeywordsare added as additional columns.flowstate[['keywords']]; iftype.convert,keywordsare converted to classfactor.
Examples
fcs.file.paths <- system.file("extdata", package = "flowstate") |>
list.files(full.names = TRUE, pattern = "BLOCK.*.fcs")
#read all .fcs files as flowstate objects; concatenate into a single object
fs <- read.flowstate(
fcs.file.paths,
colnames.type="S",
concatenate = TRUE
)
#> COVAIL_002_CYTOKINE_BLOCK1_1.fcs --> flowstate
#> COVAIL_002_CYTOKINE_BLOCK1_2.fcs --> flowstate
#> COVAIL_002_CYTOKINE_BLOCK1_3.fcs --> flowstate
#> Concatenating 'flowstate.ojects'...
#create a new set of keywords/values
fs$keywords[
,
j = c('block.id','block.aliquot') := data.table::tstrsplit(
TUBENAME,"_",type.convert = factor,keep=4:5)
]
#> $BTIM $CYT $CYTSN $DATE $ETIM
#> <char> <char> <char> <char> <char>
#> 1: 09:22:51.62 Aurora V0299 27-Feb-2025 09:33:47.32
#> 2: 09:38:12.18 Aurora V0299 27-Feb-2025 09:49:40.92
#> 3: 09:50:46.94 Aurora V0299 27-Feb-2025 10:03:26.16
#> $FIL $FLOWRATE $INST $LAST_MODIFIED
#> <char> <char> <char> <char>
#> 1: COVAIL_002_CYTOKINE_BLOCK1_1.fcs Medium Cytekbio 16-JAN-2026 18:46:28.83
#> 2: COVAIL_002_CYTOKINE_BLOCK1_2.fcs Medium Cytekbio 16-JAN-2026 18:46:28.85
#> 3: COVAIL_002_CYTOKINE_BLOCK1_3.fcs Medium Cytekbio 16-JAN-2026 18:46:28.86
#> $LAST_MODIFIER $OP $ORIGINALITY $PAR
#> <char> <char> <char> <char>
#> 1: aurora user DataModified 43
#> 2: aurora user DataModified 43
#> 3: aurora user DataModified 43
#> $PROJ $TIMESTEP $TOT $VOL APPLY COMPENSATION
#> <char> <char> <char> <char> <char>
#> 1: COVAIL_002_CYTOKINE_2025-02-27 0.0001 2000 326.86 FALSE
#> 2: COVAIL_002_CYTOKINE_2025-02-27 0.0001 2000 346.31 FALSE
#> 3: COVAIL_002_CYTOKINE_2025-02-27 0.0001 2000 350.19 FALSE
#> CHARSET CREATOR FSC ASF GROUPNAME
#> <char> <char> <char> <char>
#> 1: utf-8 SpectroFlo 3.3.0 1.26 BarcodedPool
#> 2: utf-8 SpectroFlo 3.3.0 1.26 BarcodedPool
#> 3: utf-8 SpectroFlo 3.3.0 1.26 BarcodedPool
#> GUID LASER1ASF LASER1DELAY LASER1NAME
#> <char> <char> <char> <char>
#> 1: 0fffcae2-2163-49f9-98a3-8f17bb4ecc13 1.14 -41.7 YellowGreen
#> 2: 6ff1ded1-96f6-4784-8a70-3cbef2e01427 1.14 -41.7 YellowGreen
#> 3: 2c9682b4-473f-4375-a851-48f9f2fe3bf7 1.14 -41.7 YellowGreen
#> LASER2ASF LASER2DELAY LASER2NAME LASER3ASF LASER3DELAY LASER3NAME LASER4ASF
#> <char> <char> <char> <char> <char> <char> <char>
#> 1: 1.26 -20.375 Violet 1.18 0 Blue 1.14
#> 2: 1.26 -20.375 Violet 1.18 0 Blue 1.14
#> 3: 1.26 -20.375 Violet 1.18 0 Blue 1.14
#> LASER4DELAY LASER4NAME LASER5ASF LASER5DELAY LASER5NAME
#> <char> <char> <char> <char> <char>
#> 1: 20.675 Red 1.08 41.675 UV
#> 2: 20.675 Red 1.08 41.675 UV
#> 3: 20.675 Red 1.08 41.675 UV
#> THRESHOLD TUBENAME USERSETTINGNAME
#> <char> <char> <char>
#> 1: (FSC,150000)And(SSC,75000) COVAIL_002_CYTOKINE_BLOCK1_1 *COVAIL_CYTOKINE
#> 2: (FSC,150000)And(SSC,75000) COVAIL_002_CYTOKINE_BLOCK1_2 *COVAIL_CYTOKINE
#> 3: (FSC,150000)And(SSC,75000) COVAIL_002_CYTOKINE_BLOCK1_3 *COVAIL_CYTOKINE
#> WINDOW EXTENSION block.id block.aliquot
#> <char> <fctr> <fctr>
#> 1: 3 BLOCK1 1
#> 2: 3 BLOCK1 2
#> 3: 3 BLOCK1 3
#add the factored keyword values to fs[['data']]
add.keywords.to.data(fs,c('block.id','block.aliquot'))
fs$data[,.(block.id,block.aliquot)]
#> block.id block.aliquot
#> <fctr> <fctr>
#> 1: BLOCK1 1
#> 2: BLOCK1 1
#> 3: BLOCK1 1
#> 4: BLOCK1 1
#> 5: BLOCK1 1
#> ---
#> 5996: BLOCK1 3
#> 5997: BLOCK1 3
#> 5998: BLOCK1 3
#> 5999: BLOCK1 3
#> 6000: BLOCK1 3
#add to keyword [['data']] using type.convert argument
add.keywords.to.data(fs,c('$DATE','$PROJ'),type.convert=TRUE)
fs$data[,.(`$DATE`,`$PROJ`)]
#> $DATE $PROJ
#> <fctr> <fctr>
#> 1: 27-Feb-2025 COVAIL_002_CYTOKINE_2025-02-27
#> 2: 27-Feb-2025 COVAIL_002_CYTOKINE_2025-02-27
#> 3: 27-Feb-2025 COVAIL_002_CYTOKINE_2025-02-27
#> 4: 27-Feb-2025 COVAIL_002_CYTOKINE_2025-02-27
#> 5: 27-Feb-2025 COVAIL_002_CYTOKINE_2025-02-27
#> ---
#> 5996: 27-Feb-2025 COVAIL_002_CYTOKINE_2025-02-27
#> 5997: 27-Feb-2025 COVAIL_002_CYTOKINE_2025-02-27
#> 5998: 27-Feb-2025 COVAIL_002_CYTOKINE_2025-02-27
#> 5999: 27-Feb-2025 COVAIL_002_CYTOKINE_2025-02-27
#> 6000: 27-Feb-2025 COVAIL_002_CYTOKINE_2025-02-27
fs$keywords[,.(`$DATE`,`$PROJ`)]
#> $DATE $PROJ
#> <fctr> <fctr>
#> 1: 27-Feb-2025 COVAIL_002_CYTOKINE_2025-02-27
#> 2: 27-Feb-2025 COVAIL_002_CYTOKINE_2025-02-27
#> 3: 27-Feb-2025 COVAIL_002_CYTOKINE_2025-02-27