Mercurial > repos > ufz > omero_get_value
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 |
| 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) |
