def process_flex_res_lines(self, lines): # processremove BEGIN_RES, REMARK lines # change ROOT/ENDROOT to BRANCH/ENDBRANCH LigROOTATOM# first resAtom# #print "in pfrl: len(lines)=", len(lines) parser = PdbqtParser() pl = [] flex_res = ResidueSet() for i in range(len(lines)): l = lines[i] #print l if l.find('BEGIN_RES')>-1: #print "found BEGIN_RES", len(pl) pl = [l] elif l.find('END_RES')>-1: #print "found END_RES", len(pl) if len(pl): #pl.append(l) parser.allLines = pl[1:-1] mol = parser.parse()[0] mol.chains.residues[-1].torTree = mol.torTree #for res in mol.chains.residues: flex_res += mol.chains.residues #flex_res.extend(mol.chains.residues) #print '2:', len(flex_res) if i!=len(lines)-1: pl = [] else: pl.append(l) #print "returning ", flex_res return flex_res
def _buildInputLig(self, lines, filename): if self.parser.version>=4.0: parser = PdbqtParser() #pdbqParser.allLines = self._hackLigLineFormat(lines) else: parser = PdbqParser() if hasattr(self.parser, 'hasFlexRes') and self.parser.hasFlexRes: lines.extend(self.parser.flex_res_lines) self.flex_res = self.process_flex_res_lines(self.parser.flex_res_lines) #print "flex_res=", self.flex_res parser.allLines = lines parser.filename = filename #filename = pdbqParser.filename = self.dpo['move']['value'] #the parser does this #nameStr = os.path.splitext(filename)[0] try: mol = parser.parse()[0] return mol except: print "exception in _buildInputLig"