Something went wrong on our end
test_io_mmcif.py 9.39 KiB
import unittest
import ost
from ost import *
class TestMMCifInfo(unittest.TestCase):
def setUp(self):
pass
def test_mmcifinfo_citation(self):
c = io.MMCifInfoCitation()
# test ID setting/ getting
c.SetID('ID')
self.assertEquals(c.GetID(), 'ID')
# test CAS setting/ getting
c.SetCAS('FOO')
self.assertEquals(c.GetCAS(), 'FOO')
# test ISBN setting/ getting
c.SetISBN('0-0-0-0-0-0')
self.assertEquals(c.GetISBN(), '0-0-0-0-0-0')
# test published_in setting/ getting
c.SetPublishedIn('Best Book Ever')
self.assertEquals(c.GetPublishedIn(), 'Best Book Ever')
# test volume setting/ getting
c.SetVolume('3')
self.assertEquals(c.GetVolume(), '3')
# test page setting/ getting
c.SetPageFirst('1')
self.assertEquals(c.GetPageFirst(), '1')
c.SetPageLast('10')
self.assertEquals(c.GetPageLast(), '10')
# test doi setting/ getting
c.SetDOI('HERE')
self.assertEquals(c.GetDOI(), 'HERE')
# test PubMed setting/ getting
c.SetPubMed(815)
self.assertEquals(c.GetPubMed(), 815)
# test year setting/ getting
c.SetYear(815)
self.assertEquals(c.GetYear(), 815)
# test title setting/ getting
c.SetTitle('Foo')
self.assertEquals(c.GetTitle(), 'Foo')
# test auhtors setting/ getting
s = ost.StringList()
s.append('Foo')
c.SetAuthorList(s)
s2 = c.GetAuthorList()
self.assertEquals(s2[0], 'Foo')
i = io.MMCifInfo()
i.SetMethod('Deep-Fry')
i.SetResolution(2.0)
i.AddCitation(c)
s.append('Bar')
i.AddAuthorsToCitation('ID', s)
cl = i.GetCitations()
self.assertEquals(len(cl), 1)
al = cl[0].GetAuthorList()
self.assertEquals(len(al), 2)
self.assertEquals(al[0], 'Foo')
self.assertEquals(al[1], 'Bar')
self.assertEquals(i.GetMethod(), 'Deep-Fry')
self.assertEquals(i.GetResolution(), 2.0)
def test_mmcifinfo_biounit(self):
b = io.MMCifInfoBioUnit()
b.SetDetails('Details')
self.assertEquals(b.GetDetails(), 'Details')
b.AddChain('A')
cl = b.GetChainList()
self.assertEquals(cl[0], 'A')
s = ost.StringList()
s.append('B')
s.append('C')
b.SetChainList(s)
cl = b.GetChainList()
self.assertEquals(cl[0], 'B')
self.assertEquals(cl[1], 'C')
i = io.MMCifInfo()
i.AddBioUnit(b)
bl = i.GetBioUnits()
self.assertEquals(len(bl), 1)
def test_mmcifinfo_transoperation(self):
o = io.MMCifInfoTransOp()
o.SetID("1")
self.assertEquals(o.GetID(), '1')
o.SetType("identity operation")
self.assertEquals(o.GetType(), 'identity operation')
o.SetVector(1.0, 2.0, 3.0)
self.assertEquals(o.GetVector().x, 1.0)
self.assertEquals(o.GetVector().y, 2.0)
self.assertEquals(o.GetVector().z, 3.0)
o.SetMatrix(1, 2, 3, 4, 5, 6, 7, 8, 9)
self.assertEquals(geom.Equal(o.GetMatrix(),
geom.Mat3(1, 2, 3, 4, 5, 6, 7, 8, 9)), True)
i = io.MMCifInfo()
i.AddOperation(o)
ol = i.GetOperations()
self.assertEquals(ol[0].GetID(), '1')
b = io.MMCifInfoBioUnit()
b.AddOperations(ol)
oll = b.GetOperations()
self.assertEquals(oll[0][0].GetID(), '1')
def test_mmcifinfo_biounit_pdbize(self):
ent, seqres, info = io.LoadMMCIF("testfiles/mmcif/3T6C.cif.gz",
seqres=True,
info=True)
pdb_ent = info.GetBioUnits()[0].PDBize(ent)
pdb_seqres_ent = info.GetBioUnits()[0].PDBize(ent, seqres)
# chains
self.assertEquals(str(pdb_ent.GetChainList()[0]), 'A')
self.assertEquals(str(pdb_ent.GetChainList()[1]), 'B')
self.assertEquals(str(pdb_ent.GetChainList()[2]), '_')
self.assertEquals(str(pdb_ent.GetChainList()[3]), '-')
self.assertEquals(str(pdb_ent.GetChainList()[4]), 'C')
self.assertEquals(str(pdb_ent.GetChainList()[5]), 'D')
self.assertEquals(str(pdb_ent.GetChainList()[6]), 'E')
self.assertEquals(str(pdb_ent.GetChainList()[7]), 'F')
self.assertEquals(str(pdb_ent.GetChainList()[8]), 'G')
self.assertEquals(str(pdb_ent.GetChainList()[9]), 'H')
# size of chains
self.assertEquals(len(pdb_ent.GetChainList()[0].GetResidueList()), 415)
self.assertEquals(len(pdb_ent.GetChainList()[1].GetResidueList()), 414)
self.assertEquals(len(pdb_ent.GetChainList()[2].GetResidueList()), 64)
self.assertEquals(len(pdb_ent.GetChainList()[3].GetResidueList()), 3816)
self.assertEquals(len(pdb_ent.GetChainList()[4].GetResidueList()), 415)
self.assertEquals(len(pdb_ent.GetChainList()[5].GetResidueList()), 414)
self.assertEquals(len(pdb_ent.GetChainList()[6].GetResidueList()), 415)
self.assertEquals(len(pdb_ent.GetChainList()[7].GetResidueList()), 414)
self.assertEquals(len(pdb_ent.GetChainList()[8].GetResidueList()), 415)
self.assertEquals(len(pdb_ent.GetChainList()[9].GetResidueList()), 414)
self.assertEquals(str(pdb_seqres_ent.GetChainList()[0]), 'A')
self.assertEquals(str(pdb_seqres_ent.GetChainList()[1]), 'B')
self.assertEquals(str(pdb_seqres_ent.GetChainList()[2]), '_')
self.assertEquals(str(pdb_seqres_ent.GetChainList()[3]), '-')
self.assertEquals(str(pdb_seqres_ent.GetChainList()[4]), 'C')
self.assertEquals(str(pdb_seqres_ent.GetChainList()[5]), 'D')
self.assertEquals(str(pdb_seqres_ent.GetChainList()[6]), 'E')
self.assertEquals(str(pdb_seqres_ent.GetChainList()[7]), 'F')
self.assertEquals(str(pdb_seqres_ent.GetChainList()[8]), 'G')
self.assertEquals(str(pdb_seqres_ent.GetChainList()[9]), 'H')
self.assertEquals(len(pdb_seqres_ent.GetChainList()[0].GetResidueList()),
415)
self.assertEquals(len(pdb_seqres_ent.GetChainList()[1].GetResidueList()),
414)
self.assertEquals(len(pdb_seqres_ent.GetChainList()[2].GetResidueList()),
64)
self.assertEquals(len(pdb_seqres_ent.GetChainList()[3].GetResidueList()),
3816)
self.assertEquals(len(pdb_seqres_ent.GetChainList()[4].GetResidueList()),
415)
self.assertEquals(len(pdb_seqres_ent.GetChainList()[5].GetResidueList()),
414)
self.assertEquals(len(pdb_seqres_ent.GetChainList()[6].GetResidueList()),
415)
self.assertEquals(len(pdb_seqres_ent.GetChainList()[7].GetResidueList()),
414)
self.assertEquals(len(pdb_seqres_ent.GetChainList()[8].GetResidueList()),
415)
self.assertEquals(len(pdb_seqres_ent.GetChainList()[9].GetResidueList()),
414)
def test_mmcifinfo_biounit_pdbize_transformation(self):
ent, seqres, info = io.LoadMMCIF("testfiles/mmcif/3hqv.cif.gz",
seqres=True,
info=True)
pdb_ent, t = info.GetBioUnits()[0].PDBize(ent, transformation=True)
self.assertAlmostEquals(pdb_ent.GetCenterOfAtoms()[0], -915.8, 1)
self.assertAlmostEquals(pdb_ent.GetCenterOfAtoms()[1], -952.345, 2)
self.assertAlmostEquals(pdb_ent.GetCenterOfAtoms()[2], 3221.75, 2)
self.assertEquals(geom.Equal(t,
geom.Mat4(1,0,0,-920.462,
0,1,0,-966.654,
0,0,1,1703,
0,0,0,1),
epsilon=0.01), True)
def test_mmcifinfo_structdetails(self):
d = io.MMCifInfoStructDetails()
d.SetEntryID('1BAR')
d.SetTitle('A Title')
d.SetCASPFlag('N')
d.SetDescriptor('FooBar')
d.SetMass(1.0)
d.SetMassMethod('Good Guess')
d.SetModelDetails('Created with SwissModel')
d.SetModelTypeDetails('Average')
self.assertEquals(d.GetEntryID(), '1BAR')
self.assertEquals(d.GetTitle(), 'A Title')
self.assertEquals(d.GetCASPFlag(), 'N')
self.assertEquals(d.GetDescriptor(), 'FooBar')
self.assertEquals(d.GetMass(), 1.0)
self.assertEquals(d.GetMassMethod(), 'Good Guess')
self.assertEquals(d.GetModelDetails(), 'Created with SwissModel')
self.assertEquals(d.GetModelTypeDetails(), 'Average')
i = io.MMCifInfo()
i.SetStructDetails(d)
self.assertEquals(i.GetStructDetails().GetEntryID(), '1BAR')
self.assertEquals(i.GetStructDetails().GetTitle(), 'A Title')
self.assertEquals(i.GetStructDetails().GetCASPFlag(), 'N')
self.assertEquals(i.GetStructDetails().GetDescriptor(), 'FooBar')
self.assertEquals(i.GetStructDetails().GetMass(), 1.0)
self.assertEquals(i.GetStructDetails().GetMassMethod(), 'Good Guess')
self.assertEquals(i.GetStructDetails().GetModelDetails(),
'Created with SwissModel')
self.assertEquals(i.GetStructDetails().GetModelTypeDetails(), 'Average')
def test_mmcifinfo_obsolete(self):
obs = io.MMCifInfoObsolete()
obs.SetDate('2011-08-31')
obs.SetID('SPRSDE')
obs.SetPDBID('1FOO')
obs.SetReplacedPDBID('2BAR')
self.assertEquals(obs.GetDate(), '2011-08-31')
self.assertEquals(obs.GetID(), 'Supersede')
self.assertEquals(obs.GetPDBID(), '1FOO')
self.assertEquals(obs.GetReplacedPDBID(), '2BAR')
i = io.MMCifInfo()
obs.id = 'OBSLTE'
i.SetObsoleteInfo(obs)
self.assertEquals(i.GetObsoleteInfo().GetDate(), '2011-08-31')
self.assertEquals(i.GetObsoleteInfo().GetID(), 'Obsolete')
self.assertEquals(i.GetObsoleteInfo().GetPDBID(), '1FOO')
self.assertEquals(i.GetObsoleteInfo().GetReplacedPDBID(), '2BAR')
if __name__== '__main__':
from ost import testutils
testutils.RunTests()