update PDBAlign
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user