morfeus package#

Submodules#

Module contents#

Calculates steric descriptors for molecules.

Modules:

bite_angle: Bite angle code buried_volume: Buried volume code calculators: Internal calculators cone_angle: Cone angle code conformer: Conformer tools d3_data: Reference data for D3 calculations data: Module related to data geometry: Help classes and functions related to geometry io: Input and output local_force: Local force constant code plotting: Plotting functions pyramidalization: Pyramidalization code qc: Interface to quantum-chemical programs sasa: Solvent accessible surface area code solid_angle: Solid angle code sterimol: Sterimol code typing: Typing code for arrays utils: Helper functions. visible_volume: Visible volume code xtb: xtb interface code

Scripts:

morfeus: Command line interface

class morfeus.BiteAngle(coordinates, metal_index, ligand_index_1, ligand_index_2, ref_atoms=None, ref_vector=None)[source]#

Bases: object

Performs and stores the results of a bite angle calculation.

The bite angle can become ‘inverted’ if it goes beyond 180°. This cannot be detected automatically, so the user has to supply a reference vector that should point in the ‘direction’ of the ligand. As a convenience, the vector can be constructed automatically from the metal atom to the geometric mean of a set of ‘ref_atoms’.

Parameters:
  • coordinates (ArrayLike2D) – Coordinates (Å)

  • metal_index (int) – Index of metal atom (1-indexed)

  • ligand_index_1 (int) – Index of first ligand atom (1-indexed)

  • ligand_index_2 (int) – Index of second ligand atom (1-indexed)

  • ref_vector (ArrayLike1D | None) – Reference vector for determining inverted bite angle

  • ref_atoms (Iterable[int] | None) – Reference atoms for determnining inverted bite angle (1-indexed)

angle#

Bite angle (degrees)

Type:

float

inverted#

Whether angle is ‘inverted’

Type:

bool

class morfeus.BuriedVolume(elements, coordinates, metal_index, excluded_atoms=None, radii=None, include_hs=False, radius=3.5, radii_type='bondi', radii_scale=1.17, density=0.001, z_axis_atoms=None, xz_plane_atoms=None)[source]#

Bases: object

Performs and stores the results of a buried volume calculation.

Algorithm similar as to described in Organometallics 2016, 35, 2286.

Parameters:
  • elements (Iterable[int] | Iterable[str]) – Elements as atomic symbols or numbers

  • coordinates (ArrayLike2D) – Coordinates (Å)

  • metal_index (int) – Index of metal atom (1-indexed)

  • excluded_atoms (Sequence[int] | None) – Indices of atoms to exclude (1-indexed). Metal atom is always excluded and does not have to be given here.

  • radii (ArrayLike1D | None) – vdW radii (Å)

  • include_hs (bool) – Whether to include H atoms in the calculation

  • radius (float) – Radius of sphere (Å)

  • radii_type (str) – Type of radii to use: ‘alvarez’, ‘bondi’, ‘crc’ or ‘truhlar’

  • radii_scale (float) – Scaling factor for radii

  • density (float) – Volume per point in the sphere (ų)

  • z_axis_atoms (Sequence[int] | None) – Atom indices for deciding orientation of z axis (1-indexed)

  • xz_plane_atoms (Sequence[int] | None) – Atom indices for deciding orientation of xz plane (1-indexed)

buried_volume#

Buried volume of sphere (ų)

Type:

float

distal_volume#

Distal volume of ligand (ų)

Type:

float

fraction_buried_volume#

Fraction buried volume of sphere

Type:

float

free_volume#

Free volume of sphere (ų)

Type:

float

octants#

Results for octant analysis

Type:

dict[str, dict[int, float]]

quadrants#

Results for quadrant analysis

Type:

dict[str, dict[int, float]]

compute_distal_volume(method='sasa', octants=False, sasa_density=0.01)[source]#

Computes the distal volume.

Uses either SASA or Buried volume with large radius to calculate the molecular volume.

Parameters:
  • method (str) – Method to get total volume: ‘buried_volume’ or ‘sasa’

  • octants (bool) – Whether to compute distal volume for quadrants and octants. Requires method=’buried_volume’

  • sasa_density (float) – Density of points on SASA surface. Ignored unless method=’sasa’

Returns:

Self

Return type:

self

Raises:

ValueError – When method is not specified correctly.

octant_analysis()[source]#

Perform octant analysis of the buried volume.

Return type:

BuriedVolume

property percent_buried_volume: float#

Deprecated attribute. Use ‘fraction_buried_volume’ instead.

print_report()[source]#

Prints a report of the buried volume.

Return type:

None

class morfeus.ConeAngle(elements, coordinates, atom_1, radii=None, radii_type='crc', method='libconeangle')[source]#

Bases: object

Calculates and stores the results of exact cone angle calculation.

As described in J. Comput. Chem. 2013, 34, 1189.

Parameters:
  • elements (Iterable[int] | Iterable[str]) – Elements as atomic symbols or numbers

  • coordinates (ArrayLike2D) – Coordinates (Å)

  • atom_1 (int) – Index of central atom (1-inexed)

  • radii (ArrayLike1D | None) – vdW radii (Å)

  • radii_type (str) – Type of vdW radii: ‘alvarez’, ‘bondi’, ‘crc’ or ‘truhlar’

  • method (str) – Method of calculation: ‘internal’ or ‘libconeangle’ (default)

cone_angle#

Exact cone angle (degrees)

Type:

float

tangent_atoms#

Atoms tangent to cone (1-indexed)

Type:

list[int]

Raises:
  • RunTimeError – If cone angle could not be found by internal algorithm

  • ValueError – If atoms within vdW radius of central atom or if exception happened with libconeangle or if wrong method chosen

Parameters:
  • elements (Iterable[int] | Iterable[str]) –

  • coordinates (ArrayLike2D) –

  • atom_1 (int) –

  • radii (ArrayLike1D | None) –

  • radii_type (str) –

  • method (str) –

print_report()[source]#

Prints report of results.

Return type:

None

class morfeus.Dispersion(elements, coordinates, radii=None, radii_type='rahm', point_surface=True, compute_coefficients=True, density=0.1, excluded_atoms=None, included_atoms=None)[source]#

Bases: object

Calculates and stores the results for the 🍺P_int dispersion descriptor.

The descriptor is defined in 10.1002/anie.201905439. Morfeus can compute it based on a surface either from vdW radii, surface vertices or the electron density. Dispersion can be obtained with the D3 or D4 model.

Parameters:
  • elements (Iterable[int] | Iterable[str]) – Elements as atomic symbols or numbers

  • coordinates (ArrayLike2D) – Coordinates (Å)

  • radii (ArrayLike1D | None) – VdW radii (Å)

  • radii_type (str) – Choice of vdW radii: ‘alvarez’, ‘bondi’, ‘crc’, ‘rahm’ and ‘truhlar’

  • point_surface (bool) – Use point surface from vdW radii

  • compute_coefficients (bool) – Whether to compute D3 coefficients with internal code

  • density (float) – Area per point (Ų) on the vdW surface

  • excluded_atoms (Sequence[int] | None) – Atoms to exclude (1-indexed). Used for substituent P_ints

  • included_atoms (Sequence[int] | None) – Atoms to include. Used for functional group P_ints

area#

Area of surface (Ų)

Type:

float

atom_areas#

Atom indices as keys and atom areas as values (Ų)

Type:

dict[int, float]

atom_p_int#

Atom indices as keys and P_int as values (kcal¹ᐟ² mol⁻¹⸍²))

Type:

dict[int, float]

atom_p_max#

Atom indices as keys and P_max as values (kcal¹ᐟ² mol⁻¹ᐟ²)

Type:

dict[int, float]

atom_p_min#

Atom indices as keys and P_min as values( kcal¹ᐟ² mol⁻¹ᐟ²)

Type:

dict[int, float]

p_int#

P_int value for molecule (kcal¹ᐟ² mol⁻¹ᐟ²)

Type:

float

p_max#

Highest P value (kcal¹ᐟ² mol⁻¹ᐟ²)

Type:

float

p_min#

Lowest P value (kcal¹ᐟ² mol⁻¹ᐟ²)

Type:

float

p_values#

All P values (kcal¹ᐟ² mol⁻¹ᐟ²)

Type:

Any

volume#

Volume of surface (ų)

Type:

float

Raises:

Exception – When both exluded_atoms and included_atom are given

Parameters:
  • elements (Iterable[int] | Iterable[str]) –

  • coordinates (ArrayLike2D) –

  • radii (ArrayLike1D | None) –

  • radii_type (str) –

  • point_surface (bool) –

  • compute_coefficients (bool) –

  • density (float) –

  • excluded_atoms (Sequence[int] | None) –

  • included_atoms (Sequence[int] | None) –

compute_coefficients(model='id3', order=8, charge=0)[source]#

Compute dispersion coefficients.

Can either use internal D3 model or D4 via Grimme’s dftd4 program.

Parameters:
  • model (str) – Calculation model: ‘id3’ (default) or ‘gd4’

  • order (int) – Order of the Cᴬᴬ coefficients

  • charge (int) – Molecular charge for D4 model

Returns:

Self

Return type:

self

Raises:

ValueError – When model not supported

compute_p_int(points=None)[source]#

Compute P_int values for surface or points.

Parameters:

points (ArrayLike2D | None) – Points to compute P values for

Returns:

Self

Return type:

self

load_coefficients(file, model)[source]#

Load the C₆ and C₈ coefficients.

Output can be read from the dftd3 and dftd4 programs by giving a file in combination with the corresponding model.

Parameters:
  • file (str | PathLike) – Output file from the dftd3 or dftd4 programs

  • model (str) – Calculation model: ‘d3’ or ‘d4’

Returns:

Self

Return type:

self

Raises:

ValueError – When model not supported

print_report(verbose=False)[source]#

Print report of results.

Parameters:

verbose (bool) – Whether to print atom P_ints

Return type:

None

save_vtk(filename)[source]#

Save surface as .vtk file.

Parameters:

filename (str) – Name of file. Use .vtk suffix.

Returns:

Self

Return type:

self

surface_from_cube(file, isodensity=0.001, method='flying_edges')[source]#

Adds an isodensity surface from a Gaussian cube file.

Parameters:
  • file (str | PathLike) – Gaussian cube file

  • isodensity (float) – Isodensity value (electrons/bohr³)

  • method (str) – Method for contouring: ‘contour’ or ‘flying_edges

Returns:

Self

Return type:

self

surface_from_multiwfn(file, fix_mesh=True)[source]#

Adds surface from Multiwfn vertex file with connectivity information.

Parameters:
  • file (str | PathLike) – Vertex.pdb file

  • fix_mesh (bool) – Whether to fix holes in the mesh with pymeshfix (recommended)

Returns:

Self

Return type:

self

class morfeus.LocalForce(elements=None, coordinates=None)[source]#

Bases: object

Calculates and stores the results from local force constant calculations.

The method is described by Cremer in 10.1002/(SICI)1097-461X(1998)67:1<1::AID-QUA1>3.0.CO;2-Z. Alternatively, the compliance matrix method can be used according to 10.1063/1.3413528

Parameters:
  • elements (Iterable[int] | Iterable[str] | None) – Elements as atomic symbols or numbers

  • coordinates (ArrayLike2D | None) – Coordinates (Å)

internal_coordinates#

Internal coordinates

Type:

list[Bond | Angle | Dihedral]

local_force_constants#

Local force constants (mDyne/Å)

Type:

Array1DFloat

local_frequencies#

Local mode frequencies (cm⁻¹)

Type:

Array1DFloat

n_imag#

Number of normal modes with imaginary frequencies

Type:

int

add_internal_coordinate(atoms)[source]#

Add internal coordinate.

Composed of two (bond), three (angle) or four atoms (dihedral).

Parameters:

atoms (Sequence[int]) – Atom indices of internal coordinate

Returns:

Self

Return type:

self

compute_compliance()[source]#

Compute local force constants with the compliance matrix method.

Return type:

LocalForce

compute_frequencies()[source]#

Compute local frequencies.

Return type:

LocalForce

compute_local(project_imag=True, cutoff=0.001)[source]#

Compute local force constants with the local modes approach.

Parameters:
  • project_imag (bool) – Whether to project out imaginary frequencies

  • cutoff (float) – Cutoff for low force constant (mDyne/Å)

Returns:

Self

Return type:

self

detect_bonds(radii=None, radii_type='pyykko', scale_factor=1.2)[source]#

Detect bonds based on scaled sum of covalent radii.

Parameters:
  • radii (ArrayLike1D | None) – Covalent radii (Å)

  • radii_type (str) – Covalent radii type: ‘pyykko’

  • scale_factor (float) – Scale factor for covalent radii

Returns:

Self

Return type:

self

get_local_force_constant(atoms)[source]#

Return the local force constant between a set of atoms.

Parameters:

atoms (Sequence[int]) – Atom indices of the internal coordinate

Returns:

Local force constant (mDyne/Å, mDyne Å/rad²)

Return type:

force_constant

Raises:

ValueError – When no internal coordinate found

get_local_frequency(atoms)[source]#

Return the local frequency between a set of atoms.

Parameters:

atoms (Sequence[int]) – Atom indices in the internal coordinate

Returns:

Local frequency (cm⁻¹)

Return type:

frequency

Raises:

ValueError – When no internal coordinate found

load_file(file, program, filetype)[source]#

Load data from external file.

Parameters:
  • file (str | PathLike) – File

  • program (str) – Program used to generate file: ‘gaussian’, ‘unimovib’ or ‘xtb’

  • filetype (str) – Filetype. For ‘gaussian’: ‘fchk’ or ‘log’. For ‘unimovib’: ‘local’ or ‘log’. For ‘xtb’: ‘hessian’ or ‘normal_modes’

Returns:

Self

Return type:

self

normal_mode_analysis(hessian=None, save_hessian=False)[source]#

Perform normal mode analysis.

With projection of translations and vibrations to get normal modes and force constants.

Parameters:
  • hessian (ArrayLike2D | None) – User-supplied Hessian

  • save_hessian (bool) – Save projected Hessian for use in compliance matrix method.

Returns:

Self

Return type:

self

print_report(angles=False, dihedrals=False, angle_units=False)[source]#

Print report of results.

Parameters:
  • angle_units (bool) – Wheter to convert angle and dihedral force constants to mDyne Å/rad²

  • angles (bool) – Whether to print angles

  • dihedrals (bool) – Whether to print dihedrals

Return type:

None

reset_internal_coordinates()[source]#

Reset internal coordinate system.

Return type:

LocalForce

class morfeus.Pyramidalization(coordinates, atom_index, neighbor_indices=None, elements=None, radii=None, radii_type='pyykko', excluded_atoms=None, method='distance', scale_factor=1.2)[source]#

Bases: object

Calculates and stores results of pyramidalization and alpha angle.

As described in Struct. Chem. 1991, 2, 107 and alternatively according to bond angles as in J. Comput. Chem. 2012, 33 (27), 2173–2179.

Parameters:
  • coordinates (ArrayLike2D) – Coordinates (Å)

  • atom_index (int) – Index of pyramidalized atom (1-indexed)

  • neighbor_indices (list[int]) – Indices of neighbors to pyramidalized atom

  • elements (Iterable[int] | Iterable[str] | None) – Elements as atomic symbols or numbers

  • radii (ArrayLike1D | None) – Covalent radii used to determine connectivity (Å)

  • radii_type (str) – Covalent radii type: ‘pyykko’

  • excluded_atoms (Sequence[int] | None) – Indices of atoms to exclude

  • method (str) – Method for detecting neighbors: ‘connectivity’ or ‘distance’. Ignored if neighbor_indices is given.

  • scale_factor (float) –

alpha#

Average alpha angle (degrees)

Type:

float

alphas#

Alpha angles for all permutations of neighbors (degrees)

Type:

Any

neighbor_indices#

Indices of neighbors to pyramidalized atom

Type:

list[int]

P_angle#

Pyramidalization according to Gavrish

Type:

float

P#

Pyramidalization according to Radhakrishnan

Type:

float

print_report()[source]#

Print report of results.

Return type:

None

class morfeus.SASA(elements, coordinates, radii=None, radii_type='crc', probe_radius=1.4, density=0.01)[source]#

Bases: object

Performs and stores results of solvent accessible surface area calculations.

Parameters:
  • elements (Iterable[int] | Iterable[str]) – Elements as atomic symbols or numbers

  • coordinates (ArrayLike2D) – Coordinates (Å)

  • radii (ArrayLike1D | None) – VdW radii (Å)

  • radii_type (str) – Choice of vdW radii: ‘bondi’ or ‘crc’ (default)

  • probe_radius (float) – Radius of probe atom (Å)

  • density (float) – Area per point (Ų) on the vdW surface

area#

Area of the solvent accessible surface.

Type:

float

atom_areas#

Atom areas (starting from 1)

Type:

dict[int, float]

atom_volumes#

Atom volumes (starting from 1)

Type:

dict[int, float]

volume#

Volume of the solvent accessible surface

Type:

float

print_report(verbose=False)[source]#

Print report of results.

Parameters:

verbose (bool) – Whether to print atom areas

Return type:

None

class morfeus.SolidAngle(elements, coordinates, metal_index, radii=None, radii_type='crc', density=0.001)[source]#

Bases: object

Calculates and stores the results of a solid angle calculation.

As described in J. Chem. Theory Comput. 2013, 9 (12), 5734-5744 and Dalton Trans. 2006, 33, 3991.

Parameters:
  • elements (Iterable[int] | Iterable[str]) – Elements as atomic symbols or numbers

  • coordinates (ArrayLike2D) – Coordinates (Å)

  • metal_index (int) – Index of central atom (1-inexed)

  • radii (ArrayLike1D | None) – vdW radii (Å)

  • radii_type (str) – Type of vdW radii: ‘alvarez’, ‘bondi’, ‘crc’ or ‘truhlar’

  • density (float) – Area per point (Ų) on the sphere surface

cone_angle#

Solid cone angle (degrees)

Type:

float

solid_angle#

Solid angle (steradians)

Type:

float

G#

G parameter

Type:

float

print_report()[source]#

Prints report of results.

Return type:

None

class morfeus.Sterimol(elements, coordinates, dummy_index, attached_index, radii=None, radii_type='crc', n_rot_vectors=3600, excluded_atoms=None, calculate=True)[source]#

Bases: object

Performs and stores results of Sterimol calculation.

Parameters:
  • elements (Iterable[int] | Iterable[str]) – Elements as atomic symbols or numbers

  • coordinates (ArrayLike2D) – Coordinates (Å)

  • dummy_index (int) – Index of dummy atom (1-indexed)

  • attached_index (int | Iterable[int]) – Index of attached atom of substituent (1-indexed). For a list of indices, a dummy atom is created at their geometric center

  • radii (ArrayLike1D | None) – List of radii (Å)

  • radii_type (str) – vdW radii type: ‘alvarez’, ‘bondi’, ‘crc’ or ‘truhlar’

  • n_rot_vectors (int) – Number of rotational vectors for determining B₁ and B₅

  • excluded_atoms (Sequence[int] | None) – Atom indices to exclude from the calculation

  • calculate (bool) – Whether to calculate the Sterimol parameters directly

B_1_value#

Sterimol B₁ value (Å)

Type:

float

B_1#

Sterimol B₁ vector (Å)

Type:

Any

B_5_value#

Sterimol B_5 value (Å)

Type:

float

B_5#

Sterimol B₅ vector (Å)

Type:

Any

bond_length#

Bond length between atom 1 and atom 2 (Å)

Type:

float

L_value_uncorrected#

Sterimol L value minus 0.40 (Å)

Type:

float

L_value#

Sterimol L value (Å)

Type:

float

L#

Sterimol L vector (Å)

Type:

Any

bury(sphere_radius=5.5, method='delete', radii_scale=0.5, density=0.01)[source]#

Do a Buried Sterimol calculation.

There are three available schemes based on deletion, truncation or slicing.

Parameters:
  • sphere_radius (float) – Radius of sphere (Å)

  • method (str) – Method for burying: ‘delete’, ‘slice’ or ‘truncate’

  • radii_scale (float) – Scale radii for metohd=’delete’ calculation

  • density (float) – Area per point on surface (Ų)

Returns:

Self

Return type:

self

Raises:
  • ValueError – When method is not specified correctly

  • Exception – When using method=’truncate’ and sphere is too small

calculate()[source]#

Calculate Sterimol parameters.

Return type:

Sterimol

print_report(verbose=False)[source]#

Prints the values of the Sterimol parameters.

Parameters:

verbose (bool) – Whether to print uncorrected L_value and bond length

Return type:

None

set_points(points, shift=True)[source]#

Set points for calculation of Sterimol.

Parameters:
  • points (Sequence[Sequence[float]]) – Points (Å)

  • shift (bool) – Whether to shift the points to have origin at dummy atom.

Returns:

Self

Return type:

self

surface_from_radii(density=0.01)[source]#

Create surface points from vdW surface.

Parameters:

density (float) – Area per point on surface (Ų)

Returns:

Self

Return type:

self

class morfeus.VisibleVolume(elements, coordinates, metal_index, include_hs=True, radii=None, radii_type='pyykko', radius=3.5, density=0.01)[source]#

Bases: object

Calculates and stores visible volume and area.

Parameters:
  • elements (Iterable[int] | Iterable[str]) – Elements as atomic symbols or numbers

  • coordinates (ArrayLike2D) – Coordinates (Å)

  • metal_index (int) – Index of metal atom (1-indexed)

  • include_hs (bool) – Whether to include H atoms in the calculation

  • radii (ArrayLike1D | None) – Atomic radii (Å)

  • radii_type (str) – Radii type: ‘alvarez’, ‘bondi’, ‘crc’, ‘pyykko’, ‘rahm’ or ‘truhlar’

  • radius (float) – Radius of sphere to divide proximal and distal (Å)

  • density (float) – Area per point on atom surface (Ų)

distal_area#

Distal area (Ų)

Type:

float

distal_visible_area#

Distal visible area (Ų)

Type:

float

distal_visible_volume#

Distal visible volume (ų)

Type:

float

distal_volume#

Distal volume (ų)

Type:

float

invisible_area#

Invisible area (Ų)

Type:

float

invisible_volume#

Invisible volume (ų)

Type:

float

proximal_area#

Proximal area (Ų)

Type:

float

proximal_visible_area#

Proximal visible area (Ų)

Type:

float

proximal_visible_volume#

Proximal visible volume (ų)

Type:

float

proximal_volume#

Proximal volume (ų)

Type:

float

total_area#

Total area (Ų)

Type:

float

total_volume#

Total volume (ų)

Type:

float

visible_area#

Visible area (Ų)

Type:

float

visible_volume#

Visible volume (ų)

Type:

float

class morfeus.XTB(elements, coordinates, version='2', charge=0, n_unpaired=None, solvent=None, electronic_temperature=None)[source]#

Bases: object

Calculates electronic properties with the xtb-python package.

Parameters:
  • elements (Iterable[int] | Iterable[str]) – Elements as atomic symbols or numbers

  • coordinates (ArrayLike2D) – Coordinates (Å)

  • version (str) – Version of xtb to use. Currently works with ‘1’ or ‘2’.

  • charge (int) – Molecular charge

  • n_unpaired (int | None) – Number of unpaired electrons

  • solvent (str | None) – Solvent. See xtb-python documentation

  • electronic_temperature (int | None) – Electronic temperature (K)

get_bond_order(i, j)[source]#

Returns bond order between two atoms.

Parameters:
  • i (int) – Index of atom 1 (1-indexed)

  • j (int) – Index of atom 2 (1-indexed)

Returns:

Bond order

Return type:

bond_order

get_bond_orders(charge_state=0)[source]#

Returns bond orders.

Parameters:

charge_state (int) – Charge state relative to original charge

Returns:

Bond orders

Return type:

bond_orders

get_charges(charge_state=0)[source]#

Returns atomic charges.

Parameters:

charge_state (int) – Charge state relative to original charge

Returns:

Atomic charges

Return type:

charges

get_dipole(charge_state=0)[source]#

Calculate dipole vector (a.u.).

Parameters:

charge_state (int) – Charge state relative to original charge

Returns:

Dipole vector

Return type:

dipole

get_ea(corrected=False)[source]#

Calculate electron affinity.

Parameters:

corrected (bool) – Whether to apply correction term

Returns:

Electron affinity (eV)

Return type:

ea

get_fukui(variety)[source]#

Calculate Fukui coefficients.

Parameters:

variety (str) – Type of Fukui coefficient: ‘nucleophilicity’, ‘electrophilicity’, ‘radical’, ‘dual’, ‘local_nucleophilicity’ or ‘local_electrophilicity’.

Returns:

Atomic Fukui coefficients

Return type:

fukui

Raises:

ValueError – When variety does not exist

get_global_descriptor(variety, corrected=False)[source]#

Calculate global reactivity descriptors.

Parameters:
  • corrected (bool) – Whether to apply correction term

  • variety (str) – Type of descriptor: ‘electrophilicity’, ‘nucleophilicity’, ‘electrofugality’ or ‘nucleofugality’

Returns:

Global reactivity descriptor (eV)

Return type:

descriptor

Raises:

ValueError – When variety does not exist

get_homo()[source]#

Calculate HOMO energy.

Returns:

HOMO energy (a.u.)

Return type:

homo_energy

get_ip(corrected=False)[source]#

Calculate ionization potential.

Parameters:

corrected (bool) – Whether to apply correction term

Returns:

Ionization potential (eV)

Return type:

ip

get_lumo()[source]#

Calculate LUMO energy.

Returns:

LUMO energy (a.u.)

Return type:

lumo_energy

morfeus.read_geometry(file)[source]#

Read geometry file and guess parser based on suffix.

Parameters:

file (str | PathLike) – Filename or Path object

Returns:

Elements as atomic symbols or numbers coordinates: Coordinates (Å)

Return type:

elements

Raises:

ValueError – When suffix is not supported

morfeus.read_gjf(file)[source]#

Reads Gaussian gjf/com file and returns elements and coordinates.

Parameters:

file (str | PathLike) – gjf/com file object.

Returns:

Elements as atomic symbols or numbers coordinates: Coordinates (Å)

Return type:

elements

morfeus.read_xyz(file)[source]#

Reads xyz file.

Returns elements as written (atomic numbers or symbols) and coordinates.

Parameters:

file (str | PathLike) – Filename or Path object

Returns:

Elements as atomic symbols or numbers coordinates: Coordinates (Å)

Return type:

elements