erange version 4.0a dev release
[erange.git] / scatterfields.py
index 60649ff5eb803f9b989e500592c7c499a4abbf41..32d623c277b02dbc2fc57d93a7ab896c914a60e4 100755 (executable)
@@ -17,10 +17,11 @@ from pylab import *
 import math, cmath
 import sys
 import optparse
+from commoncode import getConfigParser, getConfigOption, getConfigIntOption, getConfigFloatOption, getConfigBoolOption
 
 alphaVal = 0.5
 
-print "%prog: version 3.1"
+print "scatterfields: version 3.2"
 
 def main(argv=None):
     if not argv:
@@ -28,28 +29,7 @@ def main(argv=None):
 
     usage = __doc__
 
-    parser = optparse.OptionParser(usage=usage)
-    parser.add_option("--xmin", type="float", dest="forcexmin")
-    parser.add_option("--ymin", type="float", dest="forceymin")
-    parser.add_option("--xmax", type="float", dest="forcexmax")
-    parser.add_option("--ymax", type="float", dest="forceymax")
-    parser.add_option("--doLogF1", action="store_true", dest="doLogF1")
-    parser.add_option("--doLogF2", action="store_true", dest="doLogF2")
-    parser.add_option("--arcsinh", action="store_true", dest="doArcsinh")
-    parser.add_option("--order", type="int", dest="fitOrder")
-    parser.add_option("--base", type="int", dest="base")
-    parser.add_option("--markGenes", dest="markFile")
-    parser.add_option("--markfold", type="float", dest="foldChange")
-    parser.add_option("--noregression", action="store_false", dest="doRegression")
-    parser.add_option("--large", action="store_true", dest="plotLarge")
-    parser.add_option("--markdiag", action="store_true", dest="markDiag")
-    parser.add_option("--title", type="int", dest="figtitle")
-    parser.add_option("--verbose", action="store_true", dest="verbose")
-    parser.set_defaults(forcexmin=0.0, forceymin=0.0, forcexmax=-1, forceymax=-1, doLogF1=False,
-                        doLogF2=False, doArcsinh=False, fitOrder=1, base=10, markFile=None,
-                        foldChange=None, doRegression=True, plotLarge=False, markDiag=False,
-                        figtitle="", verbose=False)
-
+    parser = getParser(usage)
     (options, args) = parser.parse_args(argv[1:])
 
     if len(args) < 6:
@@ -70,6 +50,52 @@ def main(argv=None):
                   options.markDiag, options.figtitle, options.verbose)
 
 
+def getParser(usage):
+    parser = optparse.OptionParser(usage=usage)
+    parser.add_option("--xmin", type="float", dest="forcexmin")
+    parser.add_option("--ymin", type="float", dest="forceymin")
+    parser.add_option("--xmax", type="float", dest="forcexmax")
+    parser.add_option("--ymax", type="float", dest="forceymax")
+    parser.add_option("--doLogF1", action="store_true", dest="doLogF1")
+    parser.add_option("--doLogF2", action="store_true", dest="doLogF2")
+    parser.add_option("--arcsinh", action="store_true", dest="doArcsinh")
+    parser.add_option("--order", type="int", dest="fitOrder")
+    parser.add_option("--base", type="int", dest="base")
+    parser.add_option("--markGenes", dest="markFile")
+    parser.add_option("--markfold", type="float", dest="foldChange")
+    parser.add_option("--noregression", action="store_false", dest="doRegression")
+    parser.add_option("--large", action="store_true", dest="plotLarge")
+    parser.add_option("--markdiag", action="store_true", dest="markDiag")
+    parser.add_option("--title", type="int", dest="figtitle")
+    parser.add_option("--verbose", action="store_true", dest="verbose")
+
+    configParser = getConfigParser()
+    section = "scatterfields"
+    forcexmin = getConfigFloatOption(configParser, section, "forcexmin", 0.0)
+    forceymin = getConfigFloatOption(configParser, section, "forceymin", 0.0)
+    forcexmax = getConfigIntOption(configParser, section, "forcexmax", -1)
+    forceymax = getConfigIntOption(configParser, section, "forceymax", -1)
+    doLogF1 = getConfigBoolOption(configParser, section, "doLogF1", False)
+    doLogF2 = getConfigBoolOption(configParser, section, "doLogF2", False)
+    doArcsinh = getConfigBoolOption(configParser, section, "doArcsinh", False)
+    fitOrder = getConfigIntOption(configParser, section, "fitOrder", 1)
+    base = getConfigIntOption(configParser, section, "base", 10)
+    markFile = getConfigOption(configParser, section, "markFile", None)
+    foldChange = getConfigOption(configParser, section, "foldChange", None)
+    doRegression = getConfigBoolOption(configParser, section, "doRegression", True)
+    plotLarge = getConfigBoolOption(configParser, section, "plotLarge", False)
+    markDiag = getConfigBoolOption(configParser, section, "markDiag", False)
+    figtitle = getConfigOption(configParser, section, "figtitle", "")
+    verbose = getConfigBoolOption(configParser, section, "verbose", False)
+
+    parser.set_defaults(forcexmin=forcexmin, forceymin=forceymin, forcexmax=forcexmax, forceymax=forceymax, doLogF1=doLogF1,
+                        doLogF2=doLogF2, doArcsinh=doArcsinh, fitOrder=fitOrder, base=base, markFile=markFile,
+                        foldChange=foldChange, doRegression=doRegression, plotLarge=plotLarge, markDiag=markDiag,
+                        figtitle=figtitle, verbose=verbose)
+
+    return parser
+
+
 def scatterfields(infilename, xaxis, xField, yaxis, yField, outfilename, forcexmin=0.0, forceymin=0.0,
                   forcexmax=-1, forceymax=-1, doLogF1=False, doLogF2=False, doArcsinh=False, fitOrder=1,
                   base=10, markFile=None, foldChange=None, doRegression=True, plotLarge=False,