diff vitessce_spatial.py @ 5:e860ca30cd0b draft

planemo upload for repository https://github.com/goeckslab/tools-mti/tree/main/tools/vitessce commit 90f081e58b5ee41bba3a7e6f01d97b5bd9392759
author goeckslab
date Wed, 28 May 2025 21:14:52 +0000
parents 5f4a4dd06bc9
children
line wrap: on
line diff
--- a/vitessce_spatial.py	Thu Feb 20 19:47:28 2025 +0000
+++ b/vitessce_spatial.py	Wed May 28 21:14:52 2025 +0000
@@ -2,6 +2,7 @@
 import json
 import warnings
 from os.path import isdir, join
+# import urllib.parse
 from pathlib import Path
 
 import scanpy as sc
@@ -19,7 +20,7 @@
 )
 
 
-def main(inputs, output, image, offsets=None, anndata=None, masks=None):
+def main(inputs, output, image, offsets=None, anndata=None, masks=None, config_path=None):
     """
     Parameter
     ---------
@@ -33,12 +34,20 @@
         File path to anndata containing phenotyping info.
     masks : str
         File path to the image masks.
+    config_path : str
+        File path to the config file containing galaxy_url and dataset_id.
     """
     warnings.simplefilter('ignore')
 
     with open(inputs, 'r') as param_handler:
         params = json.load(param_handler)
 
+    with open(config_path) as conf_fh:
+        config = json.load(conf_fh)
+
+    galaxy_url = config["galaxy_url"]
+    dataset_id = config["dataset_id"]
+
     # initialize vitessce config and add OME-TIFF image, and masks if specified
     vc = VitessceConfig(schema_version="1.0.17", name=None, description=None)
     dataset = vc.add_dataset()
@@ -73,12 +82,15 @@
         w=lc_dims[0],
         h=lc_dims[1])
 
+    # Build the prefix that Vitessce should use
+    display_prefix = (f"{galaxy_url}/api/datasets/{dataset_id}/display?filename=")
+
     # if no anndata file, export the config with these minimal components
     if not anndata:
         vc.layout(lc | spatial)
         config_dict = vc.export(
             to='files',
-            base_url='http://localhost',
+            base_url=display_prefix,
             out_dir=output)
         with open(Path(output).joinpath('config.json'), 'w') as f:
             json.dump(config_dict, f, indent=4)
@@ -191,7 +203,7 @@
     # export the config file
     config_dict = vc.export(
         to='files',
-        base_url='http://localhost',
+        base_url=display_prefix,
         out_dir=output)
 
     with open(Path(output).joinpath('config.json'), 'w') as f:
@@ -206,7 +218,8 @@
     aparser.add_argument("-f", "--offsets", dest="offsets", required=False)
     aparser.add_argument("-a", "--anndata", dest="anndata", required=False)
     aparser.add_argument("-m", "--masks", dest="masks", required=False)
+    aparser.add_argument("--galaxy_config", dest="config_path", required=True)
 
     args = aparser.parse_args()
 
-    main(args.inputs, args.output, args.image, args.offsets, args.anndata, args.masks)
+    main(args.inputs, args.output, args.image, args.offsets, args.anndata, args.masks, args.config_path)