5 print "psyco not running"
9 from commoncode import getGeneInfoDict, getConfigParser, getConfigOption
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)
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")
48 configParser = getConfigParser()
50 translateGene = getConfigOption(configParser, section, "translateGene", False)
51 fieldID = getConfigOption(configParser, section, "fieldID", None)
53 parser.set_defaults(translateGene=translateGene, fieldID=fieldID)
58 def analyzeGOFromFile(genome, infilename, prefix, translateGene=False, fieldID=1):
59 infile = open(infilename)
60 analyzeGO(genome, infile, prefix, translateGene=False, fieldID=1)
64 def analyzeGO(genome, geneInfoList, prefix, translateGene=False, fieldID=1):
66 symbolToGidDict = getSymbolDict(genome)
69 for line in geneInfoList:
72 gene = fields[fieldID]
76 print "ignoring %s" % gene
80 gID = symbolToGidDict[gene]
82 print "ignoring %s" % gene
87 if (genome, gID) not in locusList:
88 locusList.append((genome, gID))
90 if len(locusList) > 0:
91 calculateGOStats(locusList, prefix)
94 def getSymbolDict(genome):
95 geneinfoDict = getGeneInfoDict(genome, cache=True)
97 for gid in geneinfoDict:
98 symbol = geneinfoDict[gid][0][0].strip()
99 symbolToGidDict[symbol] = gid
101 return symbolToGidDict
104 if __name__ == "__main__":