changeset 1:aca54f2b2151 draft default tip

"planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/substitutions commit f929353ffb0623f2218d7dec459c7da62f3b0d24"
author devteam
date Mon, 06 Jul 2020 20:34:54 -0400
parents c54f5d0bbb58
children
files substitutions.py substitutions.xml
diffstat 2 files changed, 54 insertions(+), 48 deletions(-) [+]
line wrap: on
line diff
--- a/substitutions.py	Tue Apr 01 10:50:41 2014 -0400
+++ b/substitutions.py	Mon Jul 06 20:34:54 2020 -0400
@@ -1,36 +1,32 @@
 #!/usr/bin/env python
-#Guruprasad ANanda
 """
 Fetches substitutions from pairwise alignments.
-"""
 
-from galaxy import eggs
+Guruprasad ANanda
+"""
+from __future__ import print_function
 
-from galaxy.tools.util import maf_utilities
+import sys
 
 import bx.align.maf
-import sys
-
-def stop_err(msg):
-    sys.stderr.write(msg)
-    sys.exit()
 
 
 if len(sys.argv) < 3:
-    stop_err("Incorrect number of arguments.")
+    sys.exit("Incorrect number of arguments.")
 
 inp_file = sys.argv[1]
 out_file = sys.argv[2]
 fout = open(out_file, 'w')
 
+
 def fetchSubs(block):
     src1 = block.components[0].src
     sequence1 = block.components[0].text
     start1 = block.components[0].start
     end1 = block.components[0].end
     len1_withgap = len(sequence1)
-    
-    for seq in range (1, len(block.components)):
+
+    for seq in range(1, len(block.components)):
         src2 = block.components[seq].src
         sequence2 = block.components[seq].text
         start2 = block.components[seq].start
@@ -38,7 +34,7 @@
         sub_begin = None
         sub_end = None
         begin = False
-        
+
         for nt in range(len1_withgap):
             if sequence1[nt] not in '-#$^*?' and sequence2[nt] not in '-#$^*?':  # Not a gap or masked character
                 if sequence1[nt].upper() != sequence2[nt].upper():
@@ -48,13 +44,21 @@
                     sub_end = nt
                 else:
                     if begin:
-                        print >> fout, "%s\t%s\t%s" % ( src1, start1+sub_begin-sequence1[0:sub_begin].count('-'), start1+sub_end-sequence1[0:sub_end].count('-') )
-                        print >> fout, "%s\t%s\t%s" % ( src2, start2+sub_begin-sequence2[0:sub_begin].count('-'), start2+sub_end-sequence2[0:sub_end].count('-') )
+                        fout.write("%s\t%s\t%s\n" % (src1,
+                                                     start1 + sub_begin - sequence1[0:sub_begin].count('-'),
+                                                     start1 + sub_end - sequence1[0:sub_end].count('-')))
+                        fout.write("%s\t%s\t%s\n" % (src2,
+                                                     start2 + sub_begin - sequence2[0:sub_begin].count('-'),
+                                                     start2 + sub_end - sequence2[0:sub_end].count('-')))
                         begin = False
             else:
                 if begin:
-                    print >> fout, "%s\t%s\t%s" % ( src1, start1+sub_begin-sequence1[0:sub_begin].count('-'), end1+sub_end-sequence1[0:sub_end].count('-') )
-                    print >> fout, "%s\t%s\t%s" % ( src2, start2+sub_begin-sequence2[0:sub_begin].count('-'), end2+sub_end-sequence2[0:sub_end].count('-') )
+                    fout.write("%s\t%s\t%s\n" % (src1,
+                                                 start1 + sub_begin - sequence1[0:sub_begin].count('-'),
+                                                 end1 + sub_end - sequence1[0:sub_end].count('-')))
+                    fout.write("%s\t%s\t%s\n" % (src2,
+                                                 start2 + sub_begin - sequence2[0:sub_begin].count('-'),
+                                                 end2 + sub_end - sequence2[0:sub_end].count('-')))
                     begin = False
 
 
@@ -62,23 +66,23 @@
     skipped = 0
     not_pairwise = 0
     try:
-        maf_reader = bx.align.maf.Reader( open(inp_file, 'r') )
-    except:
-        stop_err("Your MAF file appears to be malformed.")
-    print >> fout, "#Chr\tStart\tEnd"
+        maf_reader = bx.align.maf.Reader(open(inp_file, 'r'))
+    except Exception:
+        sys.exit("Your MAF file appears to be malformed.")
+    fout.write("#Chr\tStart\tEnd\n")
     for block in maf_reader:
         if len(block.components) != 2:
             not_pairwise += 1
             continue
         try:
             fetchSubs(block)
-        except:
+        except Exception:
             skipped += 1
-    
+
     if not_pairwise:
-        print "Skipped %d non-pairwise blocks" % (not_pairwise)
+        print("Skipped %d non-pairwise blocks" % (not_pairwise))
     if skipped:
-        print "Skipped %d blocks" % (skipped)
+        print("Skipped %d blocks" % (skipped))
 
 
 if __name__ == "__main__":
--- a/substitutions.xml	Tue Apr 01 10:50:41 2014 -0400
+++ b/substitutions.xml	Mon Jul 06 20:34:54 2020 -0400
@@ -1,24 +1,26 @@
-<tool id="substitutions1" name="Fetch substitutions " version="1.0.0">
-  <description> from pairwise alignments</description>
-  <command interpreter="python">
-  	substitutions.py 
-  	$input 
-  	$out_file1
-  </command>
-  <inputs>
-    <param format="maf" name="input" type="data" label="Select pair-wise alignment data"/>
-  </inputs>
-  <outputs>
-    <data format="tabular" name="out_file1" metadata_source="input"/>
-  </outputs>
-
-  <tests>
-    <test>
-      <param name="input" value="Interval2Maf_pairwise_out.maf"/>
-      <output name="out_file1" file="subs.out"/>
-    </test>
-  </tests>
- <help> 
+<tool id="substitutions1" name="Fetch substitutions " version="1.0.1">
+    <description> from pairwise alignments</description>
+    <requirements>
+        <requirement type="package" version="0.8.8">bx-python</requirement>
+    </requirements>
+    <command>
+        python '$__tool_directory__/substitutions.py'
+            '$input'
+            '$out_file1'
+    </command>
+    <inputs>
+        <param format="maf" name="input" type="data" label="Select pair-wise alignment data"/>
+    </inputs>
+    <outputs>
+        <data format="tabular" name="out_file1" metadata_source="input"/>
+    </outputs>
+    <tests>
+        <test>
+            <param name="input" value="Interval2Maf_pairwise_out.maf"/>
+            <output name="out_file1" file="subs.out"/>
+        </test>
+    </tests>
+    <help>
 
 .. class:: infomark
 
@@ -34,5 +36,5 @@
 
 Any block/s not containing exactly two sequences, will be omitted. 
 
-  </help>  
-</tool>
\ No newline at end of file
+    </help>
+</tool>