# HG changeset patch
# User ufz
# Date 1744125196 0
# Node ID 7a94eb8c345d88c7422a07f4fae4158d534cb660
# Parent ecb13e93fae2fd30c7a98b4ffac7be92042e0715
planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
diff -r ecb13e93fae2 -r 7a94eb8c345d omero_get_value.py
--- a/omero_get_value.py Thu Dec 19 14:57:46 2024 +0000
+++ b/omero_get_value.py Tue Apr 08 15:13:16 2025 +0000
@@ -1,15 +1,17 @@
import argparse
import csv
import json
+import os
import sys
import ezomero as ez
+import pandas as pd
-def get_object_ezo(user, pws, host, port, obj_type, ids, tsv_file):
+def get_object_ezo(user, pws, host, port, obj_type, ids, out_dir):
# Function to write tabular file from the ezomero output
def write_values_to_tsv(data, header):
- with open(tsv_file, 'w', newline='') as f:
+ with open("output.tsv", 'w', newline='') as f:
writer = csv.writer(f, delimiter='\t')
writer.writerow([header]) # Write the header
for item in data:
@@ -17,15 +19,15 @@
# Function to write tabular file from a dictionary ezomero output
def write_dict_to_tsv(data, headers):
- with open(tsv_file, 'w', newline='') as f:
+ with open("output.tsv", 'w', newline='') as f:
writer = csv.writer(f, delimiter='\t')
writer.writerow(headers) # Write the headers
for key, value in data.items():
writer.writerow([key, value]) # Write each key-value pair
# Function to write tabular file from list of list ezomero output
- def write_table_to_tsv(data):
- with open(tsv_file, 'w') as f:
+ def write_table_to_tsv(data, id):
+ with open(f"./output/ID_{id}_table.tsv", 'w') as f:
for row in data:
f.write('\t'.join([str(val) for val in row]) + '\n')
@@ -35,8 +37,8 @@
for maid in ids:
current_ma_dict = ez.get_map_annotation(conn, maid)
ma_dict = {**ma_dict, **current_ma_dict}
+ print(ma_dict)
write_dict_to_tsv(ma_dict, ["Annotation ID", "Annotation Value"])
- return ma_dict
elif obj_type == "Tag":
tags = []
for tag_id in ids:
@@ -44,14 +46,18 @@
# Sort the tags for consistency:
tags.sort
write_values_to_tsv(tags, "Tags")
- return tags
elif obj_type == "Table":
- if len(ids) > 1:
- raise ValueError("Only one table can be exported at a time")
- table = ez.get_table(conn, ids[0])
- write_table_to_tsv(table)
- return table
-
+ for id in ids:
+ table = ez.get_table(conn, id)
+ print(table)
+ write_table_to_tsv(table, id)
+ elif obj_type == ("Attachment"):
+ for id in ids:
+ attch_path = ez.get_file_annotation(conn, id, folder_path='./output/')
+ base_name = os.path.basename(attch_path)
+ df = pd.read_csv(attch_path, sep='\t')
+ df.to_csv(f"./output/ID_{id}_{base_name}", sep='\t', index=False)
+ os.remove(attch_path)
else:
sys.exit(f"Unsupported object type: {filter}")
@@ -72,8 +78,8 @@
help="IDs of the OMERO objects.")
group.add_argument('--ids_path',
help="File with IDs of the OMERO objects (one per line).")
- parser.add_argument('--tsv_file', default='id_list.tsv', required=True,
- help="Output TSV file path.")
+ parser.add_argument('--out_dir', required=True,
+ help="Output path.")
args = parser.parse_args()
if args.ids_path:
@@ -95,4 +101,4 @@
port=args.port,
obj_type=args.obj_type,
ids=args.ids,
- tsv_file=args.tsv_file)
+ out_dir=args.out_dir)
diff -r ecb13e93fae2 -r 7a94eb8c345d omero_get_value.xml
--- a/omero_get_value.xml Thu Dec 19 14:57:46 2024 +0000
+++ b/omero_get_value.xml Tue Apr 08 15:13:16 2025 +0000
@@ -2,13 +2,14 @@
with ezomero
macros.xml
- 1
+ 2
omero
@@ -29,6 +30,7 @@
+
@@ -46,10 +48,16 @@
-
+
+
+ not (obj_type=="Tag" or obj_type=="Annotation")
+
+
+ obj_type=="Tag" or obj_type=="Annotation"
+
-
+
@@ -66,12 +74,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Description
-----------
-Tool to fetch Annotation, Tag and Tables from IDs.
+Tool to fetch Annotation, Tag, Tables and Attachments from IDs.
The IDs can be obtained with the tool OMERO get IDs with ezomero
@@ -80,4 +155,4 @@
10.1038/nmeth.1896
-
\ No newline at end of file
+