Ejemplo n.º 1
0
from subprocess import check_output

from batchlib.util.logger import get_logger

logger = get_logger('Workflow.GitUtil')


def get_commit_id():
    try:
        commit_id = check_output(['git', 'rev-parse', 'HEAD']).decode('utf-8').rstrip('\n')
    except Exception as e:
        logger.warning(f'Cannot get git commit SHA: {e}')
        commit_id = None
    return commit_id
Ejemplo n.º 2
0
import json
from concurrent import futures

import numpy as np
from tqdm import tqdm
import scipy.stats

from batchlib.util.logger import get_logger
from ..base import BatchJobWithSubfolder
from ..util.io import open_file

logger = get_logger('Workflow.BatchJob.PixelAnalysis')


def compute_weighted_serum(mask, intensity, q):
    if np.sum(mask) == 0:
        return 0.

    if q == "mean":
        return float(np.mean(intensity[mask]))
    else:
        return float(np.quantile(intensity[mask], q))


def ratio(a, b):
    if b != 0:
        return a / b
    else:
        return 0.

import configargparse

from batchlib import run_workflow
from batchlib.analysis.cell_level_analysis import InstanceFeatureExtraction, CellLevelAnalysis, DenoiseByGrayscaleOpening
from batchlib.analysis.pixel_level_analysis import all_plots
from batchlib.analysis.summary import CellLevelSummary
from batchlib.outliers.outlier import get_outlier_predicate
from batchlib.preprocessing import Preprocess
from batchlib.segmentation import SeededWatershed
from batchlib.segmentation.stardist_prediction import StardistPrediction
from batchlib.segmentation.torch_prediction import TorchPrediction
from batchlib.segmentation.voronoi_ring_segmentation import VoronoiRingSegmentation
from batchlib.segmentation.unet import UNet2D
from batchlib.util.logger import get_logger

logger = get_logger('Workflow.InstanceAnalysis2')


def get_input_keys(config):

    nuc_in_key = 'nuclei'
    serum_in_key = 'serum'
    marker_in_key = 'marker'

    if config.segmentation_on_corrected:
        nuc_seg_in_key = nuc_in_key + '_corrected'
        serum_seg_in_key = serum_in_key + '_corrected'
    else:
        nuc_seg_in_key = nuc_in_key
        serum_seg_in_key = serum_in_key
Ejemplo n.º 4
0
#! /home/covid19/software/miniconda3/envs/antibodies-gpu/bin/python

import os
import time

import configargparse
from glob import glob

from batchlib import run_workflow
from batchlib.analysis import PixellevelAnalysis, all_plots
from batchlib.outliers.outlier import get_outlier_predicate
from batchlib.preprocessing import Preprocess
from batchlib.segmentation import IlastikPrediction
from batchlib.util.logger import get_logger

logger = get_logger('Workflow.PixelAnalysis')


def get_input_keys(config):

    nuc_in_key = 'nuclei'
    serum_in_key = 'serum'
    marker_in_key = 'marker'

    if config.segmentation_on_corrected:
        nuc_seg_in_key = nuc_in_key + '_corrected'
        marker_seg_in_key = marker_in_key + '_corrected'
        serum_seg_in_key = serum_in_key + '_corrected'
    else:
        nuc_seg_in_key = nuc_in_key
        marker_seg_in_key = marker_in_key
Ejemplo n.º 5
0
import numpy as np
import skimage.morphology
from scipy.stats import ttest_ind
from tqdm.auto import tqdm
from glob import glob

from batchlib.util.logger import get_logger
from ..base import BatchJobOnContainer
from ..util.image import seg_to_edges
from ..util.io import (open_file, image_name_to_site_name,
                       image_name_to_well_name, get_column_dict, has_table,
                       read_table, write_image_information,
                       in_file_to_image_name, to_image_table)

logger = get_logger('Workflow.BatchJob.CellLevelAnalysis')


def index_cell_properties(cell_properties, ind):
    return {
        key: {
            inner_key: inner_value[ind.astype(np.bool)]
            for inner_key, inner_value in value.items()
        } if isinstance(value, dict) else None
        for key, value in cell_properties.items()
    }


def join_cell_properties(*cell_property_list):
    # copy to avoid changing inputs
    cell_property_list = list(map(copy, cell_property_list))