flowCore
Dependencies & Environment
Package-intrinsic requirements from the Bioconductor landing page — reproduce in any R environment.
- Version: 2.24.0 · Bioconductor: 3.23 · R: ≥ 4.6
- Imports: Biobase, BiocGenerics, Rcpp, matrixStats, cytolib, S4Vectors
- System requirements: GNU make, C++17
- Install:
BiocManager::install("flowCore")
When to Use
- FCS3.0 Standard Parsing: Reading and interpreting Flow Cytometry Data File Standard Version FCS3.0 files.
- Segment Extraction: Locating and extracting HEADER, TEXT, DATA, and ANALYSIS segments from flow cytometry data sets.
- Large File Handling: Processing data sets of 100 megabytes and larger where byte offsets exceed standard limits.
- Compensation Matrix Retrieval: Extracting the fluorescence compensation matrix ($COMP) applied to the data.
When NOT to Use
- Automated Cell Clustering: For automated cell clustering, use flowMeans instead because flowCore focuses on file standard specifications and data structures.
- Probability Binning: For generating multivariate probability distribution fingerprints, use flowFP instead because flowCore only handles the raw file segments.
Data Requirements
- Input Format: FCS3.0 conformant files.
- Structure: Must contain HEADER, TEXT, and DATA segments.
- Storage Mode: List mode data storage or histograms.
Key Parameters
- $BEGINDATA (required): Byte-offset from the beginning of the data set to the beginning of the DATA segment.
- $DATATYPE (required): Type of data in the DATA segment (ASCII 'A', integer 'I', single precision floating point 'F', or double precision 'D').
- $BYTEORD (required): Byte order for the data acquisition computer (e.g., 4,3,2,1 or 1,2,3,4).
- $COMP (optional): Fluorescence compensation matrix elements stored in row-major order.
- $PnB (required): Number of bits reserved for parameter number n.
- $PnR (required): Range for parameter number n.
Best Practices
- Primary TEXT Segment Placement: Ensure the primary TEXT segment is located entirely within the first 99,999,999 bytes of the data set.
- ANALYSIS Segment Verification: Check the $BEGINANALYSIS and $ENDANALYSIS keywords to determine if an ANALYSIS segment is present, especially if HEADER offsets are zero.
- Internationalization: Use the $UNICODE keyword to support multi-byte characters for string type keyword values.
- Data Integrity: Utilize the cyclic redundancy check (CRC) word placed at the end of each FCS3.0 data set to confirm file integrity after network transfers.
Common Pitfalls
- Large Data Set Offsets: Data sets exceed the 99,999,999 byte limit, causing standard HEADER offsets to fail. Fix: Substitute '0's in the HEADER and place the true byte offsets in the $BEGINDATA and $ENDDATA keyword values in the TEXT segment.
- Delimiter Collisions: The delimiter character appears within a keyword or keyword value. Fix: Immediately follow the delimiter with a second identical delimiter character to escape it.
- Missing Zero Values in Free Format ASCII: Free format ASCII data ($DATATYPE/A/ with $PnB/*/) misinterprets consecutive delimiters. Fix: Explicitly specify zero values with the zero (0) character rather than leaving empty space between delimiters.
Alternatives
- flowMeans: For downstream non-parametric clustering of the extracted flow cytometry data.
- flowFP: For fingerprinting and probability binning of the extracted flow cytometry data.
Citations
- Data File Standards Committee of the International Society for Analytical Cytology (ISAC). FCS version 2.0 can be found in Cytometry 1990;11(3):323-32.
References
Run this on BioMate
This skill is the knowledge layer — when, why, and how to use flowcore. To run this analysis on your own data with managed compute, automated QC, and reproducible outputs, use BioMate — free to start.
▶ Open flowcore on BioMate →
1---2name: bioconductor-flowcore3description: Provides S4 data structures and basic functions to deal with flow cytometry data.4---56# flowCore78## Dependencies & Environment910> Package-intrinsic requirements from the Bioconductor landing page — reproduce in any R environment.1112- **Version:** 2.24.0 · **Bioconductor:** 3.23 · **R:** ≥ 4.613- **Imports:** Biobase, BiocGenerics, Rcpp, matrixStats, cytolib, S4Vectors14- **System requirements:** GNU make, C++1715- **Install:** `BiocManager::install("flowCore")`1617## When to Use18- **FCS3.0 Standard Parsing**: Reading and interpreting Flow Cytometry Data File Standard Version FCS3.0 files.19- **Segment Extraction**: Locating and extracting HEADER, TEXT, DATA, and ANALYSIS segments from flow cytometry data sets.20- **Large File Handling**: Processing data sets of 100 megabytes and larger where byte offsets exceed standard limits.21- **Compensation Matrix Retrieval**: Extracting the fluorescence compensation matrix ($COMP) applied to the data.2223## When NOT to Use24- **Automated Cell Clustering**: For automated cell clustering, use flowMeans instead because flowCore focuses on file standard specifications and data structures.25- **Probability Binning**: For generating multivariate probability distribution fingerprints, use flowFP instead because flowCore only handles the raw file segments.2627## Data Requirements28- **Input Format**: FCS3.0 conformant files.29- **Structure**: Must contain HEADER, TEXT, and DATA segments.30- **Storage Mode**: List mode data storage or histograms.3132## Key Parameters33- **$BEGINDATA** (required): Byte-offset from the beginning of the data set to the beginning of the DATA segment.34- **$DATATYPE** (required): Type of data in the DATA segment (ASCII 'A', integer 'I', single precision floating point 'F', or double precision 'D').35- **$BYTEORD** (required): Byte order for the data acquisition computer (e.g., 4,3,2,1 or 1,2,3,4).36- **$COMP** (optional): Fluorescence compensation matrix elements stored in row-major order.37- **$PnB** (required): Number of bits reserved for parameter number n.38- **$PnR** (required): Range for parameter number n.3940## Best Practices41- **Primary TEXT Segment Placement**: Ensure the primary TEXT segment is located entirely within the first 99,999,999 bytes of the data set.42- **ANALYSIS Segment Verification**: Check the $BEGINANALYSIS and $ENDANALYSIS keywords to determine if an ANALYSIS segment is present, especially if HEADER offsets are zero.43- **Internationalization**: Use the $UNICODE keyword to support multi-byte characters for string type keyword values.44- **Data Integrity**: Utilize the cyclic redundancy check (CRC) word placed at the end of each FCS3.0 data set to confirm file integrity after network transfers.4546## Common Pitfalls47- **Large Data Set Offsets**: Data sets exceed the 99,999,999 byte limit, causing standard HEADER offsets to fail. *Fix*: Substitute '0's in the HEADER and place the true byte offsets in the $BEGINDATA and $ENDDATA keyword values in the TEXT segment.48- **Delimiter Collisions**: The delimiter character appears within a keyword or keyword value. *Fix*: Immediately follow the delimiter with a second identical delimiter character to escape it.49- **Missing Zero Values in Free Format ASCII**: Free format ASCII data ($DATATYPE/A/ with $PnB/*/) misinterprets consecutive delimiters. *Fix*: Explicitly specify zero values with the zero (0) character rather than leaving empty space between delimiters.5051## Alternatives52- **flowMeans**: For downstream non-parametric clustering of the extracted flow cytometry data.53- **flowFP**: For fingerprinting and probability binning of the extracted flow cytometry data.5455## Citations56- Data File Standards Committee of the International Society for Analytical Cytology (ISAC). FCS version 2.0 can be found in Cytometry 1990;11(3):323-32.5758## References59- Homepage: bioconductor.org/packages/flowcore60- Vignette: https://bioconductor.org/packages/release/bioc/vignettes/flowCore/inst/doc/HowTo-flowCore.pdf6162<!-- biomate-cta -->63---6465## Run this on BioMate6667This skill is the **knowledge layer** — when, why, and how to use `flowcore`. To **run this analysis on your own data** with managed compute, automated QC, and reproducible outputs, use **[BioMate](https://www.biomate.ai?ref=kb&pkg=flowcore)** — free to start.6869▶ **[Open `flowcore` on BioMate →](https://www.biomate.ai?ref=kb&pkg=flowcore)**