MFI/FCS Verification Suite
Some of the figures on this page are composites that combine portions of images from several of MFI's graphics screens, or are cropped and slightly rearranged to save space.

This verification suite provides tools for generating synthetic FCS (Flow Cytometry Standard format) data files with known contents. It is provided as a companion to MFI but is suitable for verification of any program capable of reading generic FCS files. Tests with synthetic data represent one of several methods of verifying accuracy of results. Another method is, of course, to compare results with those of trusted software.

MFI is provided free and without support. By the act of using it, you agree to accept responsibility for verifying the accuracy of MFI's results with your data and its suitability for your uses.

The included data files can be used under any operating system, but the verification suite programs that generate the synthetic FCS data files run only under Windows (MS-DOS). However, the programs can be used under DOS to generate additional data files that can then be moved to any operating system.

The suite includes the program A2FCS.EXE that converts ASCII spreadsheet-style data files to FCS. It can handle 8- or 16-bit data, and can mark the data as log-acquired. Programs are provided to generate columns of random numbers; the results (medians etc.) can be independently obtained by the flow cytometry program of your choice, and by generic spreadsheet software for verification. The programs can generate arbitrarily large FCS files of repeating cycles of random numbers (hence with known medians, etc.). MFI has been tested using this strategy for up to 2,000,000 events of 3 parameters each. (Tools are also provided for generating data to display the greeting of your choice as a dot plot.)

The programs provided here by no means represent a comprehensive test suite. They are provided to assist users of MFI in designing tests that will verify results of critical importance in their own work.

Contents of Verification Suite

If you have completed MFI installation, you will have the following folders and files on your hard disk:


Below, each of the components of the Verification Suite is described.

Converting ASCII to FCS with A2FCS.EXE

The program A2FCS (ASCII to FCS) can be used to convert ASCII spreadsheet- style data files to FCS files that can be read by MFI. The ASCII data files can be created manually, or with spreadsheet software, or by custom programs (such as those provided here), or by any other means you choose.

A2FCS is a modification of the TEXT2FCS 1.0 program written by Joe Trotter. TEXT2FCS allows only range 0-255 values, while A2FCS also allows 0-1023 values. When no value exceeds 255, A2FCS writes the binary data as one byte per value ($PnB = 8, $PnR = 256); when at least one value exeeds 255, A2FCS writes all the binary data as two bytes per value ($PnB = 16, $PnR = 1024).

A2FCS has more error checking than does TEXT2FCS 1.0. It insists that all rows contain the same number of columns. If any value is <0 a warning message is issued and it is set to 0. If any value is >1023 it is set to 1023 and a warning message is issued.

To demonstrate the tests described below, you may wish to use the MFI.CFG files provided. Each CFG file has just the one list mode file of interest on the run organization screen, and is configured to provide the relevant dot plots, gates, etc. Where appropriate, some have conversion to ASCII list mode enabled with the event number column disabled.

We'll use RND-H5K (see below for description) as an example to illustrate the general procedure for each test. A batch file is provided to automate these steps, SYNDAT.BAT. To do steps 1-5 for RND-H5K, open an MD-DOS window and run 'syndat rnd-h5k'. Or most simply, just double click the "Run RND-H5K" shortcut provided.

    This is the procedure run automatically by SYNDAT.BAT or the various "Run" shortcuts that use it:

  1. If there is no ASCII data file (RND-H5K), there will be a program (RND-H5K.EXE) that generates the ASCII data file. Run the program.

  2. Use A2FCS to convert the ASCII data file to FCS: 'a2fcs rnd-h5k' produces the file RND-H5K.A2F.

  3. Copy the specific CFG file provided to MFI.CFG so MFI will use it by default: 'copy rnd-h5k.cfg mfi.cfg'.

  4. Run MFI, scrutinizing the primary and graphic output. (You may wish to make a copy of the Shortcut to Mfi.exe to facilitate running MFI.)

  5. Optionally, scrutinize the ASCII list mode file produced by MFI (RND-H5K.ALS).


The following files were created by putting small numbers of parameter values in plain text (ASCII) files by manual text editing. You can inspect their contents by opening them in Notepad, Wordpad, or Word. (If you modify them, be sure to save the result as plain ASCII text.) Use the instructions in the previous section to convert them to FCS files readable by MFI.


The MFI verification program suite includes a series of small programs, each of which generates a synthetic ASCII data file. Here is a list of the programs, explaining the verification tests that each provides.


There is no shortcut for using this program. You must open an MS-DOS window (Start, Programs, MS-DOS Prompt), change to folder \FLOWCYTM\VERIFYFC\VERPROGS, and issue the commands as explained above. Run the program RANDA without parameters for more explanation.

The program RANDA.EXE generates arbitrarily-sized tables of pseudo-random numbers. However, the values are generated in identical, repeating sets the same size as the range. The intended use is for range 256 or 1024. The medians and means can be determined by spreadsheet software for the RANDA files containing one cycle (256 or 1024 pseudo-random values). Because this cycle repeats for larger files, the median and mean will be the same for any-sized file with the same range. This strategy allows generation of arbitrarily large files for which the medians and means are known in advance. When RANDA is asked to make a file of range 256 containing 3 parameters by 2,000,128 events, the result is a 23,509,317 byte file. A2FCS converts this to a 6,001,408 byte file. The version of MFI current at the time processed this file correctly.

This program generates two files, LINES-L and LINES-H, with data ranges of 256 and 1024 respectively. Each file contains a series of parallel lines. In order that each dot be separated from the next, there are only 64 dots per line. LINES-L behaves as expected.

However, the lines from LINES-H look uneven (not shown as a screenshot). This is because of the way MFI handles 1024-range dotplots. Here is a quote from MFI's on-line help on dot plots:

In the case of the absolutely straight lines contained in LINES-H, this blurring translates to an uneven appearance. For data acquired from cells, it has no noticeable affect.



These are just for fun. Enjoy!