Mercurial > repos > bgruening > text_processing
view sorted_uniq.xml @ 19:12615d397df7 draft
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/text_processing commit 70980e329cd9fa78e74bf14a76fd4ded9bd2b91f
author | bgruening |
---|---|
date | Thu, 29 Feb 2024 22:15:20 +0000 |
parents | 74a8bef53a00 |
children |
line wrap: on
line source
<tool id="tp_uniq_tool" name="Unique lines" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@"> <description>assuming sorted input file</description> <macros> <import>macros.xml</import> </macros> <expand macro="creator"/> <expand macro="requirements"> <requirement type="package" version="4.8">sed</requirement> </expand> <version_command>uniq --version | head -n 1</version_command> <command> <![CDATA[ uniq #if $skipfields: -f $skipfields #end if $ignorecase #if $grouping.grouping_select == 'yes': --group=$grouping.group #else: $grouping.count $grouping.repeated $grouping.uniqueonly #end if '$infile' #if $grouping.grouping_select == 'no' and $grouping.count: ## count will print the count with spaces in front of the line and ## with a space (not a tab) after the number, we need to cahnge that | sed -e 's/ *//' -e 's/ /\t/' #end if > '$outfile' ]]> </command> <inputs> <param name="infile" format="tabular" type="data" label="File to scan for unique values" help="Make sure you have sorted this file" /> <conditional name="grouping"> <param name="grouping_select" type="select" label="Do you want to group each unique group?"> <option value="no">No</option> <option value="yes">Yes</option> </param> <when value="no"> <param name="count" type="boolean" truevalue="-c" falsevalue="" label="Counting number of occurrences" help="Prefix lines by the number of occurrences. (-c)" /> <param name="repeated" type="boolean" truevalue="-d" falsevalue="" label="Only print duplicate lines" help="(-d)"/> <param name="uniqueonly" type="boolean" checked="True" truevalue="-u" falsevalue="" label="Only print unique lines" help="(-u)" /> </when> <when value="yes"> <param name="group" type="select" label="Output all lines, and delimit each unique group" help="(--group)"> <option value="">No grouping at all</option> <option value="separate">Separate unique groups with a single delimiter</option> <option value="prepend">Output a delimiter before each group of unique items</option> <option value="append">Output a delimiter after each group of unique items</option> <option value="both">Output a delimiter around each group of unique items</option> </param> </when> </conditional> <param name="ignorecase" type="boolean" truevalue="-i" falsevalue="" label="Ignore differences in case when comparing" help="(-i)"/> <param name="skipfields" type="integer" value="0" label="Avoid comparing the first N fields" help="Use zero to start from the first field. (-f)" /> </inputs> <outputs> <data name="outfile" format_source="infile" metadata_source="infile"/> </outputs> <tests> <test> <param name="infile" value="sorted_uniq1.tabular" /> <param name="grouping_select" value="no"/> <param name="count" value="True"/> <param name="ignorecase" value="True"/> <param name="uniqueonly" value="True"/> <output name="outfile" file="sorted_uniq_results1.tabular" /> </test> <test> <param name="infile" value="sorted_uniq1.tabular" /> <param name="ignorecase" value="True"/> <param name="grouping_select" value="yes"/> <param name="group" value="separate"/> <output name="outfile" file="sorted_uniq_results2.tabular" /> </test> </tests> <help> <![CDATA[ This tool takes a sorted file and look for lines that are unique. .. class:: warningmark Please make sure your file is sorted, or else this tool will give you an erroneous output. .. class:: infomark You can sort your file using either the "Sort" tool in "Filter and Sort", or the "Sort" tool in "Unix Tools". ]]> </help> <expand macro="citations" /> </tool>