Mercurial > repos > bgruening > text_processing
view cut.xml @ 22:3dc70b59608c draft default tip
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/text_processing commit 2dc2df988bd2dde9f8d7f629b594186dbd4fdc2b
author | bgruening |
---|---|
date | Fri, 07 Mar 2025 20:44:20 +0000 |
parents | 86755160afbf |
children |
line wrap: on
line source
<tool id="tp_cut_tool" name="Advanced Cut" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@"> <description>columns from a table (cut)</description> <macros> <import>macros.xml</import> </macros> <expand macro="requirements" /> <version_command>cut --version | head -n 1</version_command> <command> <![CDATA[ cut $complement $cut_type_options.cut_element #if $cut_type_options.cut_element != '-f' '$cut_type_options.list' #else '$cut_type_options.colnames_option.list' #if str($cut_type_options.delimiter) != '': -d"$cut_type_options.delimiter" #end if #end if '$input' > '$output' ]]> </command> <inputs> <param name="input" format="txt" type="data" label="File to cut" /> <param name="complement" type="select" label="Operation"> <option value="">Keep</option> <option value="--complement">Discard</option> </param> <conditional name="cut_type_options"> <param name="cut_element" type="select" label="Cut by"> <option value="-f">fields</option> <option value="-c">characters</option> </param> <when value="-f"> <param name="delimiter" type="select" label="Delimited by"> <option value="">Tab</option> <option value=" ">Whitespace</option> <option value=".">Dot</option> <option value=",">Comma</option> <option value="-">Dash</option> <option value="_">Underscore</option> <option value="|">Pipe</option> </param> <conditional name="colnames_option"> <param name="header" type="select" label="Is there a header for the data's columns ?"> <option value="Y">Yes</option> <option value="N" selected="true">No</option> </param> <when value="Y"> <param name="list" type="data_column" data_ref="input" use_header_names="true" multiple="true" label="List of Fields" help="(-f)" /> </when> <when value="N"> <param name="list" type="data_column" data_ref="input" multiple="true" label="List of Fields" help="(-f)" /> </when> </conditional> </when> <when value="-c"> <param name="list" type="text" value="" label="List of characters" help="These will be kept/discarded (depending on 'operation'). <BR /> Examples: 1,3,4 or 2-5"> <sanitizer> <valid initial="string.printable"> <remove value="'"/> </valid> </sanitizer> </param> </when> </conditional> </inputs> <outputs> <!--<data format="tabular" name="output" />--> <!-- WIP, not sure that will work with the complement option --> <data format="tabular" name="output"> <actions> <conditional name="cut_type_options.cut_element"> <!-- fields --> <when value="-f"> <conditional name="cut_type_options.delimiter"> <when value="T"> <conditional name="input"> <when datatype_isinstance="interval"> <action type="format" default="tabular"> <option type="from_param" name="list" column="0" offset="0"> <!-- chromCol is 1--> <filter type="insert_column" column="0" value="interval"/> <filter type="insert_column" ref="list" /> <!-- startCol --> <filter type="insert_column" ref="list" /> <!-- endCol --> <filter type="multiple_splitter" column="1" separator=","/> <filter type="column_strip" column="1"/> <!-- get rid of all external whitespace --> <filter type="string_function" column="1" name="lower" /> <filter type="param_value" column="1" value="^c\d{1,}$" compare="re_search" keep="True"/> <filter type="column_strip" column="1" strip="c"/> <!-- get rid of c's --> <filter type="boolean" column="1" cast="int" /> <filter type="multiple_splitter" column="2" separator=","/> <filter type="column_strip" column="2"/> <!-- get rid of all external whitespace --> <filter type="string_function" column="2" name="lower" /> <filter type="param_value" column="2" value="^c\d{1,}$" compare="re_search" keep="True"/> <filter type="column_strip" column="2" strip="c"/> <!-- get rid of c's --> <filter type="boolean" column="2" cast="int" /> <filter type="multiple_splitter" column="3" separator=","/> <filter type="column_strip" column="3"/> <!-- get rid of all external whitespace --> <filter type="string_function" column="3" name="lower" /> <filter type="param_value" column="3" value="^c\d{1,}$" compare="re_search" keep="True"/> <filter type="column_strip" column="3" strip="c"/> <!-- get rid of c's --> <filter type="boolean" column="3" cast="int" /> <filter type="metadata_value" ref="input" name="chromCol" column="1" /> <filter type="metadata_value" ref="input" name="startCol" column="2" /> <filter type="metadata_value" ref="input" name="endCol" column="3" /> </option> </action> </when> </conditional> </when> </conditional> <conditional name="output"> <when datatype_isinstance="interval"> <action type="metadata" name="chromCol"> <option type="from_param" name="list" column="0" offset="0"> <!-- chromCol is 0--> <filter type="multiple_splitter" column="0" separator=","/> <filter type="column_strip" column="0"/> <!-- get rid of all external whitespace --> <filter type="string_function" column="0" name="lower" /> <filter type="param_value" column="0" value="^c\d{1,}$" compare="re_search" keep="True"/> <filter type="column_strip" column="0" strip="c"/> <!-- get rid of c's --> <filter type="insert_column" value="1" iterate="True" column="0"/> <filter type="boolean" column="1" cast="int" /> <filter type="metadata_value" ref="input" name="chromCol" column="1" /> </option> </action> <action type="metadata" name="startCol"> <option type="from_param" name="list" column="0" offset="0"> <!-- startCol is 0--> <filter type="multiple_splitter" column="0" separator=","/> <filter type="column_strip" column="0"/> <!-- get rid of all external whitespace --> <filter type="string_function" column="0" name="lower" /> <filter type="param_value" column="0" value="^c\d{1,}$" compare="re_search" keep="True"/> <filter type="column_strip" column="0" strip="c"/> <!-- get rid of c's --> <filter type="insert_column" value="1" iterate="True" column="0"/> <filter type="boolean" column="1" cast="int" /> <filter type="metadata_value" ref="input" name="startCol" column="1" /> </option> </action> <action type="metadata" name="endCol"> <option type="from_param" name="list" column="0" offset="0"> <!-- endCol is 0--> <filter type="multiple_splitter" column="0" separator=","/> <filter type="column_strip" column="0"/> <!-- get rid of all external whitespace --> <filter type="string_function" column="0" name="lower" /> <filter type="param_value" column="0" value="^c\d{1,}$" compare="re_search" keep="True"/> <filter type="column_strip" column="0" strip="c"/> <!-- get rid of c's --> <filter type="insert_column" value="1" iterate="True" column="0"/> <filter type="boolean" column="1" cast="int" /> <filter type="metadata_value" ref="input" name="endCol" column="1" /> </option> </action> <action type="metadata" name="nameCol" default="0"> <option type="from_param" name="list" column="0" offset="0"> <!-- nameCol is 0--> <filter type="multiple_splitter" column="0" separator=","/> <filter type="column_strip" column="0"/> <!-- get rid of all external whitespace --> <filter type="string_function" column="0" name="lower" /> <filter type="param_value" column="0" value="^c\d{1,}$" compare="re_search" keep="True"/> <filter type="column_strip" column="0" strip="c"/> <!-- get rid of c's --> <filter type="insert_column" value="1" iterate="True" column="0"/> <filter type="boolean" column="1" cast="int" /> <filter type="metadata_value" ref="input" name="nameCol" column="1" /> </option> </action> <action type="metadata" name="strandCol" default="0"> <option type="from_param" name="list" column="0" offset="0"> <!-- strandCol is 0--> <filter type="multiple_splitter" column="0" separator=","/> <filter type="column_strip" column="0"/> <!-- get rid of all external whitespace --> <filter type="string_function" column="0" name="lower" /> <filter type="param_value" column="0" value="^c\d{1,}$" compare="re_search" keep="True"/> <filter type="column_strip" column="0" strip="c"/> <!-- get rid of c's --> <filter type="insert_column" value="1" iterate="True" column="0"/> <filter type="boolean" column="1" cast="int" /> <filter type="metadata_value" ref="input" name="strandCol" column="1" /> </option> </action> </when> </conditional> </when> </conditional> </actions> </data> </outputs> <tests> <test expect_num_outputs="1"> <param name="input" value="cut1.txt"/> <conditional name="cut_type_options"> <param name="cut_element" value="-f"/> <param name="delimiter" value="" /> <conditional name="colnames_option"> <param name="header" value="Y"/> <param name="list" value="1,3,4"/> </conditional> </conditional> <output name="output" file="cut_results1.txt"/> <assert_command> <has_text text="-f '1,3,4'"/> </assert_command> </test> <test expect_num_outputs="1"> <param name="input" value="cut1.txt"/> <conditional name="cut_type_options"> <param name="delimiter" value="" /> <conditional name="colnames_option"> <param name="header" value="Y"/> <!-- in the test we can (apparently) not select by header name --> <param name="list" value="2" /> </conditional> </conditional> <param name="complement" value="--complement" /> <output name="output" file="cut_results2.txt"/> <assert_command> <has_text text="-f '2'"/> </assert_command> </test> <test expect_num_outputs="1"> <param name="input" value="cut1.txt"/> <conditional name="cut_type_options"> <param name="cut_element" value="-c" /> <param name="list" value="-3" /> </conditional> <output name="output" file="cut_results3.txt"/> </test> </tests> <help> <![CDATA[ **What it does** This tool runs the **cut** unix command, which extract or delete columns from a file. ----- Field List Example: **1,3,7** - Cut specific fields/characters. **3-** - Cut from the third field/character to the end of the line. **2-5** - Cut from the second to the fifth field/character. **-8** - Cut from the first to the eight field/characters. Input Example:: fruit color price weight apple red 1.4 0.5 orange orange 1.5 0.3 banana yellow 0.9 0.3 Output Example ( **Keeping fields 1,3,4** ):: fruit price weight apple 1.4 0.5 orange 1.5 0.3 banana 0.9 0.3 Output Example ( **Discarding field 2** ):: fruit price weight apple 1.4 0.5 orange 1.5 0.3 banana 0.9 0.3 Output Example ( **Keeping 3 characters** ):: fru app ora ban @REFERENCES@ ]]> </help> <expand macro="citations" /> </tool>