Mercurial > repos > bgruening > unique
changeset 0:2064ae2602b1 draft
Imported from capsule None
author | bgruening |
---|---|
date | Thu, 15 May 2014 12:42:00 -0400 |
parents | |
children | d4fb020c19ca |
files | uniq.py uniq.xml |
diffstat | 2 files changed, 111 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uniq.py Thu May 15 12:42:00 2014 -0400 @@ -0,0 +1,36 @@ +import sys +import subprocess + +""" + We only need that file because galaxy do not understand the -t $'\t' term. + Otherwise that would be the right XML-only solution: + sort -u + $ignore_case + $is_numeric + -t \$'\t' + #if $adv_opts.adv_opts_selector=="advanced": + -k$adv_opts.column_start,$adv_opts.column_end + #end if + -o $outfile + $input +""" + +if sys.argv[1].strip() != 'false': + ignore_case = sys.argv[1] +else: + ignore_case = '' + +if sys.argv[2].strip() != 'false': + is_numeric = sys.argv[2] +else: + is_numeric = '' + +try: + col_start = sys.argv[3] + col_end = sys.argv[4] + com = "sort -u %s %s -t ' ' -k%s,%s -o %s %s" % (is_numeric, ignore_case, col_start, col_end, sys.argv[5], sys.argv[6]) +except: + # no advanced options selected + com = "sort -u %s %s -t ' ' -o %s %s" % (is_numeric, ignore_case, sys.argv[3], sys.argv[4]) + +subprocess.call(com, shell=True)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uniq.xml Thu May 15 12:42:00 2014 -0400 @@ -0,0 +1,75 @@ +<tool id="bg_uniq" name="Unique" version="0.3"> + <description>occurrences of each record</description> + <command interpreter='python'> + uniq.py + $ignore_case + $is_numeric + #if $adv_opts.adv_opts_selector=="advanced": + $adv_opts.column_start + $adv_opts.column_end + #end if + $outfile + $input + </command> + <inputs> + <param name="input" type="data" format="tabular,text" label="from query" /> + <param name="ignore_case" type="boolean" label="ignore differences in case when comparing" truevalue="-f" falsevalue="false" checked="false" help="ignore differences in case when comparing"/> + <param name="is_numeric" type="boolean" label="column only contains numeric values" truevalue="-n" falsevalue="false" checked="false" help="did the calumn have numeric values"/> + <conditional name="adv_opts"> + <param name="adv_opts_selector" type="select" label="Advanced Options"> + <option value="basic" selected="True">Hide Advanced Options</option> + <option value="advanced">Show Advanced Options</option> + </param> + <when value="basic" /> + <when value="advanced"> + <param name="column_start" label="Column start" type="data_column" data_ref="input" help="Unique on specific column range"/> + <param name="column_end" label="Column end" type="data_column" data_ref="input" help="Unique on specific column range"/> + </when> + </conditional> + </inputs> + <outputs> + <data format="input" name="outfile" /> + </outputs> + <tests> + <test> + </test> + </tests> + <help> + + .. class:: infomark + +**Syntax** + +This tool returns all unique lines using the 'sort -u' command. + +----- + +.. class:: infomark + +The input file needs to be tab separated. Please convert your file if necessary. + +----- + +**Example** + +- Input file:: + + chr1 10 100 gene1 + chr1 105 200 gene2 + chr1 10 100 gene1 + chr2 10 100 gene4 + chr2 1000 1900 gene5 + chr3 15 1656 gene6 + chr2 10 100 gene4 + +- Unique lines will result in:: + + chr1 10 100 gene1 + chr1 105 200 gene2 + chr2 10 100 gene4 + chr2 1000 1900 gene5 + chr3 15 1656 gene6 + + +</help> +</tool>