erange version 4.0a dev release
[erange.git] / profilebins.py
index 46274f52c401a7b0a08e2171b4c0147e857b8857..094b09707622847d4d7ab57945ffceb9dbd65675 100755 (executable)
@@ -9,8 +9,11 @@ try:
 except:
     pass
 
-import sys, optparse
-print "%prog: version 2.2"
+import sys
+import optparse
+from commoncode import getConfigParser, getConfigOption, getConfigBoolOption, getConfigFloatOption
+
+print "profilebins: version 2.3"
 
 
 def main(argv=None):
@@ -19,17 +22,7 @@ def main(argv=None):
 
     usage = "usage: python %prog label infile1 [--upstream infile2] [--downstream infile3] [--uplength kb] [--downlength kb] [--gene geneName] [--genes genefile] [--append] outfile"
 
-    parser = optparse.OptionParser(usage=usage)
-    parser.add_option("--upstream", dest="upfilename")
-    parser.add_option("--downstream", dest="downfilename")
-    parser.add_option("--uplength", type="float", dest="uplength")
-    parser.add_option("--downlength", type="int", dest="")
-    parser.add_option("--gene", dest="gene")
-    parser.add_option("--genes", dest="genefile")
-    parser.add_option("--append", action="store_true", dest="doAppend")
-    parser.set_defaults(upfilename=None, downfilename=None, uplength=0.0, downlength=0.0,
-                        gene=None, genefile=None, doAppend=False)
-
+    parser = makeParser(usage)
     (options, args) = parser.parse_args(argv[1:])
 
     if len(args) < 3:
@@ -45,6 +38,32 @@ def main(argv=None):
                 options.doAppend)
 
 
+def makeParser(usage=""):
+    parser = optparse.OptionParser(usage=usage)
+    parser.add_option("--upstream", dest="upfilename")
+    parser.add_option("--downstream", dest="downfilename")
+    parser.add_option("--uplength", type="float", dest="uplength")
+    parser.add_option("--downlength", type="int", dest="")
+    parser.add_option("--gene", dest="gene")
+    parser.add_option("--genes", dest="genefile")
+    parser.add_option("--append", action="store_true", dest="doAppend")
+
+    configParser = getConfigParser()
+    section = "profilebins"
+    upfilename = getConfigOption(configParser, section, "upfilename", None)
+    downfilename = getConfigOption(configParser, section, "downfilename", None)
+    uplength = getConfigFloatOption(configParser, section, "uplength", 0.0)
+    downlength = getConfigFloatOption(configParser, section, "downlength", 0.0)
+    gene = getConfigOption(configParser, section, "gene", None)
+    genefile = getConfigOption(configParser, section, "genefile", None)
+    doAppend = getConfigBoolOption(configParser, section, "doAppend", False)
+
+    parser.set_defaults(upfilename=upfilename, downfilename=downfilename, uplength=uplength, downlength=downlength,
+                        gene=gene, genefile=genefile, doAppend=doAppend)
+
+    return parser
+
+
 def profilebins(label, infilename, outfilename, upfilename=None, downfilename=None,
                 uplength=0.0, downlength=0.0, gene=None, genefile=None, doAppend=False):