Fixing ladder discovery

master
Thomas Forest 2019-09-17 10:55:36 +02:00
parent 583d7e33d8
commit 7ddd47c379
2 changed files with 18 additions and 16 deletions

View File

@ -25,9 +25,9 @@ else:
get_helix(pdb_file.residues, turns) get_helix(pdb_file.residues, turns)
# get_bends(pdb_file.residues) # get_bends(pdb_file.residues)
# get_chirality(pdb_file.residues) # get_chirality(pdb_file.residues)
# bridges = get_bridges(pdb_file.residues) bridges = get_bridges(pdb_file.residues)
# ladders = get_ladders(bridges) ladders = get_ladders(bridges, pdb_file.residues)
# get_sheets(ladders) get_sheets(ladders)
# print("NBRIDGES",len(bridges)) # print("NBRIDGES",len(bridges))

View File

@ -83,14 +83,15 @@ def get_bridges(residues):
E_min = bridge['res1']+bridge['res2'] E_min = bridge['res1']+bridge['res2']
strongest_bridge = bridge strongest_bridge = bridge
bridge = {} bridge = {}
coord_bridge = [i,j]
# 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['ipos']] = (Bridge(strongest_bridge['btype'], bridges[coord_bridge[0]] = (Bridge(strongest_bridge['btype'],
strongest_bridge['ipos'], strongest_bridge['ipos'],
strongest_bridge['jpos'])) strongest_bridge['jpos']))
# bridges[strongest_bridge['jpos']] = (Bridge(strongest_bridge['btype'], bridges[coord_bridge[1]] = (Bridge(strongest_bridge['btype'],
# strongest_bridge['jpos'], strongest_bridge['jpos'],
# strongest_bridge['ipos'])) strongest_bridge['ipos']))
if(len(bridges)>0): if(len(bridges)>0):
return(bridges) return(bridges)
else: else:
@ -143,7 +144,7 @@ def get_helix(residues, turns):
while(i+k in turns): while(i+k in turns):
k+=1 k+=1
temp_res.append(residues[i]) temp_res.append(residues[i])
if(k>2): if(k>=1):
print(k,"- HELIX at", residues[i].resid) print(k,"- HELIX at", residues[i].resid)
helix.append(Helix(temp_res,residues[i].resid)) helix.append(Helix(temp_res,residues[i].resid))
i = i+k i = i+k
@ -151,10 +152,10 @@ def get_helix(residues, turns):
i+=1 i+=1
return(helix) return(helix)
def get_ladders(bridges): def get_ladders(bridges, residues):
ladders = {} ladders = {}
i = 1 i = 1
while i < len(bridges): while i < len(residues):
k = 1 k = 1
if i in bridges.keys(): if i in bridges.keys():
temp_bridges = [bridges[i]] temp_bridges = [bridges[i]]
@ -163,9 +164,9 @@ def get_ladders(bridges):
temp_bridges.append(bridges[i+k]) temp_bridges.append(bridges[i+k])
k+=1 k+=1
if 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) 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, 'end':bridges[i+k-1].res_num,
'bridges':temp_bridges} 'bridges':temp_bridges}
i+=k-1 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 Iterate over all residues of one ladder and check if bridge with other residues
of the other ladders. of the other ladders.
""" """
sheets = {}
for ladder in ladders: 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]): if bridge.res_partner in res_list(ladders[ladd2]):
print("ladder",ladders[ladder]['start'], ladders[ladder]['end'],"bridge",bridge.res_num, bridge.res_partner, print("ladder",ladders[ladder]['start'], ladders[ladder]['end'],"bridge",bridge.res_num, bridge.res_partner,
"ladder 2",ladders[ladd2]['start'], ladders[ladd2]['end']) "ladder 2",ladders[ladd2]['start'], ladders[ladd2]['end'])
#print("stop ladder 2")
print("stop ladder 1")
def res_list(ladder): def res_list(ladder):
# TODO : method in ladder class # TODO : method in ladder class