Skip to main content

Table 1 Rubabel objects

From: Rubabel: wrapping open Babel with Ruby

Molecule

Wraps Open Babel’s OBmol object. Adds the ability to intelligently manipulate molecules as strings, transfer to and from lists of atoms and bonds, add and modify atoms, explicit and general molecular matching, iterate over bonds or atoms, copy molecules, png representation of the molecule, and fingerprinting.

Atom

Wraps Open Babel’s OBatom object. Adds accessibility conveniences such as the ability to seamlessly create or access an atom as an atomic number, the ability to intrinsically iterate through bonds and pass blocks to iterating loops, and the ability to iterate through and optionally execute a block of code for each atom bonded to the current one.

Bond

Wraps Open Babel’s OBBond object. Adds an accessor for a list of attached atoms, a seamless enumerator for attached atoms, the ability to execute a block of code for each attached atom, and the ability to easily check if a given atom is connected with this bond.

Smarts

Wraps Open Babel’s smarts pattern object.

  1. Rubabel’s object organization is an intuitive restructuring of Open Babel’s architecture. For example, molecule printing logic found in an external object in Open Babel is moved inside the Molecule object. Rubabel’s objects have extended novel capabilities (detailed below).