def test_2form8wat_2(self):
      filename = "temp.inp"
      otherfile = self.fixtures + "/2form8wat_2.fixture"
      molecule = fileToMol("tests/2form8wat.pdb")
      fragmentation = Fragmentation(molecule)
      fragmentation.beginFragmentation()
      fragmentation.doFragmentation()
      fragmentation.finishFragmentation()
      fragmentation.setFMOEFPWatersFromLayer(1)
      directories = {'share':''}
      gamessfmo = GamessFMO(fragmentation, directories)
      gamessfmo.setCentralFragmentID(1)
      gamessfmo.setBoundariesFromString("3.0")
      gamessfmo.setup()
      gamessfmo.writeFile(filename)
      generated = ReadStringListFromFile(filename)
      fixture = ReadStringListFromFile(otherfile)

      self.assertEqual(len(generated), len(fixture))

      ignoring = False
      for i in range(len(fixture)):
        if "EFRAG" in generated[i] or "EFRAG" in fixture[i]:
            ignoring = True

        if ignoring:
            if "END" in generated[i] or "END" in fixture[i]:
                ignoring = False

        if not ignoring:
            self.assertEqual(generated[i], fixture[i])

      self.delete_file(filename)
示例#2
0
    def setUp(self):
        self.filename_pdb = "tests/1UAO.pdb"

        # for testing, use OpenBabel functionality directly
        self.molecule = fileToMol(self.filename_pdb)
        self.fragmentation = Fragmentation(self.molecule,
                                           defaults=FragItDataFMO)
    def test_2form8wat_2(self):
        filename = "temp.inp"
        otherfile = self.fixtures + "/2form8wat_2.fixture"
        molecule = fileToMol("tests/2form8wat.pdb")
        fragmentation = Fragmentation(molecule, defaults=FragItDataFMO)
        fragmentation.beginFragmentation()
        fragmentation.doFragmentation()
        fragmentation.finishFragmentation()
        fragmentation.setFMOEFPWatersFromLayer(1)
        directories = {'share': ''}
        gamessfmo = GamessFMO(fragmentation, directories)
        gamessfmo.setCentralFragmentID(1)
        gamessfmo.setBoundariesFromString("3.0")
        gamessfmo.setup()
        gamessfmo.writeFile(filename)
        generated = ReadStringListFromFile(filename)
        fixture = ReadStringListFromFile(otherfile)

        self.assertEqual(len(generated), len(fixture))

        ignoring = False
        for i in range(len(fixture)):
            if "EFRAG" in generated[i] or "EFRAG" in fixture[i]:
                ignoring = True

            if ignoring:
                if "END" in generated[i] or "END" in fixture[i]:
                    ignoring = False

            if not ignoring:
                self.assertEqual(generated[i], fixture[i])

        self.delete_file(filename)
示例#4
0
    def test_qmmm_advanced_2(self):
        """ 2 qm fragments in qm/mm interface with bond breaking """
        filename = "temp.inp"
        molecule = fileToMol("tests/5ala.xyz")
        fragmentation = Fragmentation(molecule, defaults=FragItDataPE)
        fragmentation.beginFragmentation()
        fragmentation.doFragmentation()
        fragmentation.finishFragmentation()

        ref_fragments = copy.deepcopy(fragmentation.getFragments()[:])
        self.assertEqual(len(ref_fragments), 5)

        qmmm = QMMM(fragmentation, [2, 3])
        qmfrag, qmcharge = qmmm.pop_qm_fragment()
        new_fragments = copy.deepcopy(fragmentation.getFragments()[:])

        self.assertEqual(len(new_fragments), 5)
        self.assertEqual(len(qmfrag),
                         len(ref_fragments[1]) + len(ref_fragments[2]) +
                         2)  # two atoms added to QM region from two fragments
        self.assertEqual(len(new_fragments[0]),
                         len(ref_fragments[0]) +
                         1)  # one atom added to MM region for one fragment
        self.assertEqual(len(new_fragments[3]),
                         len(ref_fragments[3]) +
                         1)  # one atom added to MM region for one fragment
    def test_5ala_3_hop(self):
        """ Correct input for HOP with one basis """
        filename = "temp.inp"
        otherfile = self.fixtures + "/5ala_3_hop.fixture"
        molecule = fileToMol("tests/5ala.xyz")
        fragmentation = Fragmentation(molecule, defaults=FragItDataFMO)
        fragmentation.setFMOHOPFragmentation()
        fragmentation.setQMBasis('3-21G')
        fragmentation.beginFragmentation()
        fragmentation.doFragmentation()
        fragmentation.finishFragmentation()
        directories = {'share': 'share'}
        gamessfmo = GamessFMO(fragmentation, directories)
        gamessfmo.setCentralFragmentID(1)
        gamessfmo.setBoundariesFromString("1.0")
        gamessfmo.setup()
        gamessfmo.writeFile(filename)
        generated = ReadStringListFromFile(filename)
        fixture = ReadStringListFromFile(otherfile)

        self.assertEqual(len(generated), len(fixture))
        for i in range(len(fixture)):
            self.assertEqual(generated[i], fixture[i])

        self.delete_file(filename)
    def test_5ala_3_hop(self):
      """ Regression test to make sure if only one basis
          set is specified we get the correct input file
          FMO with HOP
      """
      filename = "temp.inp"
      otherfile = self.fixtures + "/5ala_3_hop.fixture"
      molecule = fileToMol("tests/5ala.xyz")
      fragmentation = Fragmentation(molecule)
      fragmentation.setFMOHOPFragmentation()
      fragmentation.setQMBasis('3-21G')
      fragmentation.beginFragmentation()
      fragmentation.doFragmentation()
      fragmentation.finishFragmentation()
      directories = {'share':'share'}
      gamessfmo = GamessFMO(fragmentation, directories)
      gamessfmo.setCentralFragmentID(1)
      gamessfmo.setBoundariesFromString("1.0")
      gamessfmo.setup()
      gamessfmo.writeFile(filename)
      generated = ReadStringListFromFile(filename)
      fixture = ReadStringListFromFile(otherfile)

      self.assertEqual(len(generated), len(fixture))
      for i in range(len(fixture)):
        self.assertEqual(generated[i], fixture[i])

      self.delete_file(filename)
示例#7
0
    def test_qmmm_advanced_3(self):
        """ 1 qm fragment + cov bound in qm/mm interface with bond breaking """
        filename = "temp.inp"
        m1 = fileToMol("tests/5ala.xyz")
        frag1 = Fragmentation(m1, defaults=FragItDataPE)
        frag1.beginFragmentation()
        frag1.doFragmentation()
        frag1.finishFragmentation()
        qm1 = QMMM(frag1, [2, 3, 4])
        qmf1, qmq1 = qm1.pop_qm_fragment()

        m2 = fileToMol("tests/5ala.xyz")
        frag2 = Fragmentation(m2, defaults=FragItDataPE)
        frag2.values['qmmm']['includecovalent'] = True
        frag2.beginFragmentation()
        frag2.doFragmentation()
        frag2.finishFragmentation()
        qm2 = QMMM(frag2, [3])
        qmf2, qmq2 = qm2.pop_qm_fragment()

        # must produce identical results
        self.assertEqual(len(qmf1), len(qmf2))
        self.assertEqual(frag1.getFragments(), frag2.getFragments())
    def test_water_1(self):
        filename = "temp.inp"
        otherfile = self.fixtures + "/water_1.fixture"
        molecule = fileToMol("tests/watercluster4.xyz")
        fragmentation = Fragmentation(molecule, defaults=FragItDataFMO)
        directories = {'share': ''}
        gamessfmo = GamessFMO(fragmentation, directories)
        gamessfmo.setup()
        gamessfmo.writeFile(filename)
        generated = ReadStringListFromFile(filename)
        fixture = ReadStringListFromFile(otherfile)

        self.assertEqual(len(generated), len(fixture))
        for i in range(len(fixture)):
            self.assertEqual(generated[i], fixture[i])

        self.delete_file(filename)
    def test_water_1(self):
      filename = "temp.inp"
      otherfile = self.fixtures + "/water_1.fixture"
      molecule = fileToMol("tests/watercluster4.xyz")
      fragmentation = Fragmentation(molecule)
      directories = {'share':''}
      gamessfmo = GamessFMO(fragmentation, directories)
      gamessfmo.setup()
      gamessfmo.writeFile(filename)
      generated = ReadStringListFromFile(filename)
      fixture = ReadStringListFromFile(otherfile)

      self.assertEqual(len(generated), len(fixture))
      for i in range(len(fixture)):
        self.assertEqual(generated[i], fixture[i])

      self.delete_file(filename)
示例#10
0
    def test_qmmm_simple_2(self):
        """ 2 qm fragments in qm/mm interface without bond breaking """
        filename = "temp.inp"
        molecule = fileToMol("tests/watercluster4.xyz")
        fragmentation = Fragmentation(molecule, defaults=FragItDataPE)
        fragmentation.beginFragmentation()
        fragmentation.doFragmentation()
        fragmentation.finishFragmentation()

        ref_fragments = fragmentation.getFragments()
        self.assertEqual(len(ref_fragments), 4)

        qmmm = QMMM(fragmentation, [1, 3])  # extracts fragments 1 and 3
        qmfrag, qmcharge = qmmm.pop_qm_fragment()
        new_fragments = fragmentation.getFragments()

        self.assertEqual(qmfrag, [1, 2, 3, 7, 8, 9])
        self.assertEqual(len(new_fragments), 4)
        self.assertEqual(new_fragments[0], [-1, -1, -1])
        self.assertEqual(new_fragments[2], [-1, -1, -1])
    def test_5ala_1_hop(self):
        filename = "temp.inp"
        otherfile = self.fixtures + "/5ala_1_hop.fixture"
        molecule = fileToMol("tests/5ala.xyz")
        fragmentation = Fragmentation(molecule, defaults=FragItDataFMO)
        fragmentation.setFMOHOPFragmentation()
        fragmentation.beginFragmentation()
        fragmentation.doFragmentation()
        fragmentation.finishFragmentation()
        directories = {'share': 'share'}
        gamessfmo = GamessFMO(fragmentation, directories)
        gamessfmo.setup()
        gamessfmo.writeFile(filename)
        generated = ReadStringListFromFile(filename)
        fixture = ReadStringListFromFile(otherfile)

        self.assertEqual(len(generated), len(fixture))
        for i in range(len(fixture)):
            self.assertEqual(generated[i], fixture[i])

        self.delete_file(filename)
示例#12
0
    def test_5ala_1_hop(self):
      filename = "temp.inp"
      otherfile = self.fixtures + "/5ala_1_hop.fixture"
      molecule = fileToMol("tests/5ala.xyz")
      fragmentation = Fragmentation(molecule)
      fragmentation.setFMOHOPFragmentation()
      fragmentation.beginFragmentation()
      fragmentation.doFragmentation()
      fragmentation.finishFragmentation()
      directories = {'share':'share'}
      gamessfmo = GamessFMO(fragmentation, directories)
      gamessfmo.setup()
      gamessfmo.writeFile(filename)
      generated = ReadStringListFromFile(filename)
      fixture = ReadStringListFromFile(otherfile)

      self.assertEqual(len(generated), len(fixture))
      for i in range(len(fixture)):
        self.assertEqual(generated[i], fixture[i])

      self.delete_file(filename)
示例#13
0
    def test_qmmm_simple_1(self):
        """ 1 qm fragment in qm/mm interface without bond breaking """
        filename = "temp.inp"
        molecule = fileToMol("tests/watercluster4.xyz")
        fragmentation = Fragmentation(molecule, defaults=FragItDataPE)
        fragmentation.beginFragmentation()
        fragmentation.doFragmentation()
        fragmentation.finishFragmentation()

        ref_fragments = fragmentation.getFragments()
        self.assertEqual(len(ref_fragments), 4)

        qmmm = QMMM(fragmentation,
                    [1])  # extracts first fragment (for user this is #1)
        qmfrag, qmcharge = qmmm.pop_qm_fragment()

        new_fragments = fragmentation.getFragments()

        self.assertEqual(qmfrag, [1, 2, 3])  # extracts first fragment
        self.assertEqual(len(new_fragments),
                         4)  # must leave all fragments intact
        self.assertEqual(new_fragments[0],
                         [-1, -1, -1])  # -1 signals "DO NOT USE"
示例#14
0
    def test_5ala_2_afo(self):
      filename = "temp.inp"
      otherfile = self.fixtures + "/5ala_2_afo.fixture"
      molecule = fileToMol("tests/5ala.xyz")
      fragmentation = Fragmentation(molecule)
      fragmentation.setQMBasis('3-21G:6-31G(d)')
      fragmentation.beginFragmentation()
      fragmentation.doFragmentation()
      fragmentation.finishFragmentation()
      directories = {'share':'share'}
      gamessfmo = GamessFMO(fragmentation, directories)
      gamessfmo.setCentralFragmentID(1)
      gamessfmo.setBoundariesFromString("1.0")
      gamessfmo.setup()
      gamessfmo.writeFile(filename)
      generated = ReadStringListFromFile(filename)
      fixture = ReadStringListFromFile(otherfile)

      self.assertEqual(len(generated), len(fixture))
      for i in range(len(fixture)):
        self.assertEqual(generated[i], fixture[i])

      self.delete_file(filename)
示例#15
0
    def test_qmmm_advanced_1(self):
        """ 1 qm fragment in qm/mm interface with bond breaking """
        filename = "temp.inp"
        molecule = fileToMol("tests/5ala.xyz")
        fragmentation = Fragmentation(molecule, defaults=FragItDataPE)
        fragmentation.beginFragmentation()
        fragmentation.doFragmentation()
        fragmentation.finishFragmentation()

        ref_fragments = copy.deepcopy(fragmentation.getFragments()[:])
        self.assertEqual(len(ref_fragments), 5)

        qmmm = QMMM(fragmentation,
                    [1])  # extracts first fragment (for user this is #1)
        qmfrag, qmcharge = qmmm.pop_qm_fragment()
        new_fragments = fragmentation.getFragments()[:]

        self.assertEqual(len(new_fragments), 5)
        self.assertEqual(len(qmfrag),
                         len(ref_fragments[0]) +
                         1)  # one atom added to QM region
        self.assertEqual(len(new_fragments[1]),
                         len(ref_fragments[1]) +
                         1)  # one atom added to MM region
    def test_water_5(self):
        filename = "temp.inp"
        otherfile = self.fixtures + "/water_5.fixture"
        molecule = fileToMol("tests/watercluster4.xyz")
        fragmentation = Fragmentation(molecule, defaults=FragItDataFMO)
        fragmentation.beginFragmentation()
        fragmentation.doFragmentation()
        fragmentation.finishFragmentation()
        directories = {'share': ''}
        gamessfmo = GamessFMO(fragmentation, directories)
        gamessfmo.setCentralFragmentID(1)
        gamessfmo.setBoundariesFromString("1.0")
        gamessfmo.setActiveAtomsDistance(1.0)
        gamessfmo.setBufferMaxDistance(1.0)
        gamessfmo.setup()
        gamessfmo.writeFile(filename)
        generated = ReadStringListFromFile(filename)
        fixture = ReadStringListFromFile(otherfile)

        self.assertEqual(len(generated), len(fixture))
        for i in range(len(fixture)):
            self.assertEqual(generated[i], fixture[i])

        self.delete_file(filename)
示例#17
0
    def test_water_5(self):
      filename = "temp.inp"
      otherfile = self.fixtures + "/water_5.fixture"
      molecule = fileToMol("tests/watercluster4.xyz")
      fragmentation = Fragmentation(molecule)
      fragmentation.beginFragmentation()
      fragmentation.doFragmentation()
      fragmentation.finishFragmentation()
      directories = {'share':''}
      gamessfmo = GamessFMO(fragmentation, directories)
      gamessfmo.setCentralFragmentID(1)
      gamessfmo.setBoundariesFromString("1.0")
      gamessfmo.setActiveAtomsDistance(1.0)
      gamessfmo.setBufferMaxDistance(1.0)
      gamessfmo.setup()
      gamessfmo.writeFile(filename)
      generated = ReadStringListFromFile(filename)
      fixture = ReadStringListFromFile(otherfile)

      self.assertEqual(len(generated), len(fixture))
      for i in range(len(fixture)):
        self.assertEqual(generated[i], fixture[i])

      self.delete_file(filename)
 def setUp(self):
   self.molecule = fileToMol("tests/1UAO.pdb")
   self.fragmentation = Fragmentation(self.molecule)
   self.standardwriter = Standard(self.fragmentation)
示例#19
0
 def setUp(self):
   directories = {'share':''}
   self.molecule = fileToMol("tests/1UAO.pdb")
   self.fragmentation = Fragmentation(self.molecule)
   self.standardwriter = Standard(self.fragmentation, directories)
 def setUp(self):
     directories = {'share': ''}
     self.molecule = fileToMol("tests/1UAO.pdb")
     self.fragmentation = Fragmentation(self.molecule)
     self.standardwriter = Standard(self.fragmentation, directories)
    def setUp(self):
        self.filename_pdb = "tests/1UAO.pdb"

        # for testing, use OpenBabel functionality directly
        self.molecule = fileToMol(self.filename_pdb)
        self.fragmentation = Fragmentation(self.molecule)
 def setUp(self):
   self.molecule = fileToMol("tests/watercluster4.xyz")
   self.fragmentation = Fragmentation(self.molecule)
   self.fixtures = 'tests/gamess-fmo-fixtures'