Ejemplo n.º 1
0
def countBySeed(editFN, microFN, flankAmount, outFN):
        '''FlankF amount should be +/- 6'''
        flankAmount = int(flankAmount)

        eSites = cgEdit.loadEditingSites(editFN)
        micros = cgMicroRNA.loadMicroRNAFromTargetScan(microFN, 'hsa')
        gf = GenomeFetch.GenomeFetch('hg19')

        for eSite in eSites:

                chrom = eSite.chromosome
                coord = eSite.coordinate
                strand = eSite.strand

                flankingSeq = gf.get_seq_from_to(chrom, coord - flankAmount, coord + flankAmount, strand)
                eFlankingSeq = flankingSeq[:flankAmount] + 'G' + flankingSeq[flankAmount + 1:]
                flankingSeq.replace('T', 'U')
                eFlankingSeq.replace('T','U')

                checkID = 'hsa-miR-330-5p'
                
                for microRNA in micros:
                                
                        comSeed = cgSeqMod.reverseComplementSequence(microRNA.seed, True)

                        if comSeed in flankingSeq:
                                eSite.microTargets.append(microRNA.id)
                                if microRNA.id == checkID:
                                        print '%s:%s' % (eSite.chromosome, eSite.coordinate), eSite.strand, eSite.gene
                                microRNA.numBefore += 1
                                #print '@', 'flank', eSite.ID, microRNA.id, flankingSeq, comSeed                                

                        if comSeed in eFlankingSeq:
                                microRNA.numAfter += 1
                                if microRNA.id == checkID:
                                        print '%s:%s' % (eSite.chromosome, eSite.coordinate), eSite.strand, eSite.gene
                                eSite.eMicroTargets.append(microRNA.id)
                                #print '@', 'eFlank', eSite.ID, microRNA.id, eFlankingSeq, comSeed
                                
        for micro in micros:
                if micro.numBefore > 0 or micro.numAfter > 0:
                        #print micro.id, micro.numBefore, micro.numAfter
                        pass

        #write contents to file...
        outF = open(outFN, 'w')
        for eSite in eSites:
                if len(eSite.microTargets) == 0:
                        targets = 'None'
                else:
                        targets = ','.join(eSite.microTargets)

                if len(eSite.eMicroTargets) == 0:
                        eTargets = 'None'
                else:
                        eTargets = ','.join(eSite.eMicroTargets)

                outF.write('%s\t%s:%s\t%s\t%s\t%s\n' % (eSite.ID, eSite.chromosome, eSite.coordinate, eSite.strand, targets, eTargets))
Ejemplo n.º 2
0
def updateMicroTargets(editFN, microFN, flankAmount, outFN):
        '''FlankF amount should be +/- 6'''
        flankAmount = int(flankAmount)

        eSites = cgEdit.loadEditingSites(editFN)
        micros = cgMicroRNA.loadMicroRNAFromTargetScan(microFN, 'hsa')
        gf = GenomeFetch.GenomeFetch('hg19')

        for eSite in eSites:

                chrom = eSite.chromosome
                coord = eSite.coordinate
                strand = eSite.strand

                flankingSeq = gf.get_seq_from_to(chrom, coord - flankAmount, coord + flankAmount, strand)
                eFlankingSeq = flankingSeq[:flankAmount] + 'G' + flankingSeq[flankAmount + 1:]
                

                for microRNA in micros:
                        
                        comSeed = cgSeqMod.reverseComplementSequence(microRNA.seed, True)

                        if comSeed in flankingSeq:
                                eSite.microTargets.append(microRNA.id)
                                print '@', 'flank', eSite.ID, microRNA.id, flankingSeq, comSeed                                

                        if comSeed in eFlankingSeq:
                                eSite.eMicroTargets.append(microRNA.id)
                                print '@', 'eFlank', eSite.ID, microRNA.id, eFlankingSeq, comSeed
                                

                
        #write contents to file...
        outF = open(outFN, 'w')
        for eSite in eSites:
                if len(eSite.microTargets) == 0:
                        targets = 'None'
                else:
                        targets = ','.join(eSite.microTargets)

                if len(eSite.eMicroTargets) == 0:
                        eTargets = 'None'
                else:
                        eTargets = ','.join(eSite.eMicroTargets)

                outF.write('%s\t%s:%s\t%s\t%s\t%s\n' % (eSite.ID, eSite.chromosome, eSite.coordinate, eSite.strand, targets, eTargets))