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"