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 test_parsePDBQT(): """ check that pdbqt format files can be read """ from MolKit.pdbParser import PdbqtParser parser = PdbqtParser("Data/1ent_rec.pdbqt") m = parser.parse()[0] assert len(m.allAtoms)==2901
def test_parsePDBQT(): """ check that pdbqt format files can be read """ from MolKit.pdbParser import PdbqtParser parser = PdbqtParser("Data/1ent_rec.pdbqt") m = parser.parse()[0] assert len(m.allAtoms) == 2901
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"
def Read(filename=None, alllines=None, dataformat='pdb', modelsAs='molecules'): if not alllines and not filename: raise AssertionError("%s invalid molecule" % filename) elif alllines and filename: alllines = None elif filename: if not os.path.exists(filename): raise AssertionError("%s does't exist" % filename) if alllines: ext = dataformat args = [None, alllines] else: ext = filename.split('.')[1] args = [filename, None] if ext == 'pdb': parser = PdbParser(*args, modelsAs=modelsAs) elif ext == 'pdbq': parser = PdbqParser(*args, modelsAs=modelsAs) elif ext == 'pdbqt': parser = PdbqtParser(*args, modelsAs=modelsAs) elif ext == 'pdbqs': parser = PdbqsParser(*args, modelsAs=modelsAs) elif ext == 'pqr': parser = PQRParser(*args, modelsAs=modelsAs) # FIXME: pass all lines??? elif ext == 'mol2': parser = Mol2Parser( filename) # ??should modelsAs be available for mol2 format?? elif ext == 'cif': parser = MMCIFParser(filename) elif ext == 'f2d': parser = F2DParser(filename) else: print("File Format unknown can't parse it") return [] molecules = parser.parse() return molecules
def Read(filename, modelsAs='molecules'): if not os.path.exists(filename): raise AssertionError, "%s does't exist" % filename from MolKit.pdbParser import PdbParser, PdbqParser,PdbqsParser,\ PdbqtParser, PQRParser, F2DParser from MolKit.mol2Parser import Mol2Parser from MolKit.mmcifParser import MMCIFParser ext = string.split(filename, '.') if ext[-1] == 'pdb': parser = PdbParser(filename, modelsAs=modelsAs) elif ext[-1] == 'pdbq': parser = PdbqParser(filename, modelsAs=modelsAs) elif ext[-1] == 'pdbqt': parser = PdbqtParser(filename, modelsAs=modelsAs) elif ext[-1] == 'pdbqs': parser = PdbqsParser(filename, modelsAs=modelsAs) elif ext[-1] == 'pqr': parser = PQRParser(filename, modelsAs=modelsAs) elif ext[-1] == 'mol2': parser = Mol2Parser( filename) #??should modelsAs be available for mol2 format?? elif ext[-1] == 'cif': parser = MMCIFParser(filename, modelsAs=modelsAs) elif ext[-1] == 'f2d': parser = F2DParser(filename) else: print "File Format unknown can't parse it" return [] molecules = parser.parse() return molecules