5 from commoncode import getConfigParser, getConfigOption, getConfigIntOption
7 print "ratio: version 2.4"
14 usage = "usage: python %prog denominatorField infile [--only fieldID] [--out outfile]"
16 parser = makeParser(usage)
17 (options, args) = parser.parse_args(argv[1:])
25 inFileName = sys.stdin
29 ratio(field, inFileName, options.outFileName, options.onlyField)
32 def makeParser(usage=""):
33 parser = optparse.OptionParser(usage=usage)
34 parser.add_option("--only", type="int", dest="onlyField")
35 parser.add_option("--out", dest="outFileName")
37 configParser = getConfigParser()
39 outFileName = getConfigOption(configParser, section, "outfile", None)
40 onlyField = getConfigIntOption(configParser, section, "fieldID", -1)
42 parser.set_defaults(outFileName=outFileName, onlyField=onlyField)
47 def ratio(field, inFileName, outFileName=None, onlyField=-1):
49 if inFileName is not None:
50 infile = open(inFileName)
55 if outFileName is not None:
56 outfile = open(outFileName, "w")
63 line = infile.readline()
64 count = len(line.strip().split())
69 fields = line.strip().split()
70 outline = str(fields[0])
72 for index in range(1, count):
74 outline = string.join([outline, "0"], " ")
75 elif doOnly and index != onlyField:
76 outline = string.join([outline, str(fields[index])], " ")
79 ratioString = "%2.2f" % math.log((float(fields[index]) + 1)/(float(fields[field]) + 1), 2)
80 outline = string.join([outline, ratioString], " ")
83 outline = string.join([outline, "e%s" % fields[index]], " ")
91 outfile.write(outline + "\n")
96 if __name__ == "__main__":