FlowJo compatible biex transformation function Implementation adapted from the FlowKit Python library

compensate!(data::Matrix{Float64}, spillover::Matrix{Float64}, cols::Vector{Int})

Apply a compensation matrix in spillover (the individual columns of which describe, in order, the spillover of cols in data) to the matrix data in-place.


Collect the meta data information in a more user friendly format.


  • f: input structure with .params and .data fields
getSpillover(params::Dict{String, String})::Union{Tuple{Vector{String},Matrix{Float64}}, Nothing}

Get a spillover matrix from FCS params. Returns a pair with description of columns to be applied, and with the actual spillover matrix. Returns nothing in case spillover is not present.

loadFCS(fn::String; applyCompensation::Bool=true)::Tuple{Dict{String,String}, Matrix{Float64}}

Read a FCS file. Return a tuple that contains in order:

  • dictionary of the keywords contained in the file
  • raw column names
  • prettified and annotated column names
  • raw data matrix

If applyCompensation is set, the function parses and retrieves a spillover matrix (if any valid keyword in the FCS is found that would contain it) and applies it to compensate the data.

parseSpillover(str::String)::Union{Tuple{Vector{String},Matrix{Float64}}, Nothing}

Parses the spillover matrix from the string from FCS parameter value.