Bio.SeqUtils.MeltingTemp模块

计算核苷酸序列的解链温度。

该模块包含三种不同的方法来计算寡核酸的解链温度:

  1. TM_Wallace:“经验法则”

  2. Tm_GC:基于GC含量的经验公式。可以包括盐和失配校正。

  3. TM_NN:基于最近邻热力学的计算。其中包括DNA/DNA、DNA/RNA和RNA/RNA杂交的几个表格。可以对错配、悬空末端、盐浓度和其他添加剂进行纠正。

大多数TM方法的一般参数:
  • seq --Biopython序列对象或字符串。

  • check --检查序列对于给定方法是否有效(默认= True)。一般来说,空白和非基本字符会被删除,字符会转换为大写字母。RNA将被逆转录。

  • 严格--不允许为相应方法明确评估的基本字符或邻居双重键(例如“AT/NA”)(默认=True)。请注意,W(= A或T)和S(= C或G)对于TM_Wallace和TM_GC并不模糊。如果“假”,将使用平均值(如果适用)。

该模块无法检测自身互补,并且不会使用比对工具将寡聚核酸序列与其目标序列进行比对。因此,它无法自行检测悬垂端和不匹配(甚至不要考虑灯泡和环路)。这些参数必须移交给相应的方法。

本模块的其他公共方法:
  • 制造表 :创建包含热力学数据的表。

  • salt_correction:通过不同的公式将TM调节到给定的盐浓度。该方法从TM_GC和TM_NN调用,但也可以“手动”访问。它返回一个修正项,而不是修正后的TM!

  • chem_correction:调整有关化学添加剂DMS和甲醛的温度。该方法返回更正的TM。化学修正不是TM方法的组成部分,必须额外调用。

例如:

>>> from Bio.SeqUtils import MeltingTemp as mt
>>> from Bio.Seq import Seq
>>> mystring = 'CGTTCCAAAGATGTGGGCATGAGCTTAC'
>>> myseq = Seq(mystring)
>>> print('%0.2f' % mt.Tm_Wallace(mystring))
84.00
>>> print('%0.2f' % mt.Tm_Wallace(myseq))
84.00
>>> print('%0.2f' % mt.Tm_GC(myseq))
58.97
>>> print('%0.2f' % mt.Tm_NN(myseq))
60.32

使用不同的热力学表,例如来自Breslauer ' 86或Sugimoto ' 96:

>>> print('%0.2f' % mt.Tm_NN(myseq, nn_table=mt.DNA_NN1))  # Breslauer '86
72.19
>>> print('%0.2f' % mt.Tm_NN(myseq, nn_table=mt.DNA_NN2))  # Sugimoto '96
65.47

包括RNA和RNA/DNA杂交体的表格:

>>> print('%0.2f' % mt.Tm_NN(myseq, nn_table=mt.RNA_NN1))  # Freier '86
73.35
>>> print('%0.2f' % mt.Tm_NN(myseq, nn_table=mt.R_DNA_NN1))  # Sugimoto '95
58.45

几种类型的salc校正(对于Tm_NN和Tm_GC):

>>> for i in range(1, 8):
...     print("Type: %d, Tm: %0.2f" % (i, Tm_NN(myseq, saltcorr=i)))
...
Type: 1, Tm: 54.27
Type: 2, Tm: 54.02
Type: 3, Tm: 59.60
Type: 4, Tm: 60.64
Type: 5, Tm: 60.32
Type: 6, Tm: 59.78
Type: 7, Tm: 59.78

根据von Ahsen等人(2001)或Owczarzy等人(2008)对其他一价阳离子(K+、Tris)、镁2+和dNTPs的更正(对于Tm_NN和Tm_GC):

>>> print('%0.2f' % mt.Tm_NN(myseq, Na=50, Tris=10))
60.79
>>> print('%0.2f' % mt.Tm_NN(myseq, Na=50, Tris=10, Mg=1.5))
67.39
>>> print('%0.2f' % mt.Tm_NN(myseq, Na=50, Tris=10, Mg=1.5, saltcorr=7))
66.81
>>> print('%0.2f' % mt.Tm_NN(myseq, Na=50, Tris=10, Mg=1.5, dNTPs=0.6,
...                          saltcorr=7))
66.04

悬空末端和不匹配,例如::

Oligo:     CGTTCCaAAGATGTGGGCATGAGCTTAC       CGTTCCaAAGATGTGGGCATGAGCTTAC
           ::::::X:::::::::::::::::::::  or   ::::::X:::::::::::::::::::::
Template:  GCAAGGcTTCTACACCCGTACTCGAATG      TGCAAGGcTTCTACACCCGTACTCGAATGC

这里:

>>> print('%0.2f' % mt.Tm_NN('CGTTCCAAAGATGTGGGCATGAGCTTAC'))
60.32
>>> print('%0.2f' % mt.Tm_NN('CGTTCCAAAGATGTGGGCATGAGCTTAC',
...                    c_seq='GCAAGGcTTCTACACCCGTACTCGAATG'))
55.39
>>> print('%0.2f' % mt.Tm_NN('CGTTCCAAAGATGTGGGCATGAGCTTAC', shift=1,
...                   c_seq='TGCAAGGcTTCTACACCCGTACTCGAATGC'))
55.69

RNA也是如此:

>>> print('%0.2f' % mt.Tm_NN('CGUUCCAAAGAUGUGGGCAUGAGCUUAC',
...                   c_seq='UGCAAGGcUUCUACACCCGUACUCGAAUGC',
...                   shift=1, nn_table=mt.RNA_NN3,
...                   de_table=mt.RNA_DE1))
73.00

请注意,热力学数据并不适用于所有类型的错配,例如大多数双重错配或末端错配与悬空末端相结合:

>>> print('%0.2f' % mt.Tm_NN('CGTTCCAAAGATGTGGGCATGAGCTTAC',
...                   c_seq='TtCAAGGcTTCTACACCCGTACTCGAATGC',
...                   shift=1))
Traceback (most recent call last):
ValueError: no thermodynamic data for neighbors '.C/TT' available

制作您自己的表,或更新/扩展现有表。例如,添加锁定核苷的值。这里,“锁定A”(及其补语)应该用“1”表示:

>>> mytable = mt.make_table(oldtable=mt.DNA_NN3,
...                         values={'A1/T1':(-6.608, -17.235),
...                         '1A/1T':(-6.893, -15.923)})
>>> print('%0.2f' % mt.Tm_NN('CGTTCCAAAGATGTGGGCATGAGCTTAC'))
60.32
>>> print('%0.2f' % mt.Tm_NN('CGTTCCA1AGATGTGGGCATGAGCTTAC',
...                           nn_table=mytable, check=False))
... # 'check' must be False, otherwise '1' would be discarded
62.53
Bio.SeqUtils.MeltingTemp.make_table(oldtable=None, values=None)

返回包含热力学参数的表(作为字典)。

论点:
  • oldtable:包含热力学参数的现有词典。

  • values:具有新或更新值的字典。

例如,用Allawi & SantaLucia & 97的启动参数替换Sugimoto & 96数据集中的启动参数:

>>> from Bio.SeqUtils.MeltingTemp import make_table, DNA_NN2
>>> table = DNA_NN2                               # Sugimoto '96
>>> table['init_A/T']
(0, 0)
>>> newtable = make_table(oldtable=DNA_NN2, values={'init': (0, 0),
...                       'init_A/T': (2.3, 4.1),
...                       'init_G/C': (0.1, -2.8)})
>>> print("%0.1f, %0.1f" % newtable['init_A/T'])
2.3, 4.1
Bio.SeqUtils.MeltingTemp.salt_correction(Na=0, K=0, Tris=0, Mg=0, dNTPs=0, method=1, seq=None)

计算一个项来纠正盐离子的TM。

根据TM的计算,该项将纠正TM或熵。为了计算修正的TM值,需要应用不同的操作:

  • 方法1-4:TM(新)= TM(旧)+ corr

  • 方法5:增量S(新)=增量S(旧)+ corr

  • 方法6+7:TM(新)= 1/(1/TM(旧)+ corr)

论点:
  • 钠、钾、三线、镁、dNTPS:各离子的毫摩尔浓度。要进行简单的“盐纠正”,只需通过Na即可。如果K、三体、镁和dNTPS中的任何一个不为零,则根据von Ahsen等人(2001,Clin Chem 47:1956-1961)计算“钠当量”浓度: [Na_eq] = [Na+] + [K+] + [Tris] /2 + 120*( [Mg2+] - [dNTPs] )#0.5如果 [dNTPs] >= [Mg2+] : [Na_eq] = [Na+] + [K+] + [Tris] /2

  • 方法:应用哪种方法。方法1-4正确的TK,方法5正确的Delta S,方法6和7正确的1/TK。方法是:

    1. 16.6 X log [Na+] (Schildkraut & Lifson(1965),生物聚合物3:195-208)

    2. 16.6 x log( [Na+] /(1.0 + 0.7* [Na+] ))(Wetmur(1991),Critt Rev Biochem Mol Biol 126:227-259)

    3. 12.5 x log(Na+)](SantaLucia等人(1996),Biochemistry 35:3555-3562

    4. 11.7 X log [Na+] (SantaLucia(1998),Proc Natl Acad Sci USA 95:1460-1465

    5. 增量S的更正:0.368 x(N-1)x lon [Na+] (SantaLucia(1998),Proc Natl Acad Sci USA 95:1460-1465)

    6. (4.29(%GC)-3.95 x1 e-5 x En [Na+] + 9.40e-6 x LN [Na+] #2(Owczarzy等人(2004),生物化学43:3537-3554)

    7. 具有决策树和7个经验常数的复杂公式。针对dNTPs结合(如果存在)进行了纠正(Owczarzy等人(2008),Biochemistry 47:5336-5353)

示例

>>> from Bio.SeqUtils.MeltingTemp import salt_correction
>>> print('%0.2f' % salt_correction(Na=50, method=1))
-21.60
>>> print('%0.2f' % salt_correction(Na=50, method=2))
-21.85
>>> print('%0.2f' % salt_correction(Na=100, Tris=20, method=2))
-16.45
>>> print('%0.2f' % salt_correction(Na=100, Tris=20, Mg=1.5, method=2))
-10.99
Bio.SeqUtils.MeltingTemp.chem_correction(melting_temp, DMSO=0, fmd=0, DMSOfactor=0.75, fmdfactor=0.65, fmdmethod=1, GC=None)

纠正二甲基硫醚和甲氨的给定的温度。

请注意,这些更正是+/-粗略估计。

论点:
  • melting_temp:熔化温度。

  • DMS0:DMS0百分比。

  • ftd:甲胺浓度,单位为%(fmd方法=1)或摩尔(fmd方法=2)。

  • DMSO因子:每百分之一的DMSO,TM应该减少多少。默认=0.65(von Ahsen等人2001)。其他已发布的值为0.5、0.6和0.675。

  • fmdfactor:每百分之甲氨,TM应该减少多少。默认=0.65。几篇论文报告的因子在0.6和0.72之间。

  • fmd方法:

    1. TM = TM -因子(%甲氨甲胺)(默认)

    2. Eu = Eu+(0.453(f(GC))-2.88)x [formamide]

    这里f(GC)是GC的分数。(再次)请注意,在fmd方法=1中,甲氨浓度以%给出,而在fmd方法=2中,甲氨浓度以摩尔给出。

  • GC:GC含量(百分比)。

例子:
>>> from Bio.SeqUtils import MeltingTemp as mt
>>> mt.chem_correction(70)
70
>>> print('%0.2f' % mt.chem_correction(70, DMSO=3))
67.75
>>> print('%0.2f' % mt.chem_correction(70, fmd=5))
66.75
>>> print('%0.2f' % mt.chem_correction(70, fmdmethod=2, fmd=1.25,
...                                    GC=50))
66.68
Bio.SeqUtils.MeltingTemp.Tm_Wallace(seq, check=True, strict=True)

使用“华莱士规则”计算并返回Tm。

TM = 4摄氏度 * (G + C) + 2 degC * (A+T)

华莱士规则(Thein & Wallace 1986,《人类遗传疾病:实用方法,33-50》)通常被用作计算14至20 nt长度的碱基的大约TM的经验法则。

非DNA字符(例如,E,F,J,!,1等)被此方法忽略。

例子:
>>> from Bio.SeqUtils import MeltingTemp as mt
>>> mt.Tm_Wallace('ACGTTGCAATGCCGTA')
48.0
>>> mt.Tm_Wallace('ACGT TGCA ATGC CGTA')
48.0
>>> mt.Tm_Wallace('1ACGT2TGCA3ATGC4CGTA')
48.0
Bio.SeqUtils.MeltingTemp.Tm_GC(seq, check=True, strict=True, valueset=7, userset=None, Na=50, K=0, Tris=0, Mg=0, dNTPs=0, saltcorr=0, mismatch=True)

使用基于GC含量的经验公式返回TM。

通用格式:TM = A + B(%GC)- C/N +盐修正- D(%错配)

A、B、C、D:经验常数,N:碱基长度D(每%错配时的TM减少量)通常为1,但有时也使用其他值(0.6-1.5)。使用“X”表示序列中的错配位置。请注意,此不匹配修正是粗略的估计。

>>> from Bio.SeqUtils import MeltingTemp as mt
>>> print("%0.2f" % mt.Tm_GC('CTGCTGATXGCACGAGGTTATGG', valueset=2))
69.20
论点:
  • 价值:包括一些经常引用的变体:

    1. TM = 69.3 + 0.41(%GC)- 650/N(Marmur & Doty 1962,J Mol Biol 5:109-118; Chester & Marshak 1993),Anal Biochem 209:284-290)

    2. TM = 81.5 + 0.41(%GC)- 675/N - %错配“QuikChange”公式。(由制造商)推荐用于QuikChange突变的碱基设计。

    3. TM = 81.5 + 0.41(%GC)- 675/N + 16.6 x log [Na+] (Marmur & Doty 1962,J Mol Biol 5:109-118; Schildkraut & Lifson 1965,生物聚合物3:195-208)

    4. TM = 81.5 + 0.41(%GC)- 500/N + 16.6 x log( [Na+] /(1.0 + 0.7 x [Na+] )-错配%(Wetmur 1991,Critt Rev Biochem Mol Biol 126:227-259)。这是MELTING 4.3近似模式的标准公式。

    5. TM = 78 + 0.7(%GC)- 500/N + 16.6 x log( [Na+] /(1.0 + 0.7 x [Na+] )-错配%(Wetmur 1991,Critt Rev Biochem Mol Biol 126:227-259)。对于RNA。

    6. TM = 67 + 0.8(%GC)- 500/N + 16.6 x log( [Na+] /(1.0 + 0.7 x [Na+] )-错配%(Wetmur 1991,Critt Rev Biochem Mol Biol 126:227-259)。对于RNA/DNA杂交体。

    7. TM = 81.5 + 0.41(%GC)- 600/N + 16.6 x log [Na+] Primer 3Plus用于计算产品TK。默认设置。

    8. TM = 77.1 + 0.41(%GC)- 528/N + 11.7 x log [Na+] (von Ahsen等人2001,Clin Chem 47:1956-1961)。建议“作为准确性和易用性之间的权衡”。

  • userset:A、B、C和D四个值的二元组。用户集覆盖值集。

  • 钠、钾、三线、镁、dNTPs:各离子的浓度 [mM] .如果K、Tris、Mg和dNTPS中的任何一个不为零,则计算“钠当量”浓度并用于盐校正(von Ahsen等人,2001年)。

  • saltcorr:盐修正的类型(请参阅方法salt_correction)。默认=0。0或无意味着没有盐修正。

  • 不匹配:如果“True”(默认),则序列中的每个“X”都算作不匹配。

Bio.SeqUtils.MeltingTemp.Tm_NN(seq, check=True, strict=True, c_seq=None, shift=0, nn_table=None, tmm_table=None, imm_table=None, de_table=None, dnac1=25, dnac2=25, selfcomp=False, Na=50, K=0, Tris=0, Mg=0, dNTPs=0, saltcorr=5)

使用最近邻热力学返回TM。

论点:
  • seq:作为字符串或Biopython序列对象的primer/探针序列。对于RNA/DNA杂交,seq必须是RNA序列。

  • c_seq:互补序列。模板/目标在3 '-'方向上的序列。c_seq对于不匹配纠正和悬垂端纠正是必要的。如果存在不匹配或悬空端,将自动应用这两项更正。默认=无。

  • 转变:模板/靶序列上的碱基/探针序列的转变,例如::

                       shift=0       shift=1        shift= -1
    Primer (seq):      5' ATGC...    5'  ATGC...    5' ATGC...
    Template (c_seq):  3' TACG...    3' CTACG...    3'  ACG...
    

    如果seq和c_seq的长度不同或应该有悬空端,则需要使用sh参数来对齐它们。默认=0

  • 表:热力学NN值,实施八个表:对于DNA/DNA杂交:

    • DNA_NN 1:Breslauer等人(1986)的值

    • DNA_NN 2:Sugimoto等人(1996)的值

    • DN_NN 3:来自Allawi & SantaLucia(1997)的值(默认)

    • DN_NN 4:SantaLucia & Hicks的价值观(2004)

    对于RNA/RNA杂交:

    • RNA_NN1:来自Freier等人(1986)的值

    • RNA_NN2:来自Xia等人(1998)的值

    • RN_NN 3:Chen等人(2012)的值

    对于RNA/DNA杂交:

    • R_DN_NN 1:Sugimoto等人(1995)的值请注意 seq 一定是RNA序列。

    使用模块的maktable方法创建新表或更新其中一个实现的表。

  • tmm_table:终端不匹配的热力学值。默认:DNA_TMM 1(SantaLucia & Peyret,2001)

  • imm_table:内部不匹配的热力学值,可能包括Insosine不匹配。默认:DNA_IMAM1(Allawi & SantaLucia,1997-1998; Peyret等人,1999年;沃特金斯和桑塔露西亚,2005年)

  • de_table:悬空端的热力学值:

    • DNA_DE 1:用于DNA。Bommarito等人(2000)的值(默认)

    • RN_DE1:用于RNA。特纳和马修斯的价值观(2010)

  • dnac 1:较高浓度链的浓度 [nM] .通常,这将是(用于PCR的)PCR或探针。默认=25。

  • dnac 2:较低浓缩链的浓度 [nM] .在PCR中,这是模板链,其浓度通常非常低,可以忽略(dnac 2 =0)。在oligo/oligo杂交实验中,dnac 1等于dnac 1。默认=25。MELTING和Primer 3 Plus使用k = [Oligo(Total)] 默认情况下为/4。为了模仿这种行为,你必须将 [Oligo(Total)] 乘以2并将此浓度指定为dnac 1和dnac 2。例如,Primer 3 Plus中的总寡聚物浓度为50 μ M,意味着dnac 1 =25,dnac 2 =25。

  • selfcompy:序列是自我互补的吗?默认=假。如果“True”,则认为该primer与其自身结合,因此不考虑dnac 2。

  • 钠、钾、三线、镁、dNTPs:详情请参阅方法“TM_GC”。:钠=50,K=0,三体=0,镁=0,dNTPs=0。

  • saltcorr:请参阅方法“TM_GC”。默认=5。0表示没有盐修正。