def process_series(_experiment, _series_id, _overwrite=False): _series_image_path = paths.serieses(_experiment, _series_id) _image_properties = load.image_properties(_experiment, _series_id) _series_image = tifffile.imread(_series_image_path) _cells_coordinates = load.cell_coordinates_tracked_series_file_data( _experiment, _series_id) _series_image_by_time_frames = [ np.array([ _z[IMAGE_FIBER_CHANNEL_INDEX] for _z in _series_image[_time_frame] ]) for _time_frame in range(_series_image.shape[0]) ] _tuples = load.experiment_groups_as_tuples(_experiment) _tuples = organize.by_experiment(_tuples)[_experiment] _tuples = filtering.by_real_pairs(_tuples) _tuples = filtering.by_real_fake_pairs(_tuples, _real_fake_pairs=False) _tuples = filtering.by_series_id(_tuples, _series_id) for _tuple in _tuples: _experiment, _series_id, _group = _tuple _cell_1_id, _cell_2_id = [ int(_value) for _value in _group.split('_')[1:] ] process_group( _experiment=_experiment, _series_id=_series_id, _cells_coordinates=_cells_coordinates, _cell_1_id=_cell_1_id, _cell_2_id=_cell_2_id, _series_image_by_time_frames=_series_image_by_time_frames, _resolutions=_image_properties['resolutions'], _image_properties=_image_properties, _overwrite=_overwrite)
def process_experiment(_experiment, _overwrite=False): _arguments = [] for _tuple in load.experiment_groups_as_tuples(_experiment): _experiment, _series_id, _group = _tuple _arguments.append((_experiment, _series_id, _group, _overwrite)) _p = Pool(CPUS_TO_USE) _p.starmap(process_group, _arguments) _p.close()
def process_experiments(_experiments, _pairs=True): _tuples = [] for _experiment in _experiments: _tuples += load.experiment_groups_as_tuples(_experiment) _p = Pool(CPUS_TO_USE) if _pairs: _answers = _p.starmap(process_group_pairs, _tuples) else: _answers = _p.starmap(process_group_single_cells, _tuples) _p.close()
def main(): # single cells print('Single cells') _single_cells = load.experiments_groups_as_tuples(SINGLE_CELLS) _single_cells = filtering.by_main_cell(_single_cells) _single_cells = organize.by_single_cell_id(_single_cells) print('\tTotal single cell experiments:', len(_single_cells)) # cell pairs _cell_pairs = load.experiments_groups_as_tuples(CELL_PAIRS) print('\nTotal cell pairs:', len(_cell_pairs)) for _distance_range in DISTANCE_RANGES: print('Cell pairs distance range:', _distance_range) # total _distance_range_cell_pairs = filtering.by_pair_distance_range(_cell_pairs, _distance_range=_distance_range) print('\tTotal cell pairs:', len(_distance_range_cell_pairs)) for _experiment in CELL_PAIRS: print('\tExperiment:', _experiment) _experiment_cell_pairs = load.experiment_groups_as_tuples(_experiment) _distance_range_experiment_cell_pairs = \ filtering.by_pair_distance_range(_experiment_cell_pairs, _distance_range=_distance_range) print('\t\tTotal cell pairs:', len(_distance_range_experiment_cell_pairs)) # real cell pairs _real_cell_pairs = filtering.by_real_pairs(_distance_range_experiment_cell_pairs) print('\t\tTotal real cell pairs:', len(_real_cell_pairs)) _real_cell_pairs_with_band = filtering.by_band(_real_cell_pairs) print('\t\tTotal real cell pairs with band:', len(_real_cell_pairs_with_band)) # fake cell pairs _fake_cell_pairs = filtering.by_real_pairs(_distance_range_experiment_cell_pairs, _real_pairs=False) print('\t\tTotal fake cell pairs:', len(_fake_cell_pairs)) _fake_static_cell_pairs = filtering.by_fake_static_pairs(_fake_cell_pairs) print('\t\tTotal fake static cell pairs:', len(_fake_static_cell_pairs)) _fake_following_cell_pairs = filtering.by_fake_static_pairs(_fake_cell_pairs, _fake_static_pairs=False) print('\t\tTotal fake following cell pairs:', len(_fake_following_cell_pairs)) _fake_following_cell_pairs_with_band = filtering.by_band(_fake_following_cell_pairs) print('\t\tTotal fake following cell pairs with band:', len(_fake_following_cell_pairs_with_band))
def main(): _experiment = 'LiveDead_201220' _band = False _tuples = load.experiment_groups_as_tuples(_experiment) print('Total tuples:', len(_tuples)) for _tuple in _tuples: print(_tuple) _experiment, _series_id, _group = _tuple _properties = load.group_properties(_experiment, _series_id, _group) _properties['band'] = _band _group_structured_path = paths.structured(_experiment, _series_id, _group) _properties_json_path = os.path.join(_group_structured_path, 'properties.json') save_lib.to_json(_properties, _properties_json_path)
def main(): _experiment = 'DeadDead_201208' _tuples = load.experiment_groups_as_tuples(_experiment) _cell_ids = {} for _tuple in _tuples: _experiment, _series_id, _group = _tuple _group_split = _group.split('_') _cell_1_id = int(_group_split[1]) _cell_2_id = int(_group_split[2]) if _series_id not in _cell_ids: _cell_ids[_series_id] = [_cell_1_id, _cell_2_id] else: if _cell_1_id not in _cell_ids[_series_id]: _cell_ids[_series_id].append(_cell_1_id) if _cell_2_id not in _cell_ids[_series_id]: _cell_ids[_series_id].append(_cell_2_id) for _series_id in _cell_ids.keys(): _properties = load.image_properties(_experiment, _series_id) _properties['dead_cell_ids'] = _cell_ids[_series_id] save.image_properties(_experiment, _series_id, _properties) print(_experiment, _series_id, sep='\t')
def process_experiment(_experiment): for _tuple in load.experiment_groups_as_tuples(_experiment): _experiment, _series_id, _group = _tuple process_group(_experiment, _series_id, _group)