Esempio n. 1
0
def test_polyala():
    cmd.reinitialize()
    cmd.fab('EFG', 'm1')
    psico.editing.polyala()
    assert cmd.count_atoms('name CA') == 3
    assert cmd.count_atoms('name CB') == 2
    assert cmd.count_atoms('name CG+CD+CD1+CD2+2HG+3HG+1HD+2HD') == 0
Esempio n. 2
0
    def testSimple(self):
        cmd.fab('A', 'm1')
        cmd.fab('A', 'm2')
        v1 = 'foo'
        v2 = 'bar'
        v3 = 'com'
        
        # single state
        cmd.set_property('filename', v1, 'm1')
        self.assertTrue('foo' == v1)
        self.assertTrue(cmd.get_property('filename', 'm1') == v1)
        self.assertTrue(cmd.get_property('filename', 'm2') == None)

        # multiple objects
        cmd.set_property('filename', v1)
        self.assertTrue(cmd.get_property('filename', 'm2') == v1)

        # two states
        cmd.create('m1', 'm1', 1, 2)
        self.assertTrue(cmd.count_states() == 2)

        # set for all states
        cmd.set_property('filename', v1, 'm1')
        self.assertTrue(cmd.get_property('filename', 'm1', 2) == v1)

        # set for particular state
        cmd.set_property('filename', v2, 'm1', 2)
        self.assertTrue(cmd.get_property('filename', 'm1', 1) == v1)
        self.assertTrue(cmd.get_property('filename', 'm1', 2) == v2)

        # set for current state
        cmd.frame(2)
        cmd.set_property('filename', v3, 'm1', -1)
        self.assertTrue(cmd.get_property('filename', 'm1', 1) == v1)
        self.assertTrue(cmd.get_property('filename', 'm1', 2) == v3)
Esempio n. 3
0
 def test_sets_ranges(self):
     cmd.fab('ACDEFGHIKL')
     cmd.alter('resi 9', 'resi="9A"') # insertion code
     self.assertEqual(3, cmd.count_atoms('guide & resi 2-4'))
     self.assertEqual(3, cmd.count_atoms('guide & resi 2:4'))
     self.assertEqual(2, cmd.count_atoms('guide & resi 2+4'))
     self.assertEqual(4, cmd.count_atoms('guide & resi 2-4+6'))
     self.assertEqual(6, cmd.count_atoms('guide & resi 2-4+6-8'))
     self.assertEqual(0, cmd.count_atoms('guide & resi 9'))
     self.assertEqual(1, cmd.count_atoms('guide & resi 9A'))
     self.assertEqual(1, cmd.count_atoms('guide & resi 10'))
     self.assertEqual(0, cmd.count_atoms('guide & resi 10A'))
     self.assertEqual(2, cmd.count_atoms('guide & resi 9-10'))
     self.assertEqual(2, cmd.count_atoms('guide & resi 9A-10A'))
     self.assertEqual(10 + 9, cmd.count_atoms('name CA+CB'))
     self.assertEqual(10 + 9, cmd.count_atoms('name CA+CB+XYZ'))
     self.assertEqual(10, cmd.count_atoms('name C'))
     self.assertEqual(50, cmd.count_atoms('name C*'))
     self.assertEqual(10, cmd.count_atoms('name H'))
     self.assertEqual(24, cmd.count_atoms('name H*'))
     self.assertEqual(10, cmd.count_atoms('name *H'))
     self.assertEqual(74, cmd.count_atoms('name *H*'))
     self.assertEqual(20, cmd.count_atoms('name C+N'))
     self.assertEqual(23, cmd.count_atoms('name C+N*'))
     self.assertEqual(60, cmd.count_atoms('name C*+N'))
     self.assertEqual(63, cmd.count_atoms('name C*+N*'))
Esempio n. 4
0
    def test(self):
        cmd.fab('AG')
        cmd.remove('hydro')
        cmd.h_add('resn ALA')

        # with this bug: count = 6
        self.assertEqual(11, cmd.count_atoms('byres (last hydro)'))
Esempio n. 5
0
 def test_sets_ranges(self):
     cmd.fab('ACDEFGHIKL')
     cmd.alter('resi 9', 'resi="9A"')  # insertion code
     self.assertEqual(3, cmd.count_atoms('guide & resi 2-4'))
     self.assertEqual(3, cmd.count_atoms('guide & resi 2:4'))
     self.assertEqual(2, cmd.count_atoms('guide & resi 2+4'))
     self.assertEqual(4, cmd.count_atoms('guide & resi 2-4+6'))
     self.assertEqual(6, cmd.count_atoms('guide & resi 2-4+6-8'))
     self.assertEqual(0, cmd.count_atoms('guide & resi 9'))
     self.assertEqual(1, cmd.count_atoms('guide & resi 9A'))
     self.assertEqual(1, cmd.count_atoms('guide & resi 10'))
     self.assertEqual(0, cmd.count_atoms('guide & resi 10A'))
     self.assertEqual(2, cmd.count_atoms('guide & resi 9-10'))
     self.assertEqual(2, cmd.count_atoms('guide & resi 9A-10A'))
     self.assertEqual(10 + 9, cmd.count_atoms('name CA+CB'))
     self.assertEqual(10 + 9, cmd.count_atoms('name CA+CB+XYZ'))
     self.assertEqual(10, cmd.count_atoms('name C'))
     self.assertEqual(50, cmd.count_atoms('name C*'))
     self.assertEqual(10, cmd.count_atoms('name H'))
     self.assertEqual(24, cmd.count_atoms('name H*'))
     self.assertEqual(10, cmd.count_atoms('name *H'))
     self.assertEqual(74, cmd.count_atoms('name *H*'))
     self.assertEqual(20, cmd.count_atoms('name C+N'))
     self.assertEqual(23, cmd.count_atoms('name C+N*'))
     self.assertEqual(60, cmd.count_atoms('name C*+N'))
     self.assertEqual(63, cmd.count_atoms('name C*+N*'))
Esempio n. 6
0
    def testSimple(self):
        cmd.fab('A', 'm1')
        cmd.fab('A', 'm2')
        v1 = 'foo'
        v2 = 'bar'
        v3 = 'com'
        
        # single state
        cmd.set_property('filename', v1, 'm1')
        self.assertTrue('foo' == v1)
        self.assertTrue(cmd.get_property('filename', 'm1') == v1)
        self.assertTrue(cmd.get_property('filename', 'm2') == None)

        # multiple objects
        cmd.set_property('filename', v1)
        self.assertTrue(cmd.get_property('filename', 'm2') == v1)

        # two states
        cmd.create('m1', 'm1', 1, 2)
        self.assertTrue(cmd.count_states() == 2)

        # set for all states
        cmd.set_property('filename', v1, 'm1')
        self.assertTrue(cmd.get_property('filename', 'm1', 2) == v1)

        # set for particular state
        cmd.set_property('filename', v2, 'm1', 2)
        self.assertTrue(cmd.get_property('filename', 'm1', 1) == v1)
        self.assertTrue(cmd.get_property('filename', 'm1', 2) == v2)

        # set for current state
        cmd.frame(2)
        cmd.set_property('filename', v3, 'm1', -1)
        self.assertTrue(cmd.get_property('filename', 'm1', 1) == v1)
        self.assertTrue(cmd.get_property('filename', 'm1', 2) == v3)
Esempio n. 7
0
    def testExportStyle(self):
        cmd.fab('ACDEF', 'm1')
        cmd.hide()
        cmd.show('cartoon', 'resi 1-3')
        cmd.show('lines', 'resn CYS')
        cmd.show('sticks', 'resn ASP+PHE')
        cmd.show('spheres', 'resn GLU')
        cmd.set('stick_ball', 1, 'resn PHE')
        cmd.set('stick_ball_ratio', 1.5, 'm1')
        testlabel = 'Hello "World"'
        cmd.label('name SG', repr(testlabel))

        with testing.mktemp('.mae') as filename:
            cmd.save(filename)
            cmd.delete('*')
            cmd.load(filename, 'm2')

        g_labels = []
        cmd.iterate('name SG', 'g_labels.append(label)', space=locals())
        cmd.alter('*', 'b = 1 if s.stick_ball else 0')

        self._assertCountEqual('rep cartoon & guide', 'resi 1-3 & guide')
        self._assertCountEqual('rep lines', 'resn CYS', delta=1)
        self._assertCountEqual('rep sticks', 'resn ASP+PHE')
        self._assertCountEqual('rep spheres', 'resn GLU')
        self._assertCountEqual('b > 0.5', 'resn PHE')
        self.assertTrue(cmd.get_setting_float('stick_ball_ratio', 'm2') > 1.1)
        self.assertEqual(g_labels[0], testlabel)
Esempio n. 8
0
def test_select_range():
    cmd.reinitialize()
    cmd.fab("GASGAGS", "m1")
    cmd.select("s1", "resn ALA")
    psico.selecting.select_range()
    assert 4 == cmd.count_atoms("s1 & guide")
    psico.selecting.select_range("s2", "resn SER")
    assert 5 == cmd.count_atoms("s2 & guide")
Esempio n. 9
0
    def testAdvanced(self):
        cmd.fab('A/123/ ADC B/234/ AFCD')

        v = cmd.get_chains()
        self.assertEqual(v, ['A', 'B'])

        cmd.iterate('last chain B', 'stored.v = (resv, resn)')
        self.assertEqual(stored.v, (237, 'ASP'))
Esempio n. 10
0
def test_stub2ala():
    cmd.reinitialize()
    cmd.fab('EFG', 'm1')
    cmd.remove('not (backbone or name CB)')
    psico.editing.stub2ala()
    my_values = []
    cmd.iterate('guide', 'my_values.append(resn)', space=locals())
    assert my_values == ['ALA', 'ALA', 'GLY']
Esempio n. 11
0
    def testAdvanced(self):
        cmd.fab('A/123/ ADC B/234/ AFCD')

        v = cmd.get_chains()
        self.assertEqual(v, ['A', 'B'])

        cmd.iterate('last chain B', 'stored.v = (resv, resn)')
        self.assertEqual(stored.v, (237, 'ASP'))
Esempio n. 12
0
def test_split():
    cmd.reinitialize()
    cmd.fab('ACD', 'm1')
    psico.editing.split('byres', 'm1')
    assert cmd.count_atoms('entity01') == cmd.count_atoms('m1 & resn ALA')
    assert cmd.count_atoms('entity02') == cmd.count_atoms('m1 & resn CYS')
    assert cmd.count_atoms('entity03') == cmd.count_atoms('m1 & resn ASP')
    psico.editing.split('byres', 'm1', 'foo_')
    assert cmd.count_atoms('foo_01') == cmd.count_atoms('m1 & resn ALA')
Esempio n. 13
0
 def test_set_raw_alignment(self):
     cmd.fab('ACDEF', 'm1')
     cmd.fab('CDE', 'm2')
     index_m1 = [('m1', 12), ('m1', 23), ('m1', 35)]
     index_m2 = [('m2',  2), ('m2', 13), ('m2', 25)]
     raw = [list(t) for t in zip(index_m1, index_m2)]
     cmd.set_raw_alignment('aln', raw)
     self.assertEqual(cmd.index('m1 & aln'), index_m1)
     self.assertEqual(cmd.index('m2 & aln'), index_m2)
Esempio n. 14
0
def test_set_phipsi():
    cmd.reinitialize()
    cmd.fab('ACDEF', 'm1')
    psico.editing.set_phipsi('all', 160, 160)
    psico.editing.set_phipsi('resi 2+4', 120)
    psico.editing.set_phipsi('resi 3+4', psi=-140)
    assert cmd.get_phipsi('resi 2')['m1', 12] == approx((120., 160.))
    assert cmd.get_phipsi('resi 3')['m1', 23] == approx((160., -140.))
    assert cmd.get_phipsi('resi 4')['m1', 35] == approx((120., -140.))
Esempio n. 15
0
    def testDir(self):
        seq = 'ACD'
        resv = 5
        cmd.fab(seq, 'm1', resi=resv, dir=-1)

        # incentive needs sort, opensource is already sorted
        cmd.sort()

        cmd.iterate('first m1', 'stored.v = (resv, resn)')
        self.assertEqual(stored.v, (resv - 2, 'ASP'))
Esempio n. 16
0
def test_remove_alt():
    cmd.reinitialize()
    cmd.fab('AC', 'm1')
    cmd.alter('resn ALA', 'alt="A"')
    cmd.alter('resn CYS', 'alt="B"')
    cmd.create('m2', 'm1')
    psico.editing.remove_alt('m1')
    psico.editing.remove_alt('m2', keep='B')
    assert cmd.count_atoms('m1') == 10
    assert cmd.count_atoms('m2') == 11
Esempio n. 17
0
def test_split_molecules():
    cmd.reinitialize()
    cmd.fab('ACD', 'm1')
    cmd.fab('EFG', 'm2')
    cmd.create('m3', 'm1 m2')
    psico.editing.split_molecules('m3')
    assert cmd.count_atoms('mol_01') == cmd.count_atoms('m1')
    assert cmd.count_atoms('mol_02') == cmd.count_atoms('m2')
    psico.editing.split_molecules('m3', 'foo_')
    assert cmd.count_atoms('foo_01') == cmd.count_atoms('m1')
Esempio n. 18
0
 def testMorphRigimol(self):
     cmd.set('suspend_undo')
     import epymol.rigimol
     cmd.fab('ACD', 'm1')
     cmd.create('m1', 'm1', 1, 2)
     cmd.rotate('x', 90, 'm1', 2)
     steps = 5
     cmd.morph('mout', 'm1', refinement=1, steps=steps, method='rigimol')
     self.assertEqual(steps, cmd.count_states('mout'))
     self.assertEqual(cmd.count_atoms('m1'), cmd.count_atoms('mout'))
Esempio n. 19
0
    def testDir(self):
        seq = 'ACD'
        resv = 5
        cmd.fab(seq, 'm1', resi=resv, dir=-1)

        # incentive needs sort, opensource is already sorted
        cmd.sort()

        cmd.iterate('first m1', 'stored.v = (resv, resn)')
        self.assertEqual(stored.v, (resv - 2, 'ASP'))
Esempio n. 20
0
 def testGetFastastr(self):
     seq, name = 'ACD', 'm1'
     cmd.fab(seq, name)
     s = cmd.get_fastastr()
     lines = s.split()
     self.assertTrue(lines[0] in (
         '>' + name,
         '>' + name + '_',
     ))
     self.assertEqual(lines[1:], [seq])
Esempio n. 21
0
 def testGetFastastr(self):
     seq, name = 'ACD', 'm1'
     cmd.fab(seq, name)
     s = cmd.get_fastastr()
     lines = s.split()
     self.assertTrue(lines[0] in (
         '>' + name,
         '>' + name + '_',
     ))
     self.assertEqual(lines[1:], [seq])
Esempio n. 22
0
def test_split_chains():
    cmd.reinitialize()
    cmd.fab('ACD', 'm1', chain='A')
    cmd.fab('EFG', 'm2', chain='B')
    cmd.create('m3', 'm1 m2')
    psico.editing.split_chains('m3')
    assert cmd.get_chains('m3_A') == ['A']
    assert cmd.get_chains('m3_B') == ['B']
    psico.editing.split_chains('m3', 'foo_')
    assert cmd.get_chains('foo_0001') == ['A']
Esempio n. 23
0
def test_set_sequence():
    cmd.reinitialize()
    cmd.fab('ACD', 'm1')
    psico.editing.set_sequence('EFG')
    myseq = []
    cmd.iterate('guide', 'myseq.append(resn)', space=locals())
    assert myseq == ['GLU', 'PHE', 'GLY']
    psico.editing.set_sequence('HI', start=2)
    myseq = []
    cmd.iterate('guide', 'myseq.append(resn)', space=locals())
    assert myseq == ['GLU', 'HIS', 'ILE']
Esempio n. 24
0
def test_update_identifiers():
    cmd.reinitialize()
    cmd.fab('ACD', 'm1')
    cmd.fab('ACD', 'm2')
    cmd.remove('m1 and not backbone')
    cmd.alter('m1', '(segi, chain) = ("Segi", "Chain")')
    psico.editing.update_identifiers('m2', 'm1', identifiers='segi chain')
    assert cmd.get_chains('m2') == ['Chain']
    my_values = []
    cmd.iterate('m2', 'my_values.append(segi)', space=locals())
    assert set(my_values) == set(["Segi"])
Esempio n. 25
0
 def testMorphRigimol(self):
     cmd.set('suspend_undo')
     import epymol.rigimol
     cmd.fab('ACD', 'm1')
     cmd.create('m1', 'm1', 1, 2)
     cmd.rotate('x', 90, 'm1', 2)
     steps = 5
     cmd.morph('mout', 'm1', refinement=1, steps=steps, method='rigimol')
     self.assertEqual(steps, cmd.count_states('mout'))
     self.assertEqual(cmd.count_atoms('m1'),
                      cmd.count_atoms('mout'))
Esempio n. 26
0
 def testSaveAln(self):
     cmd.fab('ACDEFGH', 'm1')
     cmd.fab('ACDFGH', 'm2')
     cmd.align('m1', 'm2', cycles=0, object='aln')
     with testing.mktemp('.aln') as filename:
         cmd.save(filename)
         with open(filename) as handle:
             lines = list(handle)
     self.assertEqual(lines[0].split(), ['CLUSTAL'])
     self.assertEqual(lines[1].split(), [])
     self.assertEqual(lines[2].split(), ['m1', 'ACDEFGH'])
     self.assertEqual(lines[3].split(), ['m2', 'ACD-FGH'])
Esempio n. 27
0
 def testSaveAln(self):
     cmd.fab('ACDEFGH', 'm1')
     cmd.fab('ACDFGH', 'm2')
     cmd.align('m1', 'm2', cycles=0, object='aln')
     with testing.mktemp('.aln') as filename:
         cmd.save(filename)
         with open(filename) as handle:
             lines = list(handle)
     self.assertEqual(lines[0].split(), ['CLUSTAL'])
     self.assertEqual(lines[1].split(), [])
     self.assertEqual(lines[2].split(), ['m1', 'ACDEFGH'])
     self.assertEqual(lines[3].split(), ['m2', 'ACD-FGH'])
Esempio n. 28
0
    def testLoadAlnMappingStr(self):
        cmd.fab('ACDEFGHIKLMNPQRS', 'm1')
        cmd.fab('ACDIKLMNP', 'm2')

        from pymol.seqalign import load_aln_multi

        load_aln_multi(self.datafile('alignment.aln'), 'aln', mapping=
            'seq1 m1 '
            'seq2 m2 '
        )

        self.assertEqual(cmd.count_atoms('guide & aln & m1'), 7)
        self.assertEqual(cmd.count_atoms('guide & aln & m2'), 7)
Esempio n. 29
0
    def testLoadAlnMappingDict(self):
        cmd.fab('ACDIKLMNP', 'm2')
        cmd.fab('GHIKPQRS', 'm3')

        from pymol.seqalign import load_aln_multi

        load_aln_multi(self.datafile('alignment.aln'), 'aln', mapping={
            'seq2': 'm2',
            'seq3': 'm3',
        })

        self.assertEqual(cmd.count_atoms('guide & aln & m2'), 2)
        self.assertEqual(cmd.count_atoms('guide & aln & m3'), 2)
Esempio n. 30
0
    def testMMTFExportSele(self):
        cmd.fab('ACDE')

        with testing.mktemp('.mmtf') as filename:
            cmd.save(filename, 'resn CYS+ASP')
            cmd.delete('*')
            cmd.load(filename)

        self.assertEqual(cmd.count_atoms(), 23)
        self.assertEqual(cmd.count_atoms('bound_to ASP/CG'), 3)
        self.assertEqual(cmd.get_model('ASP/CG ASP/OD1').bond[0].order, 2)
        self.assertEqual(cmd.get_model('ASP/CG ASP/OD2').bond[0].order, 1)
        self.assertEqual(cmd.get_model('CYS/C ASP/N').bond[0].order, 1)
Esempio n. 31
0
def test_alphatoall():
    cmd.reinitialize()
    cmd.fab('ACD', 'm1')
    cmd.alter('guide', 'color = resv')
    psico.editing.alphatoall('all', 'color')
    my_values = []
    cmd.iterate('all', 'my_values.append(color)', space=locals())
    assert set(my_values) == set([1, 2, 3])
    cmd.alter('name N', 'color = resv + 3')
    psico.editing.alphatoall('all', 'color', operator='(name N) and')
    my_values = []
    cmd.iterate('all', 'my_values.append(color)', space=locals())
    assert set(my_values) == set([4, 5, 6])
Esempio n. 32
0
    def testMMTFExportSele(self):
        cmd.fab('ACDE')

        with testing.mktemp('.mmtf') as filename:
            cmd.save(filename, 'resn CYS+ASP')
            cmd.delete('*')
            cmd.load(filename)

        self.assertEqual(cmd.count_atoms(), 23)
        self.assertEqual(cmd.count_atoms('bound_to ASP/CG'), 3)
        self.assertEqual(cmd.get_model('ASP/CG ASP/OD1').bond[0].order, 2)
        self.assertEqual(cmd.get_model('ASP/CG ASP/OD2').bond[0].order, 1)
        self.assertEqual(cmd.get_model('CYS/C ASP/N').bond[0].order, 1)
Esempio n. 33
0
 def testMorphMulti(self):
     cmd.set('suspend_undo')
     cmd.fab('ACD', 'm1')
     cmd.create('m1', 'm1', 1, 2)
     cmd.create('m1', 'm1', 1, 3)
     cmd.rotate('x', 90, 'm1', 2)
     cmd.rotate('x', 45, 'm1', 3)
     steps = 5
     cmd.morph('mout', 'm1', None, 0, 0, 0, steps, 'linear')
     self.assertEqual(steps * 2, cmd.count_states('mout'))
     self.assertEqual(cmd.count_atoms('m1'), cmd.count_atoms('mout'))
     cmd.morph('mo2', 'm1', None, 0, -1, 0, steps, 'linear')
     self.assertEqual(steps * 3, cmd.count_states('mo2'))
     self.assertEqual(cmd.count_atoms('m1'), cmd.count_atoms('mo2'))
Esempio n. 34
0
    def test(self, ribbon_as_cylinders):
        cmd.set('ribbon_as_cylinders', ribbon_as_cylinders)
        cmd.set('ribbon_width', 8)
        cmd.fab('AG')
        cmd.color('red', 'resn ALA')
        cmd.color('blue', 'resn GLY')
        cmd.show_as('ribbon')
        cmd.orient()

        self.ambientOnly()
        cmd.viewport(100, 100)
        cmd.draw(100, 100)
        img = self.get_imagearray()
        self.assertImageHasColor('red', img)
        self.assertImageHasColor('blue', img)
Esempio n. 35
0
    def testIdentifiers(self):
        seq = 'ACD'
        segi = 'foo'
        chain = 'F'
        resv = 10
        cmd.fab(seq, 'm1', 'peptide', resv, chain, segi)

        cmd.iterate('first m1', 'stored.v = (segi, chain, resv, resn)')
        self.assertEqual(stored.v, (segi, chain, resv, 'ALA'))

        cmd.iterate('last m1', 'stored.v = (segi, chain, resv, resn)')
        self.assertEqual(stored.v, (segi, chain, resv + 2, 'ASP'))

        v = cmd.get_fastastr().splitlines()[1]
        self.assertEqual(v, seq)
Esempio n. 36
0
    def testIdentifiers(self):
        seq = 'ACD'
        segi = 'foo'
        chain = 'F'
        resv = 10
        cmd.fab(seq, 'm1', 'peptide', resv, chain, segi)

        cmd.iterate('first m1', 'stored.v = (segi, chain, resv, resn)')
        self.assertEqual(stored.v, (segi, chain, resv, 'ALA'))

        cmd.iterate('last m1', 'stored.v = (segi, chain, resv, resn)')
        self.assertEqual(stored.v, (segi, chain, resv + 2, 'ASP'))

        v = cmd.get_fastastr().splitlines()[1]
        self.assertEqual(v, seq)
Esempio n. 37
0
    def test(self, ribbon_as_cylinders):
        cmd.set('ribbon_as_cylinders', ribbon_as_cylinders)
        cmd.set('ribbon_width', 8)
        cmd.fab('AG')
        cmd.color('red', 'resn ALA')
        cmd.color('blue', 'resn GLY')
        cmd.show_as('ribbon')
        cmd.orient()

        self.ambientOnly()
        cmd.viewport(100, 100)
        cmd.draw(100, 100)
        img = self.get_imagearray()
        self.assertImageHasColor('red', img)
        self.assertImageHasColor('blue', img)
Esempio n. 38
0
    def testFindPairs(self):
        # mode 0
        cmd.fragment("gly")
        pairs = cmd.find_pairs("hydro", "elem O")
        pairs_ref = [
            (('gly', 5), ('gly', 4)),
            (('gly', 6), ('gly', 4)),
            (('gly', 7), ('gly', 4)),
        ]
        self.assertEqual(sorted(pairs), pairs_ref)

        # mode 1
        cmd.fab("GGGGG", "m2", ss=1)
        pairs = cmd.find_pairs("m2 & donor", "m2 & acceptor", mode=1)
        self.assertEqual(pairs, [(('m2', 29), ('m2', 4))])
Esempio n. 39
0
 def testMorphMulti(self):
     cmd.set('suspend_undo')
     cmd.fab('ACD', 'm1')
     cmd.create('m1', 'm1', 1, 2)
     cmd.create('m1', 'm1', 1, 3)
     cmd.rotate('x', 90, 'm1', 2)
     cmd.rotate('x', 45, 'm1', 3)
     steps = 5
     cmd.morph('mout', 'm1', None, 0, 0, 0, steps, 'linear')
     self.assertEqual(steps * 2, cmd.count_states('mout'))
     self.assertEqual(cmd.count_atoms('m1'),
                      cmd.count_atoms('mout'))
     cmd.morph('mo2', 'm1', None, 0, -1, 0, steps, 'linear')
     self.assertEqual(steps * 3, cmd.count_states('mo2'))
     self.assertEqual(cmd.count_atoms('m1'),
                      cmd.count_atoms('mo2'))
Esempio n. 40
0
    def testSeleMacro(self):
        cmd.fab('GGGGG',  'foo-bar-com')
        cmd.fragment('gly', 'foo-com-bar')

        self.assertTrue( cmd.count_atoms('/foo-bar-com'))
        self.assertTrue( cmd.count_atoms('/foo-bar-com////c*'))
        self.assertTrue( cmd.count_atoms('/foo-bar/'))
        self.assertTrue( cmd.count_atoms('/foo-bar*/'))
        self.assertTrue( cmd.count_atoms('/foo*/'))
        self.assertEqual(cmd.count_atoms('/foo-bar-com///2:4/ca'), 3)
        self.assertEqual(cmd.count_atoms('/foo-bar-com///2-4/ca'), 3)
        self.assertTrue( cmd.count_atoms('foo-bar-com////'))

        # test ambiguous prefix
        # -1 on failure
        cmd.set('raise_exceptions', 0)
        self.assertEqual(cmd.count_atoms('/foo/'), -1)
Esempio n. 41
0
    def testSeleMacro(self):
        cmd.fab('GGGGG', 'foo-bar-com')
        cmd.fragment('gly', 'foo-com-bar')

        self.assertTrue(cmd.count_atoms('/foo-bar-com'))
        self.assertTrue(cmd.count_atoms('/foo-bar-com////c*'))
        self.assertTrue(cmd.count_atoms('/foo-bar/'))
        self.assertTrue(cmd.count_atoms('/foo-bar*/'))
        self.assertTrue(cmd.count_atoms('/foo*/'))
        self.assertEqual(cmd.count_atoms('/foo-bar-com///2:4/ca'), 3)
        self.assertEqual(cmd.count_atoms('/foo-bar-com///2-4/ca'), 3)
        self.assertTrue(cmd.count_atoms('foo-bar-com////'))

        # test ambiguous prefix
        # -1 on failure
        cmd.set('raise_exceptions', 0)
        self.assertEqual(cmd.count_atoms('/foo/'), -1)
Esempio n. 42
0
    def _testTransparency(self, rep, setting_name):
        cmd.fab('GGGG')
        cmd.remove('resi 2+3')
        cmd.select('sele', 'resi 4', 0)

        self.ambientOnly()
        cmd.viewport(100, 100)
        cmd.set('opaque_background')
        cmd.set('ray_shadow', 0)

        cmd.orient()

        cmd.color('0xFF0000')
        cmd.show_as(rep)

        # all opaque
        img = self.get_imagearray()
        self.assertImageHasColor('0xFF0000', img)

        # object-level transparency
        cmd.set(setting_name, 0.4)
        img = self.get_imagearray()
        self.assertImageHasColor('0x990000', img)  # 40%
        self.assertImageHasNotColor('0xFF0000', img)

        # atom-level full-opaque
        cmd.set(setting_name, 0.0, 'sele')
        img = self.get_imagearray()
        self.assertImageHasColor('0x990000', img)  # 40%
        self.assertImageHasColor('0xFF0000', img)  #  0%

        # atom-level semi-transparent
        cmd.set(setting_name, 0.6, 'sele')
        img = self.get_imagearray()
        self.assertImageHasColor('0x990000', img)  # 40%
        self.assertImageHasColor('0x660000', img, delta=1)  # 60%
        self.assertImageHasNotColor('0xFF0000', img)

        # atom-level full-transparent (expect only two color values)
        cmd.set(setting_name, 0.0)
        cmd.set(setting_name, 1.0, 'sele')
        img = self.get_imagearray()
        self.assertImageHasColor('0xFF0000', img)
        # need delta=1 with clang, but not with gcc
        self.assertNumColorsEqual(img, 2, delta=1)
Esempio n. 43
0
    def _testTransparency(self, rep, setting_name):
        cmd.fab('GGGG')
        cmd.remove('resi 2+3')
        cmd.select('sele', 'resi 4', 0)

        self.ambientOnly()
        cmd.viewport(100, 100)
        cmd.set('opaque_background')
        cmd.set('ray_shadow', 0)

        cmd.orient()

        cmd.color('0xFF0000')
        cmd.show_as(rep)

        # all opaque
        img = self.get_imagearray()
        self.assertImageHasColor('0xFF0000', img)

        # object-level transparency
        cmd.set(setting_name, 0.4)
        img = self.get_imagearray()
        self.assertImageHasColor('0x990000', img) # 40%
        self.assertImageHasNotColor('0xFF0000', img)

        # atom-level full-opaque
        cmd.set(setting_name, 0.0, 'sele')
        img = self.get_imagearray()
        self.assertImageHasColor('0x990000', img) # 40%
        self.assertImageHasColor('0xFF0000', img) #  0%

        # atom-level semi-transparent
        cmd.set(setting_name, 0.6, 'sele')
        img = self.get_imagearray()
        self.assertImageHasColor('0x990000', img) # 40%
        self.assertImageHasColor('0x660000', img, delta=1) # 60%
        self.assertImageHasNotColor('0xFF0000', img)

        # atom-level full-transparent (expect only two color values)
        cmd.set(setting_name, 0.0)
        cmd.set(setting_name, 1.0, 'sele')
        img = self.get_imagearray()
        self.assertImageHasColor('0xFF0000', img)
        self.assertTrue(len(numpy.unique(img[...,:3])) == 2)
Esempio n. 44
0
    def testBumpsPSE(self):
        self.ambientOnly()
        cmd.viewport(100, 100)

        # expect some clashes in this helix
        cmd.fab('AAAAA', 'm1', ss=1)
        cmd.orient()

        cmd.set('sculpt_vdw_vis_mode', 1)
        cmd.set('sculpt_field_mask', 0x020)  # cSculptVDW
        cmd.sculpt_activate('m1')
        cmd.sculpt_iterate('m1', cycles=0)
        cmd.show_as('cgo')

        img = self.get_imagearray()
        self.assertImageHasColor('0xFF3333', img)

        with testing.mktemp('.pse') as filename:
            cmd.save(filename)
            cmd.load(filename)

        self.assertImageEqual(img)
Esempio n. 45
0
 def testLoadAlnMatchingIds(self):
     cmd.fab('ACDEFGHIKLMNPQRS', 'seq1')
     cmd.fab('ACDIKLMNP', 'seq2')
     cmd.fab('GHIKPQRS', 'seq3')
     cmd.load(self.datafile('alignment.aln'), 'aln')
     self.assertEqual(cmd.count_atoms('guide & aln & seq1'), 11)
     self.assertEqual(cmd.count_atoms('guide & aln & seq2'), 7)
     self.assertEqual(cmd.count_atoms('guide & aln & seq3'), 6)
Esempio n. 46
0
 def test_dss(self):
     ss_list = []
     cmd.fab('A' * 6, ss=1)
     cmd.dss()
     cmd.iterate('2-5/CA', 'ss_list.append(ss)', space=locals())
     self.assertEqual(ss_list, ['H', 'H', 'H', 'H'])
Esempio n. 47
0
 def testGetFastastr(self):
     seq, name = 'ACD', 'm1'
     cmd.fab(seq, name)
     s = cmd.get_fastastr()
     self.assertEqual(s.split(), ['>' + name, seq])