mirror of
https://github.com/schrodinger/pymol-open-source.git
synced 2026-06-04 20:04:21 +08:00
71 lines
3.2 KiB
Python
71 lines
3.2 KiB
Python
|
|
from pymol import cmd, testing, stored, preset
|
|
|
|
class TestPreset(testing.PyMOLTestCase):
|
|
|
|
def _assertSimpleReps(self):
|
|
self.assertEqual(cmd.count_atoms('rep cartoon'), 0)
|
|
self.assertEqual(cmd.count_atoms('rep ribbon & guide'), cmd.count_atoms('guide'))
|
|
self.assertEqual(cmd.count_atoms('rep sticks & organic'), cmd.count_atoms('organic'))
|
|
self.assertEqual(cmd.count_atoms('rep nonbonded & solvent'), cmd.count_atoms('solvent'))
|
|
|
|
def _assertPrettyReps(self):
|
|
self.assertEqual(cmd.count_atoms('rep cartoon & guide'), cmd.count_atoms('guide'))
|
|
self.assertEqual(cmd.count_atoms('rep ribbon'), 0)
|
|
self.assertEqual(cmd.count_atoms('rep sticks & organic'), cmd.count_atoms('organic'))
|
|
self.assertEqual(cmd.count_atoms('rep nonbonded'), 0)
|
|
self.assertEqual(cmd.count_atoms('rep nonbonded'), 0)
|
|
|
|
def testSimple(self):
|
|
cmd.load(self.datafile('1oky.pdb.gz'))
|
|
preset.simple('all')
|
|
self._assertSimpleReps()
|
|
|
|
def testTechnical(self):
|
|
cmd.load(self.datafile('1oky.pdb.gz'))
|
|
preset.technical('all')
|
|
self._assertSimpleReps()
|
|
self.assertTrue('1oky_pol_conts' in cmd.get_names('all'))
|
|
|
|
def testPublication(self):
|
|
cmd.load(self.datafile('1oky.pdb.gz'))
|
|
preset.publication('all')
|
|
self._assertPrettyReps()
|
|
self.assertTrue(cmd.get_setting_boolean('cartoon_smooth_loops', '1oky'))
|
|
self.assertTrue(cmd.get_setting_boolean('cartoon_fancy_helices', '1oky'))
|
|
|
|
def testPretty(self):
|
|
cmd.load(self.datafile('1oky.pdb.gz'))
|
|
preset.pretty('all')
|
|
self._assertPrettyReps()
|
|
self.assertFalse(cmd.get_setting_boolean('cartoon_smooth_loops', '1oky'))
|
|
self.assertFalse(cmd.get_setting_boolean('cartoon_fancy_helices', '1oky'))
|
|
|
|
def testLigands(self):
|
|
cmd.load(self.datafile('1oky.pdb.gz'))
|
|
preset.ligands('all')
|
|
self.assertEqual(cmd.count_atoms('rep cartoon'), 0)
|
|
self.assertGreater(cmd.count_atoms('rep ribbon'), 0)
|
|
self.assertEqual(cmd.count_atoms('rep sticks & organic'), cmd.count_atoms('organic'))
|
|
solvent_nb_count = cmd.count_atoms('rep nonbonded & solvent')
|
|
self.assertGreater(solvent_nb_count, 0)
|
|
self.assertLess(solvent_nb_count, cmd.count_atoms('solvent'))
|
|
self.assertGreater(cmd.count_atoms('rep lines & polymer'), 0)
|
|
self.assertEqual(cmd.count_atoms('(polymer be. 10 of hetatm) and rep lines'), 0)
|
|
self.assertTrue('1oky_pol_conts' in cmd.get_names('all'))
|
|
|
|
def testDefault(self):
|
|
cmd.load(self.datafile('1oky.pdb.gz'))
|
|
cmd.color("yellow", "1oky") # color index 6
|
|
preset.default('1oky')
|
|
self.assertEqual(cmd.count_atoms('rep cartoon'), 0)
|
|
self.assertEqual(cmd.count_atoms('rep ribbon'), 0)
|
|
self.assertEqual(cmd.count_atoms('rep sticks'), 0)
|
|
self.assertEqual(cmd.count_atoms('rep spheres'), 0)
|
|
self.assertEqual(cmd.count_atoms('rep lines'), cmd.count_atoms())
|
|
self.assertEqual(cmd.count_atoms('rep nonbonded & solvent'), cmd.count_atoms('solvent'))
|
|
# object color must be preserved for carbons
|
|
color_set = set()
|
|
cmd.iterate('elem C', 'color_set.add(color)', space=locals())
|
|
self.assertItemsEqual(color_set, [6])
|