Flow Cytometry Standard files are read, parsed and stored as objects (S3) of class 'flowstate'.
The individual segments (TEXT and DATA) of the FCS file are parsed and stored as follows:
[['data']]– a data.table containing raw/linear measurement values (scatter, MFI, Time, etc.).[['parameters']]– a data.table containing instrument-specific parameters ('$PnN','$PnS', etc.).[['keywords']]– a data.table containing instrument/sample-specific keyword-value pairs (metadata).[['spill']]– a data.table containing (if present) spillover values.
Usage
read.flowstate(
fcs.file.paths,
colnames.type = c("S_N", "S", "N"),
S.func = NULL,
sample.id = NULL,
concatenate = FALSE
)Arguments
- fcs.file.paths
Character string; path(s) returned from
list.files(...,full.names=T,pattern=".fcs").- colnames.type
Character string; one of:
"S_N"–[['data']]columns are named by combining $PS (stain) and $PN (name), separated by an underscore."S"–[['data']]columns are named by using only their respective $PS (stain) keyword value."N"–[['data']]columns are named by using only their respective $PN (name) keyword value.
- S.func
A function – default
NULL; if a function is supplied, it will be used to modify/split"S"; e.g.function(j){strsplit(j," ")[[1]][1]}will be applied to"S"to return the first split element ("CD4 PE" –> "CD4").- sample.id
Keyword name – default
NULL; based on cytometer platform, the keyword name forsample.idwill be automatically set and the respective keyword values will be added to[['data']]as a factored sample identifier. One of:Aurora (Cytek) –
sample.id='TUBENAME'ID7000 (Sony) –
sample.id='$CELLS'Unspecified –
sample.id='$FIL'
- concatenate
Logical – default
FALSE; ifTRUE, the list of flowstate objects will be combined into a single flowstate object.
Value
For a single file: an object of class flowstate; for multiple files: a named list of flowstate objects; for concatenated files: an object of class flowstate
Details
Access the individual named list elements as follows (assuming flowstate object is named fs):
fs$dataorfs[['data']]fs$parametersorfs[['parameters']]fs$keywordsorfs[['keywords']]fs$spillorfs[['spill']]
Other flowstate functions operate on the entire object (fs) and access the individual slots as needed.
References
Directly/heavily-inspired by:
flowCore:
Ellis B, Haaland P, Hahne F, Le Meur N, Gopalakrishnan N, Spidlen J, Jiang M, Finak G (2024). flowCore: flowCore: Basic structures for flow cytometry data. doi:10.18129/B9.bioc.flowCore https://doi.org/10.18129/B9.bioc.flowCore, R package version 2.22.0, https://bioconductor.org/packages/flowCore.
Barrett T, Dowle M, Srinivasan A, Gorecki J, Chirico M, Hocking T, Schwendinger B, Krylov I (2025). data.table: Extension of 'data.frame'. R package version 1.17.99, https://r-datatable.com.
Examples
fcs.file.paths <- system.file("extdata", package = "flowstate") |>
list.files(full.names = TRUE, pattern = "BLOCK.*.fcs")
#read a single .fcs file as a flowstate object
fs <- read.flowstate(
fcs.file.paths[1],
colnames.type="S"
)
#> COVAIL_002_CYTOKINE_BLOCK1_1.fcs --> flowstate
class(fs)
#> [1] "flowstate"
names(fs)
#> [1] "data" "parameters" "keywords" "spill"
#.fcs DATA segment as a data.table
fs$data
#> Time SSC_W SSC_H SSC_A FSC_W FSC_H FSC_A SSCB_W SSCB_H
#> <num> <num> <num> <num> <num> <num> <num> <num> <num>
#> 1: 0 730290.7 759933 924953.4 774044.6 997371 1286682.8 714389.4 873960
#> 2: 1 753766.8 453137 569266.0 714706.8 444274 529209.4 749070.4 411951
#> 3: 4 768520.5 599195 767489.4 729628.4 827274 1006004.3 730502.3 579392
#> 4: 4 707174.8 516909 609241.7 719956.1 819074 982828.9 700778.6 463030
#> 5: 5 743404.2 484976 600888.7 764667.1 754833 961993.2 726898.2 419073
#> ---
#> 1996: 2436 665170.4 766756 850038.9 735662.5 905841 1110655.4 651364.2 621187
#> 1997: 2443 755763.9 435045 547985.5 718318.1 792184 948400.2 725049.6 377339
#> 1998: 2444 751025.3 707866 886042.2 756734.6 1088113 1372354.5 748516.9 675462
#> 1999: 2448 764364.1 551760 702909.2 734433.4 471781 577486.2 760942.9 380466
#> 2000: 2448 744009.3 636641 789444.8 744564.4 825535 1024440.0 725390.6 574194
#> SSCB_A CD45RA CD45RO TCRgd CD45BC1 IL2
#> <num> <num> <num> <num> <num> <num>
#> 1: 1040579.6 17400.7363 6296.233 3487.889 1056.39258 -2868.07104
#> 2: 514300.5 6299.7627 1073.582 2427.801 21505.01367 666.11395
#> 3: 705412.0 -1247.9305 37782.598 2189.499 146.57719 14.37641
#> 4: 540802.5 3424.5208 6541.122 10304.088 31037.87500 -1450.19849
#> 5: 507705.7 -1692.5685 43001.797 5568.431 55248.49219 -638.63544
#> ---
#> 1996: 674364.9 -455.5892 18938.584 2339.671 30702.53320 -650.51361
#> 1997: 455982.5 45408.0547 2361.198 3722.122 57515.62891 376.72684
#> 1998: 842657.9 16636.8730 8177.999 3669.374 -37.85068 -56.72515
#> 1999: 482521.5 355.6579 3132.339 3150.341 89416.53906 -789.44360
#> 2000: 694191.5 16607.0723 4449.304 2556.906 15862.92090 -348.67285
#> CD8 CD197 CD45BC2 CD45BC3 CD57 CD193
#> <num> <num> <num> <num> <num> <num>
#> 1: 219290.2812 1701.1161 25329.0879 20529.553 2525.726 1695.80396
#> 2: 260.5484 18941.9355 14742.9941 4324.678 4230.007 162.88908
#> 3: -377.2223 699.3767 1116.3433 21791.977 2767.279 930.13574
#> 4: 1130.0894 1627.6073 -303.3068 3377.251 4663.360 84.06442
#> 5: 236.9170 2753.4761 -910.3435 5274.306 7930.704 172.67607
#> ---
#> 1996: 59250.2812 1092.6920 15200.3584 3081.160 3450.271 -315.22495
#> 1997: 659.7032 4738.8994 405.5616 3159.196 4285.967 470.22446
#> 1998: 41272.5664 2141.1841 21296.8184 7120.216 32015.932 -755.86090
#> 1999: -146.6094 571.7484 1858.9985 44696.523 9054.923 -2254.48193
#> 2000: 12785.9922 1001.4847 46748.2773 3473.425 9044.300 961.13348
#> CD45BC4 CD127 CD56 CD199 CD49a GranzymeB
#> <num> <num> <num> <num> <num> <num>
#> 1: 23593.2891 1343.01196 6162.3535 1315.519 1071.0972 54200.477
#> 2: 410.2411 -642.70868 990.9473 1259.631 1404.4385 1982.248
#> 3: 30529.1172 2044.45117 -1573.5216 1891.648 512.3239 2113.995
#> 4: 31405.3887 3629.70410 -1813.6000 1058.180 217.9938 5147.355
#> 5: 1022.8995 5814.72852 1465.7168 3178.108 -758.9792 1842.105
#> ---
#> 1996: 1064.3235 2493.20142 -1785.5209 1296.361 464.7216 1550.618
#> 1997: 49806.3789 -846.77362 3121.0767 1310.188 538.4861 1325.202
#> 1998: 2133.5469 -69.45152 6356.4126 1662.545 1216.8611 52676.543
#> 1999: 840.9261 888.50812 1614.4645 3131.573 -186.4928 2652.448
#> 2000: 1132.7102 -408.14355 3265.9004 1530.620 893.4030 33198.285
#> CD45BC5 CD95 CD3 CD4 CD69 TNFa
#> <num> <num> <num> <num> <num> <num>
#> 1: -6.487877 942.84930 36690.11719 8299.1494 4737.0107 993.0143
#> 2: -114.808891 2869.56348 94.28096 634.6076 912.6633 683.6307
#> 3: 15245.500000 922.26361 26607.62500 52088.1602 1719.4734 816.6953
#> 4: 19775.552734 -233.85599 51053.93750 5741.3486 6392.7744 544.5918
#> 5: 16411.826172 4008.57715 39481.12891 41355.3477 1742.8635 2127.6262
#> ---
#> 1996: 10101.198242 208.18390 32280.44922 8475.2119 15024.1406 274.7441
#> 1997: 107.310089 348.53680 91.05525 2211.5044 7191.9580 -452.7868
#> 1998: 58.550423 -371.25952 22753.05859 4531.7686 4060.4192 153.8195
#> 1999: 964.303589 774.55017 27600.72266 450.5056 3263.5374 5513.1948
#> 2000: 24346.623047 32.25357 19126.30273 6096.0869 25395.6855 870.2074
#> CD183 IFNg CD103 CD45BC6 CD122 ia4b7
#> <num> <num> <num> <num> <num> <num>
#> 1: 473.1266 -256.25250 166.61444 821.8005 735.86768 4871.1104
#> 2: -478.1163 -109.60402 -21.77036 12146.9199 713.94666 1420.3256
#> 3: -402.7975 395.29520 -83.91235 1955.8750 -1774.02917 -321.3192
#> 4: -881.3683 -160.21269 -994.53149 1735.5421 -477.22177 487.7629
#> 5: -3175.0767 27.80499 155.62851 -825.0389 -652.52808 -1965.0686
#> ---
#> 1996: -248.7266 431.12689 216.10272 735.4802 -1338.54907 -862.8319
#> 1997: -493.0250 352.03424 -72.76740 602.4594 -527.90393 -588.9193
#> 1998: -405.9241 -639.24402 -151.01843 4389.2275 149.43155 516.9016
#> 1999: -1634.7971 -859.71637 -383.70520 -329.5938 516.64771 -112.7745
#> 2000: -791.4459 -180.43523 -951.55237 821.8984 -47.60364 -353.7823
#> CD45BC7 Viability CD27 KLRG1
#> <num> <num> <num> <num>
#> 1: 1030.7883 1429.16980 -7657.75977 5408.6689
#> 2: -409.5166 21949.62695 744.88788 3665.4756
#> 3: 478.2293 543.13586 -448.94562 8486.8936
#> 4: -924.2852 1028.71667 332.45135 14109.1025
#> 5: 15285.1455 795.29565 -447.12799 729.1112
#> ---
#> 1996: 1768.1182 188.79082 -1291.30835 10857.7451
#> 1997: 27534.8418 863.10486 671.50604 1228.5106
#> 1998: 1421.7739 73.27693 -3152.55737 11221.6455
#> 1999: 10256.8574 12299.75000 -2231.92310 8055.1738
#> 2000: 191.6911 850.90717 -64.23028 130.7855
#> sample.id
#> <fctr>
#> 1: COVAIL_002_CYTOKINE_BLOCK1_1
#> 2: COVAIL_002_CYTOKINE_BLOCK1_1
#> 3: COVAIL_002_CYTOKINE_BLOCK1_1
#> 4: COVAIL_002_CYTOKINE_BLOCK1_1
#> 5: COVAIL_002_CYTOKINE_BLOCK1_1
#> ---
#> 1996: COVAIL_002_CYTOKINE_BLOCK1_1
#> 1997: COVAIL_002_CYTOKINE_BLOCK1_1
#> 1998: COVAIL_002_CYTOKINE_BLOCK1_1
#> 1999: COVAIL_002_CYTOKINE_BLOCK1_1
#> 2000: COVAIL_002_CYTOKINE_BLOCK1_1
#.fcs TEXT segment parsed and stored as three elements (data.tables):
fs$parameters #instrument-specific measurement parameters
#> par B DISPLAY E N R S
#> <char> <char> <char> <char> <char> <char> <char>
#> 1: $P1 32 LOG 0,0 Time 6557384 <NA>
#> 2: $P2 32 LIN 0,0 SSC-W 4194304 <NA>
#> 3: $P3 32 LIN 0,0 SSC-H 4194304 <NA>
#> 4: $P4 32 LIN 0,0 SSC-A 4194304 <NA>
#> 5: $P5 32 LIN 0,0 FSC-W 4194304 <NA>
#> 6: $P6 32 LIN 0,0 FSC-H 4194304 <NA>
#> 7: $P7 32 LIN 0,0 FSC-A 4194304 <NA>
#> 8: $P8 32 LIN 0,0 SSC-B-W 4194304 <NA>
#> 9: $P9 32 LIN 0,0 SSC-B-H 4194304 <NA>
#> 10: $P10 32 LIN 0,0 SSC-B-A 4194304 <NA>
#> 11: $P11 32 LOG 0,0 BUV395-A 4194304 CD45RA
#> 12: $P12 32 LOG 0,0 BUV496-A 4194304 CD45RO
#> 13: $P13 32 LOG 0,0 BUV563-A 4194304 TCRgd
#> 14: $P14 32 LOG 0,0 SBUV605-A 4194304 CD45BC1
#> 15: $P15 32 LOG 0,0 BUV737-A 4194304 IL2
#> 16: $P16 32 LOG 0,0 BUV805-A 4194304 CD8
#> 17: $P17 32 LOG 0,0 BV421-A 4194304 CD197
#> 18: $P18 32 LOG 0,0 Pacific Blue-A 4194304 CD45BC2
#> 19: $P19 32 LOG 0,0 SBV475-A 4194304 CD45BC3
#> 20: $P20 32 LOG 0,0 BV605-A 4194304 CD57
#> 21: $P21 32 LOG 0,0 BV650-A 4194304 CD193
#> 22: $P22 32 LOG 0,0 BV711-A 4194304 CD45BC4
#> 23: $P23 32 LOG 0,0 BV750-A 4194304 CD127
#> 24: $P24 32 LOG 0,0 BV785-A 4194304 CD56
#> 25: $P25 32 LOG 0,0 KIRAVIA Blue 520-A 4194304 CD199
#> 26: $P26 32 LOG 0,0 RB545-A 4194304 CD49a
#> 27: $P27 32 LOG 0,0 RB613-A 4194304 GranzymeB
#> 28: $P28 32 LOG 0,0 PerCP-A 4194304 CD45BC5
#> 29: $P29 32 LOG 0,0 PerCP-eFluor 710-A 4194304 CD95
#> 30: $P30 32 LOG 0,0 RB744-A 4194304 CD3
#> 31: $P31 32 LOG 0,0 PerCP-Fire 806-A 4194304 CD4
#> 32: $P32 32 LOG 0,0 RB780-A 4194304 CD69
#> 33: $P33 32 LOG 0,0 PE-A 4194304 TNFa
#> 34: $P34 32 LOG 0,0 RY586-A 4194304 CD183
#> 35: $P35 32 LOG 0,0 PE-Dazzle 594-A 4194304 IFNg
#> 36: $P36 32 LOG 0,0 PE-Fire 640-A 4194304 CD103
#> 37: $P37 32 LOG 0,0 SBY720-A 4194304 CD45BC6
#> 38: $P38 32 LOG 0,0 PE-Cy7-A 4194304 CD122
#> 39: $P39 32 LOG 0,0 Alexa Fluor 647-A 4194304 ia4b7
#> 40: $P40 32 LOG 0,0 Spark NIR 685-A 4194304 CD45BC7
#> 41: $P41 32 LOG 0,0 LIVE DEAD Scarlet-A 4194304 Viability
#> 42: $P42 32 LOG 0,0 APC-H7-A 4194304 CD27
#> 43: $P43 32 LOG 0,0 APC-Fire 810-A 4194304 KLRG1
#> par B DISPLAY E N R S
#> <char> <char> <char> <char> <char> <char> <char>
#> TYPE V PROJ N.alias
#> <char> <char> <fctr> <char>
#> 1: Time <NA> COVAIL_002_CYTOKINE_2025-02-27 Time
#> 2: Side_Scatter 220 COVAIL_002_CYTOKINE_2025-02-27 SSC_W
#> 3: Side_Scatter 220 COVAIL_002_CYTOKINE_2025-02-27 SSC_H
#> 4: Side_Scatter 220 COVAIL_002_CYTOKINE_2025-02-27 SSC_A
#> 5: Forward_Scatter 40 COVAIL_002_CYTOKINE_2025-02-27 FSC_W
#> 6: Forward_Scatter 40 COVAIL_002_CYTOKINE_2025-02-27 FSC_H
#> 7: Forward_Scatter 40 COVAIL_002_CYTOKINE_2025-02-27 FSC_A
#> 8: Side_Scatter 220 COVAIL_002_CYTOKINE_2025-02-27 SSCB_W
#> 9: Side_Scatter 220 COVAIL_002_CYTOKINE_2025-02-27 SSCB_H
#> 10: Side_Scatter 220 COVAIL_002_CYTOKINE_2025-02-27 SSCB_A
#> 11: Unmixed_Fluorescence 258 COVAIL_002_CYTOKINE_2025-02-27 BUV395
#> 12: Unmixed_Fluorescence 523 COVAIL_002_CYTOKINE_2025-02-27 BUV496
#> 13: Unmixed_Fluorescence 535 COVAIL_002_CYTOKINE_2025-02-27 BUV563
#> 14: Unmixed_Fluorescence 0 COVAIL_002_CYTOKINE_2025-02-27 SBUV605
#> 15: Unmixed_Fluorescence 904 COVAIL_002_CYTOKINE_2025-02-27 BUV737
#> 16: Unmixed_Fluorescence 1087 COVAIL_002_CYTOKINE_2025-02-27 BUV805
#> 17: Unmixed_Fluorescence 301 COVAIL_002_CYTOKINE_2025-02-27 BV421
#> 18: Unmixed_Fluorescence 347 COVAIL_002_CYTOKINE_2025-02-27 PacificBlue
#> 19: Unmixed_Fluorescence 0 COVAIL_002_CYTOKINE_2025-02-27 SBV475
#> 20: Unmixed_Fluorescence 330 COVAIL_002_CYTOKINE_2025-02-27 BV605
#> 21: Unmixed_Fluorescence 306 COVAIL_002_CYTOKINE_2025-02-27 BV650
#> 22: Unmixed_Fluorescence 254 COVAIL_002_CYTOKINE_2025-02-27 BV711
#> 23: Unmixed_Fluorescence 327 COVAIL_002_CYTOKINE_2025-02-27 BV750
#> 24: Unmixed_Fluorescence 539 COVAIL_002_CYTOKINE_2025-02-27 BV785
#> 25: Unmixed_Fluorescence 0 COVAIL_002_CYTOKINE_2025-02-27 KIRAVIABlue520
#> 26: Unmixed_Fluorescence 639 COVAIL_002_CYTOKINE_2025-02-27 RB545
#> 27: Unmixed_Fluorescence 369 COVAIL_002_CYTOKINE_2025-02-27 RB613
#> 28: Unmixed_Fluorescence 401 COVAIL_002_CYTOKINE_2025-02-27 PerCP
#> 29: Unmixed_Fluorescence 479 COVAIL_002_CYTOKINE_2025-02-27 PerCPeFluor710
#> 30: Unmixed_Fluorescence 253 COVAIL_002_CYTOKINE_2025-02-27 RB744
#> 31: Unmixed_Fluorescence 0 COVAIL_002_CYTOKINE_2025-02-27 PerCPFire806
#> 32: Unmixed_Fluorescence 616 COVAIL_002_CYTOKINE_2025-02-27 RB780
#> 33: Unmixed_Fluorescence 312 COVAIL_002_CYTOKINE_2025-02-27 PE
#> 34: Unmixed_Fluorescence 312 COVAIL_002_CYTOKINE_2025-02-27 RY586
#> 35: Unmixed_Fluorescence 0 COVAIL_002_CYTOKINE_2025-02-27 PEDazzle594
#> 36: Unmixed_Fluorescence 358 COVAIL_002_CYTOKINE_2025-02-27 PEFire640
#> 37: Unmixed_Fluorescence 0 COVAIL_002_CYTOKINE_2025-02-27 SBY720
#> 38: Unmixed_Fluorescence 296 COVAIL_002_CYTOKINE_2025-02-27 PECy7
#> 39: Unmixed_Fluorescence 159 COVAIL_002_CYTOKINE_2025-02-27 AlexaFluor647
#> 40: Unmixed_Fluorescence 159 COVAIL_002_CYTOKINE_2025-02-27 SparkNIR685
#> 41: Unmixed_Fluorescence 0 COVAIL_002_CYTOKINE_2025-02-27 LIVEDEADScarlet
#> 42: Unmixed_Fluorescence 388 COVAIL_002_CYTOKINE_2025-02-27 APCH7
#> 43: Unmixed_Fluorescence 264 COVAIL_002_CYTOKINE_2025-02-27 APCFire810
#> TYPE V PROJ N.alias
#> <char> <char> <fctr> <char>
#> S.alias S_N.alias
#> <char> <char>
#> 1: Time Time
#> 2: SSC_W SSC_W
#> 3: SSC_H SSC_H
#> 4: SSC_A SSC_A
#> 5: FSC_W FSC_W
#> 6: FSC_H FSC_H
#> 7: FSC_A FSC_A
#> 8: SSCB_W SSCB_W
#> 9: SSCB_H SSCB_H
#> 10: SSCB_A SSCB_A
#> 11: CD45RA CD45RA_BUV395
#> 12: CD45RO CD45RO_BUV496
#> 13: TCRgd TCRgd_BUV563
#> 14: CD45BC1 CD45BC1_SBUV605
#> 15: IL2 IL2_BUV737
#> 16: CD8 CD8_BUV805
#> 17: CD197 CD197_BV421
#> 18: CD45BC2 CD45BC2_PacificBlue
#> 19: CD45BC3 CD45BC3_SBV475
#> 20: CD57 CD57_BV605
#> 21: CD193 CD193_BV650
#> 22: CD45BC4 CD45BC4_BV711
#> 23: CD127 CD127_BV750
#> 24: CD56 CD56_BV785
#> 25: CD199 CD199_KIRAVIABlue520
#> 26: CD49a CD49a_RB545
#> 27: GranzymeB GranzymeB_RB613
#> 28: CD45BC5 CD45BC5_PerCP
#> 29: CD95 CD95_PerCPeFluor710
#> 30: CD3 CD3_RB744
#> 31: CD4 CD4_PerCPFire806
#> 32: CD69 CD69_RB780
#> 33: TNFa TNFa_PE
#> 34: CD183 CD183_RY586
#> 35: IFNg IFNg_PEDazzle594
#> 36: CD103 CD103_PEFire640
#> 37: CD45BC6 CD45BC6_SBY720
#> 38: CD122 CD122_PECy7
#> 39: ia4b7 ia4b7_AlexaFluor647
#> 40: CD45BC7 CD45BC7_SparkNIR685
#> 41: Viability Viability_LIVEDEADScarlet
#> 42: CD27 CD27_APCH7
#> 43: KLRG1 KLRG1_APCFire810
#> S.alias S_N.alias
#> <char> <char>
fs$keywords #instrument/sample-specific metadata
#> $BTIM $CYT $CYTSN $DATE $ETIM
#> <char> <char> <char> <char> <char>
#> 1: 09:22:51.62 Aurora V0299 27-Feb-2025 09:33:47.32
#> $FIL $FLOWRATE $INST $LAST_MODIFIED
#> <char> <char> <char> <char>
#> 1: COVAIL_002_CYTOKINE_BLOCK1_1.fcs Medium Cytekbio 16-JAN-2026 18:46:32.83
#> $LAST_MODIFIER $OP $ORIGINALITY $PAR
#> <char> <char> <char> <char>
#> 1: 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
#> CHARSET CREATOR FSC ASF GROUPNAME
#> <char> <char> <char> <char>
#> 1: 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
#> 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
#> LASER4DELAY LASER4NAME LASER5ASF LASER5DELAY LASER5NAME
#> <char> <char> <char> <char> <char>
#> 1: 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
#> WINDOW EXTENSION
#> <char>
#> 1: 3
fs$spill #instrument/sample-specific spillover
#> CD45RA CD45RO TCRgd CD45BC1 IL2 CD8 CD197 CD45BC2 CD45BC3 CD57 CD193
#> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num>
#> 1: 1e+00 0 0 0 0 0 0 0 0 0 0
#> 2: 1e-06 1 0 0 0 0 0 0 0 0 0
#> 3: 0e+00 0 1 0 0 0 0 0 0 0 0
#> 4: 0e+00 0 0 1 0 0 0 0 0 0 0
#> 5: 0e+00 0 0 0 1 0 0 0 0 0 0
#> 6: 0e+00 0 0 0 0 1 0 0 0 0 0
#> 7: 0e+00 0 0 0 0 0 1 0 0 0 0
#> 8: 0e+00 0 0 0 0 0 0 1 0 0 0
#> 9: 0e+00 0 0 0 0 0 0 0 1 0 0
#> 10: 0e+00 0 0 0 0 0 0 0 0 1 0
#> 11: 0e+00 0 0 0 0 0 0 0 0 0 1
#> 12: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 13: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 14: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 15: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 16: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 17: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 18: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 19: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 20: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 21: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 22: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 23: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 24: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 25: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 26: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 27: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 28: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 29: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 30: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 31: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 32: 0e+00 0 0 0 0 0 0 0 0 0 0
#> 33: 0e+00 0 0 0 0 0 0 0 0 0 0
#> CD45RA CD45RO TCRgd CD45BC1 IL2 CD8 CD197 CD45BC2 CD45BC3 CD57 CD193
#> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num>
#> CD45BC4 CD127 CD56 CD199 CD49a GranzymeB CD45BC5 CD95 CD3 CD4 CD69
#> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num>
#> 1: 0 0 0 0 0 0 0 0 0 0 0
#> 2: 0 0 0 0 0 0 0 0 0 0 0
#> 3: 0 0 0 0 0 0 0 0 0 0 0
#> 4: 0 0 0 0 0 0 0 0 0 0 0
#> 5: 0 0 0 0 0 0 0 0 0 0 0
#> 6: 0 0 0 0 0 0 0 0 0 0 0
#> 7: 0 0 0 0 0 0 0 0 0 0 0
#> 8: 0 0 0 0 0 0 0 0 0 0 0
#> 9: 0 0 0 0 0 0 0 0 0 0 0
#> 10: 0 0 0 0 0 0 0 0 0 0 0
#> 11: 0 0 0 0 0 0 0 0 0 0 0
#> 12: 1 0 0 0 0 0 0 0 0 0 0
#> 13: 0 1 0 0 0 0 0 0 0 0 0
#> 14: 0 0 1 0 0 0 0 0 0 0 0
#> 15: 0 0 0 1 0 0 0 0 0 0 0
#> 16: 0 0 0 0 1 0 0 0 0 0 0
#> 17: 0 0 0 0 0 1 0 0 0 0 0
#> 18: 0 0 0 0 0 0 1 0 0 0 0
#> 19: 0 0 0 0 0 0 0 1 0 0 0
#> 20: 0 0 0 0 0 0 0 0 1 0 0
#> 21: 0 0 0 0 0 0 0 0 0 1 0
#> 22: 0 0 0 0 0 0 0 0 0 0 1
#> 23: 0 0 0 0 0 0 0 0 0 0 0
#> 24: 0 0 0 0 0 0 0 0 0 0 0
#> 25: 0 0 0 0 0 0 0 0 0 0 0
#> 26: 0 0 0 0 0 0 0 0 0 0 0
#> 27: 0 0 0 0 0 0 0 0 0 0 0
#> 28: 0 0 0 0 0 0 0 0 0 0 0
#> 29: 0 0 0 0 0 0 0 0 0 0 0
#> 30: 0 0 0 0 0 0 0 0 0 0 0
#> 31: 0 0 0 0 0 0 0 0 0 0 0
#> 32: 0 0 0 0 0 0 0 0 0 0 0
#> 33: 0 0 0 0 0 0 0 0 0 0 0
#> CD45BC4 CD127 CD56 CD199 CD49a GranzymeB CD45BC5 CD95 CD3 CD4 CD69
#> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num>
#> TNFa CD183 IFNg CD103 CD45BC6 CD122 ia4b7 CD45BC7 Viability CD27 KLRG1
#> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num>
#> 1: 0 0 0 0 0 0 0 0 0 0 0
#> 2: 0 0 0 0 0 0 0 0 0 0 0
#> 3: 0 0 0 0 0 0 0 0 0 0 0
#> 4: 0 0 0 0 0 0 0 0 0 0 0
#> 5: 0 0 0 0 0 0 0 0 0 0 0
#> 6: 0 0 0 0 0 0 0 0 0 0 0
#> 7: 0 0 0 0 0 0 0 0 0 0 0
#> 8: 0 0 0 0 0 0 0 0 0 0 0
#> 9: 0 0 0 0 0 0 0 0 0 0 0
#> 10: 0 0 0 0 0 0 0 0 0 0 0
#> 11: 0 0 0 0 0 0 0 0 0 0 0
#> 12: 0 0 0 0 0 0 0 0 0 0 0
#> 13: 0 0 0 0 0 0 0 0 0 0 0
#> 14: 0 0 0 0 0 0 0 0 0 0 0
#> 15: 0 0 0 0 0 0 0 0 0 0 0
#> 16: 0 0 0 0 0 0 0 0 0 0 0
#> 17: 0 0 0 0 0 0 0 0 0 0 0
#> 18: 0 0 0 0 0 0 0 0 0 0 0
#> 19: 0 0 0 0 0 0 0 0 0 0 0
#> 20: 0 0 0 0 0 0 0 0 0 0 0
#> 21: 0 0 0 0 0 0 0 0 0 0 0
#> 22: 0 0 0 0 0 0 0 0 0 0 0
#> 23: 1 0 0 0 0 0 0 0 0 0 0
#> 24: 0 1 0 0 0 0 0 0 0 0 0
#> 25: 0 0 1 0 0 0 0 0 0 0 0
#> 26: 0 0 0 1 0 0 0 0 0 0 0
#> 27: 0 0 0 0 1 0 0 0 0 0 0
#> 28: 0 0 0 0 0 1 0 0 0 0 0
#> 29: 0 0 0 0 0 0 1 0 0 0 0
#> 30: 0 0 0 0 0 0 0 1 0 0 0
#> 31: 0 0 0 0 0 0 0 0 1 0 0
#> 32: 0 0 0 0 0 0 0 0 0 1 0
#> 33: 0 0 0 0 0 0 0 0 0 0 1
#> TNFa CD183 IFNg CD103 CD45BC6 CD122 ia4b7 CD45BC7 Viability CD27 KLRG1
#> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num>
#read all .fcs files as a named list containing individial flowstate objects
fs <- read.flowstate(
fcs.file.paths,
colnames.type="S",
concatenate = FALSE
)
#> COVAIL_002_CYTOKINE_BLOCK1_1.fcs --> flowstate
#> COVAIL_002_CYTOKINE_BLOCK1_2.fcs --> flowstate
#> COVAIL_002_CYTOKINE_BLOCK1_3.fcs --> flowstate
class(fs);class(fs[[1]])
#> [1] "list"
#> [1] "flowstate"
names(fs);names(fs[[1]])
#> [1] "COVAIL_002_CYTOKINE_BLOCK1_1.fcs" "COVAIL_002_CYTOKINE_BLOCK1_2.fcs"
#> [3] "COVAIL_002_CYTOKINE_BLOCK1_3.fcs"
#> [1] "data" "parameters" "keywords" "spill"
fs[[1]]$keywords
#> $BTIM $CYT $CYTSN $DATE $ETIM
#> <char> <char> <char> <char> <char>
#> 1: 09:22:51.62 Aurora V0299 27-Feb-2025 09:33:47.32
#> $FIL $FLOWRATE $INST $LAST_MODIFIED
#> <char> <char> <char> <char>
#> 1: COVAIL_002_CYTOKINE_BLOCK1_1.fcs Medium Cytekbio 16-JAN-2026 18:46:32.87
#> $LAST_MODIFIER $OP $ORIGINALITY $PAR
#> <char> <char> <char> <char>
#> 1: 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
#> CHARSET CREATOR FSC ASF GROUPNAME
#> <char> <char> <char> <char>
#> 1: 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
#> 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
#> LASER4DELAY LASER4NAME LASER5ASF LASER5DELAY LASER5NAME
#> <char> <char> <char> <char> <char>
#> 1: 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
#> WINDOW EXTENSION
#> <char>
#> 1: 3
fs[[1]]$data[,levels(sample.id)]
#> [1] "COVAIL_002_CYTOKINE_BLOCK1_1"
#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'...
class(fs)
#> [1] "flowstate"
names(fs)
#> [1] "data" "parameters" "keywords" "spill"
fs$keywords
#> $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:32.92
#> 2: COVAIL_002_CYTOKINE_BLOCK1_2.fcs Medium Cytekbio 16-JAN-2026 18:46:32.93
#> 3: COVAIL_002_CYTOKINE_BLOCK1_3.fcs Medium Cytekbio 16-JAN-2026 18:46:32.94
#> $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
#> <char>
#> 1: 3
#> 2: 3
#> 3: 3
fs$data[,levels(sample.id)]
#> [1] "COVAIL_002_CYTOKINE_BLOCK1_1" "COVAIL_002_CYTOKINE_BLOCK1_2"
#> [3] "COVAIL_002_CYTOKINE_BLOCK1_3"