Tinker Engine¶
tinker
¶
Tinker molecular mechanics engine backend.
Wraps Tinker executables (analyze, minimize, vibrate) for MM
calculations with MM3 and other force fields.
Requires: Tinker binaries on PATH or configured via tinker_dir
parameter. Download from: https://dasher.wustl.edu/tinker/
TinkerEngine
¶
Bases: MMEngine
Molecular mechanics engine using Tinker.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
tinker_dir
|
str
|
Path to Tinker bin directory (auto-detected if None) |
None
|
params_file
|
str
|
Path to MM3 parameter file (auto-detected if None) |
None
|
bond_tolerance
|
float
|
Distance multiplier for bond detection. Two atoms
are bonded when their distance is within
|
1.3
|
Initialize the Tinker engine.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
tinker_dir
|
str
|
Path to Tinker bin directory. Auto-detected if
|
None
|
params_file
|
str
|
Path to MM3 parameter file. Auto-detected if
|
None
|
bond_tolerance
|
float
|
Distance multiplier for bond detection. Two
atoms are bonded when their distance is within
|
1.3
|
Raises:
| Type | Description |
|---|---|
FileNotFoundError
|
If Tinker binaries or the MM3 parameter file cannot be found. |
Source code in q2mm/backends/mm/tinker.py
name
property
¶
Human-readable engine name.
Returns:
| Name | Type | Description |
|---|---|---|
str |
str
|
|
supported_functional_forms
¶
Tinker with MM3 params supports MM3 functional forms only.
Returns:
| Type | Description |
|---|---|
frozenset[str]
|
frozenset[str]: |
is_available
¶
Check if Tinker analyze executable is accessible.
Returns:
| Name | Type | Description |
|---|---|---|
bool |
bool
|
|
Source code in q2mm/backends/mm/tinker.py
energy
¶
Calculate MM energy in kcal/mol.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
structure
|
str | Q2MMMolecule
|
Path to XYZ file or :class: |
required |
forcefield
|
ForceField | dict | None
|
Force field or atom-type mapping. Uses default MM3
types if |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
Total potential energy in kcal/mol. |
Raises:
| Type | Description |
|---|---|
RuntimeError
|
If the energy cannot be parsed from Tinker output. |
Source code in q2mm/backends/mm/tinker.py
minimize
¶
Energy-minimize structure.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
structure
|
str | Q2MMMolecule
|
Path to XYZ file or :class: |
required |
forcefield
|
ForceField | dict | None
|
Force field or atom-type mapping. Uses default MM3
types if |
None
|
rms_grad
|
float
|
RMS gradient convergence criterion in kcal/mol/Å. |
0.01
|
Returns:
| Type | Description |
|---|---|
tuple
|
tuple[float, list[str], np.ndarray]: |
Raises:
| Type | Description |
|---|---|
RuntimeError
|
If the energy cannot be parsed from output or the minimized coordinate file is not found. |
Source code in q2mm/backends/mm/tinker.py
hessian
¶
Calculate MM Hessian matrix.
Note
Full Hessian extraction from Tinker requires the testhess
program. Use :meth:frequencies for vibrational analysis instead.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
structure
|
str | Q2MMMolecule
|
Path to XYZ file or :class: |
required |
forcefield
|
ForceField | dict | None
|
Force field or atom-type mapping. |
None
|
Returns:
| Type | Description |
|---|---|
ndarray
|
np.ndarray: Not implemented — always raises. |
Raises:
| Type | Description |
|---|---|
NotImplementedError
|
Always raised; use :meth: |
Source code in q2mm/backends/mm/tinker.py
frequencies
¶
Calculate vibrational frequencies in cm⁻¹.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
structure
|
str | Q2MMMolecule
|
Path to XYZ file or :class: |
required |
forcefield
|
ForceField | dict | None
|
Force field or atom-type mapping. Uses default MM3
types if |
None
|
Returns:
| Type | Description |
|---|---|
list[float]
|
list[float]: Vibrational frequencies in cm⁻¹. |