예제 #1
0
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")
예제 #3
0
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")
             for fimofolder in FileList:
                 directorylist.append(rootdirectory + "/" + TF + "/peak_files/MEME/" + fimofolder)
     
     return directorylist
 
 directory = "/projects/dowellLab/ENCODE/HCT116"
 bidirectionalfilepath = "/Users/joru1876/ENCODEBidirectional/bidirectional_hits.merge.bed"
 homedir = "/Users/joru1876/BidirectionalTFAnalyzer/src"
 directorylist = fimo_directories(directory)
 distances = dict()
 for item in directorylist:
     os.chdir(item)
     TF = item.split('/')[5]
     Motif = item.split('/')[8]
     os.system("bedtools intersect -a " + bidirectionalfilepath + " -b fimo.rmdup.ord.cut.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))/2))
     if len(fimodist) > 0:
         if TF in distances:
             samplemean = np.mean(fimodist)
             samplestanddev = np.std(fimodist)
             z = samplemean/(samplestanddev/math.sqrt(len(fimodist)))
             distances[TF].append(Motif)
             distances[TF].append(fimodist)
         else:
             distances[TF] = [Motif, fimodist]
def run(fimodir):

    fimofile = fimodir + "/fimo.txt"

    return Functions.parse_file(fimodir + "/fimo.txt")[1 : len(Functions.parse_file(fimodir + "/fimo.txt"))]