Exemplo n.º 1
0
 def test_writer_1(self):
     """
     Checks that MMCIFParser can read the file written by MMCIFWriter
     """
     parser = MMCIFParser(filename='Data/1CRN.cif')
     mol = parser.parse()
     writer = MMCIFWriter()
     writer.write('Data/1CRN_.cif', mol)
     new_parser = MMCIFParser(filename='Data/1CRN_.cif')
     mol = parser.parse()
     os.remove('Data/1CRN_.cif')
Exemplo n.º 2
0
 def test_writer_1(self):
     """
     Checks that MMCIFParser can read the file written by MMCIFWriter
     """
     parser = MMCIFParser(filename='Data/1CRN.cif')
     mol = parser.parse()
     writer = MMCIFWriter()
     writer.write('Data/1CRN_.cif',mol)
     new_parser = MMCIFParser(filename='Data/1CRN_.cif')
     mol = parser.parse()
     os.remove('Data/1CRN_.cif')
Exemplo n.º 3
0
 def test_write_2(self):
     """
     Tests that PdbWriter can write molecule parsed by MMCIFParser
     """
     # read a molecule
     parser = MMCIFParser(filename='Data/1CRN.cif')
     mol = parser.parse()
     # instanciate a PdbWriter and call the write method with the
     # default arguments
     from MolKit.pdbWriter import PdbWriter
     writer = PdbWriter()
     writer.write('Data/1crn_mmcifwriter.pdb', mol)
     os.remove('Data/1crn_mmcifwriter.pdb')
Exemplo n.º 4
0
 def test_write_2(self):
     """
     Tests that PdbWriter can write molecule parsed by MMCIFParser
     """
     # read a molecule
     parser = MMCIFParser(filename='Data/1CRN.cif')
     mol = parser.parse()
     # instanciate a PdbWriter and call the write method with the
     # default arguments
     from MolKit.pdbWriter import PdbWriter
     writer = PdbWriter()
     writer.write('Data/1crn_mmcifwriter.pdb', mol)
     os.remove('Data/1crn_mmcifwriter.pdb')
Exemplo n.º 5
0
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
Exemplo n.º 6
0
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
Exemplo n.º 7
0
                file_out.write("HETATM")
            file_out.write(" %6s" % Atom.number)  #2
            file_out.write(" " + Atom.element)  #3
            file_out.write(" %5s" % Atom.name)  #4
            file_out.write(" " + Atom.parent.type)  #5
            if Atom.parent.parent.name == ' ':
                file_out.write(" ?")  #6
            else:
                file_out.write(" " + Atom.parent.parent.name)
            file_out.write(" %5d" % int(Atom.parent.number))  #7
            file_out.write(" %7.3f" % Atom._coords[0][0])  #8
            file_out.write(" %7.3f" % Atom._coords[0][1])  #9
            file_out.write(" %7.3f" % Atom._coords[0][2])  #10
            file_out.write(" %6.2f" % float(Atom.occupancy))  #11
            file_out.write(" %6.2f" % float(Atom.temperatureFactor))  #12
            file_out.write("\n")
        file_out.close()


if __name__ == '__main__':
    from MolKit.mmcifParser import MMCIFParser
    parser = MMCIFParser(filename='Tests/Data/1CRN.cif')
    print "Reading molecule"
    mol = parser.parse()
    print "Done parsing"
    SS_Data = parser.parseSSData(mol)
    print "Done parsing secondary structure"
    writer = MMCIFWriter()
    writer.write('Tests/Data/1CRN_.cif', mol)
    print "Done"
Exemplo n.º 8
0
            else:
                file_out.write("HETATM")
            file_out.write(" %6s"%Atom.number)                      #2
            file_out.write(" " + Atom.element)                      #3
            file_out.write(" %5s"%Atom.name)                        #4
            file_out.write(" " + Atom.parent.type)                  #5
            if Atom.parent.parent.name == ' ':
                file_out.write(" ?")                                #6
            else:
                file_out.write(" " + Atom.parent.parent.name)
            file_out.write(" %5d"%int(Atom.parent.number))          #7
            file_out.write(" %7.3f"%Atom._coords[0][0])             #8
            file_out.write(" %7.3f"%Atom._coords[0][1])             #9
            file_out.write(" %7.3f"%Atom._coords[0][2])             #10
            file_out.write(" %6.2f"%float(Atom.occupancy))          #11
            file_out.write(" %6.2f"%float(Atom.temperatureFactor))  #12
            file_out.write("\n")
        file_out.close()

if __name__ == '__main__':
    from MolKit.mmcifParser import MMCIFParser
    parser = MMCIFParser( filename='Tests/Data/1CRN.cif' )
    print "Reading molecule"
    mol = parser.parse()
    print "Done parsing"
    SS_Data  = parser.parseSSData( mol )
    print "Done parsing secondary structure"
    writer = MMCIFWriter()
    writer.write('Tests/Data/1CRN_.cif',mol)
    print "Done"
Exemplo n.º 9
0
 def test_parseNAD(self):
     parser1 = MMCIFParser("Data/1GGA_.cif")
     mol1 = parser1.parse()
     P = mol1.chains[-1].residues.atoms[0].chemElem
     assert P is 'P' 
Exemplo n.º 10
0
 def test_parseFileWrongFormat(self):
     parser1 = MMCIFParser("Data/fakePDB.pdb")
     mols1 = parser1.parse()
     assert mols1 is None or len(mols1)==0
Exemplo n.º 11
0
 def test_parseSSData(self):
     """Check that parseSSData() parses secondary structure"""
     parser1 = MMCIFParser(filename='Data/1CRN.cif')
     mols1 = parser1.parse()
     ssDataForMol = parser1.parseSSData(mols1)   
Exemplo n.º 12
0
 def initParser(self):
     global mols
     if mols is None:
         parser = MMCIFParser(filename='./Data/2PLV.cif')
         mols = parser.parse()
     self.mols = mols