Beispiel #1
0
def objectHistogramMatrix(dataSet, features, exemplars, bins):
    tasks = [(dataSet, features, exemplars, xFtr, yFtr, bins) for yFtr in features for xFtr in features if xFtr < yFtr]
    if data.mdsColumnsPresent(dataSet):
        tasks.append((dataSet, features, exemplars, data.mdsColumns[0], data.mdsColumns[1], bins))

    pool = Pool()
    results = pool.imap(objectHistogram2D, tasks)
    pool.close()
    pool.join()

    recDict = lambda: defaultdict(recDict)
    histograms = recDict()
    for xFeature, yFeature, contours in results:
        for c, lvlCnt in contours.iteritems():
            histograms[xFeature][yFeature][c] = lvlCnt.tolist()
            histograms[yFeature][xFeature][c] = lvlCnt.transpose().tolist()

    return dict(histograms)
Beispiel #2
0
def objectInfo(dataSet, featureSet, column, row, plate, exemplars, probes):
    objects = allObjects(dataSet, column, row, plate, exemplars, probes)
    combined = wellIndex(dataSet).loc[objects].copy()

    # Feature values.
    for ftr in featureSet:
        combined[ftr] = np.take(scaledArray(dataSet, ftr), objects)

    if data.mdsColumnsPresent(dataSet):
        for mdsCol in data.mdsColumns:
            combined[mdsCol] = np.take(scaledArray(dataSet, mdsCol), objects)

    # Predicted population values.
    combined["population"] = np.take(clusters(dataSet, featureSet, exemplars), objects)

    # Generate well URLs on the spot, based on config.
    wellImages = data.config(dataSet).wellImages
    for name, urlFunction in wellImages.iteritems():
        combined["img_" + name] = combined.apply(
            lambda row: urlFunction(int(row['plate']), int(row['column']), int(row['row'])), axis=1)

    return combined