def extractdata(paths, param): wanted = param.features ncrmode = param.ncrmode # TODO: this dependency on the "antibody" parameter is entirely # superfluous at this point, and should be factored out antibody = param.antibody rawdata = sdc_extract._extract_wells_data(paths, wanted) warnings = None if ncrmode: ks = rawdata.keys() vs = rawdata.values() def _cull_zeros(d): assert d.shape[1] == 2 ret = d[d[:, 1] > 0.] return ret, len(d) - len(ret) cvs, nculled = zip(*map(_cull_zeros, vs)) tot = sum(nculled) if tot > 0: ss = ' + '.join(map(str, nculled)) warnings = ['data for %s = %d cells had to be culled ' 'to prevent division by zero' % (ss, tot)] nvs = [d[:, 0]/d[:, 1] for d in cvs] data = dict(zip(ks, nvs)) else: data = rawdata return (dict([(k + (antibody,), v.reshape((v.size, 1))) for k, v in data.items()]), warnings)
def get_rawdata(sdc_paths, wanted_features): d = _extract_wells_data(sdc_paths, wanted_features) return np.vstack([v for k, v in sorted(d.items())])