diff --git a/src/dssp.py b/src/dssp.py index 71eaa40..1d166b3 100644 --- a/src/dssp.py +++ b/src/dssp.py @@ -25,9 +25,9 @@ else: get_helix(pdb_file.residues, turns) # get_bends(pdb_file.residues) # get_chirality(pdb_file.residues) - # bridges = get_bridges(pdb_file.residues) - # ladders = get_ladders(bridges) - # get_sheets(ladders) + bridges = get_bridges(pdb_file.residues) + ladders = get_ladders(bridges, pdb_file.residues) + get_sheets(ladders) # print("NBRIDGES",len(bridges)) diff --git a/src/structure.py b/src/structure.py index d2d89d2..42c008b 100644 --- a/src/structure.py +++ b/src/structure.py @@ -83,14 +83,15 @@ def get_bridges(residues): E_min = bridge['res1']+bridge['res2'] strongest_bridge = bridge bridge = {} + coord_bridge = [i,j] # finally add the strongest bridge at i and j pos if(strongest_bridge): - bridges[strongest_bridge['ipos']] = (Bridge(strongest_bridge['btype'], + bridges[coord_bridge[0]] = (Bridge(strongest_bridge['btype'], strongest_bridge['ipos'], strongest_bridge['jpos'])) - # bridges[strongest_bridge['jpos']] = (Bridge(strongest_bridge['btype'], - # strongest_bridge['jpos'], - # strongest_bridge['ipos'])) + bridges[coord_bridge[1]] = (Bridge(strongest_bridge['btype'], + strongest_bridge['jpos'], + strongest_bridge['ipos'])) if(len(bridges)>0): return(bridges) else: @@ -143,7 +144,7 @@ def get_helix(residues, turns): while(i+k in turns): k+=1 temp_res.append(residues[i]) - if(k>2): + if(k>=1): print(k,"- HELIX at", residues[i].resid) helix.append(Helix(temp_res,residues[i].resid)) i = i+k @@ -151,10 +152,10 @@ def get_helix(residues, turns): i+=1 return(helix) -def get_ladders(bridges): +def get_ladders(bridges, residues): ladders = {} i = 1 - while i < len(bridges): + while i < len(residues): k = 1 if i in bridges.keys(): temp_bridges = [bridges[i]] @@ -163,9 +164,9 @@ def get_ladders(bridges): temp_bridges.append(bridges[i+k]) k+=1 if k>1: - ladders[bridges[i].res_num] = k-1 + ladders[i] = k-1 print("ladder", bridges[i].res_num, bridges[i+k-1].res_num) - ladders[bridges[i].res_num] = {'start':bridges[i].res_num, + ladders[i] = {'start':bridges[i].res_num, 'end':bridges[i+k-1].res_num, 'bridges':temp_bridges} i+=k-1 @@ -180,14 +181,15 @@ def get_sheets(ladders): Iterate over all residues of one ladder and check if bridge with other residues of the other ladders. """ - + sheets = {} for ladder in ladders: - for bridge in ladders[ladder]['bridges']: - for ladd2 in ladders: + for ladd2 in ladders: + for bridge in ladders[ladder]['bridges']: if bridge.res_partner in res_list(ladders[ladd2]): print("ladder",ladders[ladder]['start'], ladders[ladder]['end'],"bridge",bridge.res_num, bridge.res_partner, "ladder 2",ladders[ladd2]['start'], ladders[ladd2]['end']) - + #print("stop ladder 2") + print("stop ladder 1") def res_list(ladder): # TODO : method in ladder class