Python primer3 PCR引物设计

2024-05-16 10:45:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用这个模块来设计引物https://pypi.python.org/pypi/primer3-py,但我得到了意想不到的结果。在

import primer3
input_seq = 'TAGTTTATGACTATATGGGGAGGTAAATAATGTATGTACTTCAAGAAAATAGGACAGTAGACTGACTCTAAATAATANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTTCTTTTTTTTTTTAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCATTTCTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGATGGGTGATTTTCAAAGAACAAGCATGGGCATATATTATAATGTCATATCACACCACTTGTTGGCTCTTCAAAAAGCAGTGGGGGTTAAGAATAATGGAGGTTTTCAACTCAAGATAAATGTGCATAACCAGAAATAGGAATAGAATATAATGCCACAGGTTAATTTTTGGTATTAACAATGATGAGATACTGAGAAGTTTCAGAAAATACCTTTTAGCCTGAAGCACTCCTAAATGTTAGGTAGAAAGTCATGTTTTAAATTTACACATAAGTCAATGCCCAAAAATTCAAATATAATGTGGAAACAAATACATATGATTTTTTGATTAAGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNACTTATTTGTTGCATTGATAAGTCTATATGAATATTAACTTGTGGAATTAGAAGGACATTCATGCATTTCCAATTCAAAAATAGAATCCATCGACTGATCTTCAGGGACATTAATAGAAGAATCATTGAAATATAAAGTCACTAGTAAGTGATAAGTAATTTTGTTGACTAGAAAACTGTAAAATGTTGGTAGAAATAAAGTAGAAAACATTAGAGTGTTGGTGAAGGGACTCTAGGAAAGGTTGGTTGAGAAAAGCAAACGTCACCAGTCGTGCCCTGGTTTGTAAGTGTACATGTAACTACTGTTTTAAAAAGTAGATATGAAATCATTTCATGTGCTATTAGTCATGTCAAGAGGAGCTTTCAATGTATTTCACAGTATGTATACATATATTATGTTCAATTAGCAGACTCTGACTCAGATACAAAAGGCTCTTTGTCCATATGTGGAAATACTGATACTGTTTTAATTAATATTCTTTTATGTTTTGTACCAATGAGGATTATTTTAGAGTTCGAGTCATGAATTCTTTACGTGGAGGCATGACTGGAGCATGTTTAAATGAAACAAGTAGTATAAAGACATGTAGATATTGGCACTATGAATGAGAATAAAAAGATATTCTCAAAATTTATGTAAGAAGTTGTCTTAAACTTGGGTAATGATCCCTTAGGTCTTTTCCTAATTGAATGTGTCAGTTATGAAAATTGTGACTAGCGCACTTAATATNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTAGTAATACCGAACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTGAACTTCCTCATAAAATTANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNAAATCTTCTTTAGCAAGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTCCANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTACTTTACTTTGATGGTGAATAAGGGGGACACTTATCAGGCTAAACACTGTAGACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNAGA'
primer = (primer3.bindings.designPrimers(
            {
                'SEQUENCE_ID': 'hmhm',
                'SEQUENCE_TEMPLATE': input_seq,
                'SEQUENCE_EXCLUDED_REGION': [0, 0] 
            },
            {
                'PRIMER_TASK': 'generic',
                'PRIMER_PICK_LEFT_PRIMER': 1,
                'PRIMER_PICK_INTERNAL_OLIGO': 0,
                'PRIMER_PICK_RIGHT_PRIMER': 1,
                'PRIMER_NUM_RETURN': 5,
                'PRIMER_OPT_SIZE': 20,
                'PRIMER_MIN_SIZE': 18,
                'PRIMER_MAX_SIZE': 25,
                'PRIMER_OPT_TM': 60.0,
                'PRIMER_MIN_TM': 57.0,
                'PRIMER_MAX_TM': 63.0,
                'PRIMER_MIN_GC': 20.0,
                'PRIMER_MAX_GC': 80.0,
                'PRIMER_MAX_POLY_X': 5,
                'PRIMER_SALT_MONOVALENT': 50.0,
                'PRIMER_DNA_CONC': 50.0,
                'PRIMER_MAX_NS_ACCEPTED': 0,
                'PRIMER_MAX_SELF_ANY': 12,
                'PRIMER_MAX_SELF_END': 8,
                'PRIMER_PAIR_MAX_COMPL_ANY': 12,
                'PRIMER_PAIR_MAX_COMPL_END': 8,
                'PRIMER_PRODUCT_SIZE_RANGE': [[len(input_seq)-200,len(input_seq)]],}))
print primer

我想设计PCR引物,但由于某些原因它似乎失败了,因为没有设计内部寡核苷酸(据我所知)。它说有5个正常的右引物和6个正常的左引物。为什么不直接输出呢?在

^{pr2}$

编辑: 如果目标区域没有引物,我使用while循环继续设计引物。为了确定要展开的哪一面,即哪一面未能生成primer,我使用'PRIMER_LEFT_EXPLAIN''PRIMER_RIGHT_EXPLAIN'中的值。这对我发布的示例不起作用,而且由于我没有得到primer3 standalone提供的primer对输出,我不确定如何解决这个问题。在

 while len(primer.keys())/20 == 0:

        if int(primer['PRIMER_LEFT_EXPLAIN'].split(' ')[-1]) == 0:
            print 'Expanding Left', primer['PRIMER_LEFT_EXPLAIN'].split(' ')[-1]
            start += -50

        elif int(primer['PRIMER_RIGHT_EXPLAIN'].split(' ')[-1]) == 0:
            print 'Expanding Right', primer['PRIMER_RIGHT_EXPLAIN'].split(' ')[-1]
            end += 50

        else:
            print primer
            raise Warning('Both sides have primers')

        input_primer3 = str(mm10_chr14_rec.seq[start:end].upper())
        primer = (primer3.bindings.designPrimers(
            {
                'SEQUENCE_ID': 'hmhm',
                'SEQUENCE_TEMPLATE': input_primer3,
                'SEQUENCE_EXCLUDED_REGION': [excl_start, excl_length] #start, length; might want to extend region?
            },
            {
                'PRIMER_OPT_SIZE': 20,
                'PRIMER_PICK_INTERNAL_OLIGO': 0,
                'PRIMER_MIN_SIZE': 18,
                'PRIMER_MAX_SIZE': 25,
                'PRIMER_OPT_TM': 60.0,
                'PRIMER_MIN_TM': 57.0,
                'PRIMER_MAX_TM': 63.0,
                'PRIMER_MIN_GC': 20.0,
                'PRIMER_MAX_GC': 80.0,
                'PRIMER_MAX_POLY_X': 100,
                'PRIMER_SALT_MONOVALENT': 50.0,
                'PRIMER_DNA_CONC': 50.0,
                'PRIMER_MAX_NS_ACCEPTED': 0,
                'PRIMER_MAX_SELF_ANY': 12,
                'PRIMER_MAX_SELF_END': 8,
                'PRIMER_PAIR_MAX_COMPL_ANY': 12,
                'PRIMER_PAIR_MAX_COMPL_END': 8,
                'PRIMER_PRODUCT_SIZE_RANGE': [[len(input_primer3)-200,len(input_primer3)]],}))

        if end-start > 8000:
            print 'PCR fragment is bigger than 8000 bp after extending bounds'
#         raise Exception('PCR fragment is bigger than 8000 bp after extending bounds')
    if end-start > 8000:
        print input_primer3
    print 'size', end-start

Tags: inputsizelenminstartseqmax引物
2条回答

没有设计内部寡头,因为您使用了参数['PRIMER_PICK_internal_oligo':0]。空引物对的主要原因是输入序列中的“Ns太多”,因此程序无法计算GC值和估计Tm。在

对于primer3独立版,错误消息更详细:

PRIMER_LEFT_EXPLAIN=considered 600, too many Ns 148, GC content failed 2, low tm 444, ok 6
PRIMER_RIGHT_EXPLAIN=considered 229, too many Ns 205, low tm 19, ok 5
PRIMER_PAIR_EXPLAIN=considered 1, unacceptable product size 1, ok 0

问题似乎在于你的职能:

^{pr2}$

你的序列有5318个碱基的长度,而primer3被要求得到长度在5118到5318个碱基之间的乘积,考虑到序列中的许多n,这是相当困难的。

试着去除底漆产品的尺寸范围,你会得到一些结果。在

相关问题 更多 >