erange version 4.0a dev release
[erange.git] / getGOgenes.py
index 0a320ee9839f74912a4eb807b0771c17302d6421..4c86443e4b66e5b6dc9e908cd9c6714502ca0914 100755 (executable)
@@ -1,8 +1,9 @@
-import sys, optparse
+import sys
+import optparse
 from cistematic.genomes import Genome
-from cistematic.core.geneinfo import geneinfoDB
+from commoncode import getGeneInfoDict, getConfigParser, getConfigOption, getConfigBoolOption
 
-print "%prog: version 3.1"
+print "getGOgenes: version 3.2"
 
 def main(argv=None):
     if not argv:
@@ -10,11 +11,7 @@ def main(argv=None):
 
     usage = "usage: python %s genome GOID1 [GOID2 ....] [--outfile outfilename] [--append] [--restrict genefile]"
 
-    parser = optparse.OptionParser(usage=usage)
-    parser.add_option("--outfile", dest="outfilename")
-    parser.add_option("--append", action="store_true", dest="append")
-    parser.add_option("--restrict", dest="restrictfilename")
-    parser.set_defaults(outfilename=None, restrictfilename=None, append=False)
+    parser = makeParser(usage)
     (options, args) = parser.parse_args(argv[1:])
 
     if len(args) < 2:
@@ -31,6 +28,23 @@ def main(argv=None):
     getGOgenes(genome, GOIDlist, options.outfilename, options.restrictfilename, options.append)
 
 
+def makeParser(usage=""):
+    parser = optparse.OptionParser(usage=usage)
+    parser.add_option("--outfile", dest="outfilename")
+    parser.add_option("--append", action="store_true", dest="append")
+    parser.add_option("--restrict", dest="restrictfilename")
+
+    configParser = getConfigParser()
+    section = "getGOgenes"
+    outfilename = getConfigOption(configParser, section, "outfilename", None)
+    restrictfilename = getConfigOption(configParser, section, "restrictfilename", None)
+    append = getConfigBoolOption(configParser, section, "append", False)
+
+    parser.set_defaults(outfilename=outfilename, restrictfilename=restrictfilename, append=append)
+
+    return parser
+
+
 def getGOgenes(genome, GOIDlist, outfilename=None, restrictfilename=None, append=False):
     writeOut = False
     if outfilename is not None:
@@ -41,7 +55,6 @@ def getGOgenes(genome, GOIDlist, outfilename=None, restrictfilename=None, append
         restrict = True
     
     hg = Genome(genome)
-    idb = geneinfoDB()
 
     print sys.argv
     print GOIDlist
@@ -58,7 +71,7 @@ def getGOgenes(genome, GOIDlist, outfilename=None, restrictfilename=None, append
 
     geneList = geneDict.keys()
     print len(geneList)
-    geneInfoList = idb.getallGeneInfo(genome)
+    geneInfoList = getGeneInfoDict(genome)
 
     if writeOut:
         if append: