view collapse.xml @ 0:7ff05a1ffdd7 draft default tip

"planemo upload for repository https://github.com/shenwei356/csvtk commit 3a97e1b79bf0c6cdd37d5c8fb497b85531a563ab"
author nml
date Tue, 19 May 2020 17:18:56 -0400
parents
children
line wrap: on
line source

<tool id="csvtk_collapse" name="csvtk-collapse" version="@VERSION@+@GALAXY_VERSION@">
    <description> one field with selected fields as keys</description>
    <macros>
        <import>macros.xml</import>
    </macros>
    <expand macro="requirements" />
    <expand macro="version_cmd" />
    <command detect_errors="exit_code"><![CDATA[

###################
## Start Command ##
###################

csvtk collapse --num-cpus "\${GALAXY_SLOTS:-1}"

    ## Add additional flags as specified ##
    #######################################
    $ignore_case
    $global_param.illegal_rows
    $global_param.empty_rows
    $global_param.header
    $global_param.lazy_quotes

    ## Set Tabular input/output flag if input is tabular ##
    #######################################################
    #if $in_1.is_of_type("tabular"):
        -t -T
    #end if

    ## Set Input ##
    ###############
    '$in_1'

    ## Specify fields for collapse ##
    #################################
    -F -f '$column_text.in_text'

    ## other ##
    ###########
    -v '$value_column.in_text'
    -s '$separator'

    ## To output ##
    ###############
    > collapsed

    ]]></command>
    <inputs>
        <expand macro="singular_input" />
        <expand macro="fields_input" />
        <conditional name="value_column" >
            <param type="select" name="select" label="Select value column to collapse based on" argument="-v">
                <option value="string">Column Name</option>
                <option value="column">Column Number</option>
            </param>
            <when value="column">
                <param type="data_column" name="in_text"
                    data_ref="in_1"
                    multiple="false"
                    label="Input column number"
                    help="Select column to collapse on"
                />
            </when>
            <when value="string">
                <param type="text" name="in_text"
                    optional="false"
                    label="Input column name"
                    help="Specify column name or number (ex. 1 for first column) to collapse on">
                    <expand macro="text_sanitizer" />
                </param>
            </when>
        </conditional>
        <param name="separator" type="text" value="; " argument="-s"
            optional="false"
            label="Separator string"
            help="Input string of characters that will separate collapsed columns. The ' character is not allowed">
            <expand macro="text_sanitizer" />
        </param>
        <expand macro="ignore_case" />
        <expand macro="global_parameters" />
    </inputs>
    <outputs>
        <data format_source="in_1" name="collapse" from_work_dir="collapsed" label="${in_1.name} with ${value_column.in_text} collapsed by ${column_text.in_text}" />
    </outputs>
    <tests>
        <test>
            <param name="in_1" value="blood_type.tsv" />
            <conditional name="column_text">
                <param name="select" value="string" />
                <param name="in_text" value="2" />
            </conditional>
            <conditional name="value_column">
                <param name="select" value="string" />
                <param name="in_text" value="1" />
            </conditional>
            <param name="separator" value="; " />
            <output name="collapse" file="collapsed.tsv" ftype="tabular" />
        </test>
        <test>
        <param name="in_1" value="illegal.csv" />
            <conditional name="column_text">
                <param name="select" value="string" />
                <param name="in_text" value="4" />
            </conditional>
            <conditional name="value_column">
                <param name="select" value="string" />
                <param name="in_text" value="1" />
            </conditional>
            <param name="separator" value="; " />
            <section name="global_param">
                <param name="illegal_rows" value="true" />
            </section>
            <output name="collapse" file="illegal_collapse.csv" />
        </test>
    </tests>
    <help><![CDATA[
    
Csvtk - Collapse Help
---------------------

Info
####

Csvtk collapse combines one field with selected fields as keys for what to combine

.. class:: warningmark

    Single quotes are not allowed in text inputs!

@HELP_INPUT_DATA@


Usage
#####

To run csvtk-collapse, all you need is a valid (as defined above) CSV or TSV file with a column you want to use
to collapse on based on any number of key column(s).

**Example collapse with one key column**

Input table:

+--------+--------+----------+
| Name   | Colour | Food     |
+========+========+==========+
| Eric   | Blue   | Apples   |
+--------+--------+----------+
| Darian | Blue   | Pancakes |
+--------+--------+----------+
| Daniel | Red    | Apples   |
+--------+--------+----------+
| Emily  | Blue   | Apples   |
+--------+--------+----------+

Now if you wanted to find out who has the same favourite colour, you would specify the key column as "Colour" (-F -f)
and the value column as "Name" (-v) to generate the following table:

+--------+---------------------+
| Colour | Name                |
+========+=====================+
| Red    | Daniel              |
+--------+---------------------+
| Blue   | Eric; Darian; Emily |
+--------+---------------------+

--------

**Example collapse with two key columns**

Same input table, now our key columns are "Colour" and "Food" which could be input as "2,3" (-F -f)
and the same value column which would generate the following table:

+--------+----------+-------------+
| Colour | Food     | Name        |
+========+==========+=============+
| Blue   | Pancakes | Darian      |
+--------+----------+-------------+
| Red    | Apples   | Daniel      |
+--------+----------+-------------+
| Blue   | Apples   | Eric; Emily |
+--------+----------+-------------+

----

@HELP_COLUMNS@


@HELP_END_STATEMENT@


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