erange version 4.0a dev release
[erange.git] / normalizeExpandedExonic.py
index 4d174bf1cd1c35b6a4e6e84c95e86e50bc4f3b95..c677d563e18d3f2544fc3c70caee4148c743bf5f 100644 (file)
@@ -4,12 +4,14 @@ try:
 except:
     pass
 
-import sys, optparse
-from commoncode import readDataset
+import sys
+import optparse
+import ReadDataset
 from cistematic.genomes import Genome
 from cistematic.core import chooseDB, cacheGeneDB, uncacheGeneDB
+from commoncode import getConfigParser, getConfigOption, getConfigIntOption, getConfigBoolOption, getConfigFloatOption
 
-print "%prog: version 5.6"
+print "normalizeExpandedExonic: version 5.7"
 
 
 def main(argv=None):
@@ -18,15 +20,7 @@ def main(argv=None):
 
     usage = "usage: python %s genome rdsfile uniqcountfile splicecountfile outfile [candidatefile acceptfile] [--gidField fieldID] [--maxLength kblength] [--cache]"
 
-    parser = optparse.OptionParser(usage=usage)
-    parser.add_option("--gidField", type="int", dest="fieldID")
-    parser.add_option("--maxLength", type="float", dest="maxLength")
-    parser.add_option("--cache", action="store_true", dest="doCache")
-    parser.add_option("--models", dest="extendGenome")
-    parser.add_option("--replacemodels", action="store_true", dest="replaceModels")
-    parser.set_defaults(fieldID=0, maxLength=1000000000., doCache=False, extendGenome="",
-                        replaceModels=False)
-
+    parser = makeParser(usage)
     (options, args) = parser.parse_args(argv[1:])
 
     if len(sys.argv) < 6:
@@ -57,6 +51,28 @@ def main(argv=None):
                             options.replaceModels)
 
 
+def makeParser(usage=""):
+    parser = optparse.OptionParser(usage=usage)
+    parser.add_option("--gidField", type="int", dest="fieldID")
+    parser.add_option("--maxLength", type="float", dest="maxLength")
+    parser.add_option("--cache", action="store_true", dest="doCache")
+    parser.add_option("--models", dest="extendGenome")
+    parser.add_option("--replacemodels", action="store_true", dest="replaceModels")
+
+    configParser = getConfigParser()
+    section = "normalizeExpandedExonic"
+    fieldID = getConfigIntOption(configParser, section, "fieldID", 0)
+    maxLength = getConfigFloatOption(configParser, section, "maxLength", 1000000000.)
+    doCache = getConfigBoolOption(configParser, section, "doCache", False)
+    extendGenome = getConfigOption(configParser, section, "extendGenome", "")
+    replaceModels = getConfigBoolOption(configParser, section, "replaceModels", False)
+
+    parser.set_defaults(fieldID=fieldID, maxLength=maxLength, doCache=doCache, extendGenome=extendGenome,
+                        replaceModels=replaceModels)
+
+    return parser
+
+
 def normalizeExpandedExonic(genome, hitfile, uniquecountfilename, splicecountfilename,
                             outfilename, candidateLines=[], acceptedfilename="",
                             fieldID=0, maxLength=1000000000., doCache=False,
@@ -88,7 +104,7 @@ def normalizeExpandedExonic(genome, hitfile, uniquecountfilename, splicecountfil
     if extendGenome != "":
         hg.extendFeatures(extendGenome, replace=replaceModels)
 
-    RDS = readDataset(hitfile, verbose = True, cache=doCache, reportCount=False)    
+    RDS = ReadDataset.ReadDataset(hitfile, verbose = True, cache=doCache, reportCount=False)    
     uniqcount = RDS.getUniqsCount()
     print "%d unique reads" % uniqcount