Mercurial > repos > goeckslab > scimap_phenotyping
diff scimap_spatial.py @ 0:7ed4b55b11f7 draft
planemo upload for repository https://github.com/goeckslab/tools-mti/tree/main/tools/scimap commit b19cb55dfb751cccc857b95a432890299bfeebb5
author | goeckslab |
---|---|
date | Tue, 19 Jul 2022 20:29:22 +0000 |
parents | |
children | dcfcad35e847 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scimap_spatial.py Tue Jul 19 20:29:22 2022 +0000 @@ -0,0 +1,59 @@ +import argparse +import json +import warnings + +import scimap as sm +from anndata import read_h5ad + + +def main(inputs, anndata, output): + """ + Parameter + --------- + inputs : str + File path to galaxy tool parameter. + anndata : str + File path to anndata containing phenotyping info. + output : str + File path to output. + """ + warnings.simplefilter('ignore') + + with open(inputs, 'r') as param_handler: + params = json.load(param_handler) + + adata = read_h5ad(anndata) + + tool = params['analyses']['selected_tool'] + tool_func = getattr(sm.tl, tool) + + options = params['analyses']['options'] + if tool == 'cluster': + options['method'] = params['analyses']['method'] + subset_genes = options.pop('subset_genes') + if subset_genes: + options['subset_genes'] = \ + [x.strip() for x in subset_genes.split(',')] + sub_cluster_group = options.pop('sub_cluster_group') + if sub_cluster_group: + options['sub_cluster_group'] = \ + [x.strip() for x in sub_cluster_group.split(',')] + + for k, v in options.items(): + if v == '': + options[k] = None + + tool_func(adata, **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) + + args = aparser.parse_args() + + main(args.inputs, args.anndata, args.output)