Thursday, July 25, 2019

Introduction of support for esters, Nitrogen heteroatoms, and bicyclic molecules

Release 4.1.0

This update mainly brings support for the following, more complex, molecules in the interface and the search engine: esters, Nitrogen heteroatoms and bicyclic molecules. The impetus for the full support of esters was actually to finish the work that had begun in a previous update, that is support for alkoxy side chains of hydrocarbon rings and the molecule 2-acetoxybenzoic acid (aspirin). While adding support for heteroatoms, I actually found the pyrimidine derived DNA bases (cytosine and thymine) to be especially useful as test cases. As such, when I was looking for one more direction to expand interface support for this update it was a logical next step to also add support for the purine DNA bases (adenine and guanine) which in turn required support of bicyclic molecules. This logical flow was actually coupled with my particular interest in the molecules uric acid and allopurinol, as a number of my close friends are rapidly approaching the advanced age that requires treatment of gout symptoms.

Previously, when support was added for 2-acetoxybenzoic acid (aspirin), the alkoxy side chain was treated as an acetyl group bonded by ether linkage to benzoic acid as opposed to an ester linkage between benzoic acid and an ethyl group. As such, FULL support for esters was not necessary. This update proceeds to add that full support for esters. Once support for esters was in place, I was able to add support for LiAlH₄ reduction of esters.

The approach to adding support for heteroatoms began with deciding which heteroatom to add first. The two main contenders were Oxygen and Nitrogen, with Nitrogen being chosen somewhat arbitrarily because of my particular interest in supporting DNA bases, uric acid, and allopurinol. Support began by first modifying the interface drawing engine to allow drawing of molecules containing rings and chains of elements other than Carbon. Once this update was made, the nomenclature engine for both the interface and search engine was updated to support heteroatoms. Pyrimidine was chosen as a goal case for support, as were the DNA bases cytosine and thymine. Of note, the pyrimidine derivative nomenclature style was NOT used in this update but support for this style will be added for future updates.

Once support for Nitrogen heteroatoms was in place for both the interface and the nomenclature engines, it was time to update the interface to allow the user to create molecules with heteroatoms. Simplicity and intuitiveness were the top two priorities for this interface addition. Two basic approaches were considered for this functionality: 1) Allowing the user to click on a Carbon atom to select it to be replaced and then clicking on the atom with which to replace it. 2) Introducing a "replace" mode that the user could toggle with an "add" mode. With the replace mode the user could first select an atom in the additions panel and then click on the atom to replace in the molecule. Ultimately the second option was chosen for two reasons: 1) the user interaction flow of clicking the atom to add to the molecule first then clicking the location to add/replace the new atom was maintained and 2) clicking on an existing Carbon atom in the molecule already has the function of swapping any stereochemistry associated with that Carbon. Fortunately this process is flexible enough that changes can still be explored. One last note is the approach chosen requires less accuracy in selecting a location, which is important for small screen versions.

Following the addition of support for Nitrogen heteroatoms and pyrimidine bases, a next logical step was to add support for the purine bases which would in turn require support for bridged ring heterocyclic molecules. The first step to allow support for the heterocyclic molecules was to update the drawing engine. The molecule chosen to use as a first step to model heterocyclic molecules was bicyclo[4.4.0]decane. Support also required updating the nomenclature engine and modeling on both the interface and search engine. Of specific challenge was introducing support for pi bonds between two bridgeheads, e.g. bicyclo[4.4.0]-dec-1(6)-ene. For now, to create a molecule with a heterocyclic ring, the user has two options: 1) To select either bicyclo[4.4.0]decane or bicyclo[4.3.0]nonane (the backbone for purine bases) from the skeleton panel and add it to the workspace or 2) Enter the IUPAC name. Future support will likely include a process to create such a cyclo skeleton by "fusing" smaller skeleton components.

With support for both Nitrogen heteroatoms and bicyclic molecules, the interface and search engine now support all five DNA/RNA bases!

Standards: Standard IUPAC nomenclature rules were followed for the naming of esters, Nitrogen heteroatoms (using aza to indicate a Nitrogen atom substitution), and heterocyclic molecules (specifically the bracket enclosed style of the lengths of the bridges in descending order and delimited by periods).

Numbering for atoms that are part of a heterocyclic ring follows the following rule per Chapter 13 of Organic Nomenclature by James G. Traynham: "Numbering of a bicycloalkane to indicate location of substituents begins at one bridgehead, proceeds around the longest bridge to the other bridgehead, continues around the second longest bridge back to the number 1 position (original bridgehead), and is completed across the shortest bridge." Once this rule is followed, the standard IUPAC rule of minimizing the locants of the substituents is followed. When a pi bond exists between two bridgeheads, the notation of the smallest numbered bridgehead followed by the other bridgehead in parenthesis is used.

Controls: No control changes were introduced for ester support in the interface. The user can simply create an ester per standard interface controls.

The Add/Replace mode toggle was introduced in the Additions panel. The user can toggle the mode by clicking the "Add/Replace" text. When the mode is "Add" mode, the selected addition will be added to the location chosen as the target in the existing molecule per normal (either by drag and drop or click in the small screen version.) When the mode is "Replace" mode, the selected addition will replace the existing atom at the location chosen as the target. For replacements that are either not yet supported nor chemically possible, no substitution will occur in replace mode.

Heterocyclic molecules can be created either by adding a bicyclo[4.4.0]decane cycloalkane or a bicyclo[4.3.0]nonane from the skeletons panel or by typing the name of the heterocyclic molecule in the name field.

Future Considerations: More heteroatom molecules will be possible in future updates including Oxygen, Sulfur, Phsophorous, Silicon, and Boron heteroatoms. The controls for editing heteroatoms may be altered per any user feedback. Also, the interface may be modified to allow the user to "fuse" together skeleton components to create heterocyclic molecules. Finally, the nomenclature engine for bridged ring systems will be updated to allow proper pyrimidine derivative names and purine derivative names where appropriate as well as purine/pyrimidine substituent numbering systems.

Finally, another call to please leave some feedback! In the comments, through our user feedback page, or the survey on our site. All feedback and interaction is appreciated! Let us know if the site is helping you in your chemistry endeavors!


OChemdle

In light of the recent popularity of games such as Wordle and its offshoots (Worldle, Octordle, Semantle, Redactle, etc), a conversation beg...