If sample.groups argument covers only a subset of samples in the conos object, the constructor accepts it, but both estimateCellLoadings() and estimateExpressionShiftMagnitudes() fail with uninformative error messages. Passing a smaller conos object, covering only the samples with valid levels in the sample.groups factor fixes the issue.