Before dropping bp2

master
Thomas Forest 2019-09-18 16:13:15 +02:00
parent d58e01d3f2
commit de6f723d2f
3 changed files with 57 additions and 14 deletions

View File

@ -243,6 +243,7 @@ def get_bridges(residues):
bridges = {} bridges = {}
bridge = {} bridge = {}
strongest_bridge = {} strongest_bridge = {}
selected_bridges = []
for i in range(1,len(residues)-4): for i in range(1,len(residues)-4):
E_min = 0 E_min = 0
for j in range(i+2,len(residues)-1): for j in range(i+2,len(residues)-1):
@ -292,18 +293,45 @@ def get_bridges(residues):
if(bridge['res1']+bridge['res2']<E_min): if(bridge['res1']+bridge['res2']<E_min):
E_min = bridge['res1']+bridge['res2'] E_min = bridge['res1']+bridge['res2']
strongest_bridge = bridge strongest_bridge = bridge
if strongest_bridge not in selected_bridges:
selected_bridges.append(strongest_bridge)
coord_bridge = [i,j] coord_bridge = [i,j]
bridge = {} bridge = {}
# finally add the strongest bridge at i and j pos # finally add the strongest bridge at i and j pos
if(strongest_bridge): if(strongest_bridge):
if(len(selected_bridges)>1):
bridges[strongest_bridge['i']] = (Bridge(strongest_bridge['btype'],
strongest_bridge['ipos'],
strongest_bridge['jpos'],
[strongest_bridge['i'],
strongest_bridge['j']],
selected_bridges[-2]['btype'],
selected_bridges[-2]['ipos'],
selected_bridges[-2]['jpos'],
[selected_bridges[-2]['i'],
selected_bridges[-2]['j']]))
bridges[strongest_bridge['j']] = (Bridge(strongest_bridge['btype'],
strongest_bridge['ipos'],
strongest_bridge['jpos'],
[strongest_bridge['i'],
strongest_bridge['j']],
selected_bridges[-2]['btype'],
selected_bridges[-2]['ipos'],
selected_bridges[-2]['jpos'],
[selected_bridges[-2]['i'],
selected_bridges[-2]['j']]))
else:
bridges[strongest_bridge['i']] = (Bridge(strongest_bridge['btype'], bridges[strongest_bridge['i']] = (Bridge(strongest_bridge['btype'],
strongest_bridge['ipos'], strongest_bridge['ipos'],
strongest_bridge['jpos'], strongest_bridge['jpos'],
[strongest_bridge['i'], [strongest_bridge['i'],
strongest_bridge['j']])) strongest_bridge['j']]))
bridges[strongest_bridge['j']] = (Bridge(strongest_bridge['btype'], bridges[strongest_bridge['j']] = (Bridge(strongest_bridge['btype'],
strongest_bridge['jpos'],
strongest_bridge['ipos'], strongest_bridge['ipos'],
strongest_bridge['jpos'],
[strongest_bridge['i'], [strongest_bridge['i'],
strongest_bridge['j']])) strongest_bridge['j']]))
if(len(bridges)>0): if(len(bridges)>0):

View File

@ -61,6 +61,8 @@ ladders = get_ladders(bridges, residues)
sheets = get_sheets(ladders) sheets = get_sheets(ladders)
helix = build_helix_patterns(residues) helix = build_helix_patterns(residues)
# iterating over residues # iterating over residues
for i,res in enumerate(residues): for i,res in enumerate(residues):
#res.get_turns(residues, turns) #res.get_turns(residues, turns)
kappa = res.get_bends(residues)[0] kappa = res.get_bends(residues)[0]
@ -81,6 +83,13 @@ for i,res in enumerate(residues):
helix_3 = print_helix_pattern(residues, res, helix[0]) helix_3 = print_helix_pattern(residues, res, helix[0])
helix_4 = print_helix_pattern(residues, res, helix[1]) helix_4 = print_helix_pattern(residues, res, helix[1])
helix_5 = print_helix_pattern(residues, res, helix[2]) helix_5 = print_helix_pattern(residues, res, helix[2])
if i in bridges.keys():
print(i+1, res.resid, res.chain_id, res.res_letter, helix_3, helix_4, helix_5, turn_3, turn_4, turn_5, bend_symbol, chirality, round(t_co, 3), round(kappa,1), bp1 = bridges[i].j
else:
bp1 = 0
print(i+1, res.resid, res.chain_id, res.res_letter, helix_3, helix_4, helix_5, turn_3, turn_4, turn_5, bend_symbol, chirality, bp1,round(t_co, 3), round(kappa,1),
round(alpha, 1), round(phi, 1), round(psi,1), round(x_ca,1), round(y_ca,1), round(z_ca,1)) round(alpha, 1), round(phi, 1), round(psi,1), round(x_ca,1), round(y_ca,1), round(z_ca,1))
for bridge in bridges:
print(bridges[bridge].i, bridges[bridge].j)

View File

@ -14,13 +14,19 @@ class Turn(Structure):
class Bridge(Structure): class Bridge(Structure):
def __init__(self, bridge_type, res_num, res_partner, indices): def __init__(self, bridge_type, res_num, res_partner, indices,
second_bridge_type=None, second_resnum=None,
second_res_partner=None, second_indices=None):
self.bridge_type = bridge_type self.bridge_type = bridge_type
self.res_num = res_num self.res_num = res_num
self.res_partner = res_partner self.res_partner = res_partner
Structure.res = res_num Structure.res = res_num
self.i = indices[0] self.i = indices[0]
self.j = indices[1] self.j = indices[1]
self.second_bridge_type = second_bridge_type
self.second_resnum = second_resnum
self.second_res_partner = second_res_partner
self.second_indices = second_indices
class Helix(Structure): class Helix(Structure):