view scanpy-find-cluster.xml @ 4:ab7a3bb8a622 draft

planemo upload for repository https://github.com/ebi-gene-expression-group/container-galaxy-sc-tertiary/tree/develop/tools/tertiary-analysis/scanpy commit f295fa316f06ad8da9170a9261aae443e1edf9c1
author ebi-gxa
date Wed, 20 Nov 2019 05:12:11 -0500
parents ee181563bae7
children d5290f98fde4
line wrap: on
line source

<?xml version="1.0" encoding="utf-8"?>
<tool id="scanpy_find_cluster" name="Scanpy FindCluster" version="@TOOL_VERSION@+galaxy1">
  <description>based on community detection on KNN graph</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-find-cluster
    ${method}
#if $settings.default == "false"
    --use-graph '${settings.use_graph}'
    #if $settings.key_added
        --key-added '${settings.key_added}'
    #end if
    #if $settings.resolution_file
        --resolution \$( cat $settings.resolution_file )
    #elif $settings.resolution
        --resolution '${settings.resolution}'
    #end if
    #if $settings.restrict_to
        --restrict-to '${settings.restrict_to}'
    #end if
    #if $settings.use_weights
        --use-weights
    #end if
    --random-state '${settings.random_seed}'
    ${settings.directed}
#end if
#if $output_cluster
    --export-cluster output.tsv
#end if
    @INPUT_OPTS@
    @OUTPUT_OPTS@
]]></command>

  <inputs>
    <expand macro="input_object_params"/>
    <expand macro="output_object_params"/>
    <param name="output_cluster" type="boolean" checked="true" label="Output cluster in two column text format"/>

    <param name="method" type="select" label="Clustering algorithm">
      <option value="louvain" selected="true">Louvain</option>
      <option value="leiden">Leiden</option>
    </param>

    <conditional name="settings">
      <param name="default" type="boolean" checked="true" label="Use programme defaults"/>
      <when value="true"/>
      <when value="false">
        <param name="use_graph" argument="--use-graph" value="neighbors" type="text"
            label="Name of the slot that holds the KNN graph"/>
        <param name="key_added" argument="--key-added" type="text" optional="true"
            label="Additional suffix to the name of the slot to save the calculated trajectory"/>

        <param name="resolution" argument="--resolution" type="float" min="0.0" value="1.0"
               label="Resolution, high value for more and smaller clusters"/>
        <param name="resolution_file" argument="--resolution" type="data" format="txt,tsv" optional="true"
               label="File with resolution, use with parameter iterator. Overrides the resolution setting"/>
        <param name="restrict_to" argument="--restrict-to" type="text" optional="true"
               label="Restrict clustering to certain sample categories"/>
        <param name="use_weights" argument="--use-weights" type="boolean" checked="false" label="Use weights from knn graph"/>
        <param name="random_seed" argument="--random-seed" type="integer" value="0" label="Seed for random number generator"/>
        <param name="directed" argument="--directed" type="boolean" truevalue="--directed" falsevalue="--undirected" checked="true"
               label="Interpret the adjacency matrix as directed graph."/>
      </when>
    </conditional>
  </inputs>

  <outputs>
    <data name="output_h5" format="h5" from_work_dir="output.h5" label="${tool.name} on ${on_string}: Cluster object"/>
    <data name="output_txt" format="tsv" from_work_dir="output.tsv" label="${tool.name} on ${on_string}: Cluster table">
      <filter>output_cluster</filter>
    </data>
  </outputs>

  <tests>
    <test>
      <param name="input_obj_file" value="compute_graph.h5"/>
      <param name="input_format" value="anndata"/>
      <param name="output_format" value="anndata"/>
      <param name="output_txt" value="true"/>
      <param name="default" value="false"/>
      <param name="resolution" value="1.0"/>
      <param name="random_seed" value="0"/>
      <output name="output_h5" file="find_cluster.h5" ftype="h5" compare="sim_size"/>
      <output name="output_txt" file="find_cluster.tsv" ftype="tsv"/>
    </test>
  </tests>

  <help><![CDATA[
======================================================================
Cluster cells into subgroups (`scanpy.tl.louvain`, `scanpy.tl.leiden`)
======================================================================

Cluster cells using the Louvain algorithm (Blondel et al, 2008) in the
implementation of Traag et al, 2017, or the Leiden algorithm (Traag et al,
2019). The Louvain algorithm has been proposed for single-cell analysis by
Levine et al, 2015.

This requires to run `Scanpy ComputeGraph`, first.

It by default yields `louvain` or `leiden`, generated cluster label.

@HELP@

@VERSION_HISTORY@
]]></help>
  <expand macro="citations">
    <citation type="doi">10.1088/1742-5468/2008/10/P10008</citation>
    <citation type="doi">10.1016/j.cell.2015.05.047</citation>
    <citation type="doi">10.1038/s41598-019-41695-z</citation>
    <citation type="doi">10.5281/zenodo.35117</citation>
  </expand>
</tool>