erange version 4.0a dev release
[erange.git] / geneMrnaCounts.py
index b905cf0f1317e2fbdb6af64008511870dd81c107..cf5065ab88c40279c7ca5dfb30b70bc99dfd2065 100755 (executable)
@@ -6,11 +6,12 @@ except:
 
 import sys
 import optparse
-from commoncode import readDataset, getFeaturesByChromDict
+from commoncode import getFeaturesByChromDict, getConfigParser, getConfigOption, getConfigBoolOption
+import ReadDataset
 from cistematic.genomes import Genome
 from cistematic.core.geneinfo import geneinfoDB
 
-print "%s: version 5.1" % sys.argv[0]
+print "geneMrnaCounts: version 5.2"
 
 
 def main(argv=None):
@@ -19,21 +20,7 @@ def main(argv=None):
 
     usage = "usage: python %prog genome rdsfile outfilename [options]"
 
-    parser = optparse.OptionParser(usage=usage)
-    parser.add_option("--stranded", action="store_true", dest="trackStrand")
-    parser.add_option("--splices", action="store_true", dest="doSplices")
-    parser.add_option("--noUniqs", action="store_false", dest="doUniqs")
-    parser.add_option("--multi", action="store_true", dest="doMulti")
-    parser.add_option("--models", dest="extendGenome")
-    parser.add_option("--replacemodels", action="store_true", dest="replaceModels")
-    parser.add_option("--searchGID", action="store_true", dest="searchGID")
-    parser.add_option("--countfeatures", action="store_true", dest="countFeats")
-    parser.add_option("--cache", type="int", dest="cachePages")
-    parser.add_option("--markGID", action="store_true", dest="markGID")
-    parser.set_defaults(trackStrand=False, doSplices=False, doUniqs=True, doMulti=False,
-                        extendGenome="", replaceModels=False, searchGID=False,
-                        countFeats=False, cachePages=None, markGID=False)
-
+    parser = getParser(usage)
     (options, args) = parser.parse_args(argv[1:])
 
     if len(args) < 3:
@@ -49,6 +36,38 @@ def main(argv=None):
                    options.searchGID, options.countFeats, options.cachePages, options.markGID)
 
 
+def getParser(usage):
+    parser = optparse.OptionParser(usage=usage)
+    parser.add_option("--stranded", action="store_true", dest="trackStrand")
+    parser.add_option("--splices", action="store_true", dest="doSplices")
+    parser.add_option("--noUniqs", action="store_false", dest="doUniqs")
+    parser.add_option("--multi", action="store_true", dest="doMulti")
+    parser.add_option("--models", dest="extendGenome")
+    parser.add_option("--replacemodels", action="store_true", dest="replaceModels")
+    parser.add_option("--searchGID", action="store_true", dest="searchGID")
+    parser.add_option("--countfeatures", action="store_true", dest="countFeats")
+    parser.add_option("--cache", type="int", dest="cachePages")
+    parser.add_option("--markGID", action="store_true", dest="markGID")
+
+    configParser = getConfigParser()
+    section = "geneMrnaCounts"
+    trackStrand = getConfigBoolOption(configParser, section, "trackStrand", False)
+    doSplices = getConfigBoolOption(configParser, section, "doSplices", False)
+    doUniqs = getConfigBoolOption(configParser, section, "doUniqs", True)
+    doMulti = getConfigBoolOption(configParser, section, "doMulti", False)
+    extendGenome = getConfigOption(configParser, section, "extendGenome", "")
+    replaceModels = getConfigBoolOption(configParser, section, "replaceModels", False)
+    searchGID = getConfigBoolOption(configParser, section, "searchGID", False)
+    countFeats = getConfigBoolOption(configParser, section, "countFeats", False)
+    cachePages = getConfigOption(configParser, section, "cachePages", None)
+    markGID = getConfigBoolOption(configParser, section, "markGID", False)
+
+    parser.set_defaults(trackStrand=trackStrand, doSplices=doSplices, doUniqs=doUniqs, doMulti=doMulti,
+                        extendGenome=extendGenome, replaceModels=replaceModels, searchGID=searchGID,
+                        countFeats=countFeats, cachePages=cachePages, markGID=markGID)
+
+    return parser
+
 def geneMrnaCounts(genomeName, hitfile, outfilename, trackStrand=False, doSplices=False,
                    doUniqs=True, doMulti=False, extendGenome="", replaceModels=False,
                    searchGID=False, countFeats=False, cachePages=None, markGID=False):
@@ -73,7 +92,7 @@ def geneMrnaCounts(genomeName, hitfile, outfilename, trackStrand=False, doSplice
         cachePages = 100000
         doCache = False
 
-    hitRDS = readDataset(hitfile, verbose=True, cache=doCache)
+    hitRDS = ReadDataset.ReadDataset(hitfile, verbose=True, cache=doCache)
     if cachePages > hitRDS.getDefaultCacheSize():
         hitRDS.setDBcache(cachePages)