def METHOD_NAME(self, data, mixMatrix, offset, ROI=[0,0,512, 512]):
    import scipy.linalg
    from PYME.localisation import splitting
    #from pylab import *
    #from PYME.DSView.dsviewer_npy import View3D
    umm = scipy.linalg.inv(mixMatrix)
    dsa = data.squeeze() - offset
    g_, r_ = [dsa[roi[0]:roi[2], roi[1]:roi[3]] for roi in rois]
    if self.flip:
        if self.axis == 'up_down':
            r_ = np.fliplr(r_)
        else:
            r_ = np.flipud(r_)
        r_ = self._deshift(r_, ROI)
    #print g_.shape, r_.shape
    g = umm[0,0]*g_ + umm[0,1]*r_
    r = umm[1,0]*g_ + umm[1,1]*r_
    g = g*(g > 0)
    r = r*(r > 0)