51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
#!/usr/bin/python3
|
|
from datetime import datetime
|
|
import argparse
|
|
|
|
parser = argparse.ArgumentParser(description="Get Docking Score")
|
|
parser.add_argument("-p","--protein",help="Path to protein file")
|
|
parser.add_argument("-l","--ligand",help="Path to ligand_out file")
|
|
|
|
args = parser.parse_args()
|
|
|
|
if args.protein == None:
|
|
print("Error: Please specify protein file")
|
|
exit(1)
|
|
if args.ligand == None:
|
|
print("Error: Please specify ligand file")
|
|
exit(1)
|
|
|
|
|
|
protein = args.protein
|
|
ligand = args.ligand
|
|
|
|
from os.path import basename
|
|
|
|
print("% Molecular Docking of " + str(basename(ligand)).replace("_out.pdbqt","") + " with " +str(basename(protein)).replace(".pdbqt",""))
|
|
print("%")
|
|
print("% " + str(datetime.now().strftime("%b %d, %Y")))
|
|
|
|
print("![Structure of %s](compound.svg)"%(str(basename(ligand)).replace("_out.pdbqt","")),end="\n\n")
|
|
|
|
from tabulate import tabulate
|
|
|
|
file = open(ligand, "r")
|
|
lines = file.readlines()
|
|
results = []
|
|
i = 1
|
|
for line in lines:
|
|
ta = []
|
|
if line.find('REMARK VINA') == 0 and line.split()[3] != "":
|
|
l = line.split()
|
|
ta.append(i)
|
|
ta.append(l[3])
|
|
ta.append(l[4])
|
|
ta.append(l[5])
|
|
i += 1
|
|
if ta != []:
|
|
results.append(ta)
|
|
|
|
print("# Docking Score",end="\n\n")
|
|
print(tabulate(results,headers=["No.","Affinity","rmsd l.b","rmsd u.b"]))
|
|
print("",end="\n\n")
|