except:
print "psyco not running"
-import sys, optparse
+import sys
+import optparse
+from commoncode import getGeneInfoDict, getConfigParser, getConfigOption
from cistematic.cisstat.analyzego import calculateGOStats
-from cistematic.core.geneinfo import geneinfoDB
-print "version 2.1"
+print "analyzego: version 2.2"
def main(argv=None):
if not argv:
usage = "usage: python %prog genome infilename prefix [--geneName] [--field fieldID]"
- parser = optparse.OptionParser(usage=usage)
- parser.add_option("--geneName", action="store_true", dest="translateGene",
- help="translate gene")
- parser.add_option("--field", type="int", dest="fieldID",
- help="column containing gene ID/Name")
- parser.set_defaults(translateGene=False, fieldID=None)
+ parser = makeParser(usage)
(options, args) = parser.parse_args(argv[1:])
if len(args) < 3:
analyzeGOFromFile(genome, infilename, prefix, options.translateGene, fieldID)
+def makeParser(usage=""):
+ parser = optparse.OptionParser(usage=usage)
+ parser.add_option("--geneName", action="store_true", dest="translateGene",
+ help="translate gene")
+ parser.add_option("--field", type="int", dest="fieldID",
+ help="column containing gene ID/Name")
+
+ configParser = getConfigParser()
+ section = "analyzego"
+ translateGene = getConfigOption(configParser, section, "translateGene", False)
+ fieldID = getConfigOption(configParser, section, "fieldID", None)
+
+ parser.set_defaults(translateGene=translateGene, fieldID=fieldID)
+
+ return parser
+
+
def analyzeGOFromFile(genome, infilename, prefix, translateGene=False, fieldID=1):
infile = open(infilename)
analyzeGO(genome, infile, prefix, translateGene=False, fieldID=1)
def analyzeGO(genome, geneInfoList, prefix, translateGene=False, fieldID=1):
if translateGene:
- idb = geneinfoDB(cache=True)
- geneinfoDict = idb.getallGeneInfo(genome)
- symbolToGidDict = {}
- for gid in geneinfoDict:
- symbol = geneinfoDict[gid][0][0].strip()
- symbolToGidDict[symbol] = gid
+ symbolToGidDict = getSymbolDict(genome)
locusList = []
for line in geneInfoList:
if len(locusList) > 0:
calculateGOStats(locusList, prefix)
+
+def getSymbolDict(genome):
+ geneinfoDict = getGeneInfoDict(genome, cache=True)
+ symbolToGidDict = {}
+ for gid in geneinfoDict:
+ symbol = geneinfoDict[gid][0][0].strip()
+ symbolToGidDict[symbol] = gid
+
+ return symbolToGidDict
+
+
if __name__ == "__main__":
main(sys.argv)
\ No newline at end of file