diff tabular_to_fasta.py @ 1:0a7799698fe5 draft default tip

"planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/tabular_to_fasta commit 01140c0ac1a926856c55853a0028e5d44935d9e6"
author devteam
date Wed, 05 Feb 2020 10:51:52 -0500
parents 0b4e36026794
children
line wrap: on
line diff
--- a/tabular_to_fasta.py	Mon May 19 12:34:07 2014 -0400
+++ b/tabular_to_fasta.py	Wed Feb 05 10:51:52 2020 -0500
@@ -4,65 +4,66 @@
 Output: fasta
 Return sequences whose lengths are within the range.
 """
-import sys, os
+import os
+import sys
 
-assert sys.version_info[:2] >= ( 2, 4 )
 
-def stop_err( msg ):
-    sys.stderr.write( msg )
-    sys.exit()
+def stop_err(msg):
+    sys.exit(msg)
+
 
 def __main__():
     infile = sys.argv[1]
     title_col = sys.argv[2]
     seq_col = sys.argv[3]
-    outfile = sys.argv[4]        
+    outfile = sys.argv[4]
 
     if title_col == None or title_col == 'None' or seq_col == None or seq_col == 'None':
-        stop_err( "Columns not specified." )
+        stop_err("Columns not specified.")
     try:
-        seq_col = int( seq_col ) - 1
+        seq_col = int(seq_col) - 1
     except:
-        stop_err( "Invalid Sequence Column: %s." %str( seq_col ) )
+        stop_err("Invalid Sequence Column: %s." % str(seq_col))
 
-    title_col_list = title_col.split( ',' )
-    out = open( outfile, 'w' )
+    title_col_list = title_col.split(',')
     skipped_lines = 0
     first_invalid_line = 0
     invalid_line = ""
     i = 0
-    
-    for i, line in enumerate( open( infile ) ):
-        error = False
-        line = line.rstrip( '\r\n' )
-        if line and not line.startswith( '#' ):
-            fields = line.split( '\t' )
-            fasta_title = []
-            for j in title_col_list:
-                try:
-                    j = int( j ) - 1
-                    fasta_title.append( fields[j] )
-                except:
-                    skipped_lines += 1
-                    if not invalid_line:
-                        first_invalid_line = i + 1
-                        invalid_line = line
-                    error = True
-                    break
-            if not error:
-                try:
-                    fasta_seq = fields[seq_col]
-                    if fasta_title[0].startswith( ">" ):
-                        fasta_title[0] = fasta_title[0][1:]
-                    print >> out, ">%s\n%s" % ( "_".join( fasta_title ), fasta_seq )
-                except:
-                    skipped_lines += 1
-                    if not invalid_line:
-                        first_invalid_line = i + 1
-                        invalid_line = line
-    out.close()    
+
+    with open(outfile, 'w') as out:
+        for i, line in enumerate(open(infile)):
+            error = False
+            line = line.rstrip('\r\n')
+            if line and not line.startswith('#'):
+                fields = line.split('\t')
+                fasta_title = []
+                for j in title_col_list:
+                    try:
+                        j = int(j) - 1
+                        fasta_title.append(fields[j])
+                    except:
+                        skipped_lines += 1
+                        if not invalid_line:
+                            first_invalid_line = i + 1
+                            invalid_line = line
+                        error = True
+                        break
+                if not error:
+                    try:
+                        fasta_seq = fields[seq_col]
+                        if fasta_title[0].startswith(">"):
+                            fasta_title[0] = fasta_title[0][1:]
+                        print(">%s\n%s" % ("_".join(fasta_title), fasta_seq), file=out)
+                    except:
+                        skipped_lines += 1
+                        if not invalid_line:
+                            first_invalid_line = i + 1
+                            invalid_line = line
 
     if skipped_lines > 0:
-        print 'Data issue: skipped %d blank or invalid lines starting at #%d: "%s"' % ( skipped_lines, first_invalid_line, invalid_line )
+        print('Data issue: skipped %d blank or invalid lines starting at #%d: "%s"' % (skipped_lines, first_invalid_line, invalid_line))
+
 
-if __name__ == "__main__" : __main__()
\ No newline at end of file
+if __name__ == "__main__":
+    __main__()