def filter_plot_tar(metrics, src_tar, pass_tar, fail_tar, tempdir, filters): allplots = os.path.join(tempdir, 'allplots') helpers.makedirs(allplots) helpers.extract_tar(src_tar, allplots) metrics_data = csvutils.read_csv_and_yaml(metrics) all_cells = metrics_data.cell_id.tolist() metrics_data = helpers.filter_metrics(metrics_data, filters) good_cells = metrics_data.cell_id.tolist() bad_cells = [cell for cell in all_cells if cell not in good_cells] plotdir = os.path.join(tempdir, 'segs_pass') helpers.makedirs(plotdir) for cell in good_cells: src_path = os.path.join(allplots, 'segments', '{}_{}.png'.format(cell, 'segments')) dest_path = os.path.join(plotdir, '{}_{}.png'.format(cell, 'segments')) shutil.copyfile(src_path, dest_path) helpers.make_tarfile(pass_tar, plotdir) plotdir = os.path.join(tempdir, 'segs_fail') helpers.makedirs(plotdir) for cell in bad_cells: src_path = os.path.join(allplots, 'segments', '{}_{}.png'.format(cell, 'segments')) dest_path = os.path.join(plotdir, '{}_{}.png'.format(cell, 'segments')) shutil.copyfile(src_path, dest_path) helpers.make_tarfile(fail_tar, plotdir)
def get_good_cells(metrics, cell_filters): metrics_data = csvutils.read_csv_and_yaml(metrics) if not cell_filters: return metrics_data.cell_id.tolist() metrics_data = helpers.filter_metrics(metrics_data, cell_filters) return metrics_data.cell_id.tolist()