-
Notifications
You must be signed in to change notification settings - Fork 0
/
energy.py
70 lines (53 loc) · 2.43 KB
/
energy.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
from pyrosetta import *
init()
from pyrosetta.rosetta.core.scoring import *
from pyrosetta.rosetta import *
from pyrosetta.rosetta.core.select.movemap import *
import pandas as pd
enzs = ["iaaM", "McbB"]
focuses = [513, 46]
trps = ["5b", "5c", "6b", "6c", "7b", "7c"]
interface_strs = ["AB_C", "ABC_D"]
jump_nums = [2, 3]
scores = []
header = ["Enzyme", "TRP", "SC", "IFE", "ddG", "dG_dSASA_ratio", "dSASA", "num_buns"]
sf = create_score_function("ref2015_cart")
for enz, jump_num, interface_str in zip(enzs, jump_nums, interface_strs):
for trp in trps:
interface_analyzer = pyrosetta.rosetta.protocols.analysis.InterfaceAnalyzerMover(jump_num)
interface_analyzer.set_scorefunction(sf)
#interface_analyzer.set_pack_input(True)
interface_analyzer.set_pack_separated(True)
interface_analyzer.set_pack_rounds(100)
interface_analyzer.set_interface(interface_str)
pose = Pose()
res_set = generate_nonstandard_residue_set(pose, params_list = [f"./trps/{trp}/{trp}.params"])
pose_from_file(pose, res_set, f"{enz}_{trp}.relax.pdb")
interface_analyzer.apply(pose)
data = interface_analyzer.get_all_data()
SC = data.sc_value
IFE = data.complexed_interface_score[1] - data.separated_interface_score[1]
ddG = interface_analyzer.get_interface_dG()
dG_dSASA_ratio = data.dG_dSASA_ratio
dSASA = data.dSASA_sc[1]/data.dSASA[1]
num_buns = data.delta_unsat_hbonds
scores.append([enz, trp, SC, IFE, ddG, dG_dSASA_ratio, dSASA, num_buns])
for enz in enzs:
interface_analyzer = pyrosetta.rosetta.protocols.analysis.InterfaceAnalyzerMover(jump_num)
interface_analyzer.set_scorefunction(sf)
#interface_analyzer.set_pack_input(True)
interface_analyzer.set_pack_separated(True)
interface_analyzer.set_pack_rounds(300)
interface_analyzer.set_interface(interface_str)
pose = pose_from_pdb(f"{enz}.relax.pdb")
interface_analyzer.apply(pose)
data = interface_analyzer.get_all_data()
SC = data.sc_value
IFE = data.complexed_interface_score[1] - data.separated_interface_score[1]
ddG = interface_analyzer.get_interface_dG()
dG_dSASA_ratio = data.dG_dSASA_ratio
dSASA = data.dSASA_sc[1]/data.dSASA[1]
num_buns = data.delta_unsat_hbonds
scores.append([enz, "wt trp", SC, IFE, ddG, dG_dSASA_ratio, dSASA, num_buns])
df = pd.DataFrame(scores, columns=header)
df.to_csv("scores.csv", index=False)