Import a compensation matrix from a CSV file into Cytobank


Compensation is a core part of most fluorescent workflows, and there are many ways to create and modify compensation matrices in Cytobank. However, it may be desired to create and modify compensations in a software other than Cytobank. To support efficient downstream analysis of data using compensation matrices created in a different software, Cytobank supports the ability to import a CSV file that represents a compensation matrix. This allows import of compensation from FlowJo or any analysis software that supports export of compensation in CSV format. Even if this type of export isn't explicitly supported in the software being used, copy-pasting a matrix into a spreadsheet manually and saving it as a CSV file will also work.


CSV Formatting Requirements

An example CSV file is attached to the bottom of this article that shows the minimum required formatting for a file that gets imported as a compensation matrix. An example FCS file to which the compensation applies is also attached so that this workflow can be tried out. Some important points:

  • Only the channel short names are required in the CSV file. If long names are present, they must follow the short name with a double colon. Spaces between the short name, double colon, and long name don't matter. The following examples will all have the same effect: PE-A, PE-A::CD33, PE-A :: CD33

  • The channel names must follow the same ordering in both the rows and columns or an error will occur.

  • The values in the CSV should represent decimal values (typically between 0 and 1), though they are viewed as percent values in Cytobank. For example, a CSV value of 1 is displayed as 100 in the Cytobank interface. Cytobank also supports the import of values in scientific notation using the letter E (for example, the number 0.00119 written as 1.19E-03).


Visual example pre and post upload

The example CSV attached to this article before upload:

(example CSV viewed in Excel)


The example CSV attached to this article after upload to Cytobank. Note that the compensation matrix values are displayed as percent instead of decimal. Also, for compensation values with resolution smaller than .01 percent, the values displayed in the interface will be rounded to the nearest .01 percent. This may result in seeing .01 or .00 for values that are actually more precise. The more precise value is stored and used behind the scenes.

(imported compensation viewed in the Cytobank interface)



Have more questions? Submit a request