Mercurial > repos > mvdbeek > add_input_name_as_column
changeset 0:3a1f8302302d
Imported from capsule None
author | mvdbeek |
---|---|
date | Tue, 13 Jan 2015 12:05:08 -0500 |
parents | |
children | 19558df43589 |
files | add_input_name_as_column.py add_input_name_as_column.xml test-data/signature.tab test-data/signature_with_header.tab test-data/signature_without_header.tab |
diffstat | 5 files changed, 163 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/add_input_name_as_column.py Tue Jan 13 12:05:08 2015 -0500 @@ -0,0 +1,25 @@ +import sys +import argparse + +def Parser(): + the_parser = argparse.ArgumentParser(description="add label to last column of file") + the_parser.add_argument('--input', required=True, action="store", type=str, help="input tabular file") + the_parser.add_argument('--output', required=True, action="store", type=str, help="output file path") + the_parser.add_argument('--label', required=True, action="store", type=str, help="label to add in last column") + the_parser.add_argument('--header', action="store", type=str, help="column label for last column") + args = the_parser.parse_args() + return args + +args=Parser() + +input=open(args.input) +output=open(args.output, 'w') +for i,line in enumerate(input): + line=line.strip('\n') + if (i==0) and (args.header!=None): + line=line+'\t'+args.header + else: + line=line+'\t'+args.label + print >>output, line +input.close() +output.close()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/add_input_name_as_column.xml Tue Jan 13 12:05:08 2015 -0500 @@ -0,0 +1,57 @@ +<tool id="addName" name="Add input name as column" version="0.1"> + <description>to an existing tabular file</description> + <command interpreter="python">add_input_name_as_column.py + --input "$input" + --label "$input.name" + --output "$output" + #if $header.contains_header=="yes": + --header "$header.colname" + #end if + </command> + <inputs> + <param format="tabular" name="input" type="data" label="to Dataset" help="Dataset missing? See TIP below" /> + <conditional name="header"> + <param name="contains_header" type="select" label="input contains a header line?" > + <option value="yes" selected="true">Yes</option> + <option value="no">No</option> + </param> + <when value="yes"> + <param name="colname" type="text" value="sample" help="select a column header to be added in the first line"> + <validator type="empty_field" message="please add a column header"/> + </param> + </when> + <when value="no"> + </when> + </conditional> + </inputs> + <outputs> + <data name="output" format="tabular" /> + </outputs> + <tests> + <test> + <param name="input" value="signature.tab" ftype="tabular" /> + <param name="contains_header" value="yes" /> + <param name="colname" value="sample" /> + <output name="output" file="signature_with_header.tab" ftype="tabular"/> + </test> + <test> + <param name="input" value="signature.tab" ftype="tabular" /> + <param name="contains_header" value="no" /> + <output name="output" file="signature_without_header.tab" ftype="tabular"/> + </test> + </tests> + <help> + +.. class:: infomark + +**TIP:** If your data is not TAB delimited, use *Text Manipulation->Convert* + +----- + +**What it does** + +Adds a new column with the name of the input file as it appears in the history. +Written by Marius van den Beek, m.vandenbeek at gmail . com + </help> +</tool> +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/signature.tab Tue Jan 13 12:05:08 2015 -0500 @@ -0,0 +1,27 @@ +overlap num of pairs probability +1 8 0.000028 +2 7 0.000019 +3 9 0.000034 +4 6 0.000014 +5 8 0.000020 +6 10 0.000086 +7 6 0.000030 +8 9 0.000038 +9 12 0.000058 +10 24 0.000094 +11 11 0.000071 +12 9 0.000058 +13 8 0.000029 +14 11 0.000042 +15 13 0.000112 +16 8 0.000070 +17 11 0.000066 +18 12 0.000697 +19 13 0.000085 +20 5 0.000015 +21 18 0.000540 +22 9 0.000030 +23 8 0.000036 +24 7 0.000037 +25 14 0.000058 +26 12 0.000050
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/signature_with_header.tab Tue Jan 13 12:05:08 2015 -0500 @@ -0,0 +1,27 @@ +overlap num of pairs probability sample +1 8 0.000028 signature.tab +2 7 0.000019 signature.tab +3 9 0.000034 signature.tab +4 6 0.000014 signature.tab +5 8 0.000020 signature.tab +6 10 0.000086 signature.tab +7 6 0.000030 signature.tab +8 9 0.000038 signature.tab +9 12 0.000058 signature.tab +10 24 0.000094 signature.tab +11 11 0.000071 signature.tab +12 9 0.000058 signature.tab +13 8 0.000029 signature.tab +14 11 0.000042 signature.tab +15 13 0.000112 signature.tab +16 8 0.000070 signature.tab +17 11 0.000066 signature.tab +18 12 0.000697 signature.tab +19 13 0.000085 signature.tab +20 5 0.000015 signature.tab +21 18 0.000540 signature.tab +22 9 0.000030 signature.tab +23 8 0.000036 signature.tab +24 7 0.000037 signature.tab +25 14 0.000058 signature.tab +26 12 0.000050 signature.tab
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/signature_without_header.tab Tue Jan 13 12:05:08 2015 -0500 @@ -0,0 +1,27 @@ +overlap num of pairs probability signature.tab +1 8 0.000028 signature.tab +2 7 0.000019 signature.tab +3 9 0.000034 signature.tab +4 6 0.000014 signature.tab +5 8 0.000020 signature.tab +6 10 0.000086 signature.tab +7 6 0.000030 signature.tab +8 9 0.000038 signature.tab +9 12 0.000058 signature.tab +10 24 0.000094 signature.tab +11 11 0.000071 signature.tab +12 9 0.000058 signature.tab +13 8 0.000029 signature.tab +14 11 0.000042 signature.tab +15 13 0.000112 signature.tab +16 8 0.000070 signature.tab +17 11 0.000066 signature.tab +18 12 0.000697 signature.tab +19 13 0.000085 signature.tab +20 5 0.000015 signature.tab +21 18 0.000540 signature.tab +22 9 0.000030 signature.tab +23 8 0.000036 signature.tab +24 7 0.000037 signature.tab +25 14 0.000058 signature.tab +26 12 0.000050 signature.tab