Yu Qian and Yue Liu Contributed equally to this work.
Communication to the Editor
FCSTrans: An open source software system for FCS file conversion and data transformation
Article first published online: 19 MAR 2012
Copyright © 2012 International Society for Advancement of Cytometry
Cytometry Part A
Volume 81A, Issue 5, pages 353–356, May 2012
How to Cite
Qian, Y., Liu, Y., Campbell, J., Thomson, E., Kong, Y. M. and Scheuermann, R. H. (2012), FCSTrans: An open source software system for FCS file conversion and data transformation. Cytometry, 81A: 353–356. doi: 10.1002/cyto.a.22037
- Issue published online: 19 APR 2012
- Article first published online: 19 MAR 2012
- Manuscript Accepted: 14 FEB 2012
- Manuscript Revised: 3 FEB 2012
- Manuscript Received: 1 DEC 2011
- NIH. Grant Number: N01AI40076
In flow cytometry (FCM) experiments, investigators usually rely on instrument manufacturers and “black box” commercial software to transform cellular marker expressions into cell populations on 2D dot plots. Techniques behind these systems and their limitations have not been sufficiently addressed or disclosed. Currently, a Flow Cytometry Standard (FCS) file can be FCS2.0 or FCS3.0 (N.B. Newer standards like FCS3.1 and ACS1.0 have been proposed and might be generated by some manufacturers in the future.). According to the Becton Dickinson (BD, http://www.bd.com) acquisition software manual , by default FCS2.0 fluorescence data are log-transformed, whereas FCS3.0 files keep the raw outputs from the instrument in a linear mode. Therefore, FCS3.0 format provides more control to bioinformaticians and FCM software developers in data processing (e.g., changing data compensation after acquisition). However, it remains unclear how the linear-mode fluorescence data in FCS3.0 files should be transformed before events can be plotted for population identification.
Figure 1A–C shows a comparison on FCS3.0 data conversion and transformation we conducted between FlowJo (Tree Star, http://www.flowjo.com), flowTrans  of Bioconductor, and FCS2CSV  1 on three FCS3.0 files collected from different labs (details of FCS files and software systems can be found in Supporting Information, File 1; headers of the three BD FCS file can be found in Supporting Information, File 2). It seems that under the default setting FCS2CSV and flowTrans2 seemed to generate insufficient data modality for population segregation in these FCS files. The conversion techniques (and transformation parameters) used in the three systems seem to be inconsistent, reflected by the output data range and the data distribution characteristics. These issues have brought in uncertainty not only in FCM data analysis but also in data sharing and interpretation and, therefore, made us believe it was necessary to develop a single open source software system that would transform different types of FCS files appropriately, robustly, and consistently.
Here, we report the development of FCSTrans, an open source FCS file converter, and transformation system that generates numeric data matrix into .txt files from binary FCS files. FCSTrans is written in R. Its source code and technical report can be found at http://immportflock.sourceforge.net. Results of FCSTrans on the three BD FCS files, as shown in Figure 1D, are highly consistent with those of FlowJo in Figure 1A. It supports both BD and Accuri (http://www.accuricytometers.com) FCS files. Important technical details of FCSTrans including method description, transformation equations, and identification of transformation parameters can be found in Supporting Information File 1. It has also been implemented in the FCM data analysis pipeline of the Immunology Database and Analysis Portal (ImmPort, http://immport.niaid.nih.gov).
We have compared the results of FCSTrans with those of FlowJo and flowCore  of Bioconductor on the three most commonly used transformation methods including linear, logarithmic, and logicle transformation. The advantages of FCSTrans, when compared with FlowJo, are focused on processing negative inputs, supporting 24-bit data, and being open source. To study the behavior of different transformation methods, we have developed an FCS data simulator to write values uniformly selected from 2−32 to 232 into binary FCS format. Our full range input simulation has identified that FlowJo linear transformation converted negative inputs into 4095 and reset values larger than 218 = 262144 to start from zero (data plot can be found in Supporting Information, Fig. S2A). This can lead to problematic transformation for 24-bit data used by Accuri cytometers or when scatter parameters have negative values. In contrast, FCSTrans linear transformation converts negative inputs to 0 and values larger than 262,144 to 4095 (data plot can be found in Supporting Information, Fig. S2B). Both logarithmic and logicle transformation of FCSTrans generate essentially the same output as FlowJo (method details can be found in Supporting Information, File 1), as Figure 1 has shown. Logicle transformation in FCSTrans segregates populations better than the default logicle setting in flowCore in our experiments with real FCS data, as Figure 1 has shown. The full range input data simulation also supports our conclusion when comparing results from default parameters used in the logicle transformation, as in flowCore3 and in FCSTrans. Although the two sets of parameters perform similarly for large input values (Supporting Information, Fig. S2C), the default parameters used in flowCore seem to be problematic, which does not preserve a linear-like relationship for small values (Supporting Informationm, Fig. S2D). The effect of using different w, a critical parameter setting in the logicle transformation can be found in Supporting Information, Figure 3.
Data compensation needs to be done before transformation can be performed. FCSTrans is able to look for the keyword $COMP (FCS3.0 standard), SPILL (BD instruments), or SPILLOVER (Accuri instruments) to retrieve the compensation matrix from the FCS3.0 file header, and automatically applies it to compensate the FCS3.0 data before further transformation. However, there is no standard indicator on whether an FCS file has been compensated or not. Therefore, FCSTrans provides the automated compensation function as an option. The version we have deployed at ImmPort assumes the submitted FCS files have been compensated and does not compensate them automatically, whereas the version used in this article (also released at http://immportflock.sourceforge.net) automatically applies the spillover matrix, if found in BD and Accuri FCS files, to compensate the data before applying the transformation, which seems convenient for most BD FCS3.0 files we have tested.
Data compensation may generate negative values. FCSTrans follows the traditional −111 cutoff used in FlowJo and flowCore, so that dot plots from different samples and from different software platforms can be directly compared. Future work is to allow users to change the cutoff when necessary. For example, when the cutoff is too high, a large number of events will be truncated to zero and pile up on the axis. Decreasing the cutoff is necessary for disclosing the expression patterns in the negative area.
Although the transformation methods in FCSTrans are general, we have identified different transformation parameters for different instrument manufacturers based on their data characteristics (e.g., number of bits in data representation). The current implementation of FCSTrans automatically supports FCS files from BD and Accuri Cytometers. Details on supporting different manufacturer files can be found in Supporting Information, File 1 and our technical report online (http://immportflock.sourceforge.net). Our experiments (dot plots of one example Accuri FCS file can be found in Supporting Information, Fig. S4) have shown that results generated by FCSTrans are highly consistent with those from Accuri CFlow software .
In summary, based on the study on the behavior of different transformation methods with both simulated and real FCS files, we have developed an open source software system FCSTrans that can convert and transform FCS files from BD and Accuri cytometers. Compared with existing systems, FCSTrans has: (a) avoided the linear transformation limitation on negative and 18-bit data in FlowJo; (b) identified a set of logicle transformation parameters for effective population segregation consistent with FlowJo; (c) been open source and free; (d) supported both BD and Accuri FCS files within one single system. Results of FCSTrans can be used in better segregating cell populations and consistent cross-sample comparison and data sharing with commercial software platforms and different parties. We hope that FCSTrans can help remove the preprocessing obstacle of FCS file conversion and data transformation, and provide a starting point for independent data analysts, statisticians, and software developers to develop advanced and customized FCM data analysis and visualization software.
The authors sincerely appreciate Josef Spidlen and Ryan Brinkman for providing FCS2CSV, and the useful discussion with Florian Hahne on flowCore. The authors also sincerely thank Chungwen Wei and Iñaki Sanz Lab (University of Rochester), Adam Seegmiller and Nitin Karandikar Lab (University of Texas Southwestern Medical Center), Lisa Beck Lab (University of Rochester), and Doris Wiener (University of South Florida) for providing different FCS files for us to study data transformation and test software systems. The authors do not have a conflict of interest to declare.
There are four options in flowTrans: arcsinh, biexponential, linlog, and Box-Cox. We chose the results of arcsinh because it generated relatively better segregation of populations than the other three options, whose results can be found in Supporting Information Figure S1.
Using R command line and the default parameters specified in Ref.7: logicleTransform (transformationId = “defaultLogicleTransform”, w = 0, t = 262144, m = 4.5, a = 0)
- 1BD FACS Diva Software 6.0 Reference Manual, Beckton and Dickinson. http://facs.stanford.edu/sff/doc/BDFACSDivaV6Manual.pdf. Accessed March 06, 2012.
- 3http://sourceforge.net/projects/flowcyt/files/GenePattern Flow Cytometry Suite/FCS2CSV/. Accessed February 02, 2012.
- 4http://bioconductor.org/packages/2.6/bioc/manuals/flowCore/man/flowCore.pdf. Accessed February 02, 2012.
- 5http://research.stowers-institute.org/efg/ScientificSoftware/Utility/FCSExtract/. Accessed February 02, 2012.
- 6http://www.cyto.purdue.edu/archive/flowcyt/software/DATA/PURDUE/LLDATA.DOC. Accessed February 02, 2012.
- 7http://accuricytometers.com/files/Accuri_Revolutionizes_Flow_Cytometry.pdf. Accessed February 02, 2012.
Additional Supporting Information may be found in the online version of this article.
|CYTO_22037_sm_SuppFig1.tif||256K||Supporting Figure 1|
|CYTO_22037_sm_SuppFig2.tif||140K||Supporting Figure 2|
|CYTO_22037_sm_SuppFig3.tif||42K||Supporting Figure 3|
|CYTO_22037_sm_SuppFig4.tif||168K||Supporting Figure 4|
|SupplementaryFile1_FCSTrans.pdf||148K||Supporting Information FCSTrans|
Please note: Wiley Blackwell is not responsible for the content or functionality of any supporting information supplied by the authors. Any queries (other than missing content) should be directed to the corresponding author for the article.