view scanpy-find-markers.xml @ 30:64259337506f draft

planemo upload for repository https://github.com/ebi-gene-expression-group/container-galaxy-sc-tertiary/tree/develop/tools/tertiary-analysis/scanpy commit d01fa18235ac692874cd3cfddef33696c2df8ac1-dirty
author ebi-gxa
date Sat, 15 Jul 2023 08:44:51 +0000
parents 81c34e67f262
children f0f78d29130f
line wrap: on
line source

<?xml version="1.0" encoding="utf-8"?>
<tool id="scanpy_find_markers" name="Scanpy FindMarkers" version="@TOOL_VERSION@+galaxy91" profile="@PROFILE@">
  <description>to find differentially expressed genes between groups</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-markers
#if $output_markers
    --save diffexp.tsv
#end if
    --n-genes '${n_genes}'
#if $groupby_file
    #set f = open($groupby_file.__str__)
    #set groupby = f.read().strip()
    #silent f.close
#else
    #set groupby = $groupby.replace('INPUT_OBJ', $input_obj_file.__getattr__('name'))
#end if
    --groupby '${groupby}'
#if $settings.default == "false"
    #if $settings.key_added
        #set key_added = $settings.key_added.replace('GROUPBY', $groupby.__str__)
        --key-added '${key_added}'
    #end if
    --method '${settings.method}'
    ${settings.rankby_abs}
    #if $settings.groups
        --groups '${settings.groups}'
    #end if
    --reference '${settings.reference}'
    #if $settings.filter.default == "false"
      --filter-params 'min_in_group_fraction:${settings.filter.min_in_group_fraction},max_out_group_fraction:${settings.filter.max_out_group_fraction},min_fold_change:${settings.filter.min_fold_change}'
    #end if
    #if $settings.layer
        --layer '${settings.layer}'
        --no-raw
    #else
        ${settings.use_raw}
    #end if
    $settings.pts $settings.tie_correct
    #end if
    @INPUT_OPTS@
    @OUTPUT_OPTS@
]]></command>

  <inputs>
    <expand macro="input_object_params"/>
    <expand macro="output_object_params"/>
    <param name="output_markers" type="boolean" checked="true" label="Output markers table in tsv format"/>
    <param name="n_genes" argument="--n-genes" type="integer" value="50" label="Number of top genes to show per group/cluster"/>
    <param name="groupby" argument="--groupby" type="text" value="louvain" label="The sample grouping/clustering to use."/>
    <param name="groupby_file" argument="--groupby" type="data" format="txt,tsv" optional="true"
        label="File with groupby. Overrides the groupby setting"/>
    <conditional name="settings">
      <param name="default" type="boolean" checked="true" label="Use programme defaults"/>
      <when value="true"/>
      <when value="false">
        <param name="key_added" argument="--key-added" type="text" optional="true"
               label="The key in adata.uns information is saved to. If included, the keyword 'GROUPBY' will be substituted with the value of the groupby setting."/>
        <param name="method" argument="--method" type="select" label="Method for testing differentially expressed genes">
          <option value="t-test_overestim_var" selected="true">t-test with over-estimated variance</option>
          <option value="t-test">t-test</option>
          <option value="wilcoxon">wilcoxon test</option>
          <option value="logreg">logistic regression</option>
        </param>
        <param name="use_raw" type="boolean" truevalue="--use-raw" falsevalue="--no-raw" checked="true"
               label="Use raw attribute if present" help="Uses adata.raw, usually what was available before processing. If the layer option is set, this will be ignored (raw will not be used)."/>
        <param name="rankby_abs" argument="--rankby_abs" type="boolean" truevalue="--rankby-abs" falsevalue="" checked="false"
               label="Rank by absolute value of the scores instead of the scores"/>
        <param name="groups" argument="--groups" optional="true" type="text"
               label="Subset of groups/clusters to which comparisons should be restricted" 
               help="Comma separated list of groups existing within the groupby field in obs. Currently it fails if a single group is given, provide at least two."/>
        <param name="reference" argument="--reference" type="text" value="rest" label="If 'rest', compare to the union of the rest of the group/cluster. If a group identifier, compare to that group"/>
        <conditional name="filter">
          <param name="default" type="boolean" checked="false" label="Use filtering defaults"/>
          <when value="true"/>
          <when value="false">
            <param name="min_in_group_fraction" type="float" min="0.0" max="1.0" value="0.25" label="Minimum in-group fraction"
                   help="Post-test filtering to only keep genes expressed in at least this fraction of cells in the test group."/>
            <param name="max_out_group_fraction" type="float" min="0.0" max="1.0" value="0.5" label="Maximum out-group fraction"
                   help="Post-test filtering to only keep genes expressed in at most this fraction of cells in the reference group."/>
            <param name="min_fold_change" type="float" value="2" label="Minimum fold change"
                   help="Post-test filtering to only keep genes with at least this fold change of expression relative to the reference group."/>
          </when>
        </conditional>
        <param name="layer" argument="--layer" type="text" optional="true" label="Layer to use for marker genes computation" 
                help="The method prefers matrices/layers that are logged. Leave empty to use the default .X matrix. It will override the use of raw if set."/>
        <param name="pts" argument="--pts"  type="boolean" checked="false" label="Compute the fraction of cells expressing the genes?" truevalue="--pts" falsevalue="" />
        <param name="tie_correct" argument="--tie-correct"  type="boolean" checked="false" label="Use tie correction for 'wilcoxon' scores. Used only for 'wilcoxon'." truevalue="--tie-correct" falsevalue=""/>
      </when>
    </conditional>
  </inputs>

  <outputs>
    <expand macro="output_data_obj" description="Marker genes"/>
    <data name="output_tsv" format="tabular" from_work_dir="diffexp.tsv" label="${tool.name} on ${on_string}: Marker table">
      <filter>output_markers</filter>
    </data>
  </outputs>

  <tests>
    <test>
      <param name="input_obj_file" value="louvain_1.0"/>
      <param name="input_format" value="anndata"/>
      <param name="output_format" value="anndata"/>
      <param name="n_genes" value="50"/>
      <param name="output_markers" value="true"/>
      <param name="default" value="false"/>
      <param name="groupby" value="INPUT_OBJ"/>
      <param name="key_added" value="GROUPBY_marker"/>
      <param name="method" value="t-test_overestim_var"/>
      <param name="rankby_abs" value="false"/>
      <output name="output_h5" file="find_markers.h5" ftype="h5" compare="sim_size"/>
      <output name="output_tsv" file="diffexp.tsv" ftype="tabular" compare="sim_size"/>
    </test>
    <test>
      <param name="input_obj_file" value="louvain_1.0"/>
      <param name="input_format" value="anndata"/>
      <param name="output_format" value="no_matrix_output"/>
      <param name="n_genes" value="50"/>
      <param name="output_markers" value="true"/>
      <param name="default" value="false"/>
      <param name="groupby_file" value="groupby.txt"/>
      <param name="key_added" value="GROUPBY_marker"/>
      <param name="method" value="t-test_overestim_var"/>
      <param name="rankby_abs" value="false"/>
      <output name="output_tsv" file="diffexp.tsv" ftype="tabular" compare="sim_size"/>
    </test>
    <test>
      <param name="input_obj_file" value="mnn.h5"/>
      <param name="input_format" value="anndata"/>
      <param name="n_genes" value="50"/>
      <param name="output_markers" value="true"/>
      <param name="default" value="false"/>
      <param name="groupby" value="louvain"/>
      <param name="key_added" value="l_markers"/>
      <param name="method" value="wilcoxon"/>
      <param name="layer" value="mnn"/>
      <output name="output_h5ad" ftype="h5ad">
        <assert_contents>
          <has_h5_keys keys="uns/l_markers_mnn"/>
        </assert_contents>
      </output>
    </test>
  </tests>

  <help><![CDATA[
=============================================================
Rank genes for characterizing groups (`tl.rank_genes_groups`)
=============================================================

Rank genes for characterizing groups.

@HELP@

@VERSION_HISTORY@
]]></help>
  <expand macro="citations"/>
</tool>