示例#1
0
    def test_sf_from_map(self):
        hmax, kmax, lmax = self.reflections.maxHKL()
        density_map = ElectronDensityMap.fromUniverse(self.reflections.cell,
                                                      4 * hmax, 4 * kmax,
                                                      4 * lmax, self.universe,
                                                      self.adps)

        sf_from_map = StructureFactor.fromElectronDensityMap(
            self.reflections, density_map)

        sf_from_universe = StructureFactor.fromUniverse(
            self.reflections, self.universe, self.adps)

        self.assert_(sf_from_universe.rFactor(sf_from_map) < 1.e-3)
        d = N.absolute(sf_from_universe.array - sf_from_map.array)
        self.assert_(N.maximum.reduce(d) < 0.13)
        self.assert_(N.average(d) < 0.02)

        map_from_sf = ElectronDensityMap.fromStructureFactor(
            self.reflections.cell, 4 * hmax, 4 * kmax, 4 * lmax,
            sf_from_universe)
        sf_from_test_map = StructureFactor.fromElectronDensityMap(
            self.reflections, map_from_sf)
        d = N.absolute(sf_from_universe.array - sf_from_test_map.array)
        self.assert_(sf_from_universe.rFactor(sf_from_test_map) < 1.e-15)
        self.assert_(N.maximum.reduce(d) < 1.e-13)
示例#2
0
    def test_sf_from_map(self):
        asu_atoms = sum(([atom for atom in residue] for residue in self.s), [])
        unit_cell_atom_data = []
        for tr in self.s.cs_transformations:
            for atom in asu_atoms:
                unit_cell_atom_data.append(
                    (atom, atom['element'], tr(atom['position']) * Units.Ang,
                     atom['temperature_factor'] * Units.Ang**2 /
                     (8. * N.pi**2), atom['occupancy']))

        hmax, kmax, lmax = self.reflections.maxHKL()
        density_map = ElectronDensityMap.fromUnitCellAtoms(
            self.reflections.cell, 4 * hmax, 4 * kmax, 4 * lmax,
            unit_cell_atom_data)

        sf_from_map = StructureFactor.fromElectronDensityMap(
            self.reflections, density_map)

        sf_from_unit_cell = StructureFactor.fromUnitCellAtoms(
            self.reflections, unit_cell_atom_data)

        self.assert_(sf_from_unit_cell.rFactor(sf_from_map) < 1.e-3)
        d = N.absolute(sf_from_unit_cell.array - sf_from_map.array)
        self.assert_(N.maximum.reduce(d) < 0.13)
        self.assert_(N.average(d) < 0.02)

        map_from_sf = ElectronDensityMap.fromStructureFactor(
            self.reflections.cell, 4 * hmax, 4 * kmax, 4 * lmax,
            sf_from_unit_cell)
        sf_from_test_map = StructureFactor.fromElectronDensityMap(
            self.reflections, map_from_sf)
        d = N.absolute(sf_from_unit_cell.array - sf_from_test_map.array)
        self.assert_(sf_from_unit_cell.rFactor(sf_from_test_map) < 1.e-15)
        self.assert_(N.maximum.reduce(d) < 1.e-13)