def measure(self, structure): try: a = lookup(self.descriptionA, structure).center b = lookup(self.descriptionB, structure).center return distance(a, b) except AttributeError, ae: print "DISTANCE MEASURE FALIURE :", self.descriptionA, self.descriptionB, str(ae) return 0.0
donorAtomPosition = lookup(self.donorDescription, example).center hydrogenAtomPosition = lookup(self.hydrogenDescription, example).center acceptorAtomPosition = lookup(self.acceptorDescription, example).center attachedAtomPosition = lookup(self.attachedDescription, example).center except DescriptionException, d: return False except AttributeError, ae: #sys.stderr.write(str(ae) +"\n") #import traceback #traceback.print_exc(limit=4, file=sys.stdout) return False satisfied = False #h_a, dha, haa = None, None, None h_a = distance(hydrogenAtomPosition, acceptorAtomPosition) if h_a < self.distanceHACutoff: dha = angle(donorAtomPosition, hydrogenAtomPosition, acceptorAtomPosition) if dha > self.angleDHACutoff: haa = angle(hydrogenAtomPosition, acceptorAtomPosition, attachedAtomPosition) if haa > self.angleHAACutoff: satisfied = True #sys.stderr.write("satisfied %s %s %s %s\n" % (satisfied, h_a, dha, haa)) if self.negated: if satisfied: return False else: return True else: if satisfied: