python实⽤性⾃⼰设计_⽤Python设计PCR引物:Primer3-py
初识
PCR引物设计应该算是⽣物实验基本技能吧,⼯具也⾮常多。Primer-BLAST、Primer Premier 都是⽐较经典的软件,除此之外还有很多新的在线设计软件,也很⽅便。不过今天不是要讲怎么⽤这些现成软件来设计引物,⽽是要讲讲怎么⽤Python来做引物设计。
Primer3-py 是 Primer3 在 Python 中的⼀个“包装”,⽤ Primer3-py 官⽅的说法就是:提供⼀个简单可靠的⽅式让你能更好的⾃动化设计引物 (The intention is to provide a simple and reliable interface for automated oligo analysis and design)。
注:有⼈可能没怎么听过 Primer3,这是个引物设计的程序,NCBI 的 Primer-BLAST 引物设计部分⽤的就是 Primer3。除此之
外,Primer3 还有⼏个⽹页版和命令⾏版本,引⽤次数⾮常⾼,⾼到你难以想象 ... 可以检索⼀下 Primer3 on the WWW for General Users And For Biologist Programmers
安装
有两种⽅法,都⾮常⽅便:
⽅法⼀,使⽤ pip:
pip install Cython
pip install primer3-py
⽅法⼆,使⽤ Bioconda:
conda install -c bioconda primer3-py
安装好 Primer3-py 之后,不需要另外再单独安装 Primer3。
注:我个⼈推荐使⽤ Bioconda 来安装⽣物及编程相关的各种软件和包,⾮常出⾊的⼀个管理器,虽然有些⼩瑕疵,但瑕不掩瑜,对做⽣信分析的⼈来说算得上是福⾳,特别是在你被各种软件各种包的安装问题折磨千百遍之后。(这⾥特指在 Linux 下,其他类型的系统上没有⽤过,就不评价了)
功能
Primer3-py 的功能其实分两部分:⼀部分是其本⾝⾃带的 引物“热⼒学计算” 功能,另⼀部分就是 调⽤ Primer3 进⾏引物设计 的功能。
后⽂⽤做⽰例的模板序列来⾃于部分 BRCA2 的 DNA 序列,FASTA 序列如下:
>NC_000013.11:32315480-32399672 Homo sapiens chromosome 13, GRCh38.p12 Primary Assembly
GTGGCGCGAGCTTCTGAAACTAGGCGGCAGAGGCGGAGCCGCTGTGGCACTGCTGCGCCTCTGCTGCGCC
TCGGGTGTCTTTTGCGGCGGTGGGTCGCCGCCGGGAGAAGCGTGAGGGGACAGATTTGTGACCGGCGCGG
TTTTTGTCAGCTTACTCCGGCCAAAAAAGAACTGCACCTCTGGAGCGGGTTAGTGGTGGTGGTAGTGGGT
Primer3-py ⾃带功能:引物热⼒学参数评估
主要有5个可⽤的命令,分别评估⼏个引物的热⼒学参数:
热⼒学参数
Primer3-py 命令
Tm值
calcTm()
发夹结构
同源⼆聚体
calcHomodimer()
异质⼆聚体
calcHeterodimer()
3'端稳定性
calcEndStability()
具体例⼦:
FASTA = """>NC_000013.11:32315480-32399672 Homo sapiens chromosome 13, GRCh38.p12 Primary Assembly GTGGCGCGAGCTTCTGAAACTAGGCGGCAGAGGCGGAGCCGCTGTGGCACTGCTGCGCCTCTGCTGCGCC TCGGGTGTCTTTTGCGGCGGTGGGTCGCCGCCGGGAGAAGCGTGAGGGGACAGATTTGTGACCGGCGCGG TTTTTGTCAGCTTACTCCGGCCAAAAAAGAACTGCACCTCTGGAGCGGGTTAGTGGTGGTGGTAGTGGGT
"""
# 计算引物 Tm 值
primer3.calcTm("GTGGCGCGAGCTTCTGAAAC")
""" 结 果 >>> 56.89119991230376 """
# 检查引物中是否有 发夹结构
primer3.calcHairpin("GTGGCGCGAGCTTCTGAAAC")
""" 结 果 >>> ThermoResult(structure_found=True, tm=57.92, dg=-1484.80, dh=-23500.00, ds=-70.98)"""
# 计算引物 同源⼆聚体
primer3.calcHomodimer("GTGGCGCGAGCTTCTGAAAC")
""" 结 果 >>> ThermoResult(structure_found=True, tm=9.76, dg=-6863.20, dh=-45200.00, ds=-123.61) """
# 计算引物 异质⼆聚体
primer3.calcHeterodimer("GTGGCGCGAGCTTCTGAAAC", FASTA)
""" 结 果 >>> ThermoResult(structure_found=True, tm=21.59, dg=-6561.64, dh=-89000.00, ds=-265.80) """
# 计算引物 3'端稳定性
primer3.bindings.calcEndStability("GTGGCGCGAGCTTCTGAAAC", FASTA)
""" 结 果 >>> ThermoResult(structure_found=True, tm=15.21, dg=-3968.79, dh=-95900.00, ds=-296.41) """
通过 Primer3-py 调⽤ Primer3:设计引物
⽤ Primer3-py 来调⽤ Primer3 可以说是⾮常⽅便了,⼀⾏代码的事:
primer3.bindings.designPrimers()
不过这⾏命令的主要参数有两个:seq_args(Primer3 序列和设计参数)和 global_args(Primer3 全局参
数)
在这⾥就先不⼀⼀细说了,修改了 Primer3-py ⽂档⽰例参数⽤来演⽰, 在下⼀篇⽂章⾥会挑重点和结果⼀起分析。
# Primer3 序列和设计参数,必须要有
'SEQUENCE_ID': 'BRCA2_SEGMENT',
'SEQUENCE_TEMPLATE': "GTGGCGCGAGCTTCTGAAACTAGGCGGCAGAGGCGGAGCCGCTGTGGCACTGCTGCGCCTCTGCTGCGCCTCGGGTGTCTTTTGCGGCG
'SEQUENCE_INCLUDED_REGION': [0,210],
}
# Primer3 全局参数,这个可选
global_args = {
'PRIMER_OPT_SIZE': 20,
'PRIMER_PICK_INTERNAL_OLIGO': 1,
'PRIMER_INTERNAL_MAX_SELF_END': 8,
'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_INTERNAL_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': [[75,100],[100,125],[125,150],[150,175],[175,200]],
}
下载文件是jsp格式# 执⾏命令并返回结果
primer3_result = primer3.bindings.designPrimers(seq_args, global_args)
# 或者不使⽤ Primer3
primer3_primary_result = primer3.bindings.designPrimers(seq_args)
返回的结果是⼀个Python字典,内容⾮常多,乍⼀看毫⽆头绪,不过处理⼀下就会清晰很多。
'PRIMER_RIGHT_EXPLAIN': 'considered 1088, GC content failed 47, low tm 93, high tm 644, ok 304',
'PRIMER_INTERNAL_EXPLAIN': 'considered 1885, GC content failed 67, low tm 453, high tm 661, ok 704', 'PRIMER_PAIR_EXPLAIN': 'considered 186, unacceptable product size 181, ok 5',
'PRIMER_LEFT_NUM_RETURNED': 5,
'PRIMER_RIGHT_NUM_RETURNED': 5,
'PRIMER_INTERNAL_NUM_RETURNED': 5,
'PRIMER_PAIR_NUM_RETURNED': 5,
学电脑编程要什么学历'PRIMER_PAIR_0_PENALTY': 0.07203216442314897,
'PRIMER_LEFT_0_PENALTY': 0.0360099993838503,
'PRIMER_RIGHT_0_PENALTY': 0.03602216503929867,
'PRIMER_INTERNAL_0_PENALTY': 0.04672637428285498,
'PRIMER_LEFT_0_SEQUENCE': 'AGCGTGAGGGGACAGATTTG',
'PRIMER_RIGHT_0_SEQUENCE': 'GCTCCAGAGGTGCAGTTCTT',
'PRIMER_INTERNAL_0_SEQUENCE': 'CCGGCGCGGTTTTTGTCAGC',
'PRIMER_LEFT_0': (108, 20),
'PRIMER_RIGHT_0': (185, 20),
结构体数组所占字节
'PRIMER_INTERNAL_0': (131, 20),
'PRIMER_LEFT_0_TM': 60.03600999938385,
'PRIMER_RIGHT_0_TM': 59.9639778349607,
'PRIMER_INTERNAL_0_TM': 60.046726374282855,
'PRIMER_LEFT_0_GC_PERCENT': 55.0,
'PRIMER_RIGHT_0_GC_PERCENT': 55.0,
'PRIMER_INTERNAL_0_GC_PERCENT': 65.0,
'PRIMER_LEFT_0_SELF_ANY_TH': 0.0,
'PRIMER_RIGHT_0_SELF_ANY_TH': 5.308994554799938,
'PRIMER_INTERNAL_0_SELF_ANY_TH': 6.715563508517448,
'PRIMER_LEFT_0_SELF_END_TH': 0.0,
'PRIMER_RIGHT_0_SELF_END_TH': 0.0,
'PRIMER_INTERNAL_0_SELF_END_TH': 0.0,
'PRIMER_LEFT_0_HAIRPIN_TH': 0.0,
'PRIMER_RIGHT_0_HAIRPIN_TH': 41.267496973905224,
'PRIMER_INTERNAL_0_HAIRPIN_TH': 38.99011028469272,
'PRIMER_LEFT_0_END_STABILITY': 2.32,
'PRIMER_PAIR_0_COMPL_ANY_TH': 0.0,
'PRIMER_PAIR_0_COMPL_END_TH': 0.0,
'PRIMER_PAIR_0_PRODUCT_SIZE': 78,
'PRIMER_PAIR_1_PENALTY': 0.2323444485285222,
'PRIMER_LEFT_1_PENALTY': 0.04078105057766379,
'PRIMER_RIGHT_1_PENALTY': 0.19156339795085842,
'PRIMER_INTERNAL_1_PENALTY': 0.1759585850769554,python在线编辑器python3
'PRIMER_LEFT_1_SEQUENCE': 'GCGCGGTTTTTGTCAGCTTA',
'PRIMER_RIGHT_1_SEQUENCE': 'ACCCACTACCACCACCACTA',
'PRIMER_INTERNAL_1_SEQUENCE': 'ACTGCACCTCTGGAGCGGGT', 'PRIMER_LEFT_1': (134, 20),
'PRIMER_RIGHT_1': (209, 20),
'PRIMER_INTERNAL_1': (170, 20),
'PRIMER_LEFT_1_TM': 60.040781050577664,
'PRIMER_RIGHT_1_TM': 59.80843660204914,
'PRIMER_INTERNAL_1_TM': 59.824041414923045,
'PRIMER_LEFT_1_GC_PERCENT': 50.0,
'PRIMER_RIGHT_1_GC_PERCENT': 55.0,
'PRIMER_INTERNAL_1_GC_PERCENT': 65.0,
'PRIMER_LEFT_1_SELF_ANY_TH': 8.834562170276627,
资深程序员工资一般多少'PRIMER_RIGHT_1_SELF_ANY_TH': 0.0,
'PRIMER_INTERNAL_1_SELF_ANY_TH': 13.054545961563008,
'PRIMER_LEFT_1_SELF_END_TH': 0.0,
易语言post能做什么'PRIMER_RIGHT_1_SELF_END_TH': 0.0,
'PRIMER_INTERNAL_1_SELF_END_TH': 4.711373579171379,
'PRIMER_LEFT_1_HAIRPIN_TH': 0.0,
'PRIMER_RIGHT_1_HAIRPIN_TH': 0.0,
'PRIMER_INTERNAL_1_HAIRPIN_TH': 41.81896803359854,
'PRIMER_LEFT_1_END_STABILITY': 3.09,
'PRIMER_RIGHT_1_END_STABILITY': 2.74,
'PRIMER_PAIR_1_COMPL_ANY_TH': 0.0,
'PRIMER_PAIR_1_COMPL_END_TH': 0.0,
'PRIMER_PAIR_1_PRODUCT_SIZE': 76,

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。