X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=erange.git;a=blobdiff_plain;f=transcripts.py;h=b3cd572f2ce62e4c3c3a1906980bb96fc2a5d9f9;hp=53b6aea2843acadcd93bbe64df414cb6903eb9e7;hb=0d3e3112fd04c2e6b44a25cacef1d591658ad181;hpb=5e4ae21098dba3d1edcf11e7279da0d84c3422e4 diff --git a/transcripts.py b/transcripts.py index 53b6aea..b3cd572 100755 --- a/transcripts.py +++ b/transcripts.py @@ -8,23 +8,18 @@ where transcriptome size is in Gbp, cell count is in arbitrary units and efficiency is a fraction """ -import sys, optparse +import sys +import optparse +from commoncode import getConfigParser, getConfigFloatOption def main(argv=None): if not argv: argv = sys.argv - print "%prog: version 3.0" + print "transcripts: version 3.1" usage = "usage: python %prog rpkmFile outFile [options]" - parser = optparse.OptionParser(usage=usage) - parser.add_option("--transcriptome", type="float", dest="tSize", - help="transcriptome size in Gbp [default 200000.0]") - parser.add_option("--cells", type="float", dest="cellCount", - help="arbitrary units [default 1e6]") - parser.add_option("--efficiency", type="float", dest="efficiency", - help="fraction [default 0.3]") - parser.set_defaults(tSize=200000.0, cellCount=1e6, efficiency=0.3) + parser = makeParser(usage) (options, args) = parser.parse_args(argv[1:]) if len(args) < 2: @@ -37,6 +32,26 @@ def main(argv=None): transcripts(infile, outfile, options.tSize, options.cellCount, options.efficiency) +def makeParser(usage=""): + parser = optparse.OptionParser(usage=usage) + parser.add_option("--transcriptome", type="float", dest="tSize", + help="transcriptome size in Gbp [default 200000.0]") + parser.add_option("--cells", type="float", dest="cellCount", + help="arbitrary units [default 1e6]") + parser.add_option("--efficiency", type="float", dest="efficiency", + help="fraction [default 0.3]") + + configParser = getConfigParser() + section = "transcripts" + tSize = getConfigFloatOption(configParser, section, "tSize", 200000.0) + cellCount = getConfigFloatOption(configParser, section, "cellCount", 1e6) + efficiency = getConfigFloatOption(configParser, section, "efficiency", 0.3) + + parser.set_defaults(tSize=tSize, cellCount=cellCount, efficiency=efficiency) + + return parser + + def transcripts(infilename, outfilename, tSize=200000, cellCount=1e6, efficiency=0.3): infile = open(infilename) outfile = open(outfilename, "w") @@ -46,6 +61,7 @@ def transcripts(infilename, outfilename, tSize=200000, cellCount=1e6, efficiency transcripts = rpkm * tSize transPerCell = transcripts / cellCount / efficiency outfile.write("%s\t%.1f\t%.1f\n" % (fields[0], transcripts, transPerCell)) + infile.close() outfile.close()