利用modeller如何构建出带金属的蛋白结构

利用modeller如何构建出活性口袋带金属的蛋白晶体结构
Linux

引用GPT:

  1. 确保您已经安装了Modeller和必要的依赖项,并且在Linux系统上正确配置了Modeller。

  2. 准备蛋白质序列和金属离子的坐标信息。您可以从蛋白质数据库(如PDB)中获取蛋白质结构的序列,然后手动添加金属离子的坐标信息。或者,如果有相关的结构数据文件,可以从中提取金属坐标。

  3. 创建一个Python脚本并导入所需的模块:

from modeller import *
from modeller.automodel import *
  1. 定义一个新的模型类派生自automodel类,并重写其方法来定义金属离子的位置和约束。
class MyModel(automodel):
    def special_restraints(self, aln):
        # 在这里定义金属离子的位置和约束
        pass
  1. 在重写的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])  # 距离约束,可以根据需要进行调整
  1. 在主函数中创建一个模型对象,并运行模型构建。
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'是一个已知结构的参考模板。

  1. 运行Python脚本,开始构建带金属的蛋白结构。