コード例 #1
0
    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)
コード例 #2
0
ファイル: WaterProcessing.py プロジェクト: damjanmk/Raccoon2
    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)