Mercurial > repos > devteam > column_maker
changeset 2:464b9305180e draft
planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/column_maker commit f6e96ffa420035051ea4632596dfd171074aa66d
author | devteam |
---|---|
date | Thu, 25 Oct 2018 17:31:42 -0400 |
parents | 626658afe4cb |
children | be25c075ed54 |
files | column_maker.py column_maker.xml test-data/1.header.tsv test-data/column_maker_out2.header.tsv |
diffstat | 4 files changed, 103 insertions(+), 40 deletions(-) [+] |
line wrap: on
line diff
--- a/column_maker.py Wed Nov 11 12:07:18 2015 -0500 +++ b/column_maker.py Thu Oct 25 17:31:42 2018 -0400 @@ -47,7 +47,7 @@ expr = expr.replace( key, value ) operators = 'is|not|or|and' -builtin_and_math_functions = 'abs|all|any|bin|chr|cmp|complex|divmod|float|hex|int|len|long|max|min|oct|ord|pow|range|reversed|round|sorted|str|sum|type|unichr|unicode|log|exp|sqrt|ceil|floor' +builtin_and_math_functions = 'abs|all|any|bin|chr|cmp|complex|divmod|float|bool|hex|int|len|long|max|min|oct|ord|pow|range|reversed|round|sorted|str|sum|type|unichr|unicode|log|exp|sqrt|ceil|floor' string_and_list_methods = [ name for name in dir('') + dir([]) if not name.startswith('_') ] whitelist = "^([c0-9\+\-\*\/\(\)\.\'\"><=,:! ]|%s|%s|%s)*$" % (operators, builtin_and_math_functions, '|'.join(string_and_list_methods)) if not re.compile(whitelist).match(expr):
--- a/column_maker.xml Wed Nov 11 12:07:18 2015 -0500 +++ b/column_maker.xml Thu Oct 25 17:31:42 2018 -0400 @@ -1,40 +1,79 @@ -<tool id="Add_a_column1" name="Compute" version="1.1.0"> - <description>an expression on every row</description> - <command interpreter="python"> - column_maker.py $input $out_file1 "$cond" $round ${input.metadata.columns} "${input.metadata.column_types}" - </command> - <inputs> - <param name="cond" type="text" value="c3-c2" label="Add expression"/> - <param format="tabular" name="input" type="data" label="as a new column to" help="Dataset missing? See TIP below"/> - <param name="round" type="select" label="Round result?"> - <option value="no">NO</option> - <option value="yes">YES</option> - </param> - </inputs> - <outputs> - <data format="input" name="out_file1" metadata_source="input"/> - </outputs> - <tests> - <test> - <param name="cond" value="c3-c2"/> - <param name="input" value="1.bed"/> - <param name="round" value="no"/> - <output name="out_file1" file="column_maker_out1.interval"/> - </test> - <test> - <param name="cond" value="c4*1"/> - <param name="input" value="1.interval"/> - <param name="round" value="no"/> - <output name="out_file1" file="column_maker_out2.interval"/> - </test> - <test> - <param name="cond" value="c4*1"/> - <param name="input" value="1.interval"/> - <param name="round" value="yes"/> - <output name="out_file1" file="column_maker_out3.interval"/> - </test> - </tests> - <help> +<tool id="Add_a_column1" name="Compute" version="1.2.0"> + <description>an expression on every row</description> + <requirements> + <requirement type="package" version="2.7.13">python</requirement> + <requirement type="package" version="4.4">sed</requirement> + </requirements> + <command detect_errors="aggressive"><![CDATA[ + #if $header_lines_conditional.header_lines_select == "yes": + (sed -n '1,1p' '$input' | sed "s|$|%${header_lines_conditional.header_new_column_name}|" | tr "%" "\t") > header && + sed '1,1d' '$input' > data && + #else: + touch header && + ln -s '$input' data && + #end if + + python '$__tool_directory__/column_maker.py' + data column_maker_output + "$cond" + $round + ${input.metadata.columns} + "${input.metadata.column_types}" && + cat header column_maker_output > '$out_file1' + ]]></command> + <inputs> + <param name="cond" type="text" value="c3-c2" label="Add expression"/> + <param format="tabular" name="input" type="data" label="as a new column to" help="Dataset missing? See TIP below"/> + <param name="round" type="select" label="Round result?"> + <option value="no">NO</option> + <option value="yes">YES</option> + </param> + <conditional name="header_lines_conditional"> + <param name="header_lines_select" type="select" label="Skip a header line" help="# characters are already considered as comments and kept" > + <option value="no" >no</option> + <option value="yes" >yes</option> + </param> + <when value="no"> + </when> + <when value="yes"> + <param name="header_new_column_name" type="text" value="New Column" label="The new column name" /> + </when> + </conditional> + </inputs> + <outputs> + <data format_source="input" name="out_file1" metadata_source="input"/> + </outputs> + <tests> + <test> + <param name="cond" value="c3-c2"/> + <param name="input" value="1.bed"/> + <param name="round" value="no"/> + <output name="out_file1" file="column_maker_out1.interval"/> + </test> + <test> + <param name="cond" value="c4*1"/> + <param name="input" value="1.interval"/> + <param name="round" value="no"/> + <output name="out_file1" file="column_maker_out2.interval"/> + </test> + <test> + <param name="cond" value="c4*1"/> + <param name="input" value="1.header.tsv"/> + <param name="round" value="no"/> + <conditional name="header_lines_conditional"> + <param name="header_lines_select" value="yes" /> + <param name="header_new_column_name" value="value1_again" /> + </conditional> + <output name="out_file1" file="column_maker_out2.header.tsv"/> + </test> + <test> + <param name="cond" value="c4*1"/> + <param name="input" value="1.interval"/> + <param name="round" value="yes"/> + <output name="out_file1" file="column_maker_out3.interval"/> + </test> + </tests> + <help> .. class:: infomark @@ -63,7 +102,7 @@ chr1 151077881 151077918 2 200 - 400.0 chr1 151081985 151082078 3 500 + 1500.0 - + if, at the same time, "Round result?" is set to **YES** results will look like this:: chr1 151077881 151077918 2 200 - 400 @@ -79,5 +118,17 @@ chr1 151077881 151077918 2 200 - False chr1 151081985 151082078 3 500 + False -</help> + +The following build-in functions are available:: + + abs | all | any | bin | bool | chr | ceil | cmp | complex + + divmod | exp | float | log | floor | hex | int | len | long + + max | min | oct | ord | pow | range | reversed + + round | sorted | sqrt | str | sum | type | unichr | unicode | + + </help> + <citations /> </tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/1.header.tsv Thu Oct 25 17:31:42 2018 -0400 @@ -0,0 +1,6 @@ +chromosome start end value1 value2 value3 value4 value5 +chr1 4348187 4348589 3.70 4.90 2.55 0.24 0.46 +chr1 4488177 4488442 4.03 5.77 1.92 -0.67 0.81 +chr1 4774091 4774440 8.07 8.33 7.82 0.85 -0.40 +chr1 4800122 4800409 6.40 7.35 5.44 1.19 -0.42 +chr1 4878925 4879277 2.18 0.28 4.93 -0.96 1.24
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/column_maker_out2.header.tsv Thu Oct 25 17:31:42 2018 -0400 @@ -0,0 +1,6 @@ +chromosome start end value1 value2 value3 value4 value5 value1_again +chr1 4348187 4348589 3.70 4.90 2.55 0.24 0.46 3.7 +chr1 4488177 4488442 4.03 5.77 1.92 -0.67 0.81 4.03 +chr1 4774091 4774440 8.07 8.33 7.82 0.85 -0.40 8.07 +chr1 4800122 4800409 6.40 7.35 5.44 1.19 -0.42 6.4 +chr1 4878925 4879277 2.18 0.28 4.93 -0.96 1.24 2.18