changeset 8:88bccd53d18a draft

planemo upload for repository https://github.com/ebi-gene-expression-group/container-galaxy-sc-tertiary/tree/develop/tools/tertiary-analysis/scanpy commit 400799f99ee36ad12b990b1ccabf4be16a26c003
author ebi-gxa
date Mon, 25 Nov 2019 14:38:14 -0500
parents 0bba942e0869
children 4bc377096eea
files scanpy-filter-genes.xml scanpy-filter-genes.xml.bak scanpy_macros2.xml
diffstat 3 files changed, 46 insertions(+), 101 deletions(-) [+]
line wrap: on
line diff
--- a/scanpy-filter-genes.xml	Wed Nov 20 06:32:34 2019 -0500
+++ b/scanpy-filter-genes.xml	Mon Nov 25 14:38:14 2019 -0500
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<tool id="scanpy_filter_genes" name="Scanpy FilterGenes" version="@TOOL_VERSION@+galaxy5">
+<tool id="scanpy_filter_genes" name="Scanpy FilterGenes" version="@TOOL_VERSION@+galaxy6">
   <description>based on counts and numbers of cells expressed</description>
   <macros>
     <import>scanpy_macros2.xml</import>
@@ -52,7 +52,7 @@
   </inputs>
 
   <outputs>
-    <data name="output_h5" format="h5" from_work_dir="output.h5" label="${tool.name} on ${on_string}: Filtered genes"/>
+    <expand macro="output_data_obj" description="Filtered cells"/>
     <expand macro="export_mtx_outputs"/>
   </outputs>
 
--- a/scanpy-filter-genes.xml.bak	Wed Nov 20 06:32:34 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<tool id="scanpy_filter_genes" name="Scanpy FilterGenes" version="@TOOL_VERSION@+galaxy3">
-  <description>based on counts and numbers of cells expressed</description>
-  <macros>
-    <import>scanpy_macros2.xml</import>
-  </macros>
-  <expand macro="requirements"/>
-  <command detect_errors="exit_code"><![CDATA[
-ln -s '${input_obj_file}' input.h5 &&
-PYTHONIOENCODING=utf-8 scanpy-filter-genes
-#if $parameters
-    #set pars = ' '.join(['--param g:{name} {min} {max}'.format(**$p) for $p in $parameters])
-    ${pars}
-#end if
-#if $categories
-    #set cats = ' '.join(['--category g:{name} {negate}{values}'.format(**$c) for $c in $categories])
-    ${cats}
-#end if
-#if $subsets
-    #set subs = ' '.join(['--subset g:{name} {subset}'.format(**$s) for $s in $subsets])
-    ${subs}
-#end if
-    @INPUT_OPTS@
-    @OUTPUT_OPTS@
-    @EXPORT_MTX_OPTS@
-]]></command>
-
-  <inputs>
-    <expand macro="input_object_params"/>
-    <expand macro="output_object_params"/>
-
-    <repeat name="parameters" title="Parameters used to filter genes" min="1">
-      <param name="name" type="text" value="n_cells" label="Name of parameter to filter on" help="for example n_genes or n_counts">
-        <option value="n_cells">n_cells</option>
-        <option value="n_counts">n_counts</option>
-      </param>
-      <param name="min" type="float" min="0" value="0" label="Min value"/>
-      <param name="max" type="float" min="0" value="1e9" label="Max value"/>
-    </repeat>
-
-    <repeat name="categories" title="Categories used to filter genes" min="0">
-      <param name="name" type="text" value="" label="Name of the categorical variable to filter on"/>
-      <param name="values" type="text" value="" label="Comma-separated list of categories"/>
-      <param name="negate" type="boolean" truevalue="!" falsevalue="" checked="false" label="Apply as negative filter" help="If enabled, specified categories will be removed rather than retained."/>
-    </repeat>
-
-    <repeat name="subsets" title="Subsets used to filter genes" min="0">
-      <param name="name" type="text" value="" label="Name of the categorical variable to filter on"/>
-      <param name="subset" type="data" format="tabular" label="List of values to keep" help="A one-column headerless text file is required"/>
-    </repeat>
-    <expand macro="export_mtx_params"/>
-  </inputs>
-
-  <outputs>
-    <data name="output_h5" format="h5" from_work_dir="output.h5" label="${tool.name} on ${on_string}: Filtered genes"/>
-    <expand macro="export_mtx_outputs"/>
-  </outputs>
-
-  <tests>
-    <test>
-      <param name="input_obj_file" value="filter_cells.h5"/>
-      <param name="input_format" value="anndata"/>
-      <param name="output_format" value="anndata"/>
-      <repeat name="parameters">
-        <param name="name" value="n_cells"/>
-        <param name="min" value="3"/>
-        <param name="max" value="1e9"/>
-      </repeat>
-      <repeat name="parameters">
-        <param name="name" value="n_counts"/>
-        <param name="min" value="0"/>
-        <param name="max" value="1e9"/>
-      </repeat>
-      <output name="output_h5" file="filter_genes.h5" ftype="h5" compare="sim_size"/>
-    </test>
-  </tests>
-
-  <help><![CDATA[
-=====================================================================
-Filter genes based on arbitrary attributes (`scanpy.pp.filter_genes`)
-=====================================================================
-
-Keep genes that have at least `min_counts` counts or are expressed in at
-least `min_cells` cells or have at most `max_counts` counts or are expressed
-in at most `max_cells` cells. Other gene attributes can be used for filtering
-too if available.
-
-
-@HELP@
-
-@VERSION_HISTORY@
-]]></help>
-  <expand macro="citations"/>
-</tool>
--- a/scanpy_macros2.xml	Wed Nov 20 06:32:34 2019 -0500
+++ b/scanpy_macros2.xml	Mon Nov 25 14:38:14 2019 -0500
@@ -4,6 +4,8 @@
   <token name="@VERSION_HISTORY@"><![CDATA[
 **Version history**
 
+1.4.3+galaxy6: Update to scanpy-scripts 0.2.8 (running scanpy ==1.4.3) and wider compatibility with other Galaxy modules. Bug fixes in filtering and plotting improvements.
+
 1.4.3+galaxy0: Update to scanpy-scripts 0.2.5 (running scanpy ==1.4.3).
 
 1.4.2+galaxy0: Update to scanpy-scripts 0.2.4 (requires scanpy >=1.4.2).
@@ -17,7 +19,11 @@
     --input-format '${input_format}' input.h5
   </token>
   <token name="@OUTPUT_OPTS@">
-    --show-obj stdout --output-format '${output_format}' output.h5
+#if str($output_format).startswith('anndata')
+    --show-obj stdout --output-format anndata output.h5
+#else
+    --show-obj stdout --output-format loom output.h5
+#end if
   </token>
   <token name="@PLOT_OPTS@">
 #if $fig_title
@@ -33,7 +39,7 @@
 
   <xml name="requirements">
     <requirements>
-      <requirement type="package" version="0.2.6">scanpy-scripts</requirement>
+      <requirement type="package" version="0.2.8">scanpy-scripts</requirement>
       <yield/>
     </requirements>
   </xml>
@@ -55,7 +61,7 @@
   </xml>
 
   <xml name="input_object_params">
-    <param name="input_obj_file" argument="input-object-file" type="data" format="h5" label="Input object in hdf5 format"/>
+    <param name="input_obj_file" argument="input-object-file" type="data" format="h5,h5ad" label="Input object in AnnData/Loom format"/>
     <param name="input_format" argument="--input-format" type="select" label="Format of input object">
       <option value="anndata" selected="true">AnnData format hdf5</option>
       <option value="loom">Loom format hdf5</option>
@@ -64,11 +70,44 @@
 
   <xml name="output_object_params">
     <param name="output_format" argument="--output-format" type="select" label="Format of output object">
-      <option value="anndata" selected="true">AnnData format hdf5</option>
-      <option value="loom">Loom format hdf5</option>
+      <option value="anndata_h5ad" selected="true">AnnData format</option>
+      <option value="anndata">AnnData format (h5 for older versions)</option>
+      <option value="loom">Loom format</option>
+      <option value="loom_legacy">Loom format (h5 for older versions)</option>
+    </param>
+  </xml>
+
+  <xml name="output_object_params_no_loom">
+    <param name="output_format" argument="--output-format" type="select" label="Format of output object">
+      <option value="anndata_h5ad" selected="true">AnnData format</option>
+      <option value="anndata">AnnData format (h5 for older versions)</option>
     </param>
   </xml>
 
+  <xml name="output_data_obj_no_loom" token_description="operation">
+    <data name="output_h5ad" format="h5ad" from_work_dir="output.h5" label="${tool.name} on ${on_string}: @DESCRIPTION@ AnnData">
+      <filter>output_format == 'anndata_h5ad'</filter>
+    </data>
+    <data name="output_h5" format="h5" from_work_dir="output.h5" label="${tool.name} on ${on_string}: @DESCRIPTION@ AnnData">
+      <filter>output_format == 'anndata'</filter>
+    </data>
+  </xml>
+
+  <xml name="output_data_obj" token_description="operation">
+    <data name="output_h5ad" format="h5ad" from_work_dir="output.h5" label="${tool.name} on ${on_string}: @DESCRIPTION@ AnnData">
+      <filter>output_format == 'anndata_h5ad'</filter>
+    </data>
+    <data name="output_h5" format="h5" from_work_dir="output.h5" label="${tool.name} on ${on_string}: @DESCRIPTION@ AnnData">
+      <filter>output_format == 'anndata'</filter>
+    </data>
+    <data name="output_loom_legacy" format="h5" from_work_dir="output.h5" label="${tool.name} on ${on_string}: @DESCRIPTION@ Loom">
+      <filter>output_format == 'loom_legacy'</filter>
+    </data>
+    <data name="output_loom" format="loom" from_work_dir="output.h5" label="${tool.name} on ${on_string}: @DESCRIPTION@ Loom">
+      <filter>output_format == 'loom'</filter>
+    </data>
+  </xml>
+
   <xml name="output_plot_params">
     <param name="fig_title" argument="--title" type="text" label="Figure title"/>
     <param name="fig_size" argument="--fig-size" type="text" value="4,4" label="Figure size as 'width,height', e.g, '7,7'"/>