view scanpy-find-cluster.xml @ 8:6a9e2be28b07 draft

planemo upload for repository https://github.com/ebi-gene-expression-group/container-galaxy-sc-tertiary/tree/develop/tools/tertiary-analysis/scanpy commit cbe12e02ee9ff5692be7547bdbe28fd1cd013a92
author ebi-gxa
date Thu, 20 Feb 2020 10:16:59 -0500
parents 8abb1680e8ca
children e4006a341f74
line wrap: on
line source

<?xml version="1.0" encoding="utf-8"?>
<tool id="scanpy_find_cluster" name="Scanpy FindCluster" version="@TOOL_VERSION@+galaxy9" profile="@PROFILE@">
  <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>