Substructure Exchanger

Simply exchange a substructure with another.

Introduction

Often we want to modify existing molecular structures in an automated way, which is always a little tricky. kallisto implements an easy way to exchange substructures within a molecular structure with another substructure. For the definition of substructures and the way we find them in kallisto , check out the section Substructure Finder. The easiest way to introduce you to the substructure exchanger is by going through several examples (see below).

Define the Subcommand

> kallisto exs options arguments

Application

Let's take the example given in the section Substructure Finder and exchange the benzene substrate with another substrate. Since this example describes the transition state of an oxidative addition we have to keep track that the new substrate misses one Hydrogen atom at the exchange position. We decide to exchange with a pyridine molecule (ortho to Nitrogen).

To exchange benzene with pyridine, we need to know the substructure number of benzene within the complex. Here, we take the result from the example given in the section Substructure Finder; benzene is substructure number 2. Furthermore, the Iridium atom has to be specified according to the numbering inside the complex, which is 18.

Now we call the subcommand exs to exchange the benzene substructure with the new one. This generates a new xmol file (termed newstructure.xyz) that incorporates the new structure.

Ok, this seems to be working quite nicely, but what happens when we exchange with larger substructures? Let's tackle one such problem by exchanging with a c-Met Kinase Inhibitor

Again, the new structure is saved to newstructure.xyz. By taking a closer look to this structure, we see that atoms seem to crash into each other - no bueno.

To overcome this failure, the kallisto program writes constraint files (termed constrain.inp) that are intended to be used in combination with the open-source xtb tight-binding scheme. The constraint files can be used to repair the structure within a constrained geometry optimisation. The constraints fix the catalyst and enable only the substrate to relax itself in this geometry.

After optimising the geometry, we obtain a reasonable complex (see depiction below). This approach reduces the complexity of the exchange algorithm tremendously since we solve the exchange problems by applying a physically motivated scheme instead of empirical rules like, e.g., a template based substrate exchange.

Rotate with Rodrigues' rotation formula

Sometimes we want to additionally rotate the new substrate around its covalent bond (central atom - here Iridium - to substrate atom) after matching it. The kallisto program makes use of the Rodrigues rotation formula that rotates a vector v by an angle theta around vector k by decomposing it into its components parallel and perpendicular to k, and rotating only the perpendicular component.

vrot=vcos(θ)+(k×v)sin(θ)+k(kv)(1cos(θ))\mathbf{v}_{\text{rot}} = \mathbf{v}\text{cos}(\theta) + (\textbf{k}\times \mathbf{v})\text{sin}(\theta) + \mathbf{k}(\mathbf{k}\cdot \mathbf{v})(1 -\text{cos}(\theta))

A simple example is given as follows, where we rotate the new substrate by an angle of 180 Degrees after matching it to the old substrate inside the complex of interest. Here, we take the example from above:

Last updated

Was this helpful?