def test_tetra(self): molecule = Molecule.from_file("input/tetra.xyz") psf = PSFFile() psf.add_molecule(molecule) self.assert_(psf.bonds.shape[0] == 4) self.assert_(psf.bends.shape[0] == 6) psf.write_to_file("output/tetra.psf")
def test_tetra(self): molecule = XYZFile("input/tetra.xyz").get_molecule() psf = PSFFile() psf.add_molecule(molecule) self.assert_(psf.bonds.shape[0] == 4) self.assert_(psf.bends.shape[0] == 6) psf.write_to_file("output/tetra.psf")
def test_many_separate(self): psf = PSFFile() molecule = Molecule.from_file("input/ethene.xyz") psf.add_molecule(molecule) psf.add_molecule(molecule) molecule = Molecule.from_file("input/tea.xyz") psf.add_molecule(molecule) psf.write_to_file("output/many_separate.psf")
def test_many_separate(self): psf = PSFFile() molecule = XYZFile("input/ethene.xyz").get_molecule() psf.add_molecule(molecule) psf.add_molecule(molecule) molecule = XYZFile("input/tea.xyz").get_molecule() psf.add_molecule(molecule) psf.write_to_file("output/many_separate.psf")
def test_improper(self): molecule = Molecule.from_file("input/formol.xyz") psf = PSFFile() psf.add_molecule(molecule) self.assertEqual(psf.impropers.shape, (3,4)) test_block = set([(row[0], row[1]) for row in psf.impropers]) self.assert_((0,1) in test_block) self.assert_((0,2) in test_block) self.assert_((0,3) in test_block) psf.write_to_file("output/tmp_impropers.psf") psf2 = PSFFile("output/tmp_impropers.psf") self.assertArraysEqual(psf.impropers, psf2.impropers)
def test_dump(self): m = Molecule.from_file("input/thf.xyz") psf = PSFFile() psf.add_molecule(m) psf.write_to_file("output/thf.psf")
def test_dump(self): m = XYZFile("input/thf.xyz").get_molecule() psf = PSFFile() psf.add_molecule(m) psf.write_to_file("output/thf.psf")
CC30A = CritAnd(HasAtomNumber(6), HasNeighborNumbers(6,6,6,6)) CC31A = CritAnd(HasAtomNumber(6), HasNeighborNumbers(6,6,6,1)) CC32A = CritAnd(HasAtomNumber(6), HasNeighborNumbers(6,6,1,1)) CC33A = CritAnd(HasAtomNumber(6), HasNeighborNumbers(6,1,1,1)) atom_filters = { "CC30A": CC30A, "CC31A": CC31A, "CC32A": CC32A, "CC33A": CC33A, "HCA1": CritAnd(HasAtomNumber(1), HasNeighbors(CC31A)), "HCA2": CritAnd(HasAtomNumber(1), HasNeighbors(CC32A)), "HCA3": CritAnd(HasAtomNumber(1), HasNeighbors(CC33A)), } def get_atom_type(index, graph): for atom_type, atom_filter in atom_filters.items(): if atom_filter(index, graph): return atom_type raise ValueError("Unrecognized atom (index %i)." % index) args = sys.argv[1:] molecule = XYZFile(args[0]).get_molecule() graph = MolecularGraph.from_geometry(molecule) atom_types = [get_atom_type(index, graph) for index in range(molecule.size)] psf = PSFFile() psf.add_molecular_graph(graph, atom_types=atom_types) psf.write_to_file(args[0].replace(".xyz", ".psf"))
CC30A = CritAnd(HasAtomNumber(6), HasNeighborNumbers(6,6,6,6)) CC31A = CritAnd(HasAtomNumber(6), HasNeighborNumbers(6,6,6,1)) CC32A = CritAnd(HasAtomNumber(6), HasNeighborNumbers(6,6,1,1)) CC33A = CritAnd(HasAtomNumber(6), HasNeighborNumbers(6,1,1,1)) atom_filters = { "CC30A": CC30A, "CC31A": CC31A, "CC32A": CC32A, "CC33A": CC33A, "HCA1": CritAnd(HasAtomNumber(1), HasNeighbors(CC31A)), "HCA2": CritAnd(HasAtomNumber(1), HasNeighbors(CC32A)), "HCA3": CritAnd(HasAtomNumber(1), HasNeighbors(CC33A)), } def get_atom_type(index, graph): for atom_type, atom_filter in atom_filters.iteritems(): if atom_filter(index, graph): return atom_type raise ValueError("Unrecognized atom (index %i)." % index) args = sys.argv[1:] molecule = XYZFile(args[0]).get_molecule() graph = MolecularGraph.from_geometry(molecule) atom_types = [get_atom_type(index, graph) for index in xrange(molecule.size)] psf = PSFFile() psf.add_molecular_graph(graph, atom_types=atom_types) psf.write_to_file(args[0].replace(".xyz", ".psf"))