def run(directory, bidirectionalfilepath, homedir): fimodirectorylist = Functions.fimo_directories(directory) counts = dict() for fimo in fimodirectorylist: TF = fimo.split('/')[5] if TF not in counts: counts[TF] = [] fimoname = fimo.split('/')[9] fimofile = fimo + "/fimo.cut.rmdup.ord.merge.bed" chipfile = Functions.parent_dir(Functions.parent_dir(fimo)) + '/ConsolidatedPeaks.merge.bed' vennlist = Functions.venn_d3(bidirectionalfilepath, chipfile, fimofile) counts[TF].append([fimoname, vennlist]) os.chdir(homedir) os.chdir('..') os.chdir("./files") outfile = open("BidirChIpMotifOverlaps.txt",'w') outfile.write("TF\nMotif#\nBidir\tChip\tMotif\tBC\tCB\tBM\tMB\tCM\tMC\tBCM\tCBM\tMBC\n") for key in counts: outfile.write(key) outfile.write("\n") for item in counts[key]: outfile.write(item[0]) outfile.write("\n") for value in item[1]: outfile.write(value) outfile.write("\t") outfile.write("\n")
def run(directory): directorylist = Functions.fimo_directories(directory) for item in directorylist: os.chdir(item) FileList = Functions.parse_file("fimo.txt") Functions.cut_file("fimo.txt", [i for i in range(1, len(FileList[0]))], "fimo.cut.bed") Functions.remove_duplicates_int("fimo.cut.bed", "fimo.cut.rmdup.bed", True) Functions.order_file("fimo.cut.rmdup.bed", "fimo.cut.rmdup.ord.bed", True) Functions.replace_header("fimo.cut.rmdup.ord.bed", "#chrom\tstart\tstop\tstrand") os.system("bedtools merge -i fimo.cut.rmdup.ord.bed > fimo.cut.rmdup.ord.merge.bed")
def run(directory, bidirectionalfilepath, homedir): directorylist = Functions.fimo_directories(directory) distances = dict() for item in directorylist: if os.path.exists(item): os.chdir(item) TF = item.split('/')[5] Motif = item.split('/')[9] os.system("bedtools intersect -a " + bidirectionalfilepath + " -b fimo.cut.rmdup.ord.merge.bed -wa -wb > BidirectionalMotifIntersect.bed") FileList = Functions.parse_file("BidirectionalMotifIntersect.bed") fimodist = [] for line in FileList: chrom1, start1, stop1, chrom2, start2, stop2 = line[0:6] i = (float(start1) + float(stop1))/2 x = (float(start2) + float(stop2))/2 fimodist.append((i-x)/(float(stop1)-float(start1))) if len(fimodist) > 0: if TF in distances: distances[TF].append(Motif) distances[TF].append(fimodist) else: distances[TF] = [Motif, fimodist] os.chdir(homedir) os.chdir('..') os.chdir("./files") outfile = open("TFMotifToBidirDistance.txt",'w') for key in distances: outfile.write(key) outfile.write("\n") for item in distances[key]: if 'fimo_out' in item: outfile.write(str(item)) else: for value in item: outfile.write(str(value)) outfile.write(",") outfile.write("\n")
import os import Functions ##Removes duplicates and creates non-overlapping intervals for FIMO files def run(directory): directorylist = Functions.fimo_directories(directory) for item in directorylist: os.chdir(item) FileList = Functions.parse_file("fimo.txt") Functions.cut_file("fimo.txt", [i for i in range(1, len(FileList[0]))], "fimo.cut.bed") Functions.remove_duplicates_int("fimo.cut.bed", "fimo.cut.rmdup.bed", True) Functions.order_file("fimo.cut.rmdup.bed", "fimo.cut.rmdup.ord.bed", True) Functions.replace_header("fimo.cut.rmdup.ord.bed", "#chrom\tstart\tstop\tstrand") os.system("bedtools merge -i fimo.cut.rmdup.ord.bed > fimo.cut.rmdup.ord.merge.bed") if __name__ == "__main__": directory = "/projects/dowellLab/ENCODE/HL60" directorylist = Functions.fimo_directories(directory) for item in directorylist: os.chdir(item) FileList = Functions.parse_file("fimo.txt") Functions.cut_file("fimo.txt", [i for i in range(1, len(FileList[0]))], "fimo.cut.bed") Functions.remove_duplicates_int("fimo.cut.bed", "fimo.cut.rmdup.bed", True) Functions.order_file("fimo.cut.rmdup.bed", "fimo.cut.rmdup.ord.bed", True) Functions.replace_header("fimo.cut.rmdup.ord.bed", "#chrom\tstart\tstop\tstrand") os.system("bedtools merge -i fimo.cut.rmdup.ord.bed > fimo.cut.rmdup.ord.merge.bed")
def run(directory, bidirectionalfilepath, homedir): directorylist = Functions.fimo_directories(directory)
def run(directory, bidirectionalfilepath, homedir): TFdirectorylist = Functions.chip_peak_directories(directory) fimodirectorylist = Functions.fimo_directories(directory) counts = dict() for item in TFdirectorylist: if os.path.exists(item + "/outfiles"): os.chdir(item + "/outfiles") TF = item.split('/')[5] counts[TF] = [] os.system("bedtools intersect -a " + bidirectionalfilepath + " -b ConsolidatedPeaks.merge.bed -c > Bidir_Chip_Counts.bed") for item in fimodirectorylist: os.chdir(item) TF = item.split('/')[5] fimo = item.split('/')[9] os.system("bedtools intersect -a " + bidirectionalfilepath + " -b fimo.cut.rmdup.ord.merge.bed -c > Bidir_Motif_Counts.bed") os.system("bedtools intersect -a " + directory + "/" + TF + "/peak_files/outfiles/ConsolidatedPeaks.merge.bed -b fimo.cut.rmdup.ord.merge.bed -c > Chip_Motif_Counts.bed") BidirChipFile = open(directory + "/" + TF + "/peak_files/outfiles/Bidir_Chip_Counts.bed") BidirMotifFile = open("Bidir_Motif_Counts.bed") ChipMotifFile = open("Chip_Motif_Counts.bed") BidirTot = Functions.line_count("Bidir_Motif_Counts.bed") ChipTot = Functions.line_count("Chip_Motif_Counts.bed") MotifTot = Functions.line_count("fimo.cut.rmdup.ord.merge.bed") BidirChipCount = 0 ChipBidirCount = 0 BidirMotifCount = 0 MotifBidirCount = 0 ChipMotifCount = 0 MotifChipCount = 0 AllCount = 0 for line1 in BidirChipFile: line2 = BidirMotifFile.readline() x = int(line1.strip().split()[3]) y = int(line2.strip().split()[3]) if x != 0 and y != 0: AllCount += 1.0 ChipBidirCount += x-1 MotifBidirCount += y-1 elif x != 0: BidirChipCount += 1 ChipBidirCount += x elif y != 0: BidirMotifCount += 1 MotifBidirCount += y for line3 in ChipMotifFile: z = int(line3.strip().split()[3]) if z != 0: ChipMotifCount += 1 MotifChipCount += z ChipMotifCount = ChipMotifCount - AllCount MotifChipCount = MotifChipCount - AllCount BidirCount = BidirTot - AllCount - BidirChipCount - BidirMotifCount ChipCount = ChipTot - AllCount - ChipMotifCount - ChipBidirCount MotifCount = MotifTot - AllCount - MotifBidirCount - MotifChipCount counts[TF].append([fimo, BidirCount, ChipCount, MotifCount, BidirChipCount, BidirMotifCount, ChipMotifCount, AllCount]) os.chdir(homedir) os.chdir('..') os.chdir("./files") outfile = open("BidirChIpMotifOverlaps.txt",'w') outfile.write("TF\nMotif#\nBidir\tChip\tMotif\tBC\tBM\tCM\tBCM\n") for key in counts: outfile.write(key) outfile.write("\n") for item in counts[key]: outfile.write(item[0]) outfile.write("\n") for i in range(1,len(item)): outfile.write(str(item[i])) outfile.write("\t") outfile.write("\n")