From c47988636dc4fbe2ed771b6f754baa77dae41749 Mon Sep 17 00:00:00 2001 From: mattminder <myfiles@Mattus-MacBook-Pro.local> Date: Sun, 17 May 2020 11:15:11 +0200 Subject: [PATCH] Extract the disappeared cells as well --- GUI_main.py | 14 +++++++------- misc/Extract.py | 2 ++ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/GUI_main.py b/GUI_main.py index 90ae286..5726983 100644 --- a/GUI_main.py +++ b/GUI_main.py @@ -506,15 +506,15 @@ class App(QMainWindow): dlg = extr.Extract(image, mask, self.reader.channel_names) dlg.exec() if dlg.exit_code == 1: # Fluorescence - self.ExtractFluo(dlg.cells, dlg.outfile, dlg.file_list) + self.ExtractFluo(dlg.cells, dlg.desel_cells, dlg.outfile, dlg.file_list) elif dlg.exit_code == 2: # Mask - self.ExtractMask(dlg.cells, dlg.outfile) + self.ExtractMask(dlg.desel_cells, dlg.outfile) self.Enable(self.button_extractfluorescence) self.ClearStatusBar() - def ExtractMask(self, cell_list, outfile): + def ExtractMask(self, desel_cells, outfile): """Extract the mask to the specified tiff file. Only take cells specified by the cell_list""" @@ -530,15 +530,14 @@ class App(QMainWindow): continue mask = self.reader.LoadMask(time_index, self.FOVindex) - all_cells = np.unique(mask) - for cell in set(all_cells)-set(cell_list): + for cell in desel_cells: mask[mask==cell] = 0 mask_list.append(mask) imageio.mimwrite(outfile, np.array(mask_list, dtype=np.uint16)) - def ExtractFluo(self, cells_to_use, csv_filename, channel_list): + def ExtractFluo(self, sel_cells, desel_cells, csv_filename, channel_list): """This is the function that takes as argument the filepath to the xls file and writes in the file. It iterates over the different channels (or the sheets of the file, @@ -601,7 +600,7 @@ class App(QMainWindow): if val == 0: continue # disregard cells not in cell_list - if not (val in cells_to_use): + if (val in desel_cells): continue # Calculate stats @@ -609,6 +608,7 @@ class App(QMainWindow): stats['Time'] = time_index stats['Channel'] = channel stats['Cell'] = val + stats['Disappeared'] = not (val in sel_cells) cell_list.append(stats) # Use Pandas to write csv diff --git a/misc/Extract.py b/misc/Extract.py index 66c48b7..dedcbf0 100644 --- a/misc/Extract.py +++ b/misc/Extract.py @@ -139,6 +139,7 @@ class Extract(QDialog): self.exit_code = 1 self.cells = self.pc.sellist + self.desel_cells = set(np.unique(self.pc.mask)) - set(self.cells) self.close() def do_cancel(self): @@ -157,6 +158,7 @@ class Extract(QDialog): self.exit_code = 2 self.cells = self.pc.sellist + self.desel_cells = set(np.unique(self.pc.mask)) - set(self.cells) self.close() def do_sel_mult(self): -- GitLab