def assign_dope_items(self, selection):
# Builds a list of all DOPE values of the residues in the selection.
ldope = []
for chain_element in selection:
ldope.extend(chain_element.dope_scores)
# Takes the min and max values among all the selected residues.
min_value = min(ldope)
max_value = max(ldope)
# An array with the equally sapced limits generated with the list above.
bins = numpy.array(numpy.linspace(min_value, max_value, num=10))
for chain_element in selection:
# An array with all the DOPE values of a single chain in the selection.
adope = numpy.array(chain_element.dope_scores)
# An array with the id of the bins where those values reside.
inds = numpy.digitize(adope, bins)
# Returns a list like:
# [(-0.052, 4), (-0.03, 3), (-0.04, 5), (-0.04, 6), (-0.041, 7), (-0.042, 8), (-0.043, 10), ...]
# which contains for all standard residues of a polypeptidic chain a tuple. The
# first value of the tuple is the DOPE score of that residues, the second is the id
# (going from 1 to 10) of the bin where that value resides.
chain_element.dope_items = []
for dope_score, bin_id in zip(adope, inds):# zip(ldope, inds):
chain_element.dope_items.append({"dope-score":dope_score, "interval": bin_id})
评论列表
文章目录