polymerist.rdutils.bonding.identification ========================================= .. py:module:: polymerist.rdutils.bonding.identification .. autoapi-nested-parse:: Tools for determining how many and which bondable ports are in an RDKit Mol Functions --------- .. autoapisummary:: polymerist.rdutils.bonding.identification.get_total_port_degree_on_atom polymerist.rdutils.bonding.identification.max_bondable_order_between_atoms polymerist.rdutils.bonding.identification.enumerate_bondable_port_pairs polymerist.rdutils.bonding.identification.enumerate_bondable_port_pairs_internal polymerist.rdutils.bonding.identification.get_bondable_port_pairs polymerist.rdutils.bonding.identification.get_first_bondable_port_pair polymerist.rdutils.bonding.identification.get_num_bondable_port_pairs Module Contents --------------- .. py:function:: get_total_port_degree_on_atom(rdmol: rdkit.Chem.rdchem.Mol, atom_id: int, target_flavor: Optional[int] = None) Get the maximum combined bond degree for all ports of a particular flavor on an atom (or of all flavors, if None is provided) .. py:function:: max_bondable_order_between_atoms(rdmol: rdkit.Chem.rdchem.Mol, atom_id_1: int, atom_id_2: int, target_flavor: int) -> int Return the highest possible bond order which could be created between a pair of atoms .. py:function:: enumerate_bondable_port_pairs(ports_1: Iterable[polymerist.rdutils.bonding.portlib.Port], ports_2: Iterable[polymerist.rdutils.bonding.portlib.Port]) -> Generator[tuple[polymerist.rdutils.bonding.portlib.Port, polymerist.rdutils.bonding.portlib.Port], None, None] Generate all possible pairs of Ports between two molecules which could be bonded together .. py:function:: enumerate_bondable_port_pairs_internal(ports: Iterable[polymerist.rdutils.bonding.portlib.Port]) -> Generator[tuple[polymerist.rdutils.bonding.portlib.Port, polymerist.rdutils.bonding.portlib.Port], None, None] Generate all possible pairs of Ports within a single molecule which could be bonded together .. py:function:: get_bondable_port_pairs(rdmol: rdkit.Chem.rdchem.Mol, atom_id_1: Optional[int] = None, atom_id_2: Optional[int] = None, flavor_pair: tuple[Optional[int], Optional[int]] = (None, None)) -> Generator[tuple[polymerist.rdutils.bonding.portlib.Port, polymerist.rdutils.bonding.portlib.Port], None, None] Get every pair of ports within an RDKit Mol which could be bonded and match a specified flavor pair (could be partially or fully None for less specificity) Can optionally localize search to only have port bridegehead coinciding with atoms at particular indices Pairs are returned n descending order of linker atom index to simplify atom removal if modifying later .. py:function:: get_first_bondable_port_pair(rdmol: rdkit.Chem.rdchem.Mol, atom_id_1: Optional[int] = None, atom_id_2: Optional[int] = None, flavor_pair: tuple[Optional[int], Optional[int]] = (None, None)) -> tuple[polymerist.rdutils.bonding.portlib.Port, polymerist.rdutils.bonding.portlib.Port] Get the first pair of ports between atoms at given indices which are bondable, raising Exception if none exists .. py:function:: get_num_bondable_port_pairs(rdmol: rdkit.Chem.rdchem.Mol, atom_id_1: Optional[int] = None, atom_id_2: Optional[int] = None, flavor_pair: tuple[Optional[int], Optional[int]] = (None, None)) -> int Count how many bondable port pairs exist within a Mol