Rewrite of findall.py to clean code. Configuration tested using
[erange.git] / analyzego.py
index 6542b1bf24c256e5907c799c785b0ab060fb9eaf..f8ff0017f9b51401411423b9ff8d5420b0714409 100755 (executable)
@@ -6,7 +6,7 @@ except:
 
 import sys
 import optparse
-from commoncode import getGeneInfoDict, getConfigParser, getConfigOption
+from commoncode import getGeneInfoDict, getConfigParser, getConfigOption, getConfigIntOption
 from cistematic.cisstat.analyzego import calculateGOStats
 
 print "analyzego: version 2.2"
@@ -35,7 +35,7 @@ def main(argv=None):
     infilename = args[1]
     prefix = args[2]
 
-    analyzeGOFromFile(genome, infilename, prefix, options.translateGene, fieldID)
+    analyzeGOFromFile(genome, infilename, prefix, options.translateGene, fieldID, numTests=options.numTests)
 
 
 def makeParser(usage=""):
@@ -44,24 +44,27 @@ def makeParser(usage=""):
                       help="translate gene")
     parser.add_option("--field", type="int", dest="fieldID",
                       help="column containing gene ID/Name")
+    parser.add_option("--trials", type="int", dest="numTests",
+                      help="column containing gene ID/Name")
 
     configParser = getConfigParser()
     section = "analyzego"
     translateGene = getConfigOption(configParser, section, "translateGene", False)
     fieldID = getConfigOption(configParser, section, "fieldID", None)
+    numTests = getConfigIntOption(configParser, section, "numTests", 1)
 
-    parser.set_defaults(translateGene=translateGene, fieldID=fieldID)
+    parser.set_defaults(translateGene=translateGene, fieldID=fieldID, numTests=numTests)
 
     return parser
 
 
-def analyzeGOFromFile(genome, infilename, prefix, translateGene=False, fieldID=1):
+def analyzeGOFromFile(genome, infilename, prefix, translateGene=False, fieldID=1, numTests=1):
     infile = open(infilename)
-    analyzeGO(genome, infile, prefix, translateGene=False, fieldID=1)
+    analyzeGO(genome, infile, prefix, translateGene, fieldID, numTests)
     infile.close()
 
 
-def analyzeGO(genome, geneInfoList, prefix, translateGene=False, fieldID=1):
+def analyzeGO(genome, geneInfoList, prefix, translateGene=False, fieldID=1, numTests=1):
     if translateGene:
         symbolToGidDict = getSymbolDict(genome)
 
@@ -88,7 +91,7 @@ def analyzeGO(genome, geneInfoList, prefix, translateGene=False, fieldID=1):
             locusList.append((genome, gID))
 
     if len(locusList) > 0:
-        calculateGOStats(locusList, prefix)
+        calculateGOStats(locusList, prefix, trials=numTests)
 
 
 def getSymbolDict(genome):