5 print "psyco not running"
9 from commoncode import getGeneInfoDict, getConfigParser, getConfigOption, getConfigIntOption
10 from cistematic.cisstat.analyzego import calculateGOStats
12 print "analyzego: version 2.2"
18 usage = "usage: python %prog genome infilename prefix [--geneName] [--field fieldID]"
20 parser = makeParser(usage)
21 (options, args) = parser.parse_args(argv[1:])
28 if options.translateGene:
31 if options.fieldID is not None:
32 fieldID = options.fieldID
38 analyzeGOFromFile(genome, infilename, prefix, options.translateGene, fieldID, numTests=options.numTests)
41 def makeParser(usage=""):
42 parser = optparse.OptionParser(usage=usage)
43 parser.add_option("--geneName", action="store_true", dest="translateGene",
44 help="translate gene")
45 parser.add_option("--field", type="int", dest="fieldID",
46 help="column containing gene ID/Name")
47 parser.add_option("--trials", type="int", dest="numTests",
48 help="column containing gene ID/Name")
50 configParser = getConfigParser()
52 translateGene = getConfigOption(configParser, section, "translateGene", False)
53 fieldID = getConfigOption(configParser, section, "fieldID", None)
54 numTests = getConfigIntOption(configParser, section, "numTests", 1)
56 parser.set_defaults(translateGene=translateGene, fieldID=fieldID, numTests=numTests)
61 def analyzeGOFromFile(genome, infilename, prefix, translateGene=False, fieldID=1, numTests=1):
62 infile = open(infilename)
63 analyzeGO(genome, infile, prefix, translateGene, fieldID, numTests)
67 def analyzeGO(genome, geneInfoList, prefix, translateGene=False, fieldID=1, numTests=1):
69 symbolToGidDict = getSymbolDict(genome)
72 for line in geneInfoList:
75 gene = fields[fieldID]
79 print "ignoring %s" % gene
83 gID = symbolToGidDict[gene]
85 print "ignoring %s" % gene
90 if (genome, gID) not in locusList:
91 locusList.append((genome, gID))
93 if len(locusList) > 0:
94 calculateGOStats(locusList, prefix, trials=numTests)
97 def getSymbolDict(genome):
98 geneinfoDict = getGeneInfoDict(genome, cache=True)
100 for gid in geneinfoDict:
101 symbol = geneinfoDict[gid][0][0].strip()
102 symbolToGidDict[symbol] = gid
104 return symbolToGidDict
107 if __name__ == "__main__":