6 print "%prog: version 2.3"
13 usage = "usage: python %prog denominatorField infile [--only fieldID] [--out outfile]"
15 parser = optparse.OptionParser(usage=usage)
16 parser.add_option("--only", type="int", dest="onlyField")
17 parser.add_option("--out", dest="outFileName")
18 parser.set_defaults(outFileName=None, onlyField=-1)
19 (options, args) = parser.parse_args(argv[1:])
27 inFileName = sys.stdin
31 ratio(field, inFileName, options.outFileName, options.onlyField)
33 def ratio(field, inFileName, outFileName=None, onlyField=-1):
35 if inFileName is not None:
36 infile = open(inFileName)
41 if outFileName is not None:
42 outfile = open(outFileName, "w")
49 line = infile.readline()
50 count = len(line.strip().split())
55 fields = line.strip().split()
56 outline = str(fields[0])
58 for index in range(1, count):
60 outline = string.join([outline, "0"], " ")
61 elif doOnly and index != onlyField:
62 outline = string.join([outline, str(fields[index])], " ")
65 ratioString = "%2.2f" % math.log((float(fields[index]) + 1)/(float(fields[field]) + 1), 2)
66 outline = string.join([outline, ratioString], " ")
69 outline = string.join([outline, "e%s" % fields[index]], " ")
77 outfile.write(outline + "\n")
82 if __name__ == "__main__":