From c5cf6a5ecf72fc3afc05aba4332cf340b2a2d297 Mon Sep 17 00:00:00 2001 From: Niko Ehrenfeuchter <nikolaus.ehrenfeuchter@unibas.ch> Date: Fri, 13 Apr 2018 11:45:52 +0200 Subject: [PATCH] Add script to collect acquisition metadata --- .../NoiSee/NoiSee_Results_Annotate_Beads.py | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/main/resources/scripts/Plugins/NoiSee/NoiSee_Results_Annotate_Beads.py diff --git a/src/main/resources/scripts/Plugins/NoiSee/NoiSee_Results_Annotate_Beads.py b/src/main/resources/scripts/Plugins/NoiSee/NoiSee_Results_Annotate_Beads.py new file mode 100644 index 0000000..c59a7c0 --- /dev/null +++ b/src/main/resources/scripts/Plugins/NoiSee/NoiSee_Results_Annotate_Beads.py @@ -0,0 +1,71 @@ +############ NoiSee Results - Annotate Bead Measurements +## Signal-to-Noise-Ratio evaluation suite +## written by Kai Schleicher, Niko Ehrenfeuchter, IMCF Basel +## licence: GPLv3 + + +#@ String(visibility=MESSAGE, label="NoiSee Results -", value="Annotate Bead Measurements", persist=false) msg_title +#@ File(label="NoiSee Beads Results Directory",style="directory") noisee_beads_resdir +#@ String(label="Microscope Name", description="e.g. 'LSM700'") noisee_beads_mic_name +#@ Date(label="Acquisition Date",required=false) noisee_beads_date +#@ String(label="Objective", description="e.g. 63x, 40x-Water") noisee_beads_objective +#@ String(label="Detector", description="e.g. PMT2, HyD3, GaAsP1") noisee_beads_detector +#@ Float(label="Laser Power (in percent)") noisee_beads_lpp +#@ Float(label="Laser Power (in µW)", description="e.g. '0,92'") noisee_beads_lpuw +#@ Integer(label="Gain") noisee_beads_gain +#@ Integer(label="Pixel Dwell") noisee_beads_dwell + +#@ LogService log + + +import sys +import datetime +import os +import os.path + +# we usually need the string, not the java File object: +resdir = noisee_beads_resdir.getPath() + +if not os.path.isdir(resdir): + sys.exit("Results directory not existing: " + resdir) + +outfname = resdir + "/metadata.txt" +if os.path.exists(outfname): + tstamp = datetime.datetime.now().strftime("%Y-%m-%d-%H%M%S") + try: + preserve = resdir + "/metadata_pre-" + tstamp + ".txt" + log.info("Preserving existing metadata as: %s" % preserve) + os.rename(outfname, preserve) + except Exception as err: + sys.exit("Unable to preserve existing metadata file: %s" % err) + + +meta = { + 'microscope': noisee_beads_mic_name, + 'objective': noisee_beads_objective, + 'detector': noisee_beads_detector, + 'laserpower_pct': noisee_beads_lpp, + 'laserpower_uW': noisee_beads_lpuw, + 'gain': noisee_beads_gain, + 'dwell': noisee_beads_dwell +} + + +if noisee_beads_date is None: + meta['date'] = datetime.datetime.now().strftime("%Y-%m-%d") + log.info("No date given, using today: %s" % meta['date']) +else: + meta['date'] = "%s-%02d-%02d" % (noisee_beads_date.year + 1900, + noisee_beads_date.month + 1, + noisee_beads_date.date) + +try: + log.info("Saving metadata file: %s" %outfname) + with open(outfname, "w") as outfile: + for key, val in meta.items(): + formatted = "%s:%s" % (key, val) + log.info(" %s" % formatted) + outfile.write("%s\n" % formatted) + log.info("Done.") +except Exception as err: + sys.exit("Error saving metadata: %s" % err) -- GitLab