Test whether I can commit changes by performing a minor change to DESCRIPTION.
Merge from upstream
Added asinhtGml2, which is the ArcSinH transformation parameterized as in Gating-ML 2.0
Merge from upstream
The unlist(sapply(object@parameters, as, "character"))
that is normally used for the transform class, gives:
Error in as.vector(x, "list") : cannot coerce type 'closure' to vector of type 'list'

This does not seem to be specific to asinhtGml2, but I am "fixing" it for
asinhtGml2 since that is what I am adding. The other single parameter
transformations (from Gating-ML 1.5) should probably also be fixed. However, I am
not touching the existing transforms since I am slightly worried to accidentally break
some existing functionality.

It does not have any effect on the functionality of the transform
(or the filter that uses this transform).
Merge remote-tracking branch 'upstream/trunk' into gating-ml-2-support
I have changed the eval method of the compensatedParameter to accept a flowFrame
instead of just the data matrix. The whole point is that Gating-ML 2.0 includes
the option of specifying "FCS" as the "spillover matrix", which means that
parameters are supposed to be compensated as per compensation description in FCS.
This is why the whole flowFrame is passed to eval, which then has the option of
extracting the spillover matrix from the SPILL (or some other) keyword.
The gatingML.R has been adjusted to work with this accordingly.
Increased the version number.
Support for gating:compensation-ref="FCS" in Gating-ML 2.0.
Specifically, Gating-ML 2.0 may specify to use compensation description as prescribed
by the FCS data file. At the time of evaluation, we will look at
- description[['SPILL']]
- description[['$SPILLOVER']]
- description[['SPILLOVER']]
- description[['$SPILL']]
and try to extract the spillover from there. If there is no spillover in the FCS
datafile or if the spillover does not include the required parameter, then the
parameter is supposed to be used uncompensated. In flowCore, we keep the
parameter as compensated, but we will provide a 1x1 identify matrix as the
spillover at the point of evaluation. Therefore, the calculation will essentially
use the uncompensated parameter. This also has the advantage that if the same
filter is applied to a different flowFrame, which may include a different spillover,
then the parameter will be compensated according to that spillover at the time of
evaluation.
Minor fix to that compound transformations together with compensation in Gating-ML 1.5 still work.
More progress on spillover from FCS support and making eval methods accept flowFrames as well as expression matrices.
This now goes with FlowUtils 1.23.6
In flowCore, I basically just commented out a parameter check in flowFrame-accessors.R
since this was an issue for Union/Intersect filters applied on tranformed parameters.
I checked against older versions of flowCore and it appears that this does not have
anything to do with my recent changes. The filter result seems to produced OK when
this check is disabled. Otherwise, it would complain that the transformed parameters
are not in the data frame. (The transformed parameters get resolved later when
the "argument" filters are being evaluated.)
Added a special filter method for class setOperationFilter. This
is almost the same as for class filter except missing the check that
all parameters are present in the flowFrame. This is a fix since
otherwise, union/intersect filters with arguments on transformed
parameters will complain that these do not exist in the flowFrame
(although that is OK and the appropriate columns will be added
later when the "argument" filters are evaluated). This issue existed
for while I guess.
Also, originally, I commented out this check for all filters, but
than figured that I may as well leave it in except for the
setOperationFilter class (e.g., union, intersect, subset, complement),
where the check of parameters should be done later at the argument
level only.
flowFrame-accessors: method filter for flowFrame with filter:
A better way of skipping the test whether parameters exist in the
flowFrame for setOperationFilter class. This way, it works also when
there is a filterReference passed.
Changed parameter-methods.R, method parameters for SingleParameterTransform.
Originally, this used to call
unlist(sapply(object@parameters, as, "character"))
which resulted in
Error in as.vector(x, "list") : cannot coerce type 'closure' to vector of type 'list'
Now, I am simply returning object@transformationId and things seem to work just fine.
(Originally, I tested this with asinhtGml2 transform, but the issue seemed to exist for
all SingleParameterTransform from the Gating-ML 1.5 implementation.) This fix seems to
resolve it for all of these.
Added the lintGml2 class, which is a linear transformation parameterized
as defined in Gating-ML 2.0, i.e., (x+A)/(T+A).
Support for non-square spectrum matrices from Gating-ML 2.0.
This is made to work with flowUtils version 1.23.10 or newer.
Added log transformation parameterized as in Gating-ML 2.0, i.e., (1/M) * log10(x/T) + 1
Added the logicle transformation as parameterized (and defined) in Gating-ML 2.0. Still need to document this.
Added documentation for the logicletGml2 class.