3 from cistematic.genomes import Genome
4 from commoncode import getGeneInfoDict, getConfigParser, getConfigOption, getConfigBoolOption
6 print "getGOgenes: version 3.2"
12 usage = "usage: python %s genome GOID1 [GOID2 ....] [--outfile outfilename] [--append] [--restrict genefile]"
14 parser = makeParser(usage)
15 (options, args) = parser.parse_args(argv[1:])
28 getGOgenes(genome, GOIDlist, options.outfilename, options.restrictfilename, options.append)
31 def makeParser(usage=""):
32 parser = optparse.OptionParser(usage=usage)
33 parser.add_option("--outfile", dest="outfilename")
34 parser.add_option("--append", action="store_true", dest="append")
35 parser.add_option("--restrict", dest="restrictfilename")
37 configParser = getConfigParser()
38 section = "getGOgenes"
39 outfilename = getConfigOption(configParser, section, "outfilename", None)
40 restrictfilename = getConfigOption(configParser, section, "restrictfilename", None)
41 append = getConfigBoolOption(configParser, section, "append", False)
43 parser.set_defaults(outfilename=outfilename, restrictfilename=restrictfilename, append=append)
48 def getGOgenes(genome, GOIDlist, outfilename=None, restrictfilename=None, append=False):
50 if outfilename is not None:
54 if restrictfilename is not None:
64 testList = hg.allGIDsbyGOID(GOID)
65 print "GOID: %s (%d)" % (GOID, len(testList))
66 firstGeneList += testList
69 for gid in firstGeneList:
72 geneList = geneDict.keys()
74 geneInfoList = getGeneInfoDict(genome)
78 outfile = open(outfilename, "a")
80 outfile = open(outfilename, "w")
83 outfile.write("#%s\n" % GOID)
88 restrictFile = open(restrictfilename)
89 for line in restrictFile:
90 fields = line.strip().split()
91 restrictList.append(fields[0])
92 restrictDict[fields[0]] = line
98 if restrict and gid not in restrictList:
102 symbol = geneInfoList[gid][0][0]
107 symbolDict[symbol] = restrictDict[gid]
109 outList.append(symbol)
112 for symbol in outList:
115 outfile.write(symbolDict[symbol])
117 outfile.write(symbol + "\n")
125 if __name__ == "__main__":