Before dropping bp2
parent
d58e01d3f2
commit
de6f723d2f
50
src/atom.py
50
src/atom.py
|
|
@ -243,11 +243,12 @@ 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):
|
||||||
# select triplet with the minimal energy
|
# select triplet with the minimal energy
|
||||||
|
|
||||||
if(residues[i-1].h_bond(residues[j])<-0.5
|
if(residues[i-1].h_bond(residues[j])<-0.5
|
||||||
and residues[j].h_bond(residues[i+1])<-0.5):
|
and residues[j].h_bond(residues[i+1])<-0.5):
|
||||||
bridge = {'res1':residues[i-1].h_bond(residues[j]),
|
bridge = {'res1':residues[i-1].h_bond(residues[j]),
|
||||||
|
|
@ -292,20 +293,47 @@ 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):
|
||||||
bridges[strongest_bridge['i']] = (Bridge(strongest_bridge['btype'],
|
if(len(selected_bridges)>1):
|
||||||
strongest_bridge['ipos'],
|
bridges[strongest_bridge['i']] = (Bridge(strongest_bridge['btype'],
|
||||||
strongest_bridge['jpos'],
|
strongest_bridge['ipos'],
|
||||||
[strongest_bridge['i'],
|
strongest_bridge['jpos'],
|
||||||
strongest_bridge['j']]))
|
[strongest_bridge['i'],
|
||||||
bridges[strongest_bridge['j']] = (Bridge(strongest_bridge['btype'],
|
strongest_bridge['j']],
|
||||||
strongest_bridge['jpos'],
|
selected_bridges[-2]['btype'],
|
||||||
strongest_bridge['ipos'],
|
selected_bridges[-2]['ipos'],
|
||||||
[strongest_bridge['i'],
|
selected_bridges[-2]['jpos'],
|
||||||
strongest_bridge['j']]))
|
[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'],
|
||||||
|
strongest_bridge['ipos'],
|
||||||
|
strongest_bridge['jpos'],
|
||||||
|
[strongest_bridge['i'],
|
||||||
|
strongest_bridge['j']]))
|
||||||
|
|
||||||
|
bridges[strongest_bridge['j']] = (Bridge(strongest_bridge['btype'],
|
||||||
|
strongest_bridge['ipos'],
|
||||||
|
strongest_bridge['jpos'],
|
||||||
|
[strongest_bridge['i'],
|
||||||
|
strongest_bridge['j']]))
|
||||||
if(len(bridges)>0):
|
if(len(bridges)>0):
|
||||||
return(bridges)
|
return(bridges)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
13
src/dssp.py
13
src/dssp.py
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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):
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue