酶数据库介绍
REBASE 是 Biopython 默认使用的限制酶数据库,其位置可以通过下述代码找到:
from Bio.Restriction import Restriction
print(Restriction.__file__)
里面包含酶的信息,例如:
def _temp():
return {
"charac": (5, -5, None, None, "GGTACC"),
"compsite": "(?=(?P<KpnI>GGTACC))",
"dna": None,
"freq": 4096.0,
"fst3": -5,
"fst5": 5,
"inact_temp": 65,
"opt_temp": 37,
"ovhg": 4,
"ovhgseq": "GTAC",
"results": None,
"scd3": None,
"scd5": None,
"site": "GGTACC",
"size": 6,
"substrat": "DNA",
"suppl": ("B", "C", "I", "J", "K", "M", "N", "O", "Q", "R", "S", "V", "X", "Y"),
}
rest_dict["KpnI"] = _temp()
解释:
- charac:描述切割特性,依次是5’端切割位置(即下方的fst5)、3’端切割位置(即下方的fst3,都是相对于识别序列的起始位置)、没有额外的切割位点(即下方的scd3,scd5)、酶的识别序列(即下方的site)
- compsite:正则表达式,用于匹配
- dna:表示该酶是否作用于 DNA 序列。None 表示默认作用于 DNA
- freq:表示该酶识别序列在随机 DNA 序列中出现的频率。计算方法:为 4^N,其中 N 是识别序列的长度。对于 GGTACC(长度为 6),频率为 4^6 = 4096
- fst3,fst5:切割位置,与charac中含义一致
- inact_temp:表示酶的失活温度(摄氏度,下同)
- opt_temp:酶的最适反应温度
- ovhg:酶切割后产生的粘性末端的长度,即粘性末端有4个碱基
- ovhgseq:粘性末端的序列
- results:存储酶切割后的结果。None 表示未切割
- scd3,scd5:表示在3’和5’是否有第二个切割位点,None表示没有,与charac中含义一致
- site:酶的识别序列
- size:酶的识别序列的长度
- substrat:酶的作用底物
- suppl:提供该酶的供应商代码列表。每个字母代表一个供应商
使用
使用预定义的数据库
from Bio.Restriction import Restriction, Analysis
from Bio import SeqIO
#print(Restriction.__file__)
# 创建一个限制酶分析对象
restriction_batch = Restriction.RestrictionBatch(["KpnI","BsiWI","Bsu36I","BamHI","EcoRV","EcoRI"])
# 定义一段 DNA 序列
for record in SeqIO.parse('in.gb', format='gb'):
dna_sequence = record.seq
# 分析 DNA 序列中的酶切位点
analysis = Analysis(restriction_batch, dna_sequence)
# 获取切割位点
cuts = analysis.full()
print("切割位点:", cuts)
# 切割位点: {KpnI: [1712], Bsu36I: [1511], EcoRI: [2167], EcoRV: [1944], BamHI: [1614], BsiWI: [1816]}
# 获取每个酶的切割次数
for enzyme in restriction_batch:
print(f"{enzyme}: {analysis.with_sites()[enzyme]}")
'''
KpnI: [1712]
Bsu36I: [1511]
EcoRV: [1944]
EcoRI: [2167]
BamHI: [1614]
BsiWI: [1816]
'''