update PDBAlign

This commit is contained in:
root
2024-01-11 18:10:01 +08:00
parent 9b39738e9f
commit 908cb9bcf1

View File

@@ -23,6 +23,7 @@ from Bio import SeqIO
import requests
from copy import deepcopy
from pymol import cmd
import pymol
import os
@dataclass
@@ -296,18 +297,26 @@ class PDBAnalyzer:
class PDBAlign:
template_file: Path
target_file: Path
pymol_instance: object = field(init=False)
out_file: Path = field(default=None) # 输出文件路径
def __post_init__(self):
self.initialize_pymol()
def initialize_pymol(self):
self.pymol_instance = pymol.cmd
self.pymol_instance.reinitialize()
def align(self):
cmd.reinitialize()
self.pymol_instance.reinitialize()
# 首先,加载模板结构
cmd.load(self.template_file.as_posix(), "template")
self.pymol_instance.load(self.template_file.as_posix(), "template")
# 加载并对齐所有目标结构
cmd.load(self.target_file.as_posix(), "target")
cmd.align("target", "template")
self.pymol_instance.load(self.target_file.as_posix(), "target")
self.pymol_instance.align("target", "template")
return cmd.get_pdbstr('target')
return self.pymol_instance.get_pdbstr('target')
def main(PDB_ID, PDB_file_path):
# 示例
@@ -498,3 +507,4 @@ if __name__ == "__main__":
pass