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