Files
analysis_pdb/manualfix/README.md
2024-03-18 13:50:17 +08:00

3.0 KiB
Raw Blame History

2024-03-07 ['5ksa', '1g6r', '6bga', '6u3n', '1zgl', '7l1d', '3qiu', '2ypl', '7z50', '6uln', '1mwa', '4z7v', '4ozi', '7rrg', '6uk4', '4p2o', '6vm8', '5ksb'] 重新建模

1g6r: Align 对齐过程中序列编号出错导致残基缺失进而导致MD模拟后续失败

6u3n: A开头地方与B链的碰撞

6uk4: 结构分散(不适合模拟) 6uln: 结构分散(不适合模拟) 6vm8: 结构分散(不适合模拟) 7l1d: 无碰撞,结构分散(不适合模拟) 7rrg: 无碰撞,结构分散(不适合模拟)

7z50: A与B链的碰撞

1mwa: B链116缺失

1zgl: M链122,123缺失

2ypl: D链124E链121碰撞

3qiu: A与B链的碰撞

4ozi: A链72位与B链5位β折叠碰撞

4p2o: A链67位与B链4位碰撞

4z7v: C链96位与D链105碰撞

5ksa: 缺失过多导致修复后loop过多不适合模拟

5ksb: C链83位与D链5位碰撞

6bga: B链137138虚线缺失

最终确定:['6bga', '5ksb', '4z7v', '4p2o', '4ozi', '3qiu', '2ypl', '1zgl', '1mwa', '7z50', '6u3n', '1g6r']


1zgl [{'chain_id': 'P', 'start_residue': 63, 'end_residue': 104, 'estimated_missing': 0}] B链M链缺失太多修复之后loop过多不适合模拟 1g6r [{'chain_id': 'B', 'start_residue': 109, 'end_residue': 237, 'estimated_missing': 0}] 修复 1mwa [{'chain_id': 'B', 'start_residue': 116, 'end_residue': 316, 'estimated_missing': 0}] 多处编号错误B链 6bga [{'chain_id': 'B', 'start_residue': 112, 'end_residue': 198, 'estimated_missing': 0}] B链两处缺失虚线


放手动修复的pdb文件再提取单聚体后手动修复残缺编号。

1g6r.manualfix.pdb 1mwa.manualfix.pdb 6bga.modellerfix.pdb B链碰撞导致缺失 cp ../pdb_test7/runner_5ksb/5ksb.modellerfix.pdb ./

pyrosetta fastrelax

# 使用pyrosetta快速修复蛋白缺失的侧链
from pathlib import Path
import pyrosetta
from pyrosetta import rosetta
from multiprocessing import Pool


def fix_optimize(file: Path, out_file: Path):
    '''
    FastRelax使用快速梯度下降算法可以在较短时间内对蛋白质进行优化并且对于结构中的非构象缺陷例如氢键、离子对、芳香性相互作用和溶剂-蛋白质相互作用等进行优化。
    ref2015是Rosetta程序包中的一个分数函数它是Rosetta2015中引入的一个新的蛋白质力场用于蛋白质结构预测和设计。这个力场是从先前的Rosetta力场中提炼出来的经过了一系列的校正和优化可以更好地预测蛋白质的折叠构象。在FastRelax中ref2015可以作为一个可选参数来指定使用哪个力场来进行优化。
    :param file:
    :param out_file:
    :return: 
    '''
    # 使用pyrosetta修复蛋白结构
    # 初始化PyRosetta
    pyrosetta.init()
    # 读入蛋白质结构
    pose = pyrosetta.pose_from_pdb(file.as_posix())
    # fix residue side chain
    scorefxn = pyrosetta.create_score_function('ref2015')
    relax = pyrosetta.rosetta.protocols.relax.FastRelax(scorefxn)
    relax.apply(pose)
    # 输出修复后的结构
    pose.dump_pdb(out_file.as_posix())