def normalizeWaterScore(self): #pose,entropyPenalty=False): # keep track of the original energy values if self.debug: old_e = self.pose['energy'] old_leff = self.pose['leff'] # rec_displaced waters rec_displaced = 0 for p in self.pose['water_over_rec_penalty']: rec_displaced += p # print p # XXX #print "RECDISP", rec_displaced # XXX # lig_displaced waters lig_displaced = 0 for p in self.pose['water_over_lig_penalty']: lig_displaced += p # clustering-displaced clust_displaced = 0 for p in self.pose['water_cluster_penalty']: clust_displaced += p # count heavy at for lig.efficiency heavy_atoms = 0 for a in self.pose['text']: if hf.isAtom(a) and (not hf.getAtype(a) in ['HD', 'W']): heavy_atoms += 1 # energy correction if self.conservedwaterentropy: # XXX read the penalty from a variable! entropy = (0.2) * len(self.pose['water_bridge']) #print " ENTROPY PENALTY = ", entropy else: entropy = 0 self.pose[ 'energy'] += lig_displaced + rec_displaced + clust_displaced + entropy # lig.efficiency correction self.pose['leff'] = self.pose['energy'] / float(heavy_atoms) if self.debug: #print "\n# PENALTY:\t +%2.3f [rec: %2.3f, lig: %2.3f, clust: %2.3f ]" % (rec_displaced+lig_displaced+clust_displaced, # rec_displaced, lig_displaced, clust_displaced) print " Penalties:" print " - lig overlap : %2.3f" % lig_displaced print " - rec overlap : %2.3f" % rec_displaced print " - cluster penalty : %2.3f" % clust_displaced print " - extra entropy : %2.3f" % entropy print " ENERGY:\t %2.3f [ old: %2.3f ]" % (self.pose['energy'], old_e) print " L.EFF.:\t %2.3f [ old: %2.3f ]\n" % (self.pose['leff'], old_leff)
def normalizeWaterScore(self): #pose,entropyPenalty=False): # keep track of the original energy values if self.debug: old_e = self.pose['energy'] old_leff = self.pose['leff'] # rec_displaced waters rec_displaced = 0 for p in self.pose['water_over_rec_penalty']: rec_displaced += p # print p # XXX #print "RECDISP", rec_displaced # XXX # lig_displaced waters lig_displaced = 0 for p in self.pose['water_over_lig_penalty']: lig_displaced += p # clustering-displaced clust_displaced = 0 for p in self.pose['water_cluster_penalty']: clust_displaced += p # count heavy at for lig.efficiency heavy_atoms = 0 for a in self.pose['text']: if hf.isAtom(a) and ( not hf.getAtype(a) in ['HD', 'W'] ): heavy_atoms += 1 # energy correction if self.conservedwaterentropy: # XXX read the penalty from a variable! entropy = (0.2)*len(self.pose['water_bridge']) #print " ENTROPY PENALTY = ", entropy else: entropy = 0 self.pose['energy'] += lig_displaced + rec_displaced + clust_displaced + entropy # lig.efficiency correction self.pose['leff'] = self.pose['energy'] / float( heavy_atoms ) if self.debug: #print "\n# PENALTY:\t +%2.3f [rec: %2.3f, lig: %2.3f, clust: %2.3f ]" % (rec_displaced+lig_displaced+clust_displaced, # rec_displaced, lig_displaced, clust_displaced) print " Penalties:" print " - lig overlap : %2.3f" % lig_displaced print " - rec overlap : %2.3f" % rec_displaced print " - cluster penalty : %2.3f" % clust_displaced print " - extra entropy : %2.3f" % entropy print " ENERGY:\t %2.3f [ old: %2.3f ]" % (self.pose['energy'], old_e) print " L.EFF.:\t %2.3f [ old: %2.3f ]\n" % (self.pose['leff'], old_leff)