From d63f13efedfc481dc6892a2db7c84427c8a275a4 Mon Sep 17 00:00:00 2001
From: Christopher Rhodes <christopher.rhodes@embl.de>
Date: Thu, 21 Nov 2024 07:26:48 +0100
Subject: [PATCH] Hooked up overlay map to export runner

---
 model_server/base/roiset.py | 7 +++++++
 tests/base/test_roiset.py   | 8 ++++++++
 2 files changed, 15 insertions(+)

diff --git a/model_server/base/roiset.py b/model_server/base/roiset.py
index e11450aa..5afa6e40 100644
--- a/model_server/base/roiset.py
+++ b/model_server/base/roiset.py
@@ -713,6 +713,11 @@ class RoiSet(object):
         else:
             return acc_out
 
+    def export_object_identities_overlay_map(self, where, white_channel, prefix='obmap_overlay', **kwargs) -> str:
+        acc = self.get_object_identities_overlay_map(white_channel=white_channel, **kwargs)
+        fp = where / (prefix + '.tif')
+        return acc.write(fp, composite=True).name
+
     def get_serializable_dataframe(self) -> pd.DataFrame:
         return self._df.drop(['expanded_slice', 'slice', 'relative_slice', 'binary_mask'], axis=1)
 
@@ -973,6 +978,8 @@ class RoiSet(object):
                     fp.parent.mkdir(exist_ok=True, parents=True)
                     dacc.export_pyxcz(fp)
                     record[k].append(str(fp))
+            if k == 'labels_overlay':
+                record[k] = str(Path(k) / self.export_object_identities_overlay_map(subdir, white_channel=channel, **kp))
 
         # export dataframe and patch masks
         record = {**record, **self.serialize(where, prefix=prefix)}
diff --git a/tests/base/test_roiset.py b/tests/base/test_roiset.py
index 9956b84b..f262d6a2 100644
--- a/tests/base/test_roiset.py
+++ b/tests/base/test_roiset.py
@@ -390,6 +390,14 @@ class TestRoiSetMultichannelProducts(BaseTestRoiSetMonoProducts, unittest.TestCa
         self.assertEqual(acc_out.nz, 1)
         acc_out.write(where / 'overlay_composite_mip.tif', composite=True)
 
+        # export via .run_exports() method
+        self.roiset.run_exports(
+            where,
+            channel=-1,
+            prefix='run_exports',
+            params=RoiSetExportParams(**{'labels_overlay': {'transparency': 0.2, 'mip': True, 'rescale_clip': 0.00}})
+        )
+
 
 
     def test_multichannel_annotated_zstack(self):
-- 
GitLab