except:
pass
-from commoncode import readDataset
-import sys, time, optparse
+import sys
+import time
+import optparse
+import ReadDataset
+from commoncode import getConfigParser, getConfigOption, getConfigIntOption, getConfigBoolOption
def main(argv=None):
if not argv:
argv = sys.argv
- print "%prog: version 3.3"
+ print "distalPairs: version 3.4"
print "looks at all chromosomes simultaneously: is both slow and takes up large amount of RAM"
usage = "usage: python %prog minDist rdsfile outfile [--sameChrom] [--splices] [--maxDist bp] [--verbose] [--cache cachepages]"
distalPairs(minDist, rdsfile, outfilename, options.sameChromOnly, options.doSplices, options.doVerbose, options.maxDist, options.cachePages)
+def makeParser(usage=""):
+ parser = optparse.OptionParser(usage=usage)
+ parser.add_option("--sameChrom", action="store_true", dest="sameChromOnly")
+ parser.add_option("--splices", action="store_true", dest="doSplices")
+ parser.add_option("--verbose", action="store_true", dest="doVerbose")
+ parser.add_option("--maxDist", type="int", dest="maxDist")
+ parser.add_option("--cache", type="int", dest="cachePages")
+
+ configParser = getConfigParser()
+ section = "distalPairs"
+ sameChromOnly = getConfigBoolOption(configParser, section, "sameChromOnly", False)
+ doSplices = getConfigBoolOption(configParser, section, "doSplices", False)
+ doVerbose = getConfigBoolOption(configParser, section, "doVerbose", False)
+ maxDist = getConfigIntOption(configParser, section, "maxDist", 1000000000)
+ cachePages = getConfigOption(configParser, section, "cachePages", None)
+
+ parser.set_defaults(sameChromOnly=sameChromOnly, doSplices=doSplices, doVerbose=doVerbose, maxDist=maxDist, cachePages=cachePages)
+
+ return parser
+
+
def distalPairs(minDist, rdsfile, outfilename, sameChromOnly=False, doSplices=False, doVerbose=False, maxDist=1000000000, cachePages=None):
if cachePages is not None:
doCache = True
doCache = False
cachePages = -1
- RDS = readDataset(rdsfile, verbose = True, cache=doCache)
+ RDS = ReadDataset.ReadDataset(rdsfile, verbose = True, cache=doCache)
if not RDS.hasIndex():
print "Will not attempt to run on unIndexed dataset - please index with rdsmetadata.py and rerun"
sys.exit(1)
readList = uniqDict[readID]
if len(readList) == 2:
total += 1
- (start1, sense1, chrom1, pair1) = readList[0]
- (start2, sense2, chrom2, pair2) = readList[1]
+ start1 = readList[0]["start"]
+ sense1 = readList[0]["sense"]
+ chrom1 = readList[0]["chrom"]
+ start2 = readList[1]["start"]
+ sense2 = readList[1]["sense"]
+ chrom2 = readList[1]["chrom"]
if chrom1 != chrom2:
diffChrom += 1