def run(bidirfile,windowsize): #Takes in a bidirectional file and outputs a dictionary of {chrom: [(start,stop)]} #based on windowsize bidirdict = dict() bidirlist = Functions.parse_bidirfile(bidirfile) for item in bidirlist: chrom,start,stop = item[0:3] if not chrom in bidirdict: bidirdict[chrom] = list() mid = (float(start)+float(stop))/2 bidirdict[chrom].append((int(mid-windowsize),int(mid+windowsize))) return bidirdict
def run(bidirectionalfile, DNAseFile): bidirlist = Functions.parse_bidirfile(bidirectionalfile) bidirdict = dict() datapoints = [] for item in bidirlist: chrom, start, stop, parameters = item if chrom not in bidirdict: bidirdict[chrom] = [] else: bidirdict[chrom].append((start,stop,parameters)) dnasedict = Functions.create_tup_dict(DNAseFile, False) for chrom in dnasedict: if chrom in bidirdict: bidirtree = node.tree(bidirdict[chrom]) for item in dnasedict[chrom]: bidirsite = bidirtree.searchInterval(item) if len(bidirsite) != 0: start = float(item[0]) stop = float(item[1]) size = stop - start datapoints.append((bidirsite[2][6],size)) return datapoints