From 4d999a614516a4bf1de5163407c17b256c68e52b Mon Sep 17 00:00:00 2001
From: pwalczysko
Date: Thu, 21 Feb 2019 15:49:03 +0000
Subject: [PATCH 1/6] Add script for deletion of rendering settings on images
---
maintenance/scripts/delete_rendering.py | 92 +++++++++++++++++++++++++
1 file changed, 92 insertions(+)
create mode 100644 maintenance/scripts/delete_rendering.py
diff --git a/maintenance/scripts/delete_rendering.py b/maintenance/scripts/delete_rendering.py
new file mode 100644
index 00000000..3113ad6d
--- /dev/null
+++ b/maintenance/scripts/delete_rendering.py
@@ -0,0 +1,92 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# -----------------------------------------------------------------------------
+# Copyright (C) 2017 University of Dundee. All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# ------------------------------------------------------------------------------
+
+"""
+This script
+"""
+
+import argparse
+import omero
+from omero.gateway import BlitzGateway
+
+
+def run(name, password, dataset_name, dataset_id, host, port):
+
+ conn = BlitzGateway(name, password, host=host, port=port)
+ try:
+ conn.connect()
+ roi_service = conn.getRoiService()
+ rnd_service = conn.getRenderingSettingsService()
+ datasets = []
+ if dataset_id >= 0:
+ datasets.append(conn.getObject("Dataset", dataset_id))
+ else:
+ datasets = conn.getObjects("Dataset",
+ attributes={"name": dataset_name})
+
+ print datasets
+
+ for dataset in datasets:
+ print dataset.getId()
+ for image in dataset.listChildren():
+ pixels = image.getPrimaryPixels()
+ result = roi_service.findByImage(image.getId(), None,
+ conn.SERVICE_OPTS)
+ #result2 = rnd_service.findByImage(image.getId(), None, conn.SERVICE_OPTS)
+ print pixels.getId()
+ params = omero.sys.ParametersI()
+ query = "from RenderingDef where pixels.id = '%s'" % pixels.getId()
+ query_service = conn.getQueryService()
+ result2 = query_service.findAllByQuery(query, params, conn.SERVICE_OPTS)
+ #print result2
+ if result2 is not None:
+ rnd_ids = [rnd.id.val for rnd in result2]
+ if len(rnd_ids) > 0:
+ print "Deleting %s rnds..." % len(rnd_ids)
+ print rnd_ids
+ conn.deleteObjects("RenderingDef", rnd_ids, wait=True)
+
+ except Exception as exc:
+ print "Error while deleting rendering: %s" % str(exc)
+ finally:
+ conn.close()
+
+
+def main(args):
+ parser = argparse.ArgumentParser()
+ parser.add_argument('password')
+ parser.add_argument('--datasetid', default=-1,
+ help="The ID of the dataset")
+ parser.add_argument('--datasetname', default="",
+ help="The name of the dataset")
+ parser.add_argument('--name', default="trainer-1",
+ help="The user deleting the rois")
+ parser.add_argument('--server', default="outreach.openmicroscopy.org",
+ help="OMERO server hostname")
+ parser.add_argument('--port', default=4064, help="OMERO server port")
+ args = parser.parse_args(args)
+ run(args.name, args.password, args.datasetname, args.datasetid,
+ args.server, args.port)
+
+
+if __name__ == '__main__':
+ import sys
+ main(sys.argv[1:])
From e4edef0f3c6e8d42d9ae839ca549f20d753a5535 Mon Sep 17 00:00:00 2001
From: pwalczysko
Date: Thu, 21 Feb 2019 16:06:56 +0000
Subject: [PATCH 2/6] Clean up, delete commented out code
---
maintenance/scripts/delete_rendering.py | 16 +++++-----------
1 file changed, 5 insertions(+), 11 deletions(-)
diff --git a/maintenance/scripts/delete_rendering.py b/maintenance/scripts/delete_rendering.py
index 3113ad6d..f48583d8 100644
--- a/maintenance/scripts/delete_rendering.py
+++ b/maintenance/scripts/delete_rendering.py
@@ -20,7 +20,8 @@
# ------------------------------------------------------------------------------
"""
-This script
+This script finds all rendering on images from a dataset specified
+by dataset id or dataset name and deletes these rendering settings.
"""
import argparse
@@ -33,7 +34,6 @@ def run(name, password, dataset_name, dataset_id, host, port):
conn = BlitzGateway(name, password, host=host, port=port)
try:
conn.connect()
- roi_service = conn.getRoiService()
rnd_service = conn.getRenderingSettingsService()
datasets = []
if dataset_id >= 0:
@@ -41,24 +41,18 @@ def run(name, password, dataset_name, dataset_id, host, port):
else:
datasets = conn.getObjects("Dataset",
attributes={"name": dataset_name})
-
- print datasets
for dataset in datasets:
print dataset.getId()
for image in dataset.listChildren():
pixels = image.getPrimaryPixels()
- result = roi_service.findByImage(image.getId(), None,
- conn.SERVICE_OPTS)
- #result2 = rnd_service.findByImage(image.getId(), None, conn.SERVICE_OPTS)
print pixels.getId()
params = omero.sys.ParametersI()
query = "from RenderingDef where pixels.id = '%s'" % pixels.getId()
query_service = conn.getQueryService()
- result2 = query_service.findAllByQuery(query, params, conn.SERVICE_OPTS)
- #print result2
- if result2 is not None:
- rnd_ids = [rnd.id.val for rnd in result2]
+ result = query_service.findAllByQuery(query, params, conn.SERVICE_OPTS)
+ if result is not None:
+ rnd_ids = [rnd.id.val for rnd in result]
if len(rnd_ids) > 0:
print "Deleting %s rnds..." % len(rnd_ids)
print rnd_ids
From 24c7a9b166cefc691351bf1f2c7f22e378713d03 Mon Sep 17 00:00:00 2001
From: pwalczysko
Date: Mon, 25 Feb 2019 13:18:22 +0000
Subject: [PATCH 3/6] Rewrite the script for bash as per Mark's comment
---
maintenance/scripts/delete_rendering.sh | 39 +++++++++++++++++++++++++
1 file changed, 39 insertions(+)
create mode 100644 maintenance/scripts/delete_rendering.sh
diff --git a/maintenance/scripts/delete_rendering.sh b/maintenance/scripts/delete_rendering.sh
new file mode 100644
index 00000000..cc1e3a83
--- /dev/null
+++ b/maintenance/scripts/delete_rendering.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+#
+# This script deletes rnd settings on images in specified Datasets.
+# Datasets can be specified either by name, such as
+# DATASETNAME=svs bash delete_rendering.sh
+# or by IDs (one or more, separated by comma), such as
+# DATASETID=1868,2073 bash delete_rendering.sh
+
+echo Starting
+OMEROPATH=${OMEROPATH:-/opt/omero/server/OMERO.server/bin/omero}
+PASSWORD=${PASSWORD:-ome}
+HOST=${HOST:-outreach.openmicroscopy.org}
+DATASETNAME=${DATASETNAME:-siRNAi-HeLa}
+DATASETIDS=${DATASETID:-none}
+NUMBER=${NUMBER:-50}
+OMEUSER=${OMEUSER:-trainer-1}
+
+$OMEROPATH login -u $OMEUSER -s $HOST -w $PASSWORD
+result=`$OMEROPATH hql --ids-only --limit 1000 --style plain -q --all "SELECT id from Dataset WHERE name = '$DATASETNAME'"`
+if [ "$DATASETIDS" = "none" ]
+then
+ echo "none ID"
+ for i in $result
+ do
+ #remove the ordinal numbers
+ datasetids_raw+=${i#*,}
+ datasetids_raw+=","
+ done
+ dataset_number=${i%,*}
+ #remove the trailing comma
+ datasetids=${datasetids_raw%?}
+else
+ datasetids=$DATASETIDS
+ dataset_number="specified datasets"
+fi
+echo 'Deleting rnd settings on '"$dataset_number"' Datasets:' $datasetids
+$OMEROPATH delete --report Dataset/RenderingDef:$datasetids
+$OMEROPATH logout
+echo Stopping
From a57e0745675420a7c7b3b16489e655630000d9c1 Mon Sep 17 00:00:00 2001
From: pwalczysko
Date: Mon, 25 Feb 2019 15:11:45 +0000
Subject: [PATCH 4/6] Move the hql query cf. Mark's comment, delete a printout
---
maintenance/scripts/delete_rendering.sh | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/maintenance/scripts/delete_rendering.sh b/maintenance/scripts/delete_rendering.sh
index cc1e3a83..44cbe734 100644
--- a/maintenance/scripts/delete_rendering.sh
+++ b/maintenance/scripts/delete_rendering.sh
@@ -16,10 +16,9 @@ NUMBER=${NUMBER:-50}
OMEUSER=${OMEUSER:-trainer-1}
$OMEROPATH login -u $OMEUSER -s $HOST -w $PASSWORD
-result=`$OMEROPATH hql --ids-only --limit 1000 --style plain -q --all "SELECT id from Dataset WHERE name = '$DATASETNAME'"`
if [ "$DATASETIDS" = "none" ]
then
- echo "none ID"
+ result=`$OMEROPATH hql --ids-only --limit 1000 --style plain -q --all "SELECT id from Dataset WHERE name = '$DATASETNAME'"`
for i in $result
do
#remove the ordinal numbers
From 8da594f9cdb8d976e5e558438099c4d17864d8f5 Mon Sep 17 00:00:00 2001
From: pwalczysko
Date: Mon, 25 Feb 2019 16:07:24 +0000
Subject: [PATCH 5/6] Simplify the code cf. Mark's suggestions
---
maintenance/scripts/delete_rendering.sh | 13 +++----------
1 file changed, 3 insertions(+), 10 deletions(-)
diff --git a/maintenance/scripts/delete_rendering.sh b/maintenance/scripts/delete_rendering.sh
index 44cbe734..61d00891 100644
--- a/maintenance/scripts/delete_rendering.sh
+++ b/maintenance/scripts/delete_rendering.sh
@@ -18,16 +18,9 @@ OMEUSER=${OMEUSER:-trainer-1}
$OMEROPATH login -u $OMEUSER -s $HOST -w $PASSWORD
if [ "$DATASETIDS" = "none" ]
then
- result=`$OMEROPATH hql --ids-only --limit 1000 --style plain -q --all "SELECT id from Dataset WHERE name = '$DATASETNAME'"`
- for i in $result
- do
- #remove the ordinal numbers
- datasetids_raw+=${i#*,}
- datasetids_raw+=","
- done
- dataset_number=${i%,*}
- #remove the trailing comma
- datasetids=${datasetids_raw%?}
+ result=`$OMEROPATH hql --ids-only --limit 1000 --style plain -q --all "SELECT id from Dataset WHERE name = '$DATASETNAME'" | cut -f 2 -d , | tr '\n' ,`
+ dataset_number=`echo $result | tr -cd , | wc -c | sed -e 's/[[:space:]]*//'`
+ datasetids=`echo $result | sed -e 's/,$//'`
else
datasetids=$DATASETIDS
dataset_number="specified datasets"
From 73f1f35a72d980c367e3a4633df33b32a322abbb Mon Sep 17 00:00:00 2001
From: Jean-Marie Burel
Date: Sat, 9 Nov 2019 14:04:16 +0100
Subject: [PATCH 6/6] flake8 fixes
---
maintenance/scripts/delete_rendering.py | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/maintenance/scripts/delete_rendering.py b/maintenance/scripts/delete_rendering.py
index f48583d8..6dffe999 100644
--- a/maintenance/scripts/delete_rendering.py
+++ b/maintenance/scripts/delete_rendering.py
@@ -34,7 +34,6 @@ def run(name, password, dataset_name, dataset_id, host, port):
conn = BlitzGateway(name, password, host=host, port=port)
try:
conn.connect()
- rnd_service = conn.getRenderingSettingsService()
datasets = []
if dataset_id >= 0:
datasets.append(conn.getObject("Dataset", dataset_id))
@@ -43,23 +42,25 @@ def run(name, password, dataset_name, dataset_id, host, port):
attributes={"name": dataset_name})
for dataset in datasets:
- print dataset.getId()
+ print(dataset.getId())
for image in dataset.listChildren():
pixels = image.getPrimaryPixels()
- print pixels.getId()
+ pixId = pixels.getId()
+ print(pixId)
params = omero.sys.ParametersI()
- query = "from RenderingDef where pixels.id = '%s'" % pixels.getId()
+ query = "from RenderingDef where pixels.id = '%s'" % pixId
query_service = conn.getQueryService()
- result = query_service.findAllByQuery(query, params, conn.SERVICE_OPTS)
+ result = query_service.findAllByQuery(query, params,
+ conn.SERVICE_OPTS)
if result is not None:
rnd_ids = [rnd.id.val for rnd in result]
if len(rnd_ids) > 0:
- print "Deleting %s rnds..." % len(rnd_ids)
- print rnd_ids
+ print("Deleting %s rnds..." % len(rnd_ids))
+ print(rnd_ids)
conn.deleteObjects("RenderingDef", rnd_ids, wait=True)
except Exception as exc:
- print "Error while deleting rendering: %s" % str(exc)
+ print("Error while deleting rendering: %s" % str(exc))
finally:
conn.close()