<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Chemical Space on Hunter Heidenreich | ML Research Scientist</title><link>https://hunterheidenreich.com/notes/chemistry/molecular-design/chemical-space/</link><description>Recent content in Chemical Space on Hunter Heidenreich | ML Research Scientist</description><image><title>Hunter Heidenreich | ML Research Scientist</title><url>https://hunterheidenreich.com/img/avatar.webp</url><link>https://hunterheidenreich.com/img/avatar.webp</link></image><generator>Hugo -- 0.147.7</generator><language>en-US</language><copyright>2026 Hunter Heidenreich</copyright><lastBuildDate>Sat, 11 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://hunterheidenreich.com/notes/chemistry/molecular-design/chemical-space/index.xml" rel="self" type="application/rss+xml"/><item><title>VEHICLe: Heteroaromatic Rings of the Future</title><link>https://hunterheidenreich.com/notes/chemistry/molecular-design/chemical-space/vehicle-heteroaromatic-rings/</link><pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/chemistry/molecular-design/chemical-space/vehicle-heteroaromatic-rings/</guid><description>Pitt et al. enumerate all 24,867 possible small heteroaromatic ring systems and predict over 3,000 novel synthetically tractable candidates.</description><content:encoded><![CDATA[<h2 id="exhaustive-enumeration-of-heteroaromatic-ring-systems">Exhaustive Enumeration of Heteroaromatic Ring Systems</h2>
<p>VEHICLe (Virtual Exploratory Heterocyclic Library) is a complete enumeration of all possible heteroaromatic ring systems under a set of constraints designed to capture the ring types most relevant to medicinal chemistry. The library contains 24,867 ring systems (23,895 after collapsing tautomers), yet only 1,701 of these have ever appeared in published compounds across databases totaling over 10 million molecules. The authors use this complete library to predict which unsynthesized ring systems could plausibly be made and to challenge organic chemists to conquer them.</p>
<h2 id="why-heteroaromatic-rings-matter-for-drug-design">Why Heteroaromatic Rings Matter for Drug Design</h2>
<p>Heteroaromatic rings are central to synthetic bioactive small molecules for several reasons: they bind proteins efficiently through shape and hydrophobicity, their rigidity combined with heteroatom hydrogen bonding provides target selectivity, they support parallelizable coupling reactions (<a href="https://en.wikipedia.org/wiki/Suzuki_reaction">Suzuki</a>, <a href="https://en.wikipedia.org/wiki/Stille_reaction">Stille</a>) for rapid <a href="https://en.wikipedia.org/wiki/Structure%E2%80%93activity_relationship">SAR</a> exploration, multiple substitution positions can be explored without introducing stereocenters, and unusual ring systems or substitution patterns provide patent novelty. These advantages come with tradeoffs: low aqueous solubility, restricted SAR from rigidity, tendency toward molecular bloat during optimization, and difficulty achieving patent novelty with well-explored ring systems.</p>
<h2 id="vehicle-construction">VEHICLe Construction</h2>
<p>The library is built through a simple combinatorial pipeline implemented in Pipeline Pilot (Accelrys Software Inc.) that runs in about 3 minutes on a single-core 3 GHz Intel Xeon workstation:</p>
<ol>
<li><strong>Building blocks</strong>: Six atomic units (C, N, O, S variants with appropriate bond types) serve as starting materials.</li>
<li><strong>Chain formation</strong>: Building blocks are combined into all possible chains of length 5 and 6 using two bond-forming rules (single and double bond).</li>
<li><strong>Ring closure</strong>: Chains are closed into five- and six-membered rings using three closure rules. Only rings satisfying <a href="https://en.wikipedia.org/wiki/H%C3%BCckel%27s_rule">Hückel&rsquo;s</a> $4n + 2$ aromaticity rule are retained.</li>
<li><strong>Ring fusion</strong>: Monocyclic rings are fused pairwise into all possible bicyclic combinations using four fusion rules. Aromatic bicycles are retained.</li>
</ol>
<p>The enumeration constraints are: mono- and bicyclic rings only, five- and six-membered rings only, atoms restricted to C, N, O, S, and H, all neutral, all aromatic by Hückel&rsquo;s rule, and only exocyclic carbonyls allowed. Including the carbonyl building block expands the library from 2,986 to 24,867 ring systems. Within this count, 1,744 tautomeric pairs exist in 772 clusters. Building blocks are input as MDL mol files, chains formed using MDL REACCS rxn format reactions, and duplicates removed by <a href="/notes/chemistry/molecular-representations/notations/smiles/">canonical SMILES</a> comparison.</p>
<p>The following table summarizes VEHICLe ring system coverage across the compound datasets used for analysis:</p>
<table>
  <thead>
      <tr>
          <th>Dataset</th>
          <th style="text-align: right">Molecules</th>
          <th style="text-align: right">Distinct Ring Systems</th>
          <th style="text-align: right">VEHICLe Rings</th>
          <th style="text-align: right">VEHICLe %</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Launched + Phases II/III</td>
          <td style="text-align: right">2,461</td>
          <td style="text-align: right">950</td>
          <td style="text-align: right">120</td>
          <td style="text-align: right">13%</td>
      </tr>
      <tr>
          <td>Phase I</td>
          <td style="text-align: right">730</td>
          <td style="text-align: right">494</td>
          <td style="text-align: right">86</td>
          <td style="text-align: right">17%</td>
      </tr>
      <tr>
          <td>Derwent patents</td>
          <td style="text-align: right">44,367</td>
          <td style="text-align: right">7,910</td>
          <td style="text-align: right">388</td>
          <td style="text-align: right">5%</td>
      </tr>
      <tr>
          <td>Vendor catalogues</td>
          <td style="text-align: right">2,991,988</td>
          <td style="text-align: right">24,073</td>
          <td style="text-align: right">708</td>
          <td style="text-align: right">3%</td>
      </tr>
  </tbody>
</table>
<h2 id="synthetic-tractability-prediction">Synthetic Tractability Prediction</h2>
<p>Many VEHICLe ring systems are clearly impractical (e.g., rings composed almost entirely of nitrogen). To separate plausible candidates from outlandish ones, the authors train a random forest classifier using the NovoD ArborPharm decision tree software (NovoDynamics, Inc.) within Pipeline Pilot:</p>
<ul>
<li><strong>Features</strong>: ECFP_2 circular fingerprints (346 unique fragment types across VEHICLe), recording the presence or absence of each small substructure fragment per ring system</li>
<li><strong>Training labels</strong>: &ldquo;Good&rdquo; (769 ring systems found in compound databases totaling 3M+ molecules) vs. &ldquo;bad&rdquo; (24,098 remaining)</li>
<li><strong>Method</strong>: 100 trees using the Buja pure-bucket split method, optimized to minimize false negatives (GoodBias = 32, the ratio of bad to good examples). The PreserveMinority parameter was set to true, ensuring that training data selected for exclusion came exclusively from the &ldquo;bad&rdquo; class.</li>
<li><strong>Tree depth</strong>: 200 layers, chosen by systematic variation (50 to 250 in steps of 50) showing diminishing returns beyond this depth</li>
<li><strong>Node parameters</strong>: EnrichmentThreshold = 0.2 (if $\geq 20%$ of molecules in a node are &ldquo;good&rdquo;, the whole node is classified as good); minimum bucket size = 10 molecules per node ($0.04%$ of the dataset)</li>
</ul>
<p>The classifier produces a $p(\text{good})$ score for each ring system. All 769 known ring systems scored $p(\text{good}) &gt; 0.9$. Of the unknown ring systems, 2,185 (9%) were predicted tractable ($p(\text{good}) &gt; 0.5$).</p>
<p><strong>Validation</strong>: 36 VEHICLe rings from UCB&rsquo;s corporate collection (not in the training set) were all correctly classified as good ($p(\text{good}) \geq 0.95$). Against the Beilstein database, 663 of 2,185 predicted-good unknowns had at least one substructure hit (30% minimum true positive rate), compared to only 374 of 21,913 predicted-bad unknowns (2% false negative rate), a 15-fold improvement over random. Selecting only $p(\text{good}) = 1.0$ predictions raised this ratio to 56-fold.</p>
<p>A final random forest incorporating Beilstein data predicted 3,288 unique unknown ring systems as tractable, with 232 having fewer than five heteroatoms and $p(\text{good}) &gt; 0.95$. The authors manually selected 22 of these as &ldquo;unconquered&rdquo; challenges for synthetic chemists.</p>
<h2 id="ring-system-usage-patterns">Ring System Usage Patterns</h2>
<p>Analysis of ring system frequency across compound databases reveals striking concentration:</p>
<ul>
<li><strong>Phenyl dominance</strong>: 2% of ring systems (15 types) account for 90% of occurrences, with phenyl alone at 70%.</li>
<li><strong>Heteroatom penalty</strong>: The significance of ring system usage drops sharply with increasing heteroatom count, quantified as:</li>
</ul>
<p>$$
\text{significance}_{i,j} = \frac{\text{nobs}_{i,j} / \text{nobs}_{j}}{\text{ntot}_{i,j} / \text{ntot}_{j}}
$$</p>
<p>where $i$ is the number of heteroatoms, $j$ is the compound set, $\text{nobs}$ is the frequency of observation, and $\text{ntot}$ is the total count in VEHICLe. Drug molecules in clinical trials show an even steeper drop-off than the broader compound set.</p>
<ul>
<li><strong>Frequency distribution</strong>: Ring system frequency does not follow <a href="https://en.wikipedia.org/wiki/Zipf%27s_law">Zipf&rsquo;s power law</a> across the full range. Only ring systems occurring fewer than 500 times follow a power-law distribution.</li>
<li><strong>Publication rate decline</strong>: The rate of first publication of novel heteroaromatic ring systems peaked at about 41 per year in the late 1970s and declined to 5-10 per year by the early 2000s.</li>
</ul>
<p>The concentration likely reflects the &ldquo;<a href="https://en.wikipedia.org/wiki/Principle_of_least_effort">principle of least effort</a>,&rdquo; the phylogenetic nature of drug discovery, and conservative risk management in pharma, rather than inherent unsuitability of the unused ring systems.</p>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<p>The enumeration method is fully described and could be reimplemented, but the original implementation relies on proprietary software. The random forest model also uses proprietary tools but is specified in sufficient detail for reproduction with open-source alternatives.</p>
<table>
  <thead>
      <tr>
          <th>Artifact</th>
          <th>Type</th>
          <th>License</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="https://datarepository.wolframcloud.com/resources/VEHICLe/">VEHICLe on Wolfram Data Repository</a></td>
          <td>Dataset</td>
          <td>Unknown</td>
          <td>24,867 ring systems with 16 properties each</td>
      </tr>
  </tbody>
</table>
<ul>
<li><strong>Software dependencies</strong>: Pipeline Pilot (Accelrys Software Inc.) for enumeration; NovoD ArborPharm (NovoDynamics, Inc.) for decision trees. Both are proprietary.</li>
<li><strong>Hardware</strong>: 3 GHz Intel Xeon workstation (enumeration completes in ~3 minutes).</li>
<li><strong>Missing components</strong>: Original Pipeline Pilot protocols and rxn files are not publicly released. ECFP_2 fingerprints used a proprietary Accelrys implementation, though open-source equivalents (RDKit Morgan fingerprints with radius 1) exist.</li>
<li><strong>Reproducibility status</strong>: Partially Reproducible. The VEHICLe library itself is publicly available, and the method is described in sufficient detail for reimplementation with modern open-source tools, but the original code and protocols are not released.</li>
</ul>
<h2 id="paper-information">Paper Information</h2>
<ul>
<li><strong>Journal</strong>: Journal of Medicinal Chemistry, Vol. 52, No. 9, pp. 2952-2963</li>
<li><strong>Published</strong>: April 6, 2009</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bibtex" data-lang="bibtex"><span style="display:flex;"><span><span style="color:#a6e22e">@article</span>{pitt2009heteroaromatic,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{Heteroaromatic Rings of the Future}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Pitt, William R. and Parry, David M. and Perry, Benjamin G. and Groom, Colin R.}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span>=<span style="color:#e6db74">{Journal of Medicinal Chemistry}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span>=<span style="color:#e6db74">{52}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">number</span>=<span style="color:#e6db74">{9}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">pages</span>=<span style="color:#e6db74">{2952--2963}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2009}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">publisher</span>=<span style="color:#e6db74">{American Chemical Society}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span>=<span style="color:#e6db74">{10.1021/jm801513z}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>Surge: Fastest Open-Source Chemical Graph Generator</title><link>https://hunterheidenreich.com/notes/chemistry/molecular-design/chemical-space/surge-chemical-graph-generator/</link><pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/chemistry/molecular-design/chemical-space/surge-chemical-graph-generator/</guid><description>McKay et al. present Surge, an open-source constitutional isomer generator that outperforms MOLGEN by orders of magnitude in speed.</description><content:encoded><![CDATA[<h2 id="a-three-stage-canonical-generation-path">A Three-Stage Canonical Generation Path</h2>
<p>Surge is an open-source constitutional isomer generator that enumerates all possible molecular structures for a given molecular formula. It is built on the nauty package for <a href="https://en.wikipedia.org/wiki/Graph_automorphism">graph automorphism</a> computation and uses a three-stage canonical generation path method that decomposes the enumeration problem into progressively refined graph operations. Surge outperforms the previous state-of-the-art (MOLGEN 5.0) by orders of magnitude in speed while running in under 5 MB of RAM regardless of molecule size.</p>
<h2 id="motivation-the-need-for-fast-open-structure-generators">Motivation: The Need for Fast, Open Structure Generators</h2>
<p>Chemical structure generators are essential for <a href="https://en.wikipedia.org/wiki/Computer-assisted_structure_elucidation">computer-assisted structure elucidation</a> (CASE), virtual library creation, and chemical space enumeration (e.g., <a href="/notes/chemistry/datasets/gdb-17/">GDB-17</a>&rsquo;s 166.4 billion molecules). MOLGEN had been the gold standard for decades but is closed-source. The previous best open-source alternative, MAYGEN, was roughly 3x slower than MOLGEN. Reymond&rsquo;s lab used an in-house nauty-based generator for GDB-17 but did not release it publicly. Surge fills this gap as a fast, open-source, and extensible alternative.</p>
<h2 id="the-three-stage-algorithm">The Three-Stage Algorithm</h2>
<p>Given a molecular formula (e.g., $\text{C}_9\text{H}_{18}\text{N}_2\text{O}_4$), Surge proceeds through three stages:</p>
<p><strong>Stage 1 (geng): Simple graph generation.</strong> Computes all connected simple graphs with the appropriate number of non-hydrogen atoms and edges, subject to maximum degree constraints from the molecular formula. These graphs represent molecular topologies without atom types or bond orders. For Lysopine ($\text{C}_9\text{H}_{18}\text{N}_2\text{O}_4$), this produces 534,493 graphs in 1.3 seconds.</p>
<p><strong>Stage 2 (vcolg): Vertex coloring (atom assignment).</strong> Assigns element types (C, N, O, S, etc.) to vertices in all distinct ways, using the automorphism group of each simple graph to avoid generating equivalent assignments. Given a fixed ordering of elements (e.g., $\text{C} &lt; \text{O} &lt; \text{S}$), element assignments are represented as lists $L$ and compared lexicographically. Exactly one representative from each equivalence class is selected by computing the canonical (lexicographically maximal) list:</p>
<p>$$
\text{canon}(L) = \max\{\gamma(L) \mid \gamma \in \text{Aut}(G)\}
$$</p>
<p>A list $L$ is accepted if and only if $\text{canon}(L) = L$, i.e., no automorphism produces a lexicographically larger list. For Lysopine, this expands to 3.0 billion vertex-labeled graphs in 90 seconds.</p>
<p><strong>Stage 3 (multig): Edge multiplicity (bond orders).</strong> Assigns bond multiplicities (single, double, triple) to edges, again using automorphism group factorization to avoid duplicates. For Lysopine, this produces 6.0 billion completed molecules in an additional 100 seconds.</p>
<h2 id="efficient-automorphism-handling-via-group-factorization">Efficient Automorphism Handling via Group Factorization</h2>
<p>The key algorithmic innovation is the factorization of the automorphism group:</p>
<p>$$
\text{Aut}(G) = NM = \{\gamma\delta \mid \gamma \in N,; \delta \in M\}
$$</p>
<p>where $M$ is the &ldquo;minor subgroup&rdquo; generated by transpositions of leaves sharing a common neighbor (&ldquo;flowers&rdquo;), and $N$ is a complete set of coset representatives computed by nauty. A flower is a maximal set of degree-1 vertices (leaves) with the same neighbor. The minor subgroup $M$ is normal in $\text{Aut}(G)$, making the factorization well-defined.</p>
<p><strong>Theorem.</strong> A list $L$ satisfies $L = \text{canon}(L)$ if and only if $L = \max\{\delta(L) \mid \delta \in M\}$ and $L = \max\{\gamma(L) \mid \gamma \in N\}$.</p>
<p>This factorization enables efficient canonicity testing. Maximality under $M$ reduces to enforcing decreasing element order within each flower (simple inequality constraints during recursive assignment). Maximality under $N$ requires explicit testing against the $N$ generators, but $N$ is trivial (identity only) 58% of the time in Stage 2 and 98% of the time in Stage 3.</p>
<h2 id="benchmark-results">Benchmark Results</h2>
<p>Benchmarked against MOLGEN 5.0 on 30 natural product molecular formulas from the COCONUT database on a compute-optimized c2-standard-4 Google Cloud VM, Surge achieves 7-22 million molecules per second with a memory footprint of at most 5 MB regardless of molecule size. Representative results:</p>
<table>
  <thead>
      <tr>
          <th>Formula</th>
          <th>Isomers</th>
          <th>Surge (s)</th>
          <th>MOLGEN (s)</th>
          <th>Speedup</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>$\text{C}_{10}\text{H}_{16}\text{O}_5$</td>
          <td>1.1B</td>
          <td>69</td>
          <td>5,146</td>
          <td>75x</td>
      </tr>
      <tr>
          <td>$\text{C}_9\text{H}_{18}\text{N}_2\text{O}_4$</td>
          <td>6.0B</td>
          <td>289</td>
          <td>27,250</td>
          <td>94x</td>
      </tr>
      <tr>
          <td>$\text{C}_{11}\text{H}_{12}\text{O}_4$</td>
          <td>31.6B</td>
          <td>2,179</td>
          <td>181,725</td>
          <td>83x</td>
      </tr>
      <tr>
          <td>$\text{C}_{10}\text{H}_{13}\text{NO}_5$</td>
          <td>552B</td>
          <td>54,372</td>
          <td>6,325,646</td>
          <td>116x</td>
      </tr>
      <tr>
          <td>$\text{C}_{10}\text{H}_{10}\text{N}_2\text{O}_3$</td>
          <td>1.5T</td>
          <td>83,186</td>
          <td>8,292,585</td>
          <td>100x</td>
      </tr>
      <tr>
          <td>$\text{C}_9\text{H}_{12}\text{N}_2\text{O}_5$</td>
          <td>1.8T</td>
          <td>180,727</td>
          <td>13,983,652</td>
          <td>77x</td>
      </tr>
  </tbody>
</table>
<p>MOLGEN hit its built-in limit of $2^{31} - 1$ structures for most formulas; reported times were linearly extrapolated. Both generators were instructed to generate but not output structures. MOLGEN was run with <code>-noaromaticity</code> for fair comparison since Surge v1.0 lacks aromaticity detection.</p>
<p>Surge supports output in both <a href="https://en.wikipedia.org/wiki/Chemical_table_file">SDfile</a> and <a href="/notes/chemistry/molecular-representations/notations/smiles/">SMILES</a> formats. SMILES output is produced efficiently by constructing a template for each simple graph at Stage 1, so that only atom types and bond multiplicities must be filled in before output.</p>
<p>Surge also supports built-in filters applied during generation (more efficient than post-hoc filtering):</p>
<ul>
<li><code>-p0:1</code>: at most one cycle of length 5</li>
<li><code>-P</code>: the molecule must be planar</li>
<li><code>-B5</code>: no atom has two double bonds and otherwise only hydrogen neighbors</li>
<li><code>-B9</code>: no atom lies on more than one cycle of length 3 or 4</li>
</ul>
<p>These filter options are inspired by corresponding features in MOLGEN. Surge&rsquo;s open-source design also supports a plugin mechanism: users can write small code snippets to insert custom filters into any of the three stages, enabling efficient pruning of the generation tree.</p>
<h2 id="limitations">Limitations</h2>
<ul>
<li>Version 1.0 does not perform <a href="https://en.wikipedia.org/wiki/H%C3%BCckel%27s_rule">Hückel aromaticity</a> detection, so it generates duplicate <a href="https://en.wikipedia.org/wiki/Aromaticity">Kekulé structures</a> for aromatic rings that are graph-theoretically distinct</li>
<li>Benchmarking against MOLGEN required disabling MOLGEN&rsquo;s aromaticity detection (<code>-noaromaticity</code>) for fair comparison</li>
<li>Written in C (from the nauty suite), which limits accessibility compared to Python-based tools, though this is also the source of its speed</li>
</ul>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<table>
  <thead>
      <tr>
          <th>Artifact</th>
          <th>Type</th>
          <th>License</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="https://github.com/structuregenerator/surge">Surge on GitHub</a></td>
          <td>Code</td>
          <td>Apache 2.0</td>
          <td>Official C implementation from the nauty suite</td>
      </tr>
      <tr>
          <td><a href="https://structuregenerator.github.io">Surge project page</a></td>
          <td>Other</td>
          <td>Apache 2.0</td>
          <td>Project homepage with documentation and binaries</td>
      </tr>
  </tbody>
</table>
<ul>
<li><strong>Status</strong>: Highly Reproducible. Source code, build instructions, and benchmark formulas are all publicly available.</li>
<li><strong>Hardware</strong>: Benchmarks used a compute-optimized c2-standard-4 Google Cloud VM. Surge runs in at most 5 MB of RAM regardless of molecule size.</li>
<li><strong>Build</strong>: Standard Unix Configure/Make scheme producing a standalone command-line executable. Written in portable C from the nauty suite.</li>
<li><strong>Dependencies</strong>: Requires the nauty package (bundled).</li>
</ul>
<h2 id="paper-information">Paper Information</h2>
<ul>
<li><strong>Published</strong>: Journal of Cheminformatics, Volume 14, Article 24, April 23, 2022</li>
<li><strong>Preprint</strong>: ChemRxiv, December 7, 2021</li>
<li><strong>License</strong>: Apache 2.0 (software), Open Access (paper)</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bibtex" data-lang="bibtex"><span style="display:flex;"><span><span style="color:#a6e22e">@article</span>{mckay2022surge,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{Surge: a fast open-source chemical graph generator}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{McKay, Brendan D. and Yirik, Mehmet Aziz and Steinbeck, Christoph}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span>=<span style="color:#e6db74">{Journal of Cheminformatics}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span>=<span style="color:#e6db74">{14}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">number</span>=<span style="color:#e6db74">{1}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">pages</span>=<span style="color:#e6db74">{24}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2022}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">publisher</span>=<span style="color:#e6db74">{BioMed Central}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span>=<span style="color:#e6db74">{10.1186/s13321-022-00604-9}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>Molecular Complexity from the GDB Chemical Space</title><link>https://hunterheidenreich.com/notes/chemistry/molecular-design/chemical-space/gdb-molecular-complexity/</link><pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/chemistry/molecular-design/chemical-space/gdb-molecular-complexity/</guid><description>Buehler &amp; Reymond propose MC1 and MC2, simple graph-based molecular complexity measures derived from GDB chemical space enumeration.</description><content:encoded><![CDATA[<h2 id="molecular-complexity-as-branching-in-the-molecular-graph">Molecular Complexity as Branching in the Molecular Graph</h2>
<p>This paper proposes two simple, interpretable measures of molecular complexity grounded in the observation that most GDB-enumerated molecules are synthetically challenging despite containing only standard functional groups and ring systems. The core insight is that branching points (non-divalent nodes) in the molecular graph correspond to synthesis difficulty: each additional branching point implies a new ring or substituent requiring extra synthetic steps, possible protecting groups, potential stereogenic centers, and increased steric hindrance.</p>
<h2 id="motivation-why-most-gdb-molecules-are-hard-to-make">Motivation: Why Most GDB Molecules Are Hard to Make</h2>
<p>The Generated DataBases (GDBs) enumerate billions of hypothetical small organic molecules by exhaustively substituting atoms and bonds in mathematical graphs. Despite applying filters for ring strain, functional group diversity, <a href="/notes/chemistry/datasets/fdb-17/">fragment-likeness</a>, drug-likeness, and ChEMBL-likeness, most enumerated molecules remain daunting to synthesize. Even in the most restrictive subset (GDB-13s, 99.4 million molecules from the 977 million in GDB-13), practical synthesis remains challenging for most entries. This motivated the search for a complexity measure that captures why these molecules are hard, without relying on reaction databases or machine learning.</p>
<h2 id="mc1-and-mc2-two-graph-based-complexity-measures">MC1 and MC2: Two Graph-Based Complexity Measures</h2>
<p>The two proposed measures are:</p>
<p><strong>MC1</strong> (size-independent): the fraction of non-divalent nodes in the molecular graph.</p>
<p>$$
\text{MC1} = 1 - \text{FDV}
$$</p>
<p>where FDV is the fraction of divalent nodes (e.g., $-\text{CH}_2-$, $=\text{CH}-$, $=\text{C}=$, $-\text{O}-$, $-\text{NH}-$, $=\text{N}-$, $-\text{S}-$) in the molecular graph. The graph is computed by treating the molecule as if all bonds were single and all heavy atoms were carbon. MC1 is independent of molecule size, making it useful for comparing molecules of different sizes.</p>
<p><strong>MC2</strong> (size-dependent): the count of non-divalent nodes, excluding carbonyl carbons in standard carboxyl derivatives.</p>
<p>$$
\text{MC2} = \text{NDV}
$$</p>
<p>where NDV is the number of non-divalent nodes, not counting $\text{C}{=}\text{O}$ in $(\text{X}-\text{C}{=}\text{O})$ for $\text{X} = \text{N}$ or $\text{O}$ (acids, esters, amides, carbonates, carbamates, ureas). MC2 grows with molecule size only when branching increases. Linear extensions (adding divalent atoms to chains or enlarging rings) do not increase MC2.</p>
<p>The rationale for excluding carboxyl groups from MC2 is that their chemistry (amide bond formation, esterification) is well-established and straightforward. Functional groups like amidines, guanidines, thioesters, thiones, sulfoxides, sulfinates, sulfones, and sulfonamides, as well as phosphorus-containing groups, are still counted because their synthesis is less routine.</p>
<h2 id="design-choices-and-limitations">Design Choices and Limitations</h2>
<p>MC1 and MC2 deliberately do not distinguish between $\text{sp}^2$ and $\text{sp}^3$ branching points or count chiral centers. This choice is motivated by the observation that unusual substitution patterns on aromatic rings in GDB molecules are also synthetically difficult, and that functionalization of aromatic/heteroaromatic rings and control of <a href="https://en.wikipedia.org/wiki/Atropisomer">atropisomerism</a> in biaryls are both challenging. A consequence is that carbohydrates and polyphenols receive high complexity scores despite being abundant in biomass.</p>
<p>MC1 gives uninformative values for very small molecules (trifluoroacetic acid and tert-butanol both score $\text{MC1} = 1$) and for polymers (where the repeating unit dominates). MC2 similarly cannot give useful values for polymers due to its size dependence.</p>
<h2 id="comparison-with-existing-complexity-measures">Comparison with Existing Complexity Measures</h2>
<p>The authors compare MC1 and MC2 against six molecular complexity scores and two synthetic accessibility scores across four databases: GDB-13s, <a href="/notes/chemistry/datasets/zinc-22/">ZINC</a>, ChEMBL, and COCONUT.</p>
<table>
  <thead>
      <tr>
          <th>Measure</th>
          <th>Category</th>
          <th>Description</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>FCFP4</td>
          <td>Complexity</td>
          <td>Number of on-bits in a binary 2048-bit FCFP4 fingerprint</td>
      </tr>
      <tr>
          <td>DataWarrior</td>
          <td>Complexity</td>
          <td>Fractal complexity via Minkowski-Bouligand (box-counting) dimension of distinct substructures up to 7 bonds</td>
      </tr>
      <tr>
          <td>Böttcher</td>
          <td>Complexity</td>
          <td>Shannon entropy using additive atom contributions (valence electrons, atom environment, chirality, symmetry)</td>
      </tr>
      <tr>
          <td>Proudfoot</td>
          <td>Complexity</td>
          <td>Shannon entropy using additive atom contributions (atomic number, connections, paths up to length 2)</td>
      </tr>
      <tr>
          <td>SPS/nSPS</td>
          <td>Complexity</td>
          <td>Spacial score summing heavy atom contributions (hybridization, stereochemistry, nonaromaticity, neighbor count); nSPS normalizes by HAC</td>
      </tr>
      <tr>
          <td>SAscore</td>
          <td>Synthesizability</td>
          <td>Fragment frequency from PubChem combined with complexity penalty (ring types, stereochemistry, size)</td>
      </tr>
      <tr>
          <td>SCS</td>
          <td>Synthesizability</td>
          <td>Machine-learned score from 12 million Reaxys reactions predicting synthesis steps from ECFP4 fingerprint (max value 5)</td>
      </tr>
  </tbody>
</table>
<p>Key findings from the correlation analysis:</p>
<ul>
<li>For GDB-13s (where nearly all molecules have HAC = 13), complexity measures generally do not correlate with each other ($r^2 &lt; 0.6$), except MC1 with MC2 and SPS with nSPS (expected, since each pair differs only in size normalization).</li>
<li>For ZINC, ChEMBL, and COCONUT (spanning a broad range of molecular sizes), several complexity measures correlate with heavy atom count (HAC) and therefore with each other.</li>
<li>Size-independent measures (DataWarrior, nSPS, SCS, SAscore, MC1) are unaffected by molecule size across datasets, while Böttcher and Proudfoot scores are strongly size-dependent. FCFP4 and SPS show partial size dependence.</li>
<li>SPS and nSPS also correlate with SAscore.</li>
</ul>
<p>The analysis is supported by interactive TMAP visualizations (tree-maps organized by MAP4C molecular fingerprint similarity) for 30,000 random molecules from each database, color-coded by each complexity measure. The interactive TMAPs are available online for <a href="https://tm.gdb.tools/MAP4C/GDB-13s_complexity">GDB-13s</a>, <a href="https://tm.gdb.tools/MAP4C/ZINC_complexity">ZINC</a>, <a href="https://tm.gdb.tools/MAP4C/ChEMBL_complexity">ChEMBL</a>, and <a href="https://tm.gdb.tools/MAP4C/COCONUT_complexity">COCONUT</a>.</p>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<table>
  <thead>
      <tr>
          <th>Artifact</th>
          <th>Type</th>
          <th>License</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="https://github.com/Ye-Buehler/Molecular_Complexity">Molecular_Complexity</a></td>
          <td>Code</td>
          <td>MIT</td>
          <td>Python implementation of MC1, MC2, and eight comparison metrics with Jupyter notebooks</td>
      </tr>
  </tbody>
</table>
<p>The paper is open access (hybrid). The GitHub repository provides Python code for computing MC1 and MC2 along with Jupyter notebooks demonstrating all ten complexity and synthesizability measures from Table 1. The four databases used (GDB-13s, ZINC, ChEMBL, COCONUT) are all publicly available. No model training or specialized hardware is involved, as MC1 and MC2 are deterministic graph computations.</p>
<p><strong>Reproducibility status</strong>: Highly Reproducible.</p>
<h2 id="paper-information">Paper Information</h2>
<ul>
<li><strong>Journal</strong>: Journal of Chemical Information and Modeling, Vol. 65, No. 16, pp. 8405-8410</li>
<li><strong>Published</strong>: May 15, 2025</li>
<li><strong>Part of</strong>: Special issue &ldquo;Chemical Compound Space Exploration by Multiscale High-Throughput Screening and Machine Learning&rdquo;</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bibtex" data-lang="bibtex"><span style="display:flex;"><span><span style="color:#a6e22e">@article</span>{buehler2025view,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{A View on Molecular Complexity from the GDB Chemical Space}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Buehler, Ye and Reymond, Jean-Louis}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span>=<span style="color:#e6db74">{Journal of Chemical Information and Modeling}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span>=<span style="color:#e6db74">{65}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">number</span>=<span style="color:#e6db74">{16}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">pages</span>=<span style="color:#e6db74">{8405--8410}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2025}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">publisher</span>=<span style="color:#e6db74">{American Chemical Society}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span>=<span style="color:#e6db74">{10.1021/acs.jcim.5c00334}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>CHX8: Complete Eight-Carbon Hydrocarbon Space</title><link>https://hunterheidenreich.com/notes/chemistry/molecular-design/chemical-space/chx8-hydrocarbon-chemical-space/</link><pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/chemistry/molecular-design/chemical-space/chx8-hydrocarbon-chemical-space/</guid><description>Harman &amp; Ermanis exhaustively enumerate and DFT-optimize all hydrocarbons up to 8 carbons, yielding 31,497 stable structures with strain energies.</description><content:encoded><![CDATA[<h2 id="exhaustive-hydrocarbon-enumeration-without-exclusion-filters">Exhaustive Hydrocarbon Enumeration Without Exclusion Filters</h2>
<p>CHX8 is the first dataset to fully enumerate all closed-shell <a href="https://en.wikipedia.org/wiki/Hydrocarbon">hydrocarbons</a> with up to eight carbon atoms, deliberately including strained, <a href="https://en.wikipedia.org/wiki/Bredt%27s_rule">anti-Bredt</a>, and unconventional architectures that prior enumerations (e.g., <a href="/notes/chemistry/datasets/gdb-13/">GDB-13</a>, <a href="/notes/chemistry/datasets/gdb-17/">GDB-17</a>) excluded. Of 77,524 enumerated structures, 31,497 are stable under DFT optimization, covering 16x more C8 hydrocarbons than GDB-13. A universal relative strain energy (RSE) metric provides a quantitative synthesizability proxy for every molecule.</p>
<h2 id="motivation-strained-scaffolds-are-no-longer-inaccessible">Motivation: Strained Scaffolds Are No Longer Inaccessible</h2>
<p>GDB-series databases applied strict filters during enumeration, excluding highly strained polycyclic systems, cyclic <a href="https://en.wikipedia.org/wiki/Allene">allenes</a>, anti-Bredt frameworks, and other &ldquo;unconventional&rdquo; motifs. Recent synthetic advances have shown that many of these structures can be accessed and exploited: 3D strained <a href="https://en.wikipedia.org/wiki/Bioisostere">bioisosteres</a> improve pharmacokinetic properties, cyclic allenes enable rapid construction of complex skeletons, and anti-Bredt olefins can be generated and trapped stereospecifically. CHX8 deliberately retains all of these motifs to provide a future-proofed database that remains relevant as synthetic capabilities expand.</p>
<h2 id="enumeration-and-optimization">Enumeration and Optimization</h2>
<p><strong>CHX8-enum (77,524 structures)</strong>: All mathematically feasible hydrocarbons generated by exhaustively enumerating saturated carbon frameworks using the GENG tool from the <a href="https://pallini.di.uniroma1.it/">nauty</a> graph-isomorphism package (all 1-to-8-node connected graphs with 1-4 edges per node), then converting graphs to 3D coordinates via <a href="https://en.wikipedia.org/wiki/Open_Babel">OpenBabel</a>&rsquo;s <code>--Gen3D</code> with the <a href="https://en.wikipedia.org/wiki/Merck_molecular_force_field">MMFF94</a> force field. Unsaturations (double bonds, triple bonds, allenes) were introduced iteratively in all valid positions by identifying C-C bonds flanked by hydrogen atoms (SMARTS: <code>[#1]~[#6]~[#6]~[#1]</code>), removing H atoms, and incrementing bond order. Point <a href="https://en.wikipedia.org/wiki/Diastereomer">diastereoisomers</a> and E/Z isomers were generated by manipulating <a href="/notes/chemistry/molecular-representations/notations/inchi/">InChI</a> chiral layers. Duplicate detection relied on canonical InChI strings; residual duplicates account for no more than 1.5% of CHX8.</p>
<table>
  <thead>
      <tr>
          <th>HAC</th>
          <th>Graphs</th>
          <th>Saturated</th>
          <th>Unsaturated</th>
          <th>CHX8-enum</th>
          <th>CHX8 (stable)</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>1</td>
          <td>1</td>
          <td>1</td>
          <td>0</td>
          <td>1</td>
          <td>1</td>
      </tr>
      <tr>
          <td>2</td>
          <td>1</td>
          <td>1</td>
          <td>2</td>
          <td>3</td>
          <td>3</td>
      </tr>
      <tr>
          <td>3</td>
          <td>2</td>
          <td>2</td>
          <td>7</td>
          <td>9</td>
          <td>8</td>
      </tr>
      <tr>
          <td>4</td>
          <td>6</td>
          <td>7</td>
          <td>31</td>
          <td>38</td>
          <td>30</td>
      </tr>
      <tr>
          <td>5</td>
          <td>21</td>
          <td>25</td>
          <td>138</td>
          <td>163</td>
          <td>117</td>
      </tr>
      <tr>
          <td>6</td>
          <td>78</td>
          <td>114</td>
          <td>753</td>
          <td>867</td>
          <td>522</td>
      </tr>
      <tr>
          <td>7</td>
          <td>353</td>
          <td>746</td>
          <td>4,939</td>
          <td>5,685</td>
          <td>2,917</td>
      </tr>
      <tr>
          <td>8</td>
          <td>1,929</td>
          <td>12,903</td>
          <td>57,856</td>
          <td>70,758</td>
          <td>27,899</td>
      </tr>
      <tr>
          <td><strong>Total</strong></td>
          <td><strong>2,391</strong></td>
          <td><strong>13,799</strong></td>
          <td><strong>63,726</strong></td>
          <td><strong>77,524</strong></td>
          <td><strong>31,497</strong></td>
      </tr>
  </tbody>
</table>
<p><strong>DFT optimization</strong>: All structures were geometry-optimized at the PBE0-D4/def2-TZVP level of theory. 66.5% of structures converged after a single optimization; the remainder required one or two additional passes. 59% of CHX8-enum structures underwent $\sigma$-framework rearrangements during optimization and were classified as unstable. Rearranged structures were identified by comparing input and output InChI strings. Analysis confirmed that all rearrangement products (closed-shell, zwitterionic, or <a href="https://en.wikipedia.org/wiki/Carbene">carbene</a> species) were already present in the enumeration, so no new compounds were missed.</p>
<h2 id="relative-strain-energy-as-a-synthesizability-proxy">Relative Strain Energy as a Synthesizability Proxy</h2>
<p>A universal <a href="https://en.wikipedia.org/wiki/Ring_strain">RSE</a> metric, referenced to <a href="https://en.wikipedia.org/wiki/Cyclohexane">cyclohexane</a> (zero strain), was developed and assigned to every molecule. The RSE for a molecule of interest (subscript $n$) relative to a reference structure (subscript $r$) is:</p>
<p>$$
\text{RSE} = E_{n} - E_{r} - (c_{n} - c_{r}),E_{\text{CH}_2} + E_{\text{unsat}}
$$</p>
<p>where $E_{n}$ and $E_{r}$ are Gibbs energies, $c_{n}$ and $c_{r}$ are carbon counts, $E_{\text{CH}_2}$ is the average energy cost of adding an unstrained CH$_2$ unit, computed from the Gibbs energy differences between consecutive linear alkanes (ethane through octane, six increments), and $E_{\text{unsat}}$ corrects for differences in unsaturation:</p>
<p>$$
E_{\text{unsat}} = (r_{n} - r_{r}),E_{\text{ring}} + (d_{n} - d_{r}),E_{\text{double}} + (t_{n} - t_{r}),E_{\text{triple}}
$$</p>
<p>$E_{\text{double}}$ and $E_{\text{triple}}$ are each derived from internal transformations between the second and third carbon of linear chains, averaged over four chain lengths (n-butane through n-octane). Initial attempts using terminal unsaturations systematically underestimated RSE for structures containing double and triple bonds. $E_{\text{ring}}$ is derived separately using the Dudev-Lim homolytic bond dissociation approach:</p>
<p>$$
E_{\text{ring}} = 2E_{\text{C-H}} - E_{\text{C-C}}
$$</p>
<p>where the individual bond energies are obtained from ethane:</p>
<p>$$
E_{\text{C-H}} = E_{\text{ethane}} - E_{\text{ethyl radical}}, \quad E_{\text{C-C}} = E_{\text{ethane}} - 2E_{\text{methyl radical}}
$$</p>
<p>The highest-RSE molecule with synthetic precedent (a C6 structure detected by <a href="https://en.wikipedia.org/wiki/Atomic_force_microscopy">atomic force microscopy</a> on a metal surface) has an RSE of 201.4 kcal/mol. Using this as a threshold, over 90% of the novel structures in CHX8 should be considered synthetically accessible in principle.</p>
<p>Notable reference points on the RSE scale:</p>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Cyclopropane">Cyclopropane</a>: 27.5 kcal/mol</li>
<li><a href="https://en.wikipedia.org/wiki/Tetrahedrane">Tetrahedrane</a>: 140.1 kcal/mol (substituted variants synthesized, unsubstituted not yet)</li>
<li><a href="https://en.wikipedia.org/wiki/Cubane">Cubane</a>: 157.4 kcal/mol (synthesized)</li>
<li>Highest synthesized: 201.4 kcal/mol (C6 structure on metal surface)</li>
</ul>
<h2 id="key-findings-on-strained-motifs">Key Findings on Strained Motifs</h2>
<p>The exhaustive enumeration enables systematic analysis of structural classes previously excluded:</p>
<ol>
<li><strong>Trans-cycloalkenes</strong>: All trans-cycloalkenes in 6-membered rings or larger should be synthetically feasible. The stability of multi-trans systems depends on the relative position of double bonds: parallel trans-double bonds in a ring can undergo thermally accessible 4$\pi$-electrocyclisation, while non-parallel arrangements may be conformationally locked and stable.</li>
<li><strong>Cyclic alkynes and allenes</strong>: 37% of the CHX8 dataset consists of cyclic alkynes or allenes. All cyclic alkynes except cyclopropyne, and all cyclic allenes, should be synthesizable (in singlet or triplet states), with RSE values below cubane.</li>
<li><strong>Trans-fused rings</strong>: All but [3,3]- and [3,4]-unsubstituted trans-fused rings should be accessible. The proposed lower limit for trans-ring junctions is either (i) a 3-membered ring trans-fused to a ring of five or more atoms, or (ii) a 4-membered ring trans-fused to another 4-membered ring.</li>
<li><strong>Anti-Bredt structures</strong>: CHX8 contains seven hydrocarbon skeletons with a bridging section, yielding fourteen possible anti-Bredt (bridgehead-unsaturated) derivatives. Of these, thirteen are stable under DFT optimization, and over 200 substituted anti-Bredt structures are present in the dataset. All stable anti-Bredt structures have RSE values below cubane. Stability is classified using Fawcett&rsquo;s S parameter (the number of non-bridgehead ring atoms): CHX8 finds structures with S $\geq$ 4 are stable to optimization, consistent with recent experimental work that has accessed anti-Bredt intermediates at S values as low as 4.</li>
</ol>
<h2 id="comparison-to-existing-databases">Comparison to Existing Databases</h2>
<ul>
<li><strong>vs. GDB-13</strong>: CHX8 contains 31,497 C1-C8 hydrocarbons vs. 1,966 in GDB-13 (16x more). For C8 hydrocarbons specifically, GDB-13 has more coverage than GDB-17 (1,966 vs. 1,121). All GDB-13 hydrocarbons appear in CHX8-enum, though some were unstable to DFT optimization.</li>
<li><strong>vs. <a href="/notes/chemistry/datasets/vqm24/">VQM24</a></strong>: For C1-C5 hydrocarbons, VQM24 contains 123 closed-shell isomers vs. 154 in CHX8 (14-25% more). Many missing structures in VQM24 are diastereoisomers not generated by the <a href="/notes/chemistry/molecular-design/chemical-space/surge-chemical-graph-generator/">SURGE</a> process.</li>
<li><strong>vs. PubChem</strong>: Less than 44% of CHX8 structures appear in <a href="https://en.wikipedia.org/wiki/PubChem">PubChem</a></li>
<li><strong>vs. Reaxys</strong>: Only 25% of CHX7 (up to 7 carbons) structures are commercially available</li>
</ul>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<p>The enumeration pipeline uses open-source tools: GENG from the nauty package for graph generation, <a href="https://en.wikipedia.org/wiki/RDKit">RDKit</a> for molecular manipulation and InChI canonicalization, and OpenBabel for 3D coordinate generation (MMFF94). <a href="https://en.wikipedia.org/wiki/Density_functional_theory">DFT</a> calculations used the PBE0-D4/def2-TZVP level of theory via the <a href="https://en.wikipedia.org/wiki/ORCA_(quantum_chemistry_program)">ORCA</a> quantum chemistry package. The paper does not report total compute time or hardware specifications.</p>
<table>
  <thead>
      <tr>
          <th>Artifact</th>
          <th>Type</th>
          <th>License</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="https://doi.org/10.17639/nott.7626">CHX8 Dataset (Nottingham Repository)</a></td>
          <td>Dataset</td>
          <td>Unknown</td>
          <td>All optimized 3D structures, optimization/frequency output files, organized into CHX7, CHX8-sat, and CHX8-unsat subsets</td>
      </tr>
  </tbody>
</table>
<p><strong>Missing components for full reproduction</strong>: No source code for the enumeration or unsaturation-introduction scripts is released. The RSE calculation scripts and DFT input templates are not provided. Hardware/compute requirements are not reported.</p>
<p><strong>Reproducibility status</strong>: Partially Reproducible. The dataset itself is deposited, but the enumeration and analysis code is not released.</p>
<h2 id="paper-information">Paper Information</h2>
<ul>
<li><strong>Preprint</strong>: ChemRxiv, January 2, 2026</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bibtex" data-lang="bibtex"><span style="display:flex;"><span><span style="color:#a6e22e">@article</span>{harman2026complete,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{Complete Computational Exploration of Eight-Carbon Hydrocarbon Chemical Space}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Harman, Stephen J. and Ermanis, Kristaps}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span>=<span style="color:#e6db74">{ChemRxiv}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2026}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span>=<span style="color:#e6db74">{10.26434/chemrxiv-2026-qjr5r}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>AllChem: Generating and Searching 10^20 Structures</title><link>https://hunterheidenreich.com/notes/chemistry/molecular-design/chemical-space/allchem-synthetically-accessible-structures/</link><pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/chemistry/molecular-design/chemical-space/allchem-synthetically-accessible-structures/</guid><description>AllChem generates and searches 10^20 synthetically accessible structures by combining synthons from recursive reaction application.</description><content:encoded><![CDATA[<h2 id="combinatorial-synthon-assembly-at-scale">Combinatorial Synthon Assembly at Scale</h2>
<p>AllChem is a computer-aided molecular design system that generates and searches an unprecedentedly large space of synthetically accessible structures (on the order of $10^{20}$). Rather than enumerating molecules from mathematical graphs (as in the <a href="/notes/chemistry/datasets/gdb-17/">GDB databases</a>), AllChem builds its chemical space from real synthetic chemistry: it recursively applies known reactions to commercial building blocks, producing <a href="https://en.wikipedia.org/wiki/Synthon">synthons</a> (structures with open valences of defined reactivity) that combinatorially assemble into complete molecules. Every structure found by a search comes paired with a proposed synthetic route.</p>
<h2 id="motivation-costs-and-benefits-together">Motivation: Costs and Benefits Together</h2>
<p>Most computer-aided molecular design methods focus on predicting biological activity (the benefit) while leaving synthesis feasibility (the cost) to the laboratory chemist. AllChem addresses both simultaneously. Its predecessor, ChemSpace, accessed $\sim 10^{14}$ structures built from simple <a href="https://en.wikipedia.org/wiki/Combinatorial_chemistry">combinatorial libraries</a> (chemist-proposed scaffolds plus commercial side chains), but only about 5% of structures in the medicinal chemistry literature fit that template. AllChem aims to cover roughly 50% of published structures by allowing multi-step synthon generation that produces more complex, non-trivial scaffolds.</p>
<h2 id="the-gensyn-synthon-generator">The gensyn Synthon Generator</h2>
<p>The core component is <code>gensyn</code>, a program that recursively applies a curated set of approximately 100 reactions to approximately 7,000 commercially available building blocks. Each product becomes a new building block for subsequent reaction steps, with recursion bounded primarily by a cumulative synthesis &ldquo;cost&rdquo; limit (roughly five AllChem-type steps per sequence). Structures bearing open valences are collected as synthons. A typical run produces around $5 \times 10^6$ synthons, which combinatorially represent $(5 \times 10^6)^3 = 10^{20}$ complete structures with an A-B-C topology.</p>
<p>Key design decisions in gensyn:</p>
<ul>
<li><strong>Reaction curation</strong>: All reactions come from external human-readable text files, based on reactions already practiced by laboratory chemists. Scope constraints are calibrated so that at least 90% of randomly sampled reaction applications appear unchallengeable to synthetic chemists.</li>
<li><strong>Reactive intermediates</strong>: Explicitly represented. For example, amide formation requires three steps: acid chloride to electrophilic synthon, amine to nucleophilic synthon, then coupling.</li>
<li><strong>Protective groups</strong>: Addition and removal are treated as standard reactions.</li>
<li><strong>Concerted cyclizations</strong>: Represented by splitting the ring formation across two complementary synthons with specially labeled open valences.</li>
<li><strong>Bimolecular reactions</strong>: In addition to unimolecular transformations, gensyn performs reactions that combine selected synthons with other synthons, increasing overall structural diversity.</li>
<li><strong>Constraints</strong>: Maximum of one prochiral center (to avoid diastereomeric mixtures), heavy atom count limits for lead-likeness, and a cumulative cost bound on synthetic routes. Each reaction step has a default cost of $-5$, and the maximum allowed cumulative cost is $-25$ (roughly five steps per sequence).</li>
</ul>
<h2 id="reaction-description-language">Reaction Description Language</h2>
<p>Reactions are described using an extension of Sybyl Line Notation (SLN), a <a href="/notes/chemistry/molecular-representations/notations/smiles/">SMILES</a>-like notation. Each reaction description specifies the structural pattern required in the substrate, the transformation to apply, the reactivity class of resulting open valences, the relative cost, incompatible functional groups, and rules for handling multiple equivalent reactive sites. A separate reactivity table defines which valence classes can react with each other (e.g., nucleophilic with electrophilic).</p>
<h2 id="topomer-similarity-search">Topomer Similarity Search</h2>
<p>Searching among $10^{20}$ complete structures relies on topomer shape similarity as a branch-and-bound filter. A query structure is fragmented by breaking acyclic single bonds (individually and pairwise), each fragment is converted to a topomer (a canonical 3D shape), and the topomer is compared against all stored synthons. Topomer comparisons run at tens of thousands per second. Because the vast majority of synthons are individually shape-dissimilar enough to eliminate every complete structure containing them, the search space collapses rapidly. To be acceptable, a product must also have been formed by joining open valences with complementary reactivity.</p>
<p>Validation used repeated &ldquo;self-searches,&rdquo; in which a query structure is assembled from randomly chosen synthons and searched for in the database. On the 250,000-synthon leadhopping database, average self-search time was 7.1 minutes; complete searches of the full-scale database take several hours on standard hardware.</p>
<h2 id="applications-lead-hopping-and-scaffold-generation">Applications: Lead Hopping and Scaffold Generation</h2>
<p><strong>Lead hopping</strong>: Finding structurally novel molecules that are shape-similar (and therefore likely biologically similar) to a query lead. Using a 250,000-synthon leadhopping database, 18 of 19 self-search queries recovered the query structure perfectly (shape difference of 0 topomer units). The remaining query also recovered itself as the closest hit.</p>
<p><strong>Scaffold idea generation</strong>: Filtering the synthon collection for small ($\leq$ 14 heavy atoms), low-chirality scaffolds with at least two diversification sites (primarily through nucleophilic heteroatom reactions on activated carbon electrophiles or <a href="https://en.wikipedia.org/wiki/Suzuki_reaction">Suzuki-type couplings</a>), UV chromophores, minimal freely rotatable bonds (especially between diversification sites and rings), a ring, and short synthetic paths (all branches fewer than about six AllChem steps). Over 20% of gensyn-proposed synthons pass these scaffold filters, suggesting on the order of $10^6$ accessible and structurally distinct scaffolds, compared to the few thousand scaffolds typically represented in large screening collections.</p>
<h2 id="compute-and-infrastructure">Compute and Infrastructure</h2>
<p>Full-scale synthon database recreation takes approximately one week using two standard workstations (one Oracle database server, one compute engine). The codebase was rewritten from Java to Python for portability and performance. All data is managed through an Oracle relational database, including synthons, intermediates, and a reactions table recording every gensyn conversion.</p>
<h2 id="limitations">Limitations</h2>
<ul>
<li>Variable reactivity of open valences (e.g., weakly nucleophilic amines may not form the implied bond readily) is handled only approximately via reagent class annotations.</li>
<li>Stereospecificity and most aromatic electrophilic substitution reactions are omitted.</li>
<li>The system was described as under active development at the time of publication, giving the paper the character of an interim progress report.</li>
<li>Drug-likeness of 3-synthon products (average MW ~800, CLOGP ~8.0) requires careful filtering of the synthon distribution toward smaller, less lipophilic components.</li>
</ul>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<p>AllChem was developed as proprietary software at Tripos Inc. (Tripos Discovery Research, Bude, Cornwall, UK). No source code, synthon databases, or reaction files have been publicly released. The paper functions as a description of the system&rsquo;s architecture and early results rather than a reproducibility-oriented publication.</p>
<ul>
<li><strong>Code</strong>: Not publicly available. The system was proprietary to Tripos Inc.</li>
<li><strong>Data</strong>: Synthon databases and reaction description files are not shared.</li>
<li><strong>Hardware</strong>: Two standard workstations (one Oracle server, one compute engine); no specialized hardware required.</li>
<li><strong>Funding</strong>: NIH/GMS SBIR grant 2 R44 GM068359-02.</li>
</ul>
<p><strong>Reproducibility status</strong>: Closed.</p>
<h2 id="paper-information">Paper Information</h2>
<ul>
<li><strong>Journal</strong>: Journal of Computer-Aided Molecular Design, Vol. 21, No. 6, pp. 341-350</li>
<li><strong>Published</strong>: January 25, 2007</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bibtex" data-lang="bibtex"><span style="display:flex;"><span><span style="color:#a6e22e">@article</span>{cramer2007allchem,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{AllChem: generating and searching 10^{20} synthetically accessible structures}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Cramer, Richard D. and Soltanshahi, Farhad and Jilek, Robert J. and Campbell, Brian}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span>=<span style="color:#e6db74">{Journal of Computer-Aided Molecular Design}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span>=<span style="color:#e6db74">{21}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">number</span>=<span style="color:#e6db74">{6}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">pages</span>=<span style="color:#e6db74">{341--350}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2007}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">publisher</span>=<span style="color:#e6db74">{Springer Science+Business Media}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span>=<span style="color:#e6db74">{10.1007/s10822-006-9093-8}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>ACSESS: Diverse Optimal Molecules in the SMU</title><link>https://hunterheidenreich.com/notes/chemistry/molecular-design/chemical-space/acsess-diverse-optimal-molecules/</link><pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/chemistry/molecular-design/chemical-space/acsess-diverse-optimal-molecules/</guid><description>Rupakheti et al. extend ACSESS to find diverse molecules with favorable properties without exhaustive enumeration of chemical space.</description><content:encoded><![CDATA[<h2 id="diversity-biased-search-of-the-small-molecule-universe">Diversity-Biased Search of the Small Molecule Universe</h2>
<p>The small molecule universe (SMU), estimated at over $10^{60}$ synthetically feasible organic molecules under ~500 Da, is far too large for exhaustive enumeration and evaluation. This paper extends the ACSESS (Algorithm for Chemical Space Exploration with Stochastic Search) framework to simultaneously optimize molecular diversity and a targeted physical property. The key insight is that enforcing diversity at each iteration prevents the search from collapsing into local optima, a failure mode common in standard <a href="/notes/chemistry/molecular-design/generation/search-based/genetic-algorithms-molecule-generation-baselines/">genetic algorithms</a>.</p>
<h2 id="motivation-diversity-vs-fitness">Motivation: Diversity vs. Fitness</h2>
<p>Standard genetic algorithms optimize fitness effectively but sacrifice diversity: they converge to a few high-fitness regions while ignoring equally good solutions elsewhere. Exhaustive enumeration guarantees completeness but is computationally infeasible beyond ~20 heavy atoms. ACSESS bridges this gap by maintaining a maximally diverse library throughout the optimization process, ensuring coverage of multiple fitness peaks without needing to evaluate every candidate.</p>
<h2 id="the-property-optimizing-acsess-algorithm">The Property-Optimizing ACSESS Algorithm</h2>
<p>The method has four iterative steps:</p>
<ol>
<li><strong>Initialize</strong> a library (from a single molecule or a seed collection)</li>
<li><strong>Breed</strong> new compounds via mutations and crossovers</li>
<li><strong>Filter</strong> by property threshold, removing compounds below a cutoff</li>
<li><strong>Select</strong> a maximally diverse subset of qualifying structures</li>
</ol>
<p>The property threshold increases linearly with each iteration, starting low (to prevent population collapse) and gradually rising until the desired fitness level is reached. Diversity is enforced via either a maximin algorithm (maximizing nearest-neighbor distance) or cell-based partitioning (linear scaling for large libraries).</p>
<p>Molecules are represented in a 40-dimensional chemical space using Moreau-Broto autocorrelation descriptors. The descriptor encodes correlations of atomic properties as a function of topological distance (bond distance) $d$:</p>
<p>$$
AC(d, p) = \sum_{i \leq j} p_{i} , p_{j} , \delta(d_{ij} - d)
$$</p>
<p>where $p_{i}$ is an atomic property of atom $i$ and $d_{ij}$ is the shortest bond path between atoms $i$ and $j$. Five atomic properties are used: atomic number, Gasteiger-Marsili partial charge, atomic polarizability, topological steric index, and unity ($p_{i} = 1$ for all $i$, effectively counting atom pairs at each distance). Topological distance $d$ ranges from 0 to 7, yielding $5 \times 8 = 40$ descriptor components. Descriptors are mean-centered and normalized to unit variance before computing distances.</p>
<p>Chemical space distance is the Euclidean distance between descriptor vectors:</p>
<p>$$
D_{ij} = \sqrt{\sum_{k=1}^{N} (d_{ik} - d_{jk})^2}
$$</p>
<p>Library diversity is measured as the average nearest-neighbor distance:</p>
<p>$$
D_{\min} = \frac{1}{M} \sqrt{\sum_{i=1}^{M} \min_{i \neq j} (D_{ij}^2)}
$$</p>
<h2 id="validation-on-nkp-fitness-landscapes">Validation on NKp Fitness Landscapes</h2>
<p>The <a href="https://en.wikipedia.org/wiki/NK_model">NKp model</a> maps binary strings of length $N$ to fitness values in $[0, 1]$. The fitness of a string $g$ is:</p>
<p>$$
\Phi(g) = \frac{1}{N} \sum_{i=1}^{N} \varphi_{i}(g)
$$</p>
<p>where each $\varphi_{i} \in [0, 1]$ is a randomly drawn fitness contribution. Ruggedness is controlled by $K$ (the number of inter-bit associations per position) and $p$ (fitness contribution weights). Using $N = 19$, $K = 9$, $p = 0.9$ (524,288 total strings, comparable to GDB-9 size), the global maximum was ~0.3. Both ACSESS and SGA were initialized with the same diverse subset and ran for 30 iterations across 10 independent runs:</p>
<ul>
<li>ACSESS found the global optimum in 100% of runs (vs. 60% for SGA)</li>
<li>ACSESS discovered ~15 of 19 globally optimal strings on average (vs. ~3 for SGA)</li>
<li>ACSESS solutions had higher average fitness than SGA solutions</li>
</ul>
<h2 id="validation-on-gdb-9-dipole-moments">Validation on GDB-9 Dipole Moments</h2>
<p>The method was tested on all ~300,000 molecules in GDB-9 (up to 9 heavy atoms; allowed atom types: C, N, O, S, Cl). For each molecule, the Boltzmann-averaged dipole moment was computed at the <a href="https://en.wikipedia.org/wiki/Austin_Model_1">AM1 level</a> (Gaussian 09):</p>
<p>$$
D = \frac{\sum_{i \in C} \mu_{i} , e^{-\beta E_{i}}}{\sum_{i \in C} e^{-\beta E_{i}}}
$$</p>
<p>where $\mu_{i}$ and $E_{i}$ are the dipole moment and internal energy of conformation $i$, and $\beta = 1 / (k_{\text{B}} T)$ at $T = 298$ K. Conformations (including stereoisomers) were generated using OpenEye OMEGA. The target was molecules with dipole moments $\geq 5.5$ D (the 90th percentile). ACSESS first generated a maximally diverse seed set, then ran 60 iterations of fitness-biased optimization. All methods were initialized from the same diverse seed and compared over multiple runs.</p>
<table>
  <thead>
      <tr>
          <th>Method</th>
          <th>Dipole Moment (D)</th>
          <th>Diversity (eq. 4)</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>GA-Roulette</td>
          <td>5.8 $\pm$ 0.03</td>
          <td>6.5 $\pm$ 0.7</td>
      </tr>
      <tr>
          <td>GA-Tournament</td>
          <td>6.4 $\pm$ 0.08</td>
          <td>3.5 $\pm$ 0.7</td>
      </tr>
      <tr>
          <td>GA-Elitism</td>
          <td>6.74 $\pm$ 0.08</td>
          <td>5.4 $\pm$ 0.4</td>
      </tr>
      <tr>
          <td><strong>ACSESS</strong></td>
          <td><strong>6.05 $\pm$ 0.05</strong></td>
          <td><strong>9.7 $\pm$ 0.6</strong></td>
      </tr>
  </tbody>
</table>
<p>ACSESS achieved nearly double the diversity of the best SGA variant while maintaining competitive fitness. Its diversity (~9.7) approached the diversity of the full enumerated high-fitness subset of GDB-9 (~12). <a href="https://en.wikipedia.org/wiki/Self-organizing_map">Self-organizing map</a> (SOM) visualizations confirmed that ACSESS covered high-activity regions that SGAs missed entirely.</p>
<p>Only ~30,000 fitness evaluations were needed to locate diverse optimal regions in the 300,000-molecule space, a 10x efficiency gain over exhaustive enumeration.</p>
<h2 id="limitations">Limitations</h2>
<ul>
<li>Tested only on relatively small chemical spaces (GDB-9 with ~300k molecules and 19-bit NKp with ~500k strings); scaling to the full SMU ($10^{60}$) remains a research direction</li>
<li>Property evaluation (AM1 dipole moments with conformer generation) is the computational bottleneck, not the ACSESS algorithm itself</li>
<li>The 40-dimensional autocorrelation descriptor space may not capture all relevant structural features for every optimization target</li>
<li>Comparison is limited to simple genetic algorithms; more sophisticated evolutionary strategies were not benchmarked</li>
</ul>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<p>The ACSESS algorithm relies on proprietary software, limiting full reproducibility.</p>
<table>
  <thead>
      <tr>
          <th>Artifact</th>
          <th>Type</th>
          <th>License</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="https://doi.org/10.1038/sdata.2014.22">GDB-9</a></td>
          <td>Dataset</td>
          <td>CC-BY-4.0</td>
          <td>Publicly available enumerated chemical universe (~300k molecules)</td>
      </tr>
  </tbody>
</table>
<ul>
<li><strong>Code</strong>: No public source code was released. The implementation depends on OpenEye OEChem TK (molecule generation), OpenEye MolProp TK (filtering), and OpenEye OMEGA TK (conformer generation), all of which require commercial licenses.</li>
<li><strong>Property calculations</strong>: Dipole moments were computed at the AM1 level using Gaussian 09, also commercial software.</li>
<li><strong>NKp landscape</strong>: Fully specified by parameters ($N = 19$, $K = 9$, $p = 0.9$) and standard NKp model equations, making this portion independently reproducible.</li>
<li><strong>Hardware</strong>: No specific compute requirements reported.</li>
<li><strong>Reproducibility status</strong>: Partially Reproducible. The algorithm is well-described and the NKp experiments could be reimplemented, but the molecular experiments require OpenEye and Gaussian 09 licenses, and no reference implementation was released.</li>
</ul>
<h2 id="paper-information">Paper Information</h2>
<ul>
<li><strong>Journal</strong>: Journal of Chemical Information and Modeling, Vol. 55, No. 3, pp. 529-537</li>
<li><strong>Published</strong>: January 16, 2015</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bibtex" data-lang="bibtex"><span style="display:flex;"><span><span style="color:#a6e22e">@article</span>{rupakheti2015strategy,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{Strategy To Discover Diverse Optimal Molecules in the Small Molecule Universe}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Rupakheti, Chetan and Virshup, Aaron M. and Yang, Weitao and Beratan, David N.}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span>=<span style="color:#e6db74">{Journal of Chemical Information and Modeling}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span>=<span style="color:#e6db74">{55}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">number</span>=<span style="color:#e6db74">{3}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">pages</span>=<span style="color:#e6db74">{529--537}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2015}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">publisher</span>=<span style="color:#e6db74">{American Chemical Society}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span>=<span style="color:#e6db74">{10.1021/ci500749q}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item></channel></rss>