File: nucmutagenesis.py

package info (click to toggle)
pymol 3.1.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 74,084 kB
  • sloc: cpp: 482,660; python: 89,328; ansic: 29,512; javascript: 6,792; sh: 84; makefile: 25
file content (74 lines) | stat: -rw-r--r-- 2,707 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
'''
unit tests for pymol.wizard.nucmutagenesis
'''

import os
import sys
import tempfile
import unittest

from pymol import cmd, testing

@testing.requires_version('2.2')
class TestNucMutagenesis(testing.PyMOLTestCase):

    def test_CanGetSourceSequence(self):
        cmd.load(self.datafile("1rna.cif"))
        seq = cmd.get_fastastr('/1rna/A/A').splitlines()[1]
        self.assertEqual(seq, "UUAUAUAUAUAUAA")

    def test_CanGetFragment(self):
        cmd.fragment("gtp")
        numAtoms = cmd.count_atoms("gtp")
        self.assertEqual(numAtoms, 48)

    def test_CanInit(self):
        cmd.wizard("nucmutagenesis")
        self.assertTrue(cmd.get_wizard() != None)

    def test_CorrectChiDihedral(self):
        cmd.load(self.datafile("1rna.cif"))
        src_dihedral = cmd.get_dihedral("/1rna/A/A/14 & name O4'",
                                        "/1rna/A/A/14 & name C1'",
                                        "/1rna/A/A/14 & name N9",
                                        "/1rna/A/A/14 & name C4'")
        cmd.wizard("nucmutagenesis")
        cmd.select("/1rna/A/A/14")
        cmd.get_wizard().mode = "Guanine"
        cmd.get_wizard().do_select("sele")
        cmd.get_wizard().apply()
        des_dihedral = cmd.get_dihedral("/1rna/A/A/14 & name O4'",
                                        "/1rna/A/A/14 & name C1'",
                                        "/1rna/A/A/14 & name N9",
                                        "/1rna/A/A/14 & name C4'")
        self.assertAlmostEqual(src_dihedral, des_dihedral, delta = 2.0)

    def test_CanGetNewRNASequence(self):
        cmd.load(self.datafile("1rna.cif"))
        cmd.wizard("nucmutagenesis")
        cmd.select("/1rna/A/A/14")
        cmd.get_wizard().mode = "Guanine"
        cmd.get_wizard().do_select("sele")
        cmd.get_wizard().apply()
        seq = cmd.get_fastastr("/1rna/A/A").splitlines()[1]
        self.assertEqual(seq, "UUAUAUAUAUAUAG")

    def test_CanGetNewDNASequence(self):
        cmd.load(self.datafile("1bna.cif"))
        cmd.wizard("nucmutagenesis")
        cmd.select("/1bna/A/A/1")
        cmd.get_wizard().mode = "Adenine"
        cmd.get_wizard().do_select("sele")
        cmd.get_wizard().apply()
        seq = cmd.get_fastastr("/1bna/A/A").splitlines()[1]
        self.assertEqual(seq, "AGCGAATTCGCG")

    def test_CanMutateNonCanonicalNucleo(self):
        cmd.load(self.datafile("1k5e.cif"))
        cmd.wizard("nucmutagenesis")
        cmd.select("/1k5e/A/A/6")
        cmd.get_wizard().mode = "Adenine"
        cmd.get_wizard().do_select("sele")
        cmd.get_wizard().apply()
        seq = cmd.get_fastastr("/1k5e/A/A").splitlines()[1]
        self.assertEqual(seq, "CGGACAAGAAG")