def group_sample((sample, featureid)): model = CrossCat() with open_compressed(sample['model']) as f: model.ParseFromString(f.read()) for kindid, kind in enumerate(model.kinds): if featureid in kind.featureids: break assignments = assignment_stream_load(sample['assign']) return collate((a.groupids(kindid), a.rowid) for a in assignments)
def _retrieve_row_partitions(path, sample): """Return row partition from CrossCat `sample` at `path`. The returned structure is of the form `cgpm.crosscat.state.State.Zrv`. """ cross_cat = _loom_cross_cat(path, sample) num_kinds = len(cross_cat.kinds) assign_in = os.path.join(path, 'samples', 'sample.%d' % (sample, ), 'assign.pbs.gz') assignments = { a.rowid: [a.groupids(k) for k in xrange(num_kinds)] for a in assignment_stream_load(assign_in) } rowids = sorted(assignments) return { k: [assignments[rowid][k] for rowid in rowids] for k in xrange(num_kinds) }
def _retrieve_row_partition(self, bdb, generator_id, modelno): """Return row partition from a CrossCat model. The returned structure is of the form `cgpm.crosscat.state.State.Zv`. """ cross_cat = self._get_cross_cat(bdb, generator_id, modelno) num_kinds = len(cross_cat.kinds) assign_in = os.path.join( self._get_loom_project_path(bdb, generator_id), 'samples', 'sample.%d' % (modelno, ), 'assign.pbs.gz') assignments = { a.rowid: [a.groupids(k) for k in xrange(num_kinds)] for a in assignment_stream_load(assign_in) } rowids = sorted(assignments) return { k: [assignments[rowid][k] for rowid in rowids] for k in xrange(num_kinds) }
def _retrieve_row_partition(self, bdb, generator_id, modelno): """Return row partition from a CrossCat model. The returned structure is of the form `cgpm.crosscat.state.State.Zv`. """ cross_cat = self._get_cross_cat(bdb, generator_id, modelno) num_kinds = len(cross_cat.kinds) assign_in = os.path.join( self._get_loom_project_path(bdb, generator_id), 'samples', 'sample.%d' % (modelno,), 'assign.pbs.gz') assignments = { a.rowid: [a.groupids(k) for k in xrange(num_kinds)] for a in assignment_stream_load(assign_in) } rowids = sorted(assignments) return { k: [assignments[rowid][k] for rowid in rowids] for k in xrange(num_kinds) }