add get_ladders() function

master
Thomas Forest 2019-09-16 12:00:35 +02:00
parent 948ff2d3ab
commit 1621940855
2 changed files with 21 additions and 8 deletions

View File

@ -19,3 +19,5 @@ 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)
get_ladders(bridges)

View File

@ -36,7 +36,7 @@ def get_turns(residues):
return(turns) return(turns)
def get_bridges(residues): def get_bridges(residues):
bridges = [] bridges = {}
bridge = {} bridge = {}
strongest_bridge = {} strongest_bridge = {}
for i in range(1,len(residues)-4): for i in range(1,len(residues)-4):
@ -102,9 +102,9 @@ def get_bridges(residues):
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.append(Bridge(strongest_bridge['btype'], bridges[strongest_bridge['ipos']] = (Bridge(strongest_bridge['btype'],
strongest_bridge['ipos'])) strongest_bridge['ipos']))
bridges.append(Bridge(strongest_bridge['btype'], bridges[strongest_bridge['jpos']] = (Bridge(strongest_bridge['btype'],
strongest_bridge['jpos'])) strongest_bridge['jpos']))
if(len(bridges)>0): if(len(bridges)>0):
return(bridges) return(bridges)
@ -129,14 +129,25 @@ def get_helix(residues, turns):
i+=1 i+=1
return(helix) return(helix)
def get_ladder(bridges): def get_ladders(bridges):
ladders = {} ladders = {}
for i in range(len(bridges)): i = 1
while i < len(bridges):
k = 1 k = 1
while bridges[i] == bridges[i+k]: while (((i in bridges.keys()) and (i+k in bridges.keys())) and
(bridges[i].bridge_type == bridges[i+k].bridge_type)):
k+=1 k+=1
if k>1: if k>1:
ladders[bridges[i].res_num] = k-1 ladders[bridges[i].res_num] = k-1
print("ladder", bridges[i].res_num, bridges[i+k-1].res_num)
ladders[bridges[i].res_num] = {'start':bridges[i].res_num,
'end':bridges[i+k-1].res_num}
i+=k-1
else:
i+=1
return ladders
def get_bends(residues): def get_bends(residues):
bends = {} bends = {}
@ -229,11 +240,11 @@ def get_chirality(residues):
if(angle>0 and angle<=180): if(angle>0 and angle<=180):
sign="+" sign="+"
print("angle", residues[i].resid, "+", angle) print("chirality", residues[i].resid, "+", angle)
if(angle<=0 and angle > -180): if(angle<=0 and angle > -180):
sign="-" sign="-"
print("angle", residues[i].resid, "-", angle) print("chirality", residues[i].resid, "-", angle)
chirality[residues[i].resid] = sign chirality[residues[i].resid] = sign