- Research article
- Open Access
- Published: 06 March 2019

## Automated simultaneous assignment of bond orders and formal charges

Journal of Cheminformatics volume 11 , Article number: 18 ( 2019 ) Cite this article

## Introduction

## Initialisation

## Electron assignment scoring

## Formal charge score

## Bond order score

## Formal charge and bond order determination

## Optimisation methods

## Local optimisation

\(x \notin P \setminus R_i\) , where \(R_i\) is the set of first members of R ( r );

If \(x \in V\) , condition 1 holds for all neighbours of x ;

If \(x \in E\) , the pair \(x = {y,z} \subseteq Q(r)\) .

The heuristic cost of the path \(r\dots t\) , h ( r ) is defined as

where \(Q(r)^\complement\) is the complement of Q ( r ).

where V ( y ) is the valence of y in the partial electron assignment R ( r ).

where F ( x ) is the formal charge of x given R ( r ) calculated as per Eq. ( 5 ).

## Fixed parameter tractable (FPT)

\(V = \bigcup _{t\in T}V_t\) ;

T is rooted at a leaf node r and \(V_r = \emptyset\) ;

For every leaf \(l \in T\) , \(V_l = \emptyset\) ;

Every node \(t \in T\) has at most two children;

If \(t \in T\) has two children, c and d , then \(V_t = V_c = V_d\) and t is known as a join node;

If \(t \in T\) has one child, c , then one of the following conditions is true:

Leaf node Leaf nodes are empty sets, so the score table of a leaf node is also empty.

Join nodes Let \(t \in T\) be the parent of c and d with \(V_t = V_i\) for \(i \in {c,d}\) . Then

## Practical optimisation

## Reference formal charge and bond order assignments

## Results and discussion

## Algorithm consistency

## Algorithm efficiency

## Comparison to reference assignments

Article CAS PubMed Google Scholar

Article CAS PubMed PubMed Central Google Scholar

## Authors' contributions

## Acknowledgements

## Competing interests

The authors declare that they have no competing interests.

## Availability of data and materials

## Publisher’s Note

## Author information

Ivan D. Welsh & Jane R. Allison

School of Biological Sciences, University of Auckland, Private Bag 92019, Auckland, New Zealand

You can also search for this author in PubMed Google Scholar

## Corresponding author

Correspondence to Jane R. Allison .

## Additional file

Calculated atom and bond score tables, and canonical SMILES strings of the test molecules.

## Rights and permissions

## About this article

DOI : https://doi.org/10.1186/s13321-019-0340-0

## Share this article

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

## Journal of Cheminformatics

## Search This Blog

Practical cheminformatics, assigning bond orders to pdb ligands - the easy way.

This comment has been removed by a blog administrator.

## Post a Comment

## Error thrown

Call to undefined function monsterinsights_get_url()

- Search Menu
- Advance articles
- Author Guidelines
- Submission Site
- Open Access
- About Bioinformatics
- Journals Career Network
- Editorial Board
- Advertising and Corporate Services
- Self-Archiving Policy
- Dispatch Dates
- Journals on Oxford Academic
- Books on Oxford Academic

## Article Contents

1 introduction, 2 scoring bond order assignments, 4 discussion, 5 conclusion, acknowledgement.

## Automated bond order assignment as an optimization problem

Associate Editor: Burkhard Rost

Supplementary information: Supplementary data are available at Bioinformatics online.

## 3.1 Integer linear program (ILP)

A is the set of all atoms of the molecule under consideration.

B ( a ) is the set of bonds of atom a ∈ A and B denotes the set of all bonds of the molecule.

V ( a ) ⊂ ℕ contains the possible valences of atom a ∈ A .

P ( a , v ) is the penalty value for atom a ∈ A and valence v ∈ V ( a ).

## 3.2 The A* approach

## 3.3 The fixed-parameter approach (FPT)

every vertex u ∈ U is contained in at least one bag X i ;

for every edge { u , v } ∈ E , there is at least one bag X i such that u , v ∈ X i ;

Every node of T has at most two children.

| X i | = | X j | + 1 and X j ⊂ X i ; in this case X i is called an introduce node .

| X i | = | X j | − 1 and X i ⊂ X j ; in this case X i is called a forget node .

## 4.1 Comparison to Antechamber

how often do manual, heuristic and exact approaches produce an optimally scored solution;

how often do the exact approaches find a solution with a smaller tps than the heuristic;

how often does each approach fail to find a feasible solution.

## 4.2 Comparison to reference assignments

Implementation of the FPT algorithm was done by Kai Dührkop and Patrik Seeber.

Conflict of Interest : none declared.

## Author notes

Supplementary data, email alerts, citing articles via, looking for your next opportunity.

## Affiliations

- Online ISSN 1367-4811
- Copyright © 2023 Oxford University Press
- About Oxford Academic
- Publish journals with us
- University press partners
- What we publish
- New features
- Open access
- Get help with access
- Institutional account management
- Accessibility
- Advertising
- Media enquiries
- Legal and policy
- Oxford University Press
- Oxford Languages
- University of Oxford

## This Feature Is Available To Subscribers Only

This PDF is available to Subscribers Only

For full access to this pdf, sign in to an existing account, or purchase an annual subscription.

## Knowledge Base

Is it possible to assign bond orders to pdb ligands from the command line.

Yes, with the following command:

$SCHRODINGER/run fix_bond_orders.py input-file output-file

To ask a question or get help, please submit a support ticket or email us at [email protected] .

## Assign Bond Orders

Backend implementation, input ports, output ports, popular predecessors.

- Get PDB 18 %
- Split by Structure 14 %
- Molecule Reader (to MAE) 14 %
- Chunk Loop Start 14 %
- Loop End 9 %
- Show all 11 recommendations

## Popular Successors

- Mol2 Writer 21 %
- Protein Preparation Wizard 16 %
- Molecule Writer (from MAE) 11 %
- Run Maestro 11 %
- Split by Structure 11 %
- Show all 20 workflows
- No links available

## Installation

A zipped version of the software site can be downloaded here .

## Bond Orders

Loosely speaking, the steps are something like this:

- Determine atomic connection (from atoms which are close and likely bonded)
- Determine atom type/hybridization from the number of connections and the angles between them (e.g., sp, sp2, sp3)
- Run a quick "aliasing" check -- to have a double or triple bond, the atom must have at least one neighbor which could also have a double or triple bond.
- Check for possibly aromatic rings (i.e., 5 and 6-member rings which are close to planar)
- Run an aromaticity check on these possibly aromatic rings and assign Kekule bonds
- Run a check for typical functional groups with multiple bonds
- Last, but not least, fill any remaining multiple bond valences. For example, in a carbon which could have two possible double bonds, pick the neighbor which has the shortest bond distance.

## Navigation menu

- Create account
- View source
- View history
- Get Open Babel
- Capabilities
- Using Open Babel
- Develop with Babel
- Get Involved
- Recent Changes
- What links here
- Related changes
- Special pages
- Printable version
- Permanent link
- Page information
- This page was last modified on 8 March 2007, at 14:00.
- Content is available under GNU Free Documentation License 1.2 unless otherwise noted.
- Privacy policy
- About Open Babel
- Disclaimers

## IMAGES

## VIDEO

## COMMENTS

Bond order is the number of chemical bonds between a pair of atoms and indicates the stability of a bond. For example, in diatomic nitrogen

Minimising some function of the electron positions thus results in an optimal formal charge and bond order assignment. Given that electron

Assigning Bond Orders to PDB Ligands - The Easy Way ; def process_ligand · """ ; Add bond orders to a pdb ligand 1. Select the ligand component

For normal sp3 carbons and molecules with mostly single bonds this system works fine, however, for more complex structures containing for

As a combinatorial optimization problem, the bond order assignment problem can be represented by a tree, where each layer stands for one of the decisions that

where the input and output files can be in Maestro, PDB, or SD format. This command assigns bond orders (single, double, triple, or zero-order)

Assign Bond Orders ... Assigns double and triple bonds to input structures based on molecular geometry (bond length, bond angles, and dihedral angles). Useful

This organic chemistry video tutorial explains how to calculate the bond order of a regular bond and a bond that's part of a resonance

The Assign Bond Orders command on the Tools menu assigns bond orders to structures that do not have the correct bond orders. Bond orders are assigned as follows

If the PDB file contains residues, then bond orders are set according to the standard form of the amino acid and the atom names in the PDB