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-&gt;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