# HG changeset patch
# User goeckslab
# Date 1661815254 0
# Node ID be0e7952e22919be3ea6678096134691485f717f
planemo upload for repository https://github.com/goeckslab/tools-mti/tree/main/tools/squidpy commit ee16860018eba110ff845d62b18396db22abd91e
diff -r 000000000000 -r be0e7952e229 main_macros.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main_macros.xml Mon Aug 29 23:20:54 2022 +0000
@@ -0,0 +1,64 @@
+
+ 1.1.2
+ 20.01
+ 0
+
+
+
+
+
+
+
+
+
+ quay.io/goeckslab/squidpy:@TOOL_VERSION@
+
+
+
+
+
+ 10.1038/s41592-021-01358-2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r be0e7952e229 squidpy_spatial.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/squidpy_spatial.py Mon Aug 29 23:20:54 2022 +0000
@@ -0,0 +1,110 @@
+import argparse
+import ast
+import json
+import warnings
+
+import pandas as pd
+import squidpy as sq
+from anndata import read_h5ad
+
+
+def main(inputs, anndata, output, output_plot):
+ """
+ Parameter
+ ---------
+ inputs : str
+ File path to galaxy tool parameter.
+ anndata : str
+ File path to anndata containing phenotyping info.
+ output : str
+ File path to output.
+ output_plot: str or None
+ File path to save the plotting image.
+ """
+ warnings.simplefilter('ignore')
+
+ with open(inputs, 'r') as param_handler:
+ params = json.load(param_handler)
+
+ adata = read_h5ad(anndata)
+
+ if 'spatial' not in adata.obsm:
+ try:
+ adata.obsm['spatial'] = adata.obs[['X_centroid', 'Y_centroid']].values
+ except Exception as e:
+ print(e)
+
+ tool = params['analyses']['selected_tool']
+ tool_func = getattr(sq.gr, tool)
+
+ options = params['analyses']['options']
+
+ for k, v in options.items():
+ if not isinstance(v, str):
+ continue
+
+ if v in ('', 'none'):
+ options[k] = None
+ continue
+
+ if k == 'genes': # for spatial_autocorr and sepal
+ options[k] = [e.strip() for e in v.split(',')]
+ elif k == 'radius': # for spatial_neighbors
+ options[k] = ast.literal_eval(v)
+ elif k == 'numba_parallel': # for nhood_enrichment and ligrec
+ if v == 'false':
+ options[k] = False
+ elif v == 'true':
+ options[k] = True
+ elif k == 'interactions': # for ligrec
+ options[k] = pd.read_csv(v, sep="\t")
+ elif k == 'max_neighs':
+ options[k] = int(v) # for sepal
+
+ cluster_key = params['analyses'].get('cluster_key')
+ if cluster_key:
+ tool_func(adata, cluster_key, **options)
+ else:
+ tool_func(adata, **options)
+
+ if output_plot:
+ plotting_options = params['analyses']['plotting_options']
+ for k, v in plotting_options.items():
+ if not isinstance(v, str):
+ continue
+
+ if v in ('', 'none'):
+ plotting_options[k] = None
+ continue
+
+ if k == 'figsize':
+ options[k] = ast.literal_eval(v)
+ elif k in ('palette', 'score', 'source_groups', 'target_groups'):
+ options[k] = [e.strip() for e in v.split(',')]
+ elif k == 'means_range': # ligrec
+ v = v.strip()
+ if v[0] == '(':
+ v = v[1:]
+ if v[-1] == ')':
+ v = v[:-1]
+ options[k] = tuple([float(e.strip()) for e in v.split(',', 1)])
+
+ plotting_func = getattr(sq.pl, tool)
+ if cluster_key:
+ plotting_func(adata, cluster_key, save=output_plot, **plotting_options)
+ else: # TODO Remove this, since all plottings need cluster key
+ plotting_func(adata, save=output_plot, **plotting_options)
+
+ adata.write(output)
+
+
+if __name__ == '__main__':
+ aparser = argparse.ArgumentParser()
+ aparser.add_argument("-i", "--inputs", dest="inputs", required=True)
+ aparser.add_argument("-e", "--output", dest="output", required=True)
+ aparser.add_argument("-a", "--anndata", dest="anndata", required=True)
+ aparser.add_argument("-p", "--output_plot", dest="output_plot", required=False)
+
+ args = aparser.parse_args()
+
+ main(args.inputs, args.anndata, args.output, args.output_plot)
diff -r 000000000000 -r be0e7952e229 squidpy_spatial.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/squidpy_spatial.xml Mon Aug 29 23:20:54 2022 +0000
@@ -0,0 +1,346 @@
+
+ for spatial analysis
+
+ main_macros.xml
+
+
+
+ echo "@TOOL_VERSION@"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ analyses['selected_tool'] in ['nhood_enrichment', 'centrality_scores', 'interaction_matrix', 'ligrec', 'ripley', 'co_occurrence']
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r be0e7952e229 test-data/imc.h5ad
Binary file test-data/imc.h5ad has changed
diff -r 000000000000 -r be0e7952e229 test-data/imc_centrality_scores.png
Binary file test-data/imc_centrality_scores.png has changed
diff -r 000000000000 -r be0e7952e229 test-data/imc_co_occurrence.png
Binary file test-data/imc_co_occurrence.png has changed
diff -r 000000000000 -r be0e7952e229 test-data/imc_interaction_matrix.png
Binary file test-data/imc_interaction_matrix.png has changed
diff -r 000000000000 -r be0e7952e229 test-data/imc_kmeans.h5ad
Binary file test-data/imc_kmeans.h5ad has changed
diff -r 000000000000 -r be0e7952e229 test-data/imc_nhood_enrichment.png
Binary file test-data/imc_nhood_enrichment.png has changed
diff -r 000000000000 -r be0e7952e229 test-data/imc_ripley.png
Binary file test-data/imc_ripley.png has changed
diff -r 000000000000 -r be0e7952e229 test-data/imc_sn.h5ad
Binary file test-data/imc_sn.h5ad has changed