# # convert1.py -- Simple program to convert a simple text file. # Written Dec 18 2006 and placed in Public Domain. # # Usage: # from convert1 import * # convfile('gencode2.txt') # (for example...) import os import re from math import * def floor_log2(n): '''See http://www.research.att.com/~njas/sequences/A000523''' if n < 1: return(0) else: return(int(log(n)/log(2))) # The output is written to similarly named file, # with the extension replaced by a new extension ".sol" # Read stuff like this: # UGG W Trp # CAU,CAC H His # UAU,UAC Y Tyr # AUU,AUC,AUA I Ile # GUU,GUC,GUA,GUG V Val # UAG,UGA,UAA - Stop def convfile(filename): '''Opens file "filename" for reading and similar file with extension ".out" for writing.''' infp = open(filename,'r') try: lastdot = filename.rindex('.') outfilename = filename[:lastdot] + ".out" except ValueError: # There were no dot in the filename outfilename = filename + ".out" outfp = open(outfilename,'w') permlinepat = re.compile(r'^([UCAG,]*)\s+(.*)') sols = 0 firstmax = 0 for line in infp.xreadlines(): m = permlinepat.match(line) if(m): codestr = m.group(1) # names = m.group(2) # codes = codestr.split(',') print "codestr=",codestr,"\n" for code in codes: numcode = code numcode = numcode.replace('U','0') numcode = numcode.replace('C','1') numcode = numcode.replace('A','2') numcode = numcode.replace('G','3') print numcode,names outfp.write(numcode + " " + names + "\n") outfp.close() # This module ends here.