annotate omero_get_value.py @ 3:6ae415d8821c draft default tip

planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
author ufz
date Mon, 26 Jan 2026 15:04:30 +0000
parents 86428b102388
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
1 import argparse
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
2 import csv
1
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
3 import os
0
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
4 import sys
3
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
5 from typing import Optional
0
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
6
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
7 import ezomero as ez
1
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
8 import pandas as pd
3
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
9 from connect_omero import establish_connection
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
10
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
11 # Import environmental variables
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
12 usr = os.getenv("OMERO_USER")
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
13 psw = os.getenv("OMERO_PASSWORD")
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
14 uuid_key = os.getenv("UUID_SESSION_KEY")
0
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
15
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
16
3
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
17 def get_object_ezo(
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
18 host: str,
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
19 port: int,
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
20 obj_type: str,
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
21 ids: list,
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
22 out_dir: str,
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
23 uuid_key: Optional[str] = None,
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
24 ses_close: Optional[bool] = True
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
25 ) -> str | dict:
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
26
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
27 """
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
28 Fetch OMERO objects (Annotation, Table and Key-Value Pairs list) and save them as TSV based on object type.
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
29
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
30 Parameters
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
31 ----------
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
32 host : str
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
33 OMERO server host (i.e. OMERO address or domain name)"
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
34 port : int
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
35 OMERO server port (default:4064)
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
36 obj_type : str
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
37 Type of object to fetch ID: Project, Dataset, Image, Annotation, Tag, ROI, or Table.
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
38 ids : list
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
39 IDs of the OMERO objects.
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
40 out_dir : str
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
41 Output path of the file
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
42 uuid_key : str, optional
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
43 OMERO UUID session key to connect without password
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
44 ses_close : bool
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
45 Decide if close or not the section after executing the script. Defaulf value is true, useful when connecting with the UUID session key.
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
46 Returns
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
47 -------
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
48 csv.writer
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
49 A CSV writer object configured to write TSV data.
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
50 """
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
51
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
52 conn = establish_connection(uuid_key, usr, psw, host, port)
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
53
0
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
54 # Function to write tabular file from the ezomero output
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
55 def write_values_to_tsv(data, header):
1
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
56 with open("output.tsv", 'w', newline='') as f:
0
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
57 writer = csv.writer(f, delimiter='\t')
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
58 writer.writerow([header]) # Write the header
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
59 for item in data:
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
60 writer.writerow([item]) # Write each value
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
61
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
62 # Function to write tabular file from a dictionary ezomero output
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
63 def write_dict_to_tsv(data, headers):
1
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
64 with open("output.tsv", 'w', newline='') as f:
0
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
65 writer = csv.writer(f, delimiter='\t')
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
66 writer.writerow(headers) # Write the headers
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
67 for key, value in data.items():
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
68 writer.writerow([key, value]) # Write each key-value pair
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
69
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
70 # Function to write tabular file from list of list ezomero output
1
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
71 def write_table_to_tsv(data, id):
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
72 with open(f"./output/ID_{id}_table.tsv", 'w') as f:
0
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
73 for row in data:
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
74 f.write('\t'.join([str(val) for val in row]) + '\n')
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
75
3
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
76 try:
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
77 # Fetch different object according to the user input
0
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
78 if obj_type == "Annotation":
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
79 ma_dict = {}
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
80 for maid in ids:
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
81 current_ma_dict = ez.get_map_annotation(conn, maid)
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
82 ma_dict = {**ma_dict, **current_ma_dict}
1
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
83 print(ma_dict)
0
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
84 write_dict_to_tsv(ma_dict, ["Annotation ID", "Annotation Value"])
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
85 elif obj_type == "Tag":
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
86 tags = []
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
87 for tag_id in ids:
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
88 tags.append(ez.get_tag(conn, tag_id))
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
89 # Sort the tags for consistency:
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
90 tags.sort
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
91 write_values_to_tsv(tags, "Tags")
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
92 elif obj_type == "Table":
1
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
93 for id in ids:
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
94 table = ez.get_table(conn, id)
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
95 print(table)
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
96 write_table_to_tsv(table, id)
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
97 elif obj_type == ("Attachment"):
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
98 for id in ids:
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
99 attch_path = ez.get_file_annotation(conn, id, folder_path='./output/')
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
100 base_name = os.path.basename(attch_path)
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
101 df = pd.read_csv(attch_path, sep='\t')
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
102 df.to_csv(f"./output/ID_{id}_{base_name}", sep='\t', index=False)
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
103 os.remove(attch_path)
0
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
104 else:
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
105 sys.exit(f"Unsupported object type: {filter}")
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
106
3
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
107 finally:
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
108 if ses_close:
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
109 conn.close()
0
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
110
3
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
111
0
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
112 if __name__ == "__main__":
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
113 parser = argparse.ArgumentParser(description="Fetch and save data as TSV based on object type.")
3
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
114 parser.add_argument('--host', required=True, help="OMERO server host (i.e. OMERO address or domain name)")
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
115 parser.add_argument('--port', required=True, type=int, help="OMERO server port (default:4064)")
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
116 parser.add_argument('--obj_type', required=True, help="Type of object to fetch: Annotation, Table or Tag.")
0
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
117 group = parser.add_mutually_exclusive_group()
3
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
118 group.add_argument('--ids', nargs='+', type=int, help="IDs of the OMERO objects.")
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
119 group.add_argument('--ids_path', help="File with IDs of the OMERO objects (one per line).")
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
120 parser.add_argument('--session_close', required=False, help='Namespace or title for the annotation')
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
121 parser.add_argument('--out_dir', required=True, help="Output path.")
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
122
0
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
123 args = parser.parse_args()
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
124
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
125 if args.ids_path:
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
126 args.ids = []
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
127 with open(args.ids_path, 'r') as f:
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
128 for line in f:
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
129 try:
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
130 args.ids.append(int(line))
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
131 except ValueError:
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
132 print(f"{line.strip()} is not a valid ID.")
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
133 if len(args.ids) == 0:
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
134 raise ValueError("Cound not find a single ID in the file.")
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
135
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
136 # Call the main function to get the object and save it as a TSV
3
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
137 get_object_ezo(host=args.host,
0
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
138 port=args.port,
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
139 obj_type=args.obj_type,
b3320a1f2120 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 54b50795912de3f2508cfcfc6911d71a94b34c56
ufz
parents:
diff changeset
140 ids=args.ids,
3
6ae415d8821c planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 233f0e70cb20a02ec8530dbcfd5c7e70eef74476
ufz
parents: 1
diff changeset
141 ses_close=args.session_close,
1
86428b102388 planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/omero commit 6f47dff3775455a8c45d39a3863a2306cd942443
ufz
parents: 0
diff changeset
142 out_dir=args.out_dir)