Пример #1
0
 def test_can_copy_chain_with_atoms(self, mock_ligands, mock_residues):
     residues = [Mock(), Mock()]
     mock_residues.return_value = residues
     ligands = [Mock(), Mock()]
     mock_ligands.return_value = ligands
     residues[0].copy.return_value, residues[1].copy.return_value = Mock(), Mock()
     ligands[0].copy.return_value, ligands[1].copy.return_value = Mock(), Mock()
     chain = Chain(rep="ABC")
     atoms = [Mock(_residue=None), Mock(_ligand=None), Mock(_ligand=None, _residue=None)]
     chain._atoms = set(atoms)
     patcher = patch("atomium.models.molecules.Chain")
     mock_chain = patcher.start()
     mock_chain.return_value = Mock(_atoms=set(atoms[:-1]))
     try:
         new_chain = chain.copy()
         mock_chain.assert_called_with(
          ligands[0].copy.return_value, ligands[1].copy.return_value,
          residues[0].copy.return_value, residues[1].copy.return_value, rep="ABC"
         )
         atoms[-1].copy.assert_called_with()
         self.assertFalse(atoms[0].called)
         self.assertFalse(atoms[0].called)
         self.assertEqual(new_chain._atoms, set(atoms[:-1] + [atoms[-1].copy.return_value]))
     finally:
         patcher.stop()
Пример #2
0
 def setUp(self):
     self.atom1, self.atom2 = Mock(), Mock()
     self.atom3, self.atom4 = Mock(), Mock()
     self.atom5, self.atom6 = Mock(), Mock()
     self.atom7, self.atom8 = Mock(), Mock()
     self.residue1, self.residue2 = Mock(), Mock()
     self.residue3, self.residue4 = Mock(), Mock()
     self.residue1.next = self.residue2
     self.residue2.next = self.residue3
     self.residue3.next = self.residue4
     self.residue4.next = None
     self.residue1.previous = None
     self.residue2.previous = self.residue1
     self.residue3.previous = self.residue2
     self.residue4.previous = self.residue3
     self.atom1.residue = self.residue1
     self.atom2.residue = self.residue1
     self.atom3.residue = self.residue2
     self.atom4.residue = self.residue2
     self.atom5.residue = self.residue3
     self.atom6.residue = self.residue3
     self.atom7.residue = self.residue4
     self.atom8.residue = self.residue4
     self.chain = Chain()
     self.chain._atoms = set([
      self.atom1, self.atom2, self.atom3, self.atom4,
      self.atom5, self.atom6, self.atom7, self.atom8
     ])
Пример #3
0
 def test_can_copy_chain(self, mock_ligands, mock_residues):
     residues = [Mock(), Mock()]
     mock_residues.return_value = residues
     ligands = [Mock(), Mock()]
     mock_ligands.return_value = ligands
     residues[0].copy.return_value, residues[1].copy.return_value = Mock(), Mock()
     ligands[0].copy.return_value, ligands[1].copy.return_value = Mock(), Mock()
     chain = Chain(rep="ABC")
     patcher = patch("atomium.models.molecules.Chain")
     mock_chain = patcher.start()
     try:
         new_chain = chain.copy()
         mock_chain.assert_called_with(
          ligands[0].copy.return_value, ligands[1].copy.return_value,
          residues[0].copy.return_value, residues[1].copy.return_value, rep="ABC"
         )
     finally:
         patcher.stop()
Пример #4
0
class ChainCorrectCheckingTests(TestCase):

    def setUp(self):
        self.atom1, self.atom2 = Mock(), Mock()
        self.atom3, self.atom4 = Mock(), Mock()
        self.atom5, self.atom6 = Mock(), Mock()
        self.atom7, self.atom8 = Mock(), Mock()
        self.residue1, self.residue2 = Mock(), Mock()
        self.residue3, self.residue4 = Mock(), Mock()
        self.residue1.next = self.residue2
        self.residue2.next = self.residue3
        self.residue3.next = self.residue4
        self.residue4.next = None
        self.residue1.previous = None
        self.residue2.previous = self.residue1
        self.residue3.previous = self.residue2
        self.residue4.previous = self.residue3
        self.atom1.residue = self.residue1
        self.atom2.residue = self.residue1
        self.atom3.residue = self.residue2
        self.atom4.residue = self.residue2
        self.atom5.residue = self.residue3
        self.atom6.residue = self.residue3
        self.atom7.residue = self.residue4
        self.atom8.residue = self.residue4
        self.chain = Chain()
        self.chain._atoms = set([
         self.atom1, self.atom2, self.atom3, self.atom4,
         self.atom5, self.atom6, self.atom7, self.atom8
        ])


    def test_can_verify_conected_residues(self):
        self.chain._atoms = set([self.atom1, self.atom2])
        self.assertTrue(self.chain.verify())
        self.chain._atoms = set([self.atom3, self.atom4])
        self.assertTrue(self.chain.verify())
        self.chain._atoms = set([self.atom5, self.atom6])
        self.assertTrue(self.chain.verify())
        self.chain._atoms = set([self.atom7, self.atom8])
        self.assertTrue(self.chain.verify())
        self.chain._atoms = set([
         self.atom1, self.atom2, self.atom3, self.atom4
        ])
        self.assertTrue(self.chain.verify())
        self.chain._atoms = set([
         self.atom3, self.atom4, self.atom5, self.atom6
        ])
        self.assertTrue(self.chain.verify())
        self.chain._atoms = set([
         self.atom5, self.atom6, self.atom7, self.atom8
        ])
        self.assertTrue(self.chain.verify())


    def test_can_reject_unconnected_residues(self):
        self.chain._atoms = set([
         self.atom3, self.atom4, self.atom7, self.atom8
        ])
        with self.assertRaises(SequenceConnectivityError):
            self.chain.verify()


    def test_empty_sequences_pass(self):
        self.chain._atoms = set()
        self.assertTrue(self.chain.verify())
Пример #5
0
 def test_can_get_len(self, mock_residues):
     chain = Chain()
     mock_residues.return_value = [1, 2, 4]
     self.assertEqual(chain[0], 1)
     self.assertEqual(chain[1], 2)
     self.assertEqual(chain[2], 4)
Пример #6
0
 def test_can_get_len(self, mock_residues):
     chain = Chain()
     mock_residues.return_value = [1, 2, 4]
     self.assertEqual(len(chain), 3)
Пример #7
0
 def test_can_create_chain_with_rep_sequence(self, mock_veriy, mock_init):
     chain = Chain("a", b="c", rep="ABC")
     self.assertIsInstance(chain, AtomStructure)
     mock_init.assert_called_with(chain, "a", b="c")
     mock_veriy.assert_called_with()
     self.assertEqual(chain._rep_sequence, "ABC")
Пример #8
0
 def test_can_update_chain_rep_sequence(self):
     chain = Chain(rep="ABC")
     chain.rep_sequence = "DEF"
     self.assertEqual(chain._rep_sequence, "DEF")
Пример #9
0
 def test_chain_rep_sequence_property(self):
     chain = Chain(rep="ABC")
     self.assertIs(chain._rep_sequence, chain.rep_sequence)
Пример #10
0
 def test_can_get_sequence(self, mock_residues):
     chain = Chain()
     mock_residues.return_value = (Mock(code="Y"), Mock(code="T"))
     self.assertEqual(chain.sequence, "YT")
Пример #11
0
 def test_can_get_len(self, mock_len):
     chain = Chain()
     mock_len.return_value = 100
     self.assertEqual(chain.length, 100)