From de6f723d2f091e70d5fcc92167d3ba2f0addf728 Mon Sep 17 00:00:00 2001 From: Thomas Forest Date: Wed, 18 Sep 2019 16:13:15 +0200 Subject: [PATCH] Before dropping bp2 --- src/atom.py | 50 +++++++++++++++++++++++++++++++++++++----------- src/dssp.py | 13 +++++++++++-- src/structure.py | 8 +++++++- 3 files changed, 57 insertions(+), 14 deletions(-) diff --git a/src/atom.py b/src/atom.py index fd9385d..d3c7388 100644 --- a/src/atom.py +++ b/src/atom.py @@ -243,11 +243,12 @@ def get_bridges(residues): bridges = {} bridge = {} strongest_bridge = {} + selected_bridges = [] for i in range(1,len(residues)-4): E_min = 0 for j in range(i+2,len(residues)-1): # select triplet with the minimal energy - + if(residues[i-1].h_bond(residues[j])<-0.5 and residues[j].h_bond(residues[i+1])<-0.5): bridge = {'res1':residues[i-1].h_bond(residues[j]), @@ -292,20 +293,47 @@ def get_bridges(residues): if(bridge['res1']+bridge['res2']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'], + 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): return(bridges) else: diff --git a/src/dssp.py b/src/dssp.py index 8d4c5b5..148f747 100644 --- a/src/dssp.py +++ b/src/dssp.py @@ -61,6 +61,8 @@ ladders = get_ladders(bridges, residues) sheets = get_sheets(ladders) helix = build_helix_patterns(residues) # iterating over residues + + for i,res in enumerate(residues): #res.get_turns(residues, turns) 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_4 = print_helix_pattern(residues, res, helix[1]) helix_5 = print_helix_pattern(residues, res, helix[2]) - - 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), + if i in bridges.keys(): + 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)) + + +for bridge in bridges: + print(bridges[bridge].i, bridges[bridge].j) diff --git a/src/structure.py b/src/structure.py index 1c206ad..ab6d585 100644 --- a/src/structure.py +++ b/src/structure.py @@ -14,13 +14,19 @@ class Turn(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.res_num = res_num self.res_partner = res_partner Structure.res = res_num self.i = indices[0] 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):