except:
pass
-import sys, time
+import sys
+import time
import optparse
-from commoncode import readDataset
+import ReadDataset
+from commoncode import getConfigParser, getConfigOption, getConfigBoolOption, getConfigIntOption
-print "%prog: version 1.3"
+print "farPairs: version 1.4"
def main(argv=None):
usage = "usage: python %prog rdsfile outfile bedfile [--verbose] [--cache numPages] [--minDist bp] [--maxDist bp] [--minCount count] [--label string]"
- parser = optparse.OptionParser(usage=usage)
- parser.add_option("--sameChromOnly", action="store_true", dest="sameChromOnly")
- parser.add_option("--cache", type="int", dest="cachePages")
- parser.add_option("--verbose", action="store_true", dest="doVerbose")
- parser.add_option("--minDist", type="int", dest="minDist")
- parser.add_option("--maxDist", type="int", dest="maxDist")
- parser.add_option("--minCount", type="int", dest="minCount")
- parser.add_option("--label", dest="label")
- parser.set_defaults(sameChromOnly=False, doVerbose=False, cachePages=None,
- minDist=1000, maxDist=500000, minCount=2, label=None)
+ parser = getParser(usage)
(options, args) = parser.parse_args(argv[1:])
if len(args) < 3:
options.label)
+def getParser(usage):
+ parser = optparse.OptionParser(usage=usage)
+ parser.add_option("--sameChromOnly", action="store_true", dest="sameChromOnly")
+ parser.add_option("--cache", type="int", dest="cachePages")
+ parser.add_option("--verbose", action="store_true", dest="doVerbose")
+ parser.add_option("--minDist", type="int", dest="minDist")
+ parser.add_option("--maxDist", type="int", dest="maxDist")
+ parser.add_option("--minCount", type="int", dest="minCount")
+ parser.add_option("--label", dest="label")
+
+ configParser = getConfigParser
+ section = "farPairs"
+ sameChromOnly = getConfigBoolOption(configParser, section, "sameChromOnly", False)
+ doVerbose = getConfigBoolOption(configParser, section, "doVerbose", False)
+ cachePages = getConfigOption(configParser, section, "cachePages", None)
+ minDist = getConfigIntOption(configParser, section, "minDist", 1000)
+ maxDist = getConfigIntOption(configParser, section, "maxDist", 500000)
+ minCount = getConfigIntOption(configParser, section, "minCount", 2)
+ label = getConfigOption(configParser, section, "label", None)
+
+ parser.set_defaults(sameChromOnly=sameChromOnly, doVerbose=doVerbose, cachePages=cachePages,
+ minDist=minDist, maxDist=maxDist, minCount=minCount, label=label)
+
+ return parser
+
+
def farPairs(rdsfile, outfilename, outbedname, sameChromOnly=False, doVerbose=False,
cachePages=None, minDist=1000, maxDist=500000, minCount=2, label=None):
if label is None:
label = rdsfile
- RDS = readDataset(rdsfile, verbose=True, cache=doCache)
+ RDS = ReadDataset.ReadDataset(rdsfile, verbose=True, cache=doCache)
rdsChromList = RDS.getChromosomes()
if doVerbose:
continue
print chromosome
- uniqDict = RDS.getReadsDict(fullChrom=True, chrom=chromosome, noSense=True, withFlag=True, withPairID=True, doUniqs=True, readIDDict=True)
+ uniqDict = RDS.getReadsDict(fullChrom=True, chrom=chromosome, noSense=True, withFlag=True, doUniqs=True, readIDDict=True)
if doVerbose:
print len(uniqDict), time.ctime()
readList = uniqDict[readID]
if len(readList) == 2:
total += 1
- (start1, flag1, pair1) = readList[0]
- (start2, flag2, pair2) = readList[1]
+ start1 = readList[0]["start"]
+ flag1 = readList[0]["flag"]
+ start2 = readList[1]["start"]
+ flag2 = readList[1]["flag"]
if flag1 != flag2:
dist = abs(start1 - start2)