diff --git a/myosoft-imcf_manual_rerun.py b/myosoft-imcf_manual_rerun.py
new file mode 100644
index 0000000000000000000000000000000000000000..98c3c33ac7514c11646811c1e90a1da4b21d8ceb
--- /dev/null
+++ b/myosoft-imcf_manual_rerun.py
@@ -0,0 +1,190 @@
+from ij import IJ, WindowManager as wm
+from ij.gui import WaitForUserDialog
+import os
+
+#@ ImagePlus raw
+#@ RoiManager rm
+#@ ResultsTable rt
+#@ File (label="Select directory for output", style="directory") output_dir
+#@ Integer (label="Measure in this channel", style="slider", min=1, max=5, value=1) measurement_channel
+
+
+def fix_ij_dirs(path):
+    """use forward slashes in directory paths
+
+    Parameters
+    ----------
+    path : string
+        a directory path obtained from dialogue or script parameter
+
+    Returns
+    -------
+    string
+        a more robust path with forward slashes as 
+    """
+
+    fixed_path = str(path).replace("\\", "/")
+    fixed_path = fixed_path + "/"
+
+    return fixed_path
+
+
+def fix_BF_czi_imagetitle(imp):
+    image_title = os.path.basename( imp.getTitle() )
+    image_title = image_title.replace(".czi", "")
+    image_title = image_title.replace(" ", "_")
+    image_title = image_title.replace("_-_", "")
+    image_title = image_title.replace("__", "_")
+    image_title = image_title.replace("#", "Series")
+
+    return image_title
+
+
+def renumber_rois(rm):
+    """rename all ROIs in the RoiManager according to their number
+
+    Parameters
+    ----------
+    rm : RoiManager
+        a reference of the IJ-RoiManager
+    """
+    number_of_rois = rm.getCount()
+    for roi in range( number_of_rois ):
+        rm.rename( roi, str(roi + 1) )
+
+
+def measure_in_all_rois( imp, channel, rm ):
+    """measures in all ROIS on a given channel of imp all parameters that are set in IJ "Set Measurements"
+
+    Parameters
+    ----------
+    imp : ImagePlus
+        the imp to measure on
+    channel : integer
+        the channel to measure in. starts at 1.
+    rm : RoiManager
+        a reference of the IJ-RoiManager
+    """
+    imp.setC(channel)
+    rm.runCommand(imp,"Deselect")
+    rm.runCommand(imp,"Measure")
+
+
+def extract_color_of_all_rois(rm):
+    """get the RGB color of ROIs in the RoiManager and match it to the colors name string
+
+    Parameters
+    ----------
+    rm : RoiManager
+        the IJ-RoiManager
+
+    Returns
+    -------
+    array
+        an array containing the corresponding color name string for each roi in the ROiManager
+    """
+    rgb_color_lookup = {
+    -65536: "red", 
+    -65281: "magenta", 
+    -16711936: "green", 
+    -256: "yellow", 
+    -1: "white", 
+    -16776961: "blue", 
+    -16777216: "black", 
+    -14336: "orange", 
+    -16711681: "cyan" 
+    }
+
+    all_rois = rm.getRoisAsArray()
+    roi_colors = []
+    for roi in all_rois:
+        if roi.getStrokeColor() == None:
+            roi_colors.append(rgb_color_lookup[roi.getColor().getRGB()])
+        else:
+            roi_colors.append(rgb_color_lookup[roi.getStrokeColor().getRGB()])
+
+    return roi_colors
+
+
+def save_all_rois(rm, target):
+    """save all ROIs in the RoiManager as zip to target path
+
+    Parameters
+    ----------
+    rm : RoiManager
+        a reference of the IJ-RoiManager
+    target : string
+        the path in to store the ROIs. e.g. /my-images/resulting_rois.zip
+    """
+    rm.runCommand("Save", target)
+
+
+def add_results_to_resultstable( rt, column, values ):
+    """add values to the ResultsTable starting from row 0 of a given column
+
+    Parameters
+    ----------
+    rt : ResultsTable
+        a reference of the IJ-ResultsTable
+    column : string
+        the column in which to add the values
+    values : array
+        tarray with values to be added
+    """
+    for i in range( len( values ) ):
+        rt.setValue(column, i, values[i])
+
+    rt.show("Results")
+
+
+def enhance_contrast( imp ):
+    """use "Auto" Contrast & Brightness settings in each channel of imp
+
+    Parameters
+    ----------
+    imp : ImagePlus
+        the imp on which to change C&B
+    """
+    for channel in range( imp.getDimensions()[2] ):
+        imp.setC(channel + 1) # IJ channels start at 1
+        IJ.run(imp, "Enhance Contrast", "saturated=0.35")
+
+
+def show_all_rois_on_image(rm, imp):
+    """shows all ROIs in the ROiManager on imp
+
+    Parameters
+    ----------
+    rm : RoiManager
+        a reference of the IJ-RoiManager
+    imp : ImagePlus
+        the imp on which to show the ROIs
+    """
+    imp.show()
+    rm.runCommand(imp,"Show All")
+
+
+output_dir = fix_ij_dirs(output_dir)
+rt.reset()
+raw_image_title = fix_BF_czi_imagetitle(raw)
+renumber_rois(rm)
+save_all_rois( rm, output_dir + "manual_rerun_all_fiber_rois_color-coded.zip" )
+roi_colors = extract_color_of_all_rois(rm)
+WaitForUserDialog("Choose measurements", "Set measurements in Analyze > Set Measurements, then click OK").show()
+measure_in_all_rois(raw, measurement_channel, rm)
+add_results_to_resultstable(rt, "ROI color", roi_colors )
+rt.save(output_dir + "manual_rerun_results.csv")
+
+# dress up the original image, save a overlay-png, present original to the user
+raw.show()
+show_all_rois_on_image( rm, raw )
+raw.setDisplayMode(IJ.COMPOSITE)
+enhance_contrast( raw )
+IJ.run("From ROI Manager", "") # ROIs -> overlays so they show up in the saved png
+qc_duplicate = raw.duplicate()
+IJ.saveAs(qc_duplicate, "PNG", output_dir + raw_image_title + "_manual_rerun")
+qc_duplicate.close()
+wm.toFront( raw.getWindow() )
+IJ.run("Remove Overlay", "")
+raw.setDisplayMode(IJ.GRAYSCALE)
+show_all_rois_on_image( rm, raw )
\ No newline at end of file