예제 #1
0
def run(directory):
    directorylist = Functions.chip_peak_directories(directory)
    for directory1 in directorylist:
        os.chdir(directory1)
        RemoveList = [item for item in os.listdir(directory1) if 'ENC' not in item and 'SL' not in item]
        for item in RemoveList:
            if '.' in item:
                os.system("rm " + item)
            else:
                shutil.rmtree(directory1 + "/" + item)
예제 #2
0
def run(directory, maxsites, tomtomdir):
    directorylist = Functions.chip_peak_directories(directory)
    for item in directorylist:
        if os.path.exists(item + "/outfiles"):
            os.chdir(item + "/outfiles")
            os.system("meme-chip ConsolidatedPeaks.merge.fasta -oc ./MEME meme-maxsites " + str(maxsites))
            os.chdir(item + "/outfiles/MEME")
            os.system("tomtom combined.meme " + tomtomdir)
        else:
            print "File not found in: " + item
def run(directory, referencefilepath):
    directorylist = Functions.chip_peak_directories(directory)
    for item in directorylist:
        if os.path.exists(item + "/outfiles"):
            os.chdir(item + "/outfiles")
            os.system(
                "bedtools getfasta -fi "
                + referencefilepath
                + " -bed ConsolidatedPeaks.merge.bed -fo ConsolidatedPeaks.merge.fasta"
            )
        else:
            print "File not found in: " + item
def run(directory):
    directorylist = Functions.chip_peak_directories(directory)
    for item in directorylist:
        os.chdir(item)
        FileList = [file1 for file1 in os.listdir(item) if '.bed' in file1]
        if len(FileList) != 0:
            if 'outfiles' not in os.listdir(item):
                os.mkdir("./outfiles")
            if len(FileList) > 1:
                os.system("bedtools intersect -a " + FileList[0] + " -b " + " ".join(FileList[1:len(FileList)]) + " > ./outfiles/ConsolidatedPeaks.bed")
            else:
                os.system("cat " + FileList[0] + " > ./outfiles/ConsolidatedPeaks.bed")
            os.chdir("./outfiles")
            Functions.order_file("ConsolidatedPeaks.bed", "ConsolidatedPeaks.bed", False)
            os.system("bedtools merge -i ConsolidatedPeaks.bed > ConsolidatedPeaks.merge.bed")
        else:
            print "No bed files found in: " + item
    for item in directorylist:
        os.chdir(item)
        FileList = [file1 for file1 in os.listdir(item) if '.bed' in file1]
        if len(FileList) != 0:
            if 'outfiles' not in os.listdir(item):
                os.mkdir("./outfiles")
            if len(FileList) > 1:
                os.system("bedtools intersect -a " + FileList[0] + " -b " + " ".join(FileList[1:len(FileList)]) + " > ./outfiles/ConsolidatedPeaks.bed")
            else:
                os.system("cat " + FileList[0] + " > ./outfiles/ConsolidatedPeaks.bed")
            os.chdir("./outfiles")
            Functions.order_file("ConsolidatedPeaks.bed", "ConsolidatedPeaks.bed", False)
            os.system("bedtools merge -i ConsolidatedPeaks.bed > ConsolidatedPeaks.merge.bed")
        else:
            print "No bed files found in: " + item

        
if __name__ == "__main__":
    directory = "/projects/dowellLab/ENCODE/HL60"
    directorylist = Functions.chip_peak_directories(directory)
    for item in directorylist:
        os.chdir(item)
        FileList = [file1 for file1 in os.listdir(item) if 'bed' in file1]
        if 'outfiles' not in os.listdir(item):
            os.mkdir("./outfiles")
        if len(FileList) > 1:
            os.system("bedtools intersect -a " + FileList[0] + " -b " + " ".join(FileList[1:len(FileList)]) + " > ./outfiles/ConsolidatedPeaks.bed")
        else:
            os.system("cat " + FileList[0] + " > ConsolidatedPeaks.bed")
        os.chdir("./outfiles")
        os.system("bedtools merge -i ConsolidatedPeaks.bed > ConsolidatedPeaks.merge.bed")
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")
    
    return BackgroundDict, FnoBDict, FandBDict
    
    
if __name__ == "__main__":
    #Specify paths to directories or files
    BidirFile = '/scratch/Users/joru1876/Allen2014_DMSO2_3-1_bidirectional_hits_intervals.bed'
    ChipDir = '/scratch/Users/joru1876/HCT116v2'
    FimoDir = '/scratch/Users/joru1876/HOCOMOCODatabaseFIMO'
    
    FIMOTFDict = dict()
    for TF in Functions.HOCOMOCO_fimo_directories(FimoDir):
        TFlist = TF.split('/')
        FIMOTFDict[TFlist[len(TFlist)-1][0:TFlist[len(TFlist)-1].index('_')]] = TF
    
    ChipDirList = Functions.chip_peak_directories(ChipDir)
    for directory in ChipDirList:
        directorylist = directory.split('/')
        TF = directorylist[len(directorylist)-2]
        if TF in FIMOTFDict:
	    print TF
            ChipFile = directory + '/' + [i for i in os.listdir(directory) if 'ENC' in i][0]
            BackgroundDict, FnoBDict, FandBDict = run(BidirFile,ChipFile,FIMOTFDict[TF] + '/fimo.txt')
            
            if not os.path.exists(Functions.parent_dir(directory) + '/ChIPPeakMotifValidator_out'):
                os.mkdir(Functions.parent_dir(directory) + '/ChIPPeakMotifValidator_out')
            os.chdir(Functions.parent_dir(directory) + '/ChIPPeakMotifValidator_out')
            outfile1 = open('Background.txt','w')
            for chrom in BackgroundDict:
                outfile1.write(chrom)
                outfile1.write('\t')