From 86e7e98dd14c9bea5ec3cc7b6fdd73e1764b8268 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Al=C3=A1n=20Mu=C3=B1oz?= <amuoz@ed.ac.uk> Date: Fri, 28 Jan 2022 13:47:28 +0000 Subject: [PATCH] add support for regex filtering --- aliby/pipeline.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/aliby/pipeline.py b/aliby/pipeline.py index 30060813..f124edc4 100644 --- a/aliby/pipeline.py +++ b/aliby/pipeline.py @@ -9,6 +9,7 @@ from pathlib import Path import traceback from itertools import groupby +import re import h5py import yaml from tqdm import tqdm @@ -143,7 +144,7 @@ class Pipeline(ProcessABC): config = self.parameters.to_dict() expt_id = config["general"]["id"] distributed = config["general"]["distributed"] - strain_filter = config["general"]["strain"] + strain_filter = config["general"]["filter"] root_dir = config["general"]["directory"] root_dir = Path(root_dir) @@ -164,13 +165,14 @@ class Pipeline(ProcessABC): # Filter TODO integrate filter onto class and add regex if isinstance(strain_filter, str): image_ids = { - k: v for k, v in image_ids.items() if k.startswith(strain_filter) + k: v for k, v in image_ids.items() if re.search(strain_filter, k) } elif isinstance(strain_filter, int): image_ids = { k: v for i, (k, v) in enumerate(image_ids.items()) if i == strain_filter } + assert len(image_ids), "No images to segment" if distributed != 0: # Gives the number of simultaneous processes with Pool(distributed) as p: results = p.map(lambda x: self.create_pipeline(x), image_ids.items()) -- GitLab