Closed uhlitz closed 6 years ago
Here is the class definition for a SingleCellAssay:
setClass('SingleCellAssay', contains='SingleCellExperiment',
slots=list(cmap='character', fmap='character'),
prototype=list(cmap=Mandatory_Cellvars,
fmap=Mandatory_Featurevars))
It inherits from a SingleCellExperiment, but MAST must be run on a SingleCellAssay object, so you have to create one from your SingleCellExperiment. I'm just looking at the code and I'm not sure @amcdavid has provided such a constructor? To do this you would do something like:
sce = new("SingleCellAssay",mySummarizedExperimentObject)
and then proceed to fill in the slots of sce
that are unique to it.
We'll get an appropriate constructor into the code if it's indeed missing.
Yeah, we do either have:
The SingleCellAssay class has had different behaviors over the years, but now only serves to sanity check that log-scale data is in some slot of the assay, and to preferentially use thresholded data if that is available. So it might be argued that we could drop the dependency, but I think the more forward-compatible change is for the moment, add the constructor/coercion method. I'll do that.
I see, but would you consider to entirely transition your package to the SingleCellExperiment class (for BioConductor compatibility) and do the sanity checking independent of that?
Yes, I think that is worth considering. This will have rather far-reaching implications, so the moment, I'm more inclined to introduce the wrapper and associated API. Later if we realize that it's superfluous we can turn it into a no-op. That's a smaller change than giving up all chance at abstraction.
Do you have a use case where making a coercion poses a barrier?
Closed in ba5f0b3b35cbaeb03a7d3ee10aa5735b64aa341f with SceToSingleCellAssay()
When running
zlm()
on a SingleCellExperiment object, I getMAST version: 1.7.0