From 2279f8ea4a3bea119823491019ff1afa2a453026 Mon Sep 17 00:00:00 2001 From: Alex Moldovan Date: Tue, 1 Oct 2024 14:28:38 +0100 Subject: [PATCH 1/3] Added Topology Surface Charge SCI-1404 --- .../surface_charge_calculator.py | 127 +++++++++++++++--- 1 file changed, 105 insertions(+), 22 deletions(-) diff --git a/scripts/surface_charge/surface_charge_calculator.py b/scripts/surface_charge/surface_charge_calculator.py index 498c891..dbedd0a 100644 --- a/scripts/surface_charge/surface_charge_calculator.py +++ b/scripts/surface_charge/surface_charge_calculator.py @@ -8,10 +8,9 @@ # The following line states a licence feature that is required to show this script in Mercury and Hermes script menus. # Created 18/08/2024 by Alex Moldovan # ccdc-licence-features not-applicable - import os import warnings -from typing import List, Tuple +from typing import List, Tuple, Dict import numpy as np from ccdc.io import CrystalReader @@ -29,30 +28,107 @@ def __init__(self, crystal, use_existing_charges: bool = False): self.crystal = crystal self.surface = None self._surface_charge = None + self.surface_atom_charge = np.nan + self.node_projected_charge = np.nan + self.node_representative_charge = np.nan + + @staticmethod + def sum_atom_charge(atoms: List[object]) -> float: + return np.round(np.sum([atom.partial_charge for atom in atoms]), 3) + + def get_average_node_charge(self): + self.node_charge_dictionary = {} + node_list = list(self.surface.topology.nodes) + for node, atoms in self.surface.surface_node_atom_contacts.items(): + node_index = node_list.index(node) + average_node_charge = 0 + if len(atoms) > 0: + average_node_charge = self.sum_atom_charge(atoms) + self.node_charge_dictionary[node_index] = average_node_charge + + def calculate_triangles_properties(self, + tri_index: List[Tuple[int, int, int]]) -> Dict[ + Tuple[int, int, int], Dict[str, float]]: + surface_area = self.surface.descriptors.surface_area + self.triangles_properties = {} + triangle_areas = self.calculate_area_of_triangles(list(self.surface.topology.triangles)) + total_triangle_area = sum(triangle_areas) + for node_index, triangle_area in zip(tri_index, triangle_areas): + average_triangle_charge = np.mean([self.node_charge_dictionary[i] for i in node_index]) + triangle_representation = triangle_area / surface_area + projected_charge = 0 + if np.isclose(triangle_area, 0.0) is False: + projected_charge = average_triangle_charge / triangle_area + self.triangles_properties[tuple(node_index)] = {'Average Charge': average_triangle_charge, + 'Triangle Area': triangle_area, + 'Percentage Area': triangle_representation, + 'Node Representative Charge': average_triangle_charge * triangle_representation, + 'Node Projected Surface Charge': projected_charge} + + def calculate_node_charges(self): + tri_index = self.calculated_node_index_values(list(self.surface.topology.nodes), + list(self.surface.topology.triangles)) + self.get_average_node_charge() + self.calculate_triangles_properties(tri_index) + self.representative_charge = np.sum( + [triangle['Node Representative Charge'] for triangle in self.triangles_properties.values()]) + self.node_charges = np.sum([triangle['Average Charge'] for triangle in self.triangles_properties.values()]) + return self.representative_charge + + @staticmethod + def calculate_length(origin: np.ndarray, target: np.ndarray) -> float: + """Returns distance between target and origin""" + if not isinstance(origin, np.ndarray) or not isinstance(target, np.ndarray): + raise TypeError("Please supply numpy arrays for lengths.") + return np.linalg.norm(target - origin) + + @staticmethod + def compute_triangle_area(a: float, b: float, c: float) -> float: + """Calculates area of triangle using Heron's formula""" + s = (a + b + c) / 2 + return np.sqrt(s * (s - a) * (s - b) * (s - c)) + + def calculate_area_of_triangles(self, triangles: List) -> List: + """ Calculates area of individual triangles from node positions using Heron's formula""" + triangle_areas = [] + for triangle in triangles: + pos_0, pos_1, pos_2 = np.array(triangle[0]), np.array(triangle[1]), np.array(triangle[2]), + a_dist = self.calculate_length(pos_0, pos_1) + b_dist = self.calculate_length(pos_0, pos_2) + c_dist = self.calculate_length(pos_1, pos_2) + triangle_areas.append(self.compute_triangle_area(a_dist, b_dist, c_dist)) + + return triangle_areas + + @staticmethod + def calculated_node_index_values(nodes: List, triangles: List) -> List: + """ + Calculate index of all triangles for nodes + + :param nodes: list of nodes [x,y,z] + :param triangles: list of triangles that contain nodes index values + """ + search_dictionary = {e: i for i, e in enumerate(nodes)} + return [[search_dictionary[n] for n in tri] for tri in triangles] def calculate_surface_charge(self, hkl: Tuple[int, int, int], offset: float): self.surface = Surface(self.crystal, miller_indices=hkl, offset=offset) if self.surface.slab.assign_partial_charges(): - self._surface_charge = np.round(np.sum([atom.partial_charge for atom in self.surface.surface_atoms]), 3) + self.surface_atom_charge = self.sum_atom_charge(atoms=self.surface.surface_atoms) + self.node_representative_charge = self.calculate_node_charges() return warnings.warn(f"Gasteiger charges could not be assigned to molecule: {self.crystal.identifier}", RuntimeWarning) - self._surface_charge = np.nan - - @property - def surface_charge(self): - if self._surface_charge is None: - raise ValueError("Surface charge calculation not yet calculated, run calculate_surface_charge()") - return self._surface_charge - - @property - def surface_charge_per_area(self): - return self.surface_charge / self.surface.descriptors.projected_area class SurfaceChargeController: def __init__(self, structure: str, hkl_and_offsets: List[Tuple[int, int, int, float]], output_directory: str = None, use_existing_charges: bool = False): + + self.surface_node_charges = [] + self.surface_areas = [] + self.surface_node_representative_charge = [] + self.surface_atom_charges = [] self.surface_charges_per_area = [] self.surface_charges = [] self.projected_area = [] @@ -84,9 +160,12 @@ def calculate_surface_charge(self): for surface in self.surfaces: charges = SurfaceCharge(crystal=self.crystal, use_existing_charges=self.use_existing_charges) charges.calculate_surface_charge(hkl=surface[:3], offset=surface[3]) - self.surface_charges.append(charges.surface_charge) + self.surface_atom_charges.append(charges.surface_atom_charge) + self.surface_node_charges.append(charges.node_charges) + self.surface_node_representative_charge.append(charges.node_representative_charge) + self.projected_area.append(charges.surface.descriptors.projected_area) - self.surface_charges_per_area.append(charges.surface_charge_per_area) + self.surface_areas.append(charges.surface.descriptors.surface_area) def make_report(self): html_content = self.generate_html_table() @@ -114,11 +193,13 @@ def generate_html_table(self):

Calculation Results

- + - - - + + + + + """ @@ -130,8 +211,10 @@ def generate_html_table(self): - - + + + + """ From 0ed988f45bd6fdb9586d2509e2375c515c97612d Mon Sep 17 00:00:00 2001 From: Alex Moldovan Date: Thu, 3 Oct 2024 15:39:51 +0100 Subject: [PATCH 2/3] Changes based on PR SCI-1404 --- .../surface_charge_calculator.py | 35 ++++++++----------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/scripts/surface_charge/surface_charge_calculator.py b/scripts/surface_charge/surface_charge_calculator.py index dbedd0a..80cbbc7 100644 --- a/scripts/surface_charge/surface_charge_calculator.py +++ b/scripts/surface_charge/surface_charge_calculator.py @@ -31,28 +31,28 @@ def __init__(self, crystal, use_existing_charges: bool = False): self.surface_atom_charge = np.nan self.node_projected_charge = np.nan self.node_representative_charge = np.nan + self.triangles_properties = dict() @staticmethod def sum_atom_charge(atoms: List[object]) -> float: return np.round(np.sum([atom.partial_charge for atom in atoms]), 3) - def get_average_node_charge(self): + def get_node_charge(self): self.node_charge_dictionary = {} node_list = list(self.surface.topology.nodes) for node, atoms in self.surface.surface_node_atom_contacts.items(): node_index = node_list.index(node) - average_node_charge = 0 + total_node_charge = 0 if len(atoms) > 0: - average_node_charge = self.sum_atom_charge(atoms) - self.node_charge_dictionary[node_index] = average_node_charge + total_node_charge = self.sum_atom_charge(atoms) + self.node_charge_dictionary[node_index] = total_node_charge def calculate_triangles_properties(self, - tri_index: List[Tuple[int, int, int]]) -> Dict[ - Tuple[int, int, int], Dict[str, float]]: + tri_index: List[Tuple[int, int, int]]) -> None: surface_area = self.surface.descriptors.surface_area self.triangles_properties = {} triangle_areas = self.calculate_area_of_triangles(list(self.surface.topology.triangles)) - total_triangle_area = sum(triangle_areas) + for node_index, triangle_area in zip(tri_index, triangle_areas): average_triangle_charge = np.mean([self.node_charge_dictionary[i] for i in node_index]) triangle_representation = triangle_area / surface_area @@ -68,7 +68,7 @@ def calculate_triangles_properties(self, def calculate_node_charges(self): tri_index = self.calculated_node_index_values(list(self.surface.topology.nodes), list(self.surface.topology.triangles)) - self.get_average_node_charge() + self.get_node_charge() self.calculate_triangles_properties(tri_index) self.representative_charge = np.sum( [triangle['Node Representative Charge'] for triangle in self.triangles_properties.values()]) @@ -83,22 +83,14 @@ def calculate_length(origin: np.ndarray, target: np.ndarray) -> float: return np.linalg.norm(target - origin) @staticmethod - def compute_triangle_area(a: float, b: float, c: float) -> float: - """Calculates area of triangle using Heron's formula""" - s = (a + b + c) / 2 - return np.sqrt(s * (s - a) * (s - b) * (s - c)) + def compute_simplex_area(simplex: np.ndarray) -> float: + vec_1 = simplex[1] - simplex[0] + vec_2 = simplex[2] - simplex[0] + return np.linalg.norm(np.cross(vec_1, vec_2)) / 2 def calculate_area_of_triangles(self, triangles: List) -> List: """ Calculates area of individual triangles from node positions using Heron's formula""" - triangle_areas = [] - for triangle in triangles: - pos_0, pos_1, pos_2 = np.array(triangle[0]), np.array(triangle[1]), np.array(triangle[2]), - a_dist = self.calculate_length(pos_0, pos_1) - b_dist = self.calculate_length(pos_0, pos_2) - c_dist = self.calculate_length(pos_1, pos_2) - triangle_areas.append(self.compute_triangle_area(a_dist, b_dist, c_dist)) - - return triangle_areas + return [self.compute_simplex_area(np.array(triangle)) for triangle in triangles] @staticmethod def calculated_node_index_values(nodes: List, triangles: List) -> List: @@ -222,6 +214,7 @@ def generate_html_table(self): html += """
hklhkl OffsetProjected AreaSurface Charge*Surface Charge per Projected AreaPArea-Projected Area Å2SArea-Surface Area Å2Total Atom Surface ChargeTotal Atom Surface Charge/PATopological Surface Charge/ SArea
{hkl} {offset:.2f} {self.projected_area[i]:.3f}{self.surface_charges[i]:.3f}{self.surface_charges_per_area[i]:.4f}{self.surface_areas[i]:.3f}{self.surface_atom_charges[i]:.3f}{self.surface_atom_charges[i] / self.projected_area[i]:.4f}{self.surface_node_representative_charge[i]:.4f}

*-Surface charge is based on gasteiger partial charges 10.1016/S0040-4039(01)94977-9

+

Topological surface charge is defined as the average triangle charge on the surface multiplied by the % area contribution towards the total surface.

""" From 89f1f8bf58f92234a18e6792439366f922afc7c6 Mon Sep 17 00:00:00 2001 From: Alex Moldovan Date: Tue, 8 Oct 2024 10:44:36 +0100 Subject: [PATCH 3/3] Updated ReadMe SCI-1404 --- scripts/surface_charge/ReadMe.md | 2 +- .../surface_charge/assets/example_output.png | Bin 36920 -> 0 bytes .../assets/example_output_hxacan28.png | Bin 0 -> 56244 bytes 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 scripts/surface_charge/assets/example_output.png create mode 100644 scripts/surface_charge/assets/example_output_hxacan28.png diff --git a/scripts/surface_charge/ReadMe.md b/scripts/surface_charge/ReadMe.md index 5f4c140..b186a20 100644 --- a/scripts/surface_charge/ReadMe.md +++ b/scripts/surface_charge/ReadMe.md @@ -11,7 +11,7 @@ Charges are currently calculated using the Gasteiger charge model. Further devel Example Output: -![Example Output](assets/example_output.png) +![Example Output](assets/example_output_hxacan28.png) > **Note** - When comparing charges for non-CSD structures and structures from mol2 files the values might be different as the bonding might not be the same. When importing a mol2 file the bonding and charges may have to be calculated on the fly, whereas this information is assigned for CSD entries. diff --git a/scripts/surface_charge/assets/example_output.png b/scripts/surface_charge/assets/example_output.png deleted file mode 100644 index 3f9205a4bd9f1adcee50e852f1ab5276248cafa2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36920 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 A)Bpeg diff --git a/scripts/surface_charge/assets/example_output_hxacan28.png b/scripts/surface_charge/assets/example_output_hxacan28.png new file mode 100644 index 0000000000000000000000000000000000000000..09c05059ba914f77d5259eea5094dba32abc6d25 GIT binary patch literal 56244 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 literal 0 HcmV?d00001