pass
# originally from version 1.3 of geneDnaDownstreamCounts.py
-import sys, optparse
-from commoncode import readDataset
+import sys
+import optparse
+import ReadDataset
from cistematic.genomes import Genome
-from cistematic.core.geneinfo import geneinfoDB
+from commoncode import getGeneInfoDict, getConfigParser, getConfigIntOption
-print "%prog: version 2.0"
+print "geneDownstreamBins: version 2.1"
def main(argv=None):
if not argv:
usage = "usage: %prog genome rdsfile outfilename [--max regionSize]"
- parser = optparse.OptionParser(usage=usage)
- parser.add_option("--max", type="int", dest="standardMinDist",
- help="maximum region in bp")
- parser.set_defaults(standardMinDist=3000)
+ parser = makeParser(usage)
(options, args) = parser.parse_args(argv[1:])
if len(args) < 3:
geneDownstreamBins(genome, hitfile, outfilename, options.standardMinDist)
+def makeParser(usage=""):
+ parser = optparse.OptionParser(usage=usage)
+ parser.add_option("--max", type="int", dest="standardMinDist",
+ help="maximum region in bp")
+
+ configParser = getConfigParser()
+ section = "geneDownstreamBins"
+ standardMinDist = getConfigIntOption(configParser, section, "regionSize", 3000)
+
+ parser.set_defaults(standardMinDist=standardMinDist)
+
+ return parser
+
+
def geneDownstreamBins(genome, hitfile, outfilename, standardMinDist=3000, doCache=False, normalize=False):
bins = 10
standardMinThresh = standardMinDist / bins
- hitRDS = readDataset(hitfile, verbose=True, cache=doCache)
+ hitRDS = ReadDataset.ReadDataset(hitfile, verbose=True, cache=doCache)
normalizationFactor = 1.0
if normalize:
hitDictSize = len(hitRDS)
normalizationFactor = hitDictSize / 1000000.
hitDict = hitRDS.getReadsDict(doMulti=True, findallOptimize=True)
-
+ geneinfoDict = getGeneInfoDict(genome, cache=True)
hg = Genome(genome)
- idb = geneinfoDB(cache=True)
-
- geneinfoDict = idb.getallGeneInfo(genome)
featuresDict = hg.getallGeneFeatures()
outfile = open(outfilename, "w")
continue
binList = [0.] * bins
- for (tagStart, sense, weight) in hitDict[chrom]:
+ for read in hitDict[chrom]:
+ tagStart = read["start"]
+ weight = read["weight"]
tagStart -= gstart
if tagStart >= glen:
break