# HG changeset patch # User devteam # Date 1594082094 14400 # Node ID aca54f2b2151a01e92b6a592bf0e12add0975339 # Parent c54f5d0bbb586ae6d524bdce86f675ec24989211 "planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/substitutions commit f929353ffb0623f2218d7dec459c7da62f3b0d24" diff -r c54f5d0bbb58 -r aca54f2b2151 substitutions.py --- 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__": diff -r c54f5d0bbb58 -r aca54f2b2151 substitutions.xml --- 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 @@ - - from pairwise alignments - - substitutions.py - $input - $out_file1 - - - - - - - - - - - - - - - + + from pairwise alignments + + bx-python + + + python '$__tool_directory__/substitutions.py' + '$input' + '$out_file1' + + + + + + + + + + + + + + .. class:: infomark @@ -34,5 +36,5 @@ Any block/s not containing exactly two sequences, will be omitted. - - \ No newline at end of file + +