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
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
#! /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
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))