0

我正在使用这个模块来设计引物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 个好的左引物。为什么它不只是输出它们?

{'PRIMER_INTERNAL_NUM_RETURNED': 0L, 'PRIMER_RIGHT_EXPLAIN': 'considered 229, too many Ns 205, low tm 19, ok 5', 
 'PRIMER_INTERNAL_EXPLAIN': 'considered 1, unacceptable product size 1, ok 0',
 'PRIMER_PAIR_NUM_RETURNED': 0L, 'PRIMER_RIGHT_NUM_RETURNED': 0L, 'PRIMER_LEFT_NUM_RETURNED': 0L, 
'PRIMER_LEFT_EXPLAIN': 'considered 600, too many Ns 148, GC content failed 2, low tm 444, ok 6'}

编辑: 如果目标区域没有引物,我会使用 while 循环继续设计引物。为了确定要扩展的那一侧,即哪一侧未能制作底漆,我使用来自'PRIMER_LEFT_EXPLAIN'and的值'PRIMER_RIGHT_EXPLAIN'。这不适用于我发布的示例,并且由于我没有得到primer3 Standalone 为您提供的引物对输出,我不知道如何解决这个问题。

 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
4

2 回答 2

1

使用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

问题似乎是您的功能:

'PRIMER_PRODUCT_SIZE_RANGE': [[len(input_seq)-200,len(input_seq)]]

你的序列有 5318 个碱基的长度,而引物 3 被告知得到一个长度在 5118 和 5318 个碱基之间的产品,考虑到序列中的许多 N,这是相当困难的。

尝试删除 PRIMER_PRODUCT_SIZE_RANGE,您应该会得到一些结果。

于 2016-04-06T19:02:04.113 回答
0

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

于 2016-03-09T10:17:29.300 回答