view scanpy-find-cluster.xml @ 6:2784759ad631 draft

planemo upload for repository https://github.com/ebi-gene-expression-group/container-galaxy-sc-tertiary/tree/develop/tools/tertiary-analysis/scanpy commit 367d978e52fac9467a804009c5013f53c06765f0
author ebi-gxa
date Tue, 26 Nov 2019 05:51:33 -0500
parents d5290f98fde4
children 8abb1680e8ca
line wrap: on
line source

<?xml version="1.0" encoding="utf-8"?>
<tool id="scanpy_find_cluster" name="Scanpy FindCluster" version="@TOOL_VERSION@+galaxy6">
  <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>
    <expand macro="output_data_obj" description="Clusters"/>
    <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>