利用modeller如何构建出活性口袋带金属的蛋白晶体结构
Linux
引用GPT:
确保您已经安装了Modeller和必要的依赖项,并且在Linux系统上正确配置了Modeller。
准备蛋白质序列和金属离子的坐标信息。您可以从蛋白质数据库(如PDB)中获取蛋白质结构的序列,然后手动添加金属离子的坐标信息。或者,如果有相关的结构数据文件,可以从中提取金属坐标。
创建一个Python脚本并导入所需的模块:
from modeller import *
from modeller.automodel import *
automodel
类,并重写其方法来定义金属离子的位置和约束。class MyModel(automodel):
def special_restraints(self, aln):
# 在这里定义金属离子的位置和约束
pass
special_restraints
方法中添加金属离子的位置和约束。您可以使用Modeller的原子坐标和距离约束来指定金属离子的位置和与蛋白质中的其他原子之间的相对位置关系。def special_restraints(self, aln):
# 添加金属离子的位置和约束
mdl = self.atmsel.get_model()
metals = ['MN', 'CU'] # 根据您使用的金属类型进行调整
for metal in metals:
residue = self.residue.select(f'resname {metal}')
coords = residue.get_residues()[0].get_coords()
mdl.restraints.add(coord=coords, type='stereo', params=[1.5]) # 距离约束,可以根据需要进行调整
env = environ()
a = MyModel(env, alnfile='alignment.ali', knowns=('template',), sequence='target')
a.starting_model = 1
a.ending_model = 5
a.make()
请注意,在上述代码中,“alignment.ali”是包含蛋白质序列的FASTA格式的对齐文件,'template'是一个已知结构的参考模板。