import subprocess import re from tqdm import tqdm import os RUNNER = '/datapool/data2/home/jiahan/Tool/TMalign-20180426/MMalign' def align_pdb(pdb1,pdb2,pdb1_out): subprocess.run([RUNNER,pdb1,pdb2,'-o',pdb1_out],stdout=subprocess.PIPE) def get_tm_score(pdb1,pdb2): cmd = subprocess.run(['TMscore',pdb1,pdb2],stdout=subprocess.PIPE) out = cmd.stdout.decode() tm_score = re.search(r"TM-score\s+=\s+(\d+\.\d+)", out) rmsd = re.search(r"RMSD of the common residues=\s+(\d+\.\d+)", out) return float(rmsd.group(1)),float(tm_score.group(1))