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))
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))