def test_monomer_atoms(self): top = p.read_topology(self.pdb_file, name='top') # Make sure we have something non-trivial to test self.assertGreater(top.monomers[0].num_monomers, 50) something_checked = False # iterate through the monoers in the first chain. The second chain is cynamic acid for monomer in top.monomers[0].monomers: residue_name = monomer.name[:3] try: idx = int(monomer.name[3:]) except ValueError: # print monomer.name, '"', monomer.name[3:], '"' raise # skip several residues which are be modified from the natural amino acid set. if idx > 1 and idx < 125 and residue_name in aa.aminoacids.monomer_dict and residue_name != 'CYS': something_checked = True aa_monomer = aa.aminoacids.monomer_dict[residue_name] self.assertEqual(monomer.num_atoms, aa_monomer.num_atoms) # if not set(monomer.atoms) == set(aa_monomer.atoms): # print monomer.name self.assertEqual(set(monomer.atoms), set(aa_monomer.atoms)) self.assertTrue(something_checked)
def test_read_write_coords(self): top = p.read_topology(self.initial_pdb_file, name='pyp') p.write_coords('test.pdb', top, p.read_coords(self.initial_pdb_file)) for idx, (read_coords, expected_coords) in enumerate(zip(p.read_coords('test.pdb'), p.read_coords(self.initial_pdb_file))): self.assertEqual(list(expected_coords), list(read_coords))
def test_get_topology(self): top = p.read_topology(self.pdb_file, name='two') # self.assertEqual(top.num_atoms, prmtop.get_num_atoms()) atom_names = [] monomer_names = [] top = top.flatten() for monomer in top.monomers: atom_names.extend(monomer.atoms) monomer_names.append(monomer.name) self.assertEqual(atom_names, self.atom_names) residue_names = [name + str(idx) for idx, name in zip(self.residue_idcs, self.residue_names)] self.assertEqual(monomer_names, residue_names)