コード例 #1
0
 def recOverlapWaters(self):  # pose, cutoff = CLASH,
     #ignore_types = ['HD', 'H', 'W'] ):
     """ INPUT : pdb lig (multi)model and pdb target model
         OUTPUT: cleaned pdb lig model
      """
     #print "WARNING! missing interactions! Line B1"
     overlapping = []
     atom_pool = []
     cutoff = self.clash**2
     #cutoff += 0.5
     #cutoff = 0
     #for a in self.pose['vdw_contacts']: # PDBQT, no-HD   # XXX TODO BUG Line B1
     for aset in self.pose[
             'water_bridge_contacts']:  # PDBQT, no-HD   # XXX TODO BUG Line B1
         for a in aset:
             if not hf.getAtype(a) in self.ignore_types:
                 atom_pool.append(a)
     if self.debug:
         fp = open('DEBUG_rec_overlap.pdb', 'w')
         fp.write("REMARK  WATERS REMOVED BY RECEPTOR CLASHES")
     for w in self.pose['water_bridge']:
         try:  # try/except is faster
             for a in atom_pool:
                 #if hf.dist(w, a, sq=False) < self.clash:
                 if hf.dist(w, a, sq=False) < cutoff:
                     overlapping.append(w)
                     self.pose['text'].remove(w)
                     #print "\n\n\n ####  REMOVED", w
                     if self.debug:
                         fp.write(w + "\n")
                         fp.write(a + "\n")
                     raise self.qs
         except:
             pass
     if self.debug:
         fp.close()
         print "Processed: %d | Rec-overlap %d" % (len(
             self.pose['water_bridge']), len(overlapping))
     for w in overlapping:
         idx = self.pose['water_bridge'].index(w)
         del self.pose['water_bridge_contacts'][idx]
         self.pose['water_bridge'].remove(w)
     self.pose['water_over_rec'] = overlapping
コード例 #2
0
ファイル: WaterProcessing.py プロジェクト: damjanmk/Raccoon2
 def recOverlapWaters(self): # pose, cutoff = CLASH,
     #ignore_types = ['HD', 'H', 'W'] ):
     """ INPUT : pdb lig (multi)model and pdb target model
         OUTPUT: cleaned pdb lig model
      """
     #print "WARNING! missing interactions! Line B1"
     overlapping = []
     atom_pool = []
     cutoff = self.clash**2
     #cutoff += 0.5
     #cutoff = 0
     #for a in self.pose['vdw_contacts']: # PDBQT, no-HD   # XXX TODO BUG Line B1
     for aset in self.pose['water_bridge_contacts']: # PDBQT, no-HD   # XXX TODO BUG Line B1
         for a in aset:
             if not hf.getAtype(a) in self.ignore_types:
                 atom_pool.append(a)
     if self.debug:
         fp = open('DEBUG_rec_overlap.pdb','w')
         fp.write("REMARK  WATERS REMOVED BY RECEPTOR CLASHES")
     for w in self.pose['water_bridge']:
         try: # try/except is faster
             for a in atom_pool:
                 #if hf.dist(w, a, sq=False) < self.clash:
                 if hf.dist(w, a, sq=False) < cutoff:
                     overlapping.append(w)
                     self.pose['text'].remove(w)
                     #print "\n\n\n ####  REMOVED", w
                     if self.debug:
                         fp.write(w+"\n")
                         fp.write(a+"\n")
                     raise self.qs
         except:
             pass 
     if self.debug:
         fp.close()
         print "Processed: %d | Rec-overlap %d" % (len(self.pose['water_bridge']), len(overlapping) )
     for w in overlapping:
         idx = self.pose['water_bridge'].index(w)
         del self.pose['water_bridge_contacts'][idx]
         self.pose['water_bridge'].remove(w)
     self.pose['water_over_rec'] = overlapping