def insertSeqIntoSeq(seq, insert, homologyF, homologyR): '''Takes a DNA string as argument and inserts a sequence by homologous recombination''' seq = seq.lower() homologyF = homologyF.lower() homologyR = homologyR.lower() if seq.find(homologyF) != -1: beforeHomology = seq.split(homologyF)[0] else: print 'Forward homology region does not exist in plasmid' exit() homologyR_rc = Primers.reverseComp(homologyR).lower() if seq.find(homologyR_rc) != -1: afterHomology = seq.split(homologyR_rc)[1] else: print 'Reverse homology region does not exist in plasmid' exit() LenSequenceRepacedByInsert = len(seq) - (len(beforeHomology)+len(afterHomology)+len(homologyF) + len(homologyR)) newPlamidSeq = beforeHomology + homologyF + insert + homologyR_rc + afterHomology before = len(beforeHomology) return newPlamidSeq, before, LenSequenceRepacedByInsert
genename = linelist[0] genename2 = genename.split (' ') genename3 = genename2[0] promoter = linelist[3] promoterdict[genename3] = promoter if PrimerPosition =='Promoter': for gene1 in genes: gene = gene1.rstrip('\n') gene = gene.rstrip('\r') upstreamseq = str(mydict[gene][1]) try: promoter_len = int(promoterdict[gene]) promoter_seq = upstreamseq [-promoter_len:] if direction == 'y': promoter_seq = Primers.reverseComp(promoter_seq) # Remember to include if sequence is to be reverse orientation # promoter_seq = Primers.reverseComp(promoter_seq) if PrimerType == 'amplification': primers = Primers.designPrimerpair(promoter_seq, PrimerTM) primers = homology_F + primers[0], homology_R + primers[1] if writeAPE == 'y': AP.SaveToApe(promoter_seq, str(mydict[gene][0])+' '+gene) if plas == 'y': newPlasmid = AP.replaceAPEseq(MyPlasmid, promoter_seq, homology_F , homology_R ,str(mydict[gene][0]) ) newPlasmid = AP.insertFeature(newPlasmid, promoter_seq, label = str(mydict[gene][0]), colour = 'cyan') AP.SaveToApe(newPlasmid, str(mydict[gene][0])) elif PrimerType =='homology': primers = Primers.designHomologyPair(promoter_seq) primers = primers[0] + amplify_F, primers[1] + amplify_R