def run_all(args, what_to_run, atlas): from cellfinder.detect import detect from cellfinder.classify import classify from cellfinder.analyse import analyse from cellfinder.figures import figures from cellfinder.tools import prep args, what_to_run = prep.prep_channel_specific_general(args, what_to_run) if what_to_run.detect: logging.info("Detecting cell candidates") args = prep.prep_candidate_detection(args) detect.main(args) else: logging.info("Skipping cell detection") if what_to_run.classify: args = prep.prep_classification(args, what_to_run) if what_to_run.classify: logging.info("Running cell classification") what_to_run.cells_exist = classify.main(args) else: logging.info("No cells were detected, skipping classification.") else: logging.info("Skipping cell classification") what_to_run.update_if_cells_required() if what_to_run.analyse or what_to_run.figures: downsampled_space = get_downsampled_space( atlas, args.brainreg_paths.boundaries_file_path) if what_to_run.analyse: logging.info("Analysing cell positions") analyse.run(args, atlas, downsampled_space) else: logging.info("Skipping cell position analysis") if what_to_run.figures: logging.info("Generating figures") figures.run(args, atlas, downsampled_space.shape) else: logging.info("Skipping figure generation")
def run_all(args, what_to_run): from cellfinder.detect import detect from cellfinder.classify import classify import cellfinder.summarise.count_summary as cell_count_summary from cellfinder.figures import figures from cellfinder.tools import prep from cellfinder.standard_space.cells_to_standard_space import ( transform_cells_to_standard_space, ) args, what_to_run = prep.prep_channel_specific_general(args, what_to_run) if what_to_run.detect: logging.info("Detecting cell candidates") args = prep.prep_candidate_detection(args) detect.main(args) else: logging.info("Skipping cell detection") if what_to_run.classify: logging.info("Running cell classification") args = prep.prep_classification(args) classify.main(args) else: logging.info("Skipping cell classification") if what_to_run.summarise: logging.info("Summarising cell counts") cell_count_summary.analysis_run(args) else: logging.info("Skipping cell count summary") if what_to_run.standard_space: logging.info("Converting cells to standard space") args = prep.standard_space_prep(args) transform_cells_to_standard_space(args) else: logging.info("Skipping converting cells to standard space") if what_to_run.figures: logging.info("Generating figures") args = prep.figures_prep(args) figures.figures(args) else: logging.info("Skipping figure generation")
def run_all(args, what_to_run, atlas): from cellfinder_core.detect import detect from cellfinder_core.classify import classify from cellfinder_core.tools import prep from cellfinder_core.tools.IO import read_with_dask from cellfinder.analyse import analyse from cellfinder.figures import figures from cellfinder.tools.prep import ( prep_candidate_detection, prep_channel_specific_general, ) points = None signal_array = None args, what_to_run = prep_channel_specific_general(args, what_to_run) if what_to_run.detect: logging.info("Detecting cell candidates") args = prep_candidate_detection(args) signal_array = read_with_dask( args.signal_planes_paths[args.signal_channel] ) points = detect.main( signal_array, args.start_plane, args.end_plane, args.voxel_sizes, args.soma_diameter, args.max_cluster_size, args.ball_xy_size, args.ball_z_size, args.ball_overlap_fraction, args.soma_spread_factor, args.n_free_cpus, args.log_sigma_size, args.n_sds_above_mean_thresh, ) ensure_directory_exists(args.paths.points_directory) save_cells( points, args.paths.detected_points, save_csv=args.save_csv, artifact_keep=args.artifact_keep, ) else: logging.info("Skipping cell detection") points = get_cells(args.paths.detected_points) if what_to_run.classify: model_weights = prep.prep_classification( args.trained_model, args.model_weights, args.install_path, args.model, args.n_free_cpus, ) if what_to_run.classify: if points is None: points = get_cells(args.paths.detected_points) if signal_array is None: signal_array = read_with_dask( args.signal_planes_paths[args.signal_channel] ) logging.info("Running cell classification") background_array = read_with_dask(args.background_planes_path[0]) points = classify.main( points, signal_array, background_array, args.n_free_cpus, args.voxel_sizes, args.network_voxel_sizes, args.batch_size, args.cube_height, args.cube_width, args.cube_depth, args.trained_model, model_weights, args.network_depth, ) save_cells( points, args.paths.classified_points, save_csv=args.save_csv, ) what_to_run.cells_exist = cells_exist(args.paths.classified_points) else: logging.info("No cells were detected, skipping classification.") else: logging.info("Skipping cell classification") what_to_run.update_if_cells_required() if what_to_run.analyse or what_to_run.figures: downsampled_space = get_downsampled_space( atlas, args.brainreg_paths.boundaries_file_path ) if what_to_run.analyse: points = get_cells(args.paths.classified_points, cells_only=True) if len(points) == 0: logging.info("No cells detected, skipping cell position analysis") else: logging.info("Analysing cell positions") analyse.run(args, points, atlas, downsampled_space) else: logging.info("Skipping cell position analysis") if what_to_run.figures: points = get_cells(args.paths.detected_points, cells_only=True) if len(points) == 0: logging.info("No cells detected, skipping") else: logging.info("Generating figures") figures.run(args, atlas, downsampled_space.shape) else: logging.info("Skipping figure generation")