Rust and WebAssembly from Scratch: Hello World with Strings
Bare bones approach to two-way string passing - without wasm-bindgen. (Source: Depth-First)
Source: Depth-First - July 6, 2020 Category: Chemistry Authors: Richard L. Apodaca Source Type: blogs

Compiling Rust to WebAssembly: A Simple Example
A short, no-frills guide from blank project to running code. (Source: Depth-First)
Source: Depth-First - June 28, 2020 Category: Chemistry Authors: Richard L. Apodaca Source Type: blogs

Returning Rust Iterators
Some simple tricks go a long way when dealing with iterators as return values. (Source: Depth-First)
Source: Depth-First - June 21, 2020 Category: Chemistry Authors: Richard L. Apodaca Source Type: blogs

OxMol: Rust/Python Bindings for ChemCore
First steps toward bringing ChemCore to a Python interpreter near you. (Source: Depth-First)
Source: Depth-First - June 14, 2020 Category: Chemistry Authors: Richard L. Apodaca Source Type: blogs

Hydrogen Suppression in SMILES
On the differences between implicit and virtual hydrogens. (Source: Depth-First)
Source: Depth-First - June 7, 2020 Category: Chemistry Authors: Richard L. Apodaca Source Type: blogs

ChemCore: A Cheminformatics Toolkit for Rust
ConclusionChemCore is a new cheminformatics toolkit for Rust. The software was created to fill a need for a compact, fast, easy-to-build, easy-to-deploy, permissively-licensed toolkit that works well in many application scenarios. Integrating several new ideas about molecule and graph APIs, ChemCore's focus is forward-looking. ChemCore can currently read SMILES without aromatic features, and will support input/output with both SMILES and Molfile. Further releases will focus on supporting higher-level cheminformatics functionality with an eye toward advanced desktop and Web applications. (Source: Depth-First)
Source: Depth-First - June 1, 2020 Category: Chemistry Authors: Richard L. Apodaca Source Type: blogs

Let's Build a SMILES Parser in Rust
ConclusionPurr is a low-level Rust library for working with SMILES. It currently includes a parser that, while not complete, would not take much effort or knowledge of Rust to finish. A SMILES writer should be straightforward to implement given a depth-first traversal and existing Purr data structures. The combination of a low-levelMolecule implementation as already described, and a Purr reader/writer would create a solid foundation for a future cheminformatics toolkit in Rust. (Source: Depth-First)
Source: Depth-First - May 26, 2020 Category: Chemistry Authors: Richard L. Apodaca Source Type: blogs

Hydrogen Suppression in Cheminformatics
ConclusionHydrogen suppression has a long history in chemistry and cheminformatics. In cheminformatics, hydrogen suppression takes two forms: virtual hydrogens and implicit hydrogens. Whereas a virtual hydrogen is represented by an explicit value, an implicit hydrogen count must be computed using a valence model. Many systems support both virtual and implicit hydrogens. To avoid errors, it's crucial to understand which form of hydrogen suppression is in play before attempting to use a toolkit or file format. (Source: Depth-First)
Source: Depth-First - May 18, 2020 Category: Chemistry Authors: Richard L. Apodaca Source Type: blogs

Cheminformatics in Rust: Implementing a Minimal Molecule API
ConclusionPrevious posts introduced the concept of the minimum Molecule API. This post presents an implementation in Rust. No insurmountable restrictions were found, although Rust's ownership model did present some challenges not likely to found in other languages. A repository with all source and a complete suite of unit tests is available from GitHub. (Source: Depth-First)
Source: Depth-First - May 11, 2020 Category: Chemistry Authors: Richard L. Apodaca Source Type: blogs

Stereochemistry and Atom Parity in SMILES
ConclusionSMILES represents stereochemistry using a system comprised of parity labels and substituent priorities. Virtual hydrogens, ring cuts, and atoms can all be handled in the same uniform way. Rules for interconverting SMILES — while retaining stereochemical configuration — simplify the task of comparing atom configurations and producing 2D/3D representations. (Source: Depth-First)
Source: Depth-First - May 5, 2020 Category: Chemistry Authors: Richard L. Apodaca Source Type: blogs

Multi-Atom Bonding in Cheminformatics
ConclusionMulti-atom bonding appears in many areas of chemistry. The entrenched cheminformatics convention of two-atom bonding is inadequate when faced with chemistry's full repertoire. Multi-atom bonding offers a solution that can be implemented in a backward-compatible way. (Source: Depth-First)
Source: Depth-First - April 27, 2020 Category: Chemistry Authors: Richard L. Apodaca Source Type: blogs

SMILES Formal Grammar
ConclusionA formal grammar is a powerful tool for human and machine use of language. This article presents a full-fledged SMILES grammar based on two that have been previously proposed. The main advantages of this new grammar are amenability to parsing by both hand-crafted parsers and a wide range of parser generators, and the detection of certain corner cases. Future articles will discuss some applications of this new grammar. (Source: Depth-First)
Source: Depth-First - April 21, 2020 Category: Chemistry Authors: Richard L. Apodaca Source Type: blogs

Hydrogen Suppression in Molfiles
ConclusionThe assignment of hydrogen counts to hydrogen-suppressed molecules is an important and error-prone step when reading or writing molfiles. Contrary to first appearances, the molfile format imposes very specific rules in this regard. The error-free exchange of chemical structure information requires that all of these rules be followed. (Source: Depth-First)
Source: Depth-First - April 14, 2020 Category: Chemistry Authors: Richard L. Apodaca Source Type: blogs

A Minimal Molecule API
ConclusionMolecule is a minimal interface for objects and data structures possessing molecule-like behavior. With only a handful of methods to worry about, toolkits based onMolecule are easy to learn and use. Exposing only a core of irreducible methods enables conflict-free extensions, application-specific enhancements, and many performance optimizations. (Source: Depth-First)
Source: Depth-First - April 7, 2020 Category: Chemistry Authors: Richard L. Apodaca Source Type: blogs

COVID MoonShot
ConclusionsThe COVID MoonShot is a loose association of institutions and individuals organized around the goal of finding a practical COVID-19 treatment. Current efforts are focused on SARS-CoV-2 Mpro inhibitors, but I suspect that could change as new information emerges. Regardless of your scientific background or skills, the project is worth exploring. (Source: Depth-First)
Source: Depth-First - March 30, 2020 Category: Chemistry Authors: Richard L. Apodaca Source Type: blogs