view scanpy-find-cluster.xml @ 2:e232ea3fff07 draft

planemo upload for repository https://github.com/ebi-gene-expression-group/container-galaxy-sc-tertiary/tree/develop/tools/tertiary-analysis/scanpy commit ccd9b839849600b1aa3b6cf54f667575a5f2da9d
author ebi-gxa
date Fri, 25 Oct 2019 08:20:51 -0400
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>