From c346d4bd6e7f3aee5f5cb321a5a05df5fea6d1aa Mon Sep 17 00:00:00 2001
From: pswain <peter.swain@ed.ac.uk>
Date: Tue, 30 Jul 2024 15:20:59 +0100
Subject: [PATCH] fix(sample_traps_with_cells): fixed sampling

Bug in sampling was selecting empty traps.
---
 src/wela/imageviewer.py | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/wela/imageviewer.py b/src/wela/imageviewer.py
index 629d69e..035b4ee 100644
--- a/src/wela/imageviewer.py
+++ b/src/wela/imageviewer.py
@@ -79,8 +79,9 @@ class ImageViewer:
                 if tpt in cells.nonempty_tp_in_trap(trap_id):
                     traps_with_cells.append(trap_id)
                     break
+        traps_with_cells = np.unique(traps_with_cells)
         if display:
-            print(f"Traps with cells {traps_with_cells}")
+            print(f"Traps with cells {list(traps_with_cells)}")
         return traps_with_cells
 
     def sample_traps_with_cells(self, no_cells, tpt_end, tpt_start=0):
@@ -88,11 +89,10 @@ class ImageViewer:
         traps_with_cells = self.get_all_traps_with_cells(
             tpt_end, tpt_start, display=False
         )
-        rng = np.random.default_rng()
-        samples = rng.integers(
-            low=0,
-            high=len(traps_with_cells),
-            size=np.min([no_cells, len(traps_with_cells)]),
+        samples = np.random.choice(
+            traps_with_cells,
+            size=np.min([no_cells, traps_with_cells.size]),
+            replace=False,
         )
         return samples
 
-- 
GitLab