tqchem.puckering

Classes

PuckeringFrame

Pucker coordinate frame.

Functions

reference_coordinate_system(→ tuple[numpy.array, ...)

Obtain x0, y0, z0 from the current geometry

puckering_to_xyz(→ tqchem.molgraph.MolecularSystem)

Transform puckering coordinates to xyz coordinates.

xyz_to_puckering(→ PuckeringFrame)

Transform xyz coordinates to puckering coordinates.

pucker_coordinate_5ring(→ list[PuckeringFrame])

Generate sets of values representing the most relevant conformers of a 5 ring

pucker_coordinate_6ring_smart(→ list[PuckeringFrame])

Selected generation of puckering points for 6 rings.

pucker_coordinate_6ring(→ list[PuckeringFrame])

Generate sets of values representing the most relevant conformers of a 5 ring

planar_conformer(→ PuckeringFrame)

Returns planar ring conformer

is_planar_ring(→ bool)

Module Contents

class tqchem.puckering.PuckeringFrame(x=..., y=..., q=..., phi=..., batframe=..., cycle=..., planar_only=...)

Pucker coordinate frame.

This class represents a frame in puckering coordinates.

Puckering is implemented according to: D. Cremer, J. Pople, https://doi.org/10.1021/ja00839a011

x

in-plane x-coordinates of each atom

Type:

np.ndarray

y

in-plane y-coordinates of each atom

Type:

np.ndarray

q

(n_atoms - 3) out-of-plane amplitudes

Type:

np.ndarray

phi

(n_atoms - 3) out-of-plane angles

Type:

np.ndarray

batframe

BATFrame connecting the ring to the rest of the molecule

Type:

BATFrame

cycle

list of atoms in the cycle

Type:

list[int]

planar_only

Should only the planar conformation be used?

Type:

bool

x: numpy.ndarray = Ellipsis
y: numpy.ndarray = Ellipsis
q: numpy.ndarray = Ellipsis
phi: numpy.ndarray = Ellipsis
batframe: tqchem.batframe.BATFrame = Ellipsis
cycle: list = Ellipsis
planar_only: bool = Ellipsis
update(frame) None
variable_coordinates(molecule: tqchem.molgraph.MolecularSystem, **kwargs) PuckeringFrame

Select coordinates for optimization of conformers.

This includes the all puckering coordinates and a batframe connecting it to possible other parts of the molecule described using BAT coordinates.

constant_coordinates(molecule: tqchem.molgraph.MolecularSystem) PuckeringFrame

Get subset of coordinates which need to stay constant during conformer search

Only coordinates of the batframe which are not variable are added

grid = Ellipsis
make_grid(graph: networkx.Graph = None, shift_by_reference: bool = False)

Discretize coordinates of puckering frame for optimization.

evaluate_grid(indices: list[int])

Evaluate the puckering frame at a given grid index.

The first parameter in i will be used for the puckering frame and the remaining ones for the BAT frame.

grid_range()

Obtain ranges for each of the coordinates.

closest_gridpoint(molecule: tqchem.molgraph.MolecularSystem) list[int]

Return the gridpoint most similar to the provided molecule

tqchem.puckering.reference_coordinate_system(mol: tqchem.molgraph.MolecularSystem, cycle: tuple[int, Ellipsis]) tuple[numpy.array, numpy.array, numpy.array, numpy.array]

Obtain x0, y0, z0 from the current geometry

tqchem.puckering.puckering_to_xyz(mol: tqchem.molgraph.MolecularSystem, frame: PuckeringFrame) tqchem.molgraph.MolecularSystem

Transform puckering coordinates to xyz coordinates.

tqchem.puckering.xyz_to_puckering(mol: tqchem.molgraph.MolecularSystem, cycle: tuple[int, Ellipsis]) PuckeringFrame

Transform xyz coordinates to puckering coordinates.

tqchem.puckering.pucker_coordinate_5ring(reference: PuckeringFrame, amplitude: float = 0.8, n_phi: int = 12) list[PuckeringFrame]

Generate sets of values representing the most relevant conformers of a 5 ring

As shown in Figure 1 of https://s3.smu.edu/dedman/catco/ring-puckering.html

By default, it creates 13 frames that generate all usual conformers, where each edge of the ring points up and down once and it includes a planar geometry

Parameters:
  • reference (PuckeringFrame) – reference frame to build the different ring conformers from

  • amplitude (float) – amplitude of the out-of-plane displacement

  • n_phi (int) – number of non-planar conformers created Specifies the discretization of the pseudorotational cycle shown in figure 1

tqchem.puckering.pucker_coordinate_6ring_smart(ref: PuckeringFrame, amplitude: float = 0.7, n_phi: float = 12, equatorial: bool = False, tropical: bool = False, planar: bool = True, axial: bool = True) list[PuckeringFrame]

Selected generation of puckering points for 6 rings.

Select which parts of the puckering sphere should be included by setting the flags. Please see Fig. 2 of https://s3.smu.edu/dedman/catco/ring-puckering.html for reference.

axial: include 2 chair conformations planar: include planar conformation equatorial: include Boat conformation tropical: include envelope conformation

tqchem.puckering.pucker_coordinate_6ring(reference: PuckeringFrame, amplitude: float = 0.7, n_phi: int = 12, n_theta: int = 5) list[PuckeringFrame]

Generate sets of values representing the most relevant conformers of a 5 ring

As shown in Figure 2 of https://s3.smu.edu/dedman/catco/ring-puckering.html

By default, it creates 39 frames that generate all usual conformers, including planar geometry, chair, twist, and boat conformations.

tqchem.puckering.planar_conformer(reference: PuckeringFrame) PuckeringFrame

Returns planar ring conformer

tqchem.puckering.is_planar_ring(cycle: list[int], graph: networkx.Graph) bool