"obrotate" - Rotate Dihedral Angles with SMARTS

Q

What Is "obrotate" command? How to use it to batch-rotate dihedral angles matching SMARTS patterns?

✍: FYIcenter.com

A

"obrotate" command is a command line tool provided in the Open Babel package that allows you to batch-rotate dihedral angles matching SMARTS patterns.

Here is the user manual of the "obrotamer" command.

NAME
     obrotate -- batch-rotate dihedral angles matching SMARTS patterns

SYNOPSIS
     obrotate 'SMARTS-pattern' filename atom1 atom2 atom3 atom4 angle

DESCRIPTION
     The obrotate program rotates the torsional (dihedral) angle of a specified 
     bond in molecules to that defined by the user. In other words, it does the 
     same as a user setting an angle in a molecular modelling package, but much
     faster and in batch mode (i.e. across multiple molecules in a file).

     The four atom IDs required are indexes into the SMARTS pattern, which starts 
     at atom 0 (zero). The angle supplied is in degrees. The two atoms used to 
     set the dihedral angle <atom1> and <atom4> do not need to be connected to
     the atoms of the bond <atom2> and <atom3> in any way.

     The order of the atoms matters -- the portion of the molecule attached to 
     <atom1> and <atom2> remain fixed, but
     the portion bonded to <atom3> and & <atom4> moves.

EXAMPLES
     Let's say that you want to define the conformation of a large number of 
     molecules with a pyridyl scaffold and substituted with an aliphatic chain 
     at the 3-position, for example for docking or 3D-QSAR purposes.

     To set the value of the first dihedral angle to 90 degrees:
           obrotate 'c1ccncc1CCC' pyridines.sdf 5 6 7 8 90

     Here 6 and 7 define the bond to rotate in the SMARTS pattern, i.e., c1-C 
     and atoms 5 and 8 define the particular dihedral angle to rotate.

     Since the atoms to define the dihedral do not need to be directly connected, 
     the nitrogen in the pyridine can be used:
           obrotate 'c1ccncc1CCC' pyridines.sdf 4 6 7 8 90

    Keep the pyridyl ring fixed and moves the aliphatic chain:
           obrotate 'c1ccncc1CCC' pyridines.sdf 5 6 7 8 90

    Keep the aliphatic chain fixed and move the pyridyl ring:
           obrotate 'c1ccncc1CCC' pyridines.sdf 8 7 6 5 90

1. Create a molecule with a pyridyl ring and an aliphatic chain.

fyicenter$ obabel -:c1ccncc1CCC -O pyridine.sdf --gen3D -d
1 molecule converted

2. Move the aliphatic chain with the "obrotate" command:

fyicenter$ obrotate 'c1ccncc1CCC' pyridine.sdf 5 6 7 8 90 > pyridine-rotate-chain.sdf 

3. Move the pyridyl ring with the "obrotate" command:

fyicenter$ obrotate 'c1ccncc1CCC' pyridine.sdf 8 7 6 5 90 > pyridine-rotate-ring.sdf 

To see differences of the rotated structures, you can open them in the PubChem 3D Viewer.

 

Open Babel Tutorials

"obrotamer" - Generate Random Rotational Isomers

Other Open Babel Commands

⇑⇑ Open Babel Tutorials

2020-10-26, 189👍, 0💬