예제 #1
0
파일: test_vault.py 프로젝트: zhenglz/meld
 def setUp(self):
     self.atom_numbers = [1000, 1001]
     self.atom_names = ["ABCD", "A2"]
     self.residue_numbers = [999, 1000]
     self.residue_names = ["XYZ", "R2"]
     self.coords = np.zeros((2, 3))
     self.coords[0, :] = 1.0
     self.coords[1, :] = 2.0
     self.writer = PDBWriter(self.atom_numbers, self.atom_names,
                             self.residue_numbers, self.residue_names)
예제 #2
0
 def setUp(self):
     self.atom_numbers = [1000, 1001]
     self.atom_names = ['ABCD', 'A2']
     self.residue_numbers = [999, 1000]
     self.residue_names = ['XYZ', 'R2']
     self.coords = np.zeros((2, 3))
     self.coords[0, :] = 1.0
     self.coords[1, :] = 2.0
     self.writer = PDBWriter(self.atom_numbers, self.atom_names,
                             self.residue_numbers, self.residue_names)
예제 #3
0
 def get_pdb_writer(self):
     return PDBWriter(
         range(1,
               len(self._atom_names) + 1),
         self._atom_names,
         self._residue_numbers,
         self._residue_names,
     )
예제 #4
0
 def setUp(self):
     self.atom_numbers = [1000, 1001]
     self.atom_names = ['ABCD', 'A2']
     self.residue_numbers = [999, 1000]
     self.residue_names = ['XYZ', 'R2']
     self.coords = np.zeros((2, 3))
     self.coords[0, :] = 1.0
     self.coords[1, :] = 2.0
     self.writer = PDBWriter(self.atom_numbers, self.atom_names, self.residue_numbers, self.residue_names)
예제 #5
0
class TestPDBWriter(unittest.TestCase):
    def setUp(self):
        self.atom_numbers = [1000, 1001]
        self.atom_names = ['ABCD', 'A2']
        self.residue_numbers = [999, 1000]
        self.residue_names = ['XYZ', 'R2']
        self.coords = np.zeros((2, 3))
        self.coords[0, :] = 1.0
        self.coords[1, :] = 2.0
        self.writer = PDBWriter(self.atom_numbers, self.atom_names, self.residue_numbers, self.residue_names)

    def test_should_raise_with_wrong_number_of_atom_names(self):
        with self.assertRaises(AssertionError):
            PDBWriter(self.atom_numbers, ['CA'], self.residue_numbers, self.residue_names)

    def test_should_raise_with_wrong_number_of_residue_numbers(self):
        with self.assertRaises(AssertionError):
            PDBWriter(self.atom_numbers, self.atom_names, [1], self.residue_names)

    def test_should_raise_with_wrong_number_of_residue_names(self):
        with self.assertRaises(AssertionError):
            PDBWriter(self.atom_numbers, self.atom_names, self.residue_numbers, ['R1'])

    def test_should_raise_with_bad_coordinate_size(self):
        with self.assertRaises(AssertionError):
            self.writer.get_pdb_string(np.zeros((3, 3)), 1)

    def test_output_should_have_six_lines(self):
        result = self.writer.get_pdb_string(self.coords, 1)
        lines = result.splitlines()

        self.assertEqual(len(lines), 6)

    def test_header_should_have_correct_stage(self):
        result = self.writer.get_pdb_string(self.coords, 1)
        lines = result.splitlines()

        self.assertIn('REMARK', lines[0])
        self.assertIn('stage 1', lines[0])

    def test_atom_line_should_have_correct_format(self):
        result = self.writer.get_pdb_string(self.coords, 1)
        lines = result.splitlines()

        result = lines[1]
        expected_result = 'ATOM   1000 ABCD XYZ   999       1.000   1.000   1.000'
        print expected_result
        print lines[1]
        self.assertEqual(result, expected_result)

    def test_other_atom_line_should_have_correct_format(self):
        result = self.writer.get_pdb_string(self.coords, 1)
        lines = result.splitlines()

        result = lines[2]
        expected_result = 'ATOM   1001  A2   R2  1000       2.000   2.000   2.000'
        print expected_result
        print lines[2]
        self.assertEqual(result, expected_result)
예제 #6
0
파일: test_vault.py 프로젝트: zhenglz/meld
class TestPDBWriter(unittest.TestCase):
    def setUp(self):
        self.atom_numbers = [1000, 1001]
        self.atom_names = ["ABCD", "A2"]
        self.residue_numbers = [999, 1000]
        self.residue_names = ["XYZ", "R2"]
        self.coords = np.zeros((2, 3))
        self.coords[0, :] = 1.0
        self.coords[1, :] = 2.0
        self.writer = PDBWriter(self.atom_numbers, self.atom_names,
                                self.residue_numbers, self.residue_names)

    def test_should_raise_with_wrong_number_of_atom_names(self):
        with self.assertRaises(AssertionError):
            PDBWriter(self.atom_numbers, ["CA"], self.residue_numbers,
                      self.residue_names)

    def test_should_raise_with_wrong_number_of_residue_numbers(self):
        with self.assertRaises(AssertionError):
            PDBWriter(self.atom_numbers, self.atom_names, [1],
                      self.residue_names)

    def test_should_raise_with_wrong_number_of_residue_names(self):
        with self.assertRaises(AssertionError):
            PDBWriter(self.atom_numbers, self.atom_names, self.residue_numbers,
                      ["R1"])

    def test_should_raise_with_bad_coordinate_size(self):
        with self.assertRaises(AssertionError):
            self.writer.get_pdb_string(np.zeros((3, 3)), 1)

    def test_output_should_have_six_lines(self):
        result = self.writer.get_pdb_string(self.coords, 1)
        lines = result.splitlines()

        self.assertEqual(len(lines), 6)

    def test_header_should_have_correct_stage(self):
        result = self.writer.get_pdb_string(self.coords, 1)
        lines = result.splitlines()

        self.assertIn("REMARK", lines[0])
        self.assertIn("stage 1", lines[0])

    def test_atom_line_should_have_correct_format(self):
        result = self.writer.get_pdb_string(self.coords, 1)
        lines = result.splitlines()

        result = lines[1]
        expected_result = "ATOM   1000 ABCD XYZ   999       1.000   1.000   1.000"
        self.assertEqual(result, expected_result)

    def test_other_atom_line_should_have_correct_format(self):
        result = self.writer.get_pdb_string(self.coords, 1)
        lines = result.splitlines()

        result = lines[2]
        expected_result = "ATOM   1001  A2   R2  1000       2.000   2.000   2.000"
        self.assertEqual(result, expected_result)
예제 #7
0
파일: test_vault.py 프로젝트: zhenglz/meld
 def test_should_raise_with_wrong_number_of_residue_names(self):
     with self.assertRaises(AssertionError):
         PDBWriter(self.atom_numbers, self.atom_names, self.residue_numbers,
                   ["R1"])