X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=erange.git;a=blobdiff_plain;f=farPairs.py;h=00cc91844b23084d712573261e996524739c9870;hp=73dd3ca851e2ca64cc71e3148a8eced359e44def;hb=0d3e3112fd04c2e6b44a25cacef1d591658ad181;hpb=5e4ae21098dba3d1edcf11e7279da0d84c3422e4 diff --git a/farPairs.py b/farPairs.py index 73dd3ca..00cc918 100644 --- a/farPairs.py +++ b/farPairs.py @@ -11,11 +11,13 @@ try: 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): @@ -24,16 +26,7 @@ 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: @@ -50,6 +43,32 @@ def main(argv=None): 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): @@ -62,7 +81,7 @@ def farPairs(rdsfile, outfilename, outbedname, sameChromOnly=False, doVerbose=Fa 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: @@ -80,7 +99,7 @@ def farPairs(rdsfile, outfilename, outbedname, sameChromOnly=False, doVerbose=Fa 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() @@ -88,8 +107,10 @@ def farPairs(rdsfile, outfilename, outbedname, sameChromOnly=False, doVerbose=Fa 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)