<?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>Discovery Papers: Validated Empirical Findings Using AI on Hunter Heidenreich | ML Research Scientist</title><link>https://hunterheidenreich.com/paper-types/discovery/</link><description>Recent content in Discovery Papers: Validated Empirical Findings Using AI 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/paper-types/discovery/index.xml" rel="self" type="application/rss+xml"/><item><title>SlimPajama-DC: Data Combinations for LLM Training</title><link>https://hunterheidenreich.com/notes/natural-language-processing/language-models/slimpajama-dc-data-combinations/</link><pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/natural-language-processing/language-models/slimpajama-dc-data-combinations/</guid><description>Shen et al. study how global deduplication and domain combinations in SlimPajama affect LLM training, finding diversity after dedup is key.</description><content:encoded><![CDATA[<h2 id="an-empirical-study-of-data-domain-combinations">An empirical study of data domain combinations</h2>
<p>This is a <strong>discovery paper</strong> that empirically investigates how different combinations and proportions of data domains affect language model pretraining. Using the SlimPajama dataset (a globally deduplicated, 627B token refinement of RedPajama), the study trains seven 1.3B model configurations with varying domain mixtures to identify which combinations and deduplication strategies produce the best downstream performance.</p>
<h2 id="why-data-combination-strategy-matters">Why data combination strategy matters</h2>
<p>Multi-source pretraining datasets combine data from web crawls, code repositories, books, academic papers, and other sources. Two underexplored questions drive this work: (1) Does deduplication within each source (local) versus across all sources (global) meaningfully affect model quality? (2) When sources are thoroughly deduplicated, how does the combination and proportion of domains affect downstream performance? Most open-source LLM training datasets (RedPajama, The Pile) perform only local deduplication, leaving cross-source redundancy unaddressed.</p>
<h2 id="global-deduplication-and-the-slimpajama-dataset">Global deduplication and the SlimPajama dataset</h2>
<p>SlimPajama applies global MinHashLSH deduplication (Jaccard similarity threshold 0.8, 13-gram signatures) across all seven data sources simultaneously. This reduces RedPajama&rsquo;s 1.2T tokens to 627B tokens, a roughly 48% reduction. The heaviest deduplication hits CommonCrawl and GitHub, which had the most cross-source overlap.</p>
<p>The key processing steps:</p>
<ol>
<li><strong>Low-length document filtering</strong>: Remove documents below a minimum length threshold.</li>
<li><strong>Global deduplication</strong>: MinHashLSH across all sources simultaneously, requiring 64 CPU cores and 1.4TB peak memory. This removes both within-source and between-source duplicates.</li>
</ol>
<p>The resulting dataset composition:</p>
<table>
  <thead>
      <tr>
          <th>Source</th>
          <th>SlimPajama</th>
          <th>RedPajama</th>
          <th>LLaMA 1</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>CommonCrawl</td>
          <td>52.2% (333B)</td>
          <td>72.6% (878B)</td>
          <td>67.0%</td>
      </tr>
      <tr>
          <td>C4</td>
          <td>26.7% (170B)</td>
          <td>14.4% (175B)</td>
          <td>15.0%</td>
      </tr>
      <tr>
          <td>GitHub</td>
          <td>5.2% (33B)</td>
          <td>4.9% (59B)</td>
          <td>4.5%</td>
      </tr>
      <tr>
          <td>Books</td>
          <td>4.2% (27B)</td>
          <td>2.1% (26B)</td>
          <td>4.5%</td>
      </tr>
      <tr>
          <td>ArXiv</td>
          <td>4.6% (29B)</td>
          <td>2.3% (28B)</td>
          <td>2.5%</td>
      </tr>
      <tr>
          <td>Wikipedia</td>
          <td>3.8% (24B)</td>
          <td>2.0% (24B)</td>
          <td>4.5%</td>
      </tr>
      <tr>
          <td>StackExchange</td>
          <td>3.3% (21B)</td>
          <td>1.7% (20B)</td>
          <td>2.0%</td>
      </tr>
  </tbody>
</table>
<h2 id="seven-domain-combination-configurations">Seven domain combination configurations</h2>
<p>All configurations train 1.3B parameter models on 330B tokens with identical architecture and hyperparameters. The configurations systematically vary domain diversity:</p>
<ul>
<li><strong>DC-1</strong>: CommonCrawl only (single source)</li>
<li><strong>DC-2</strong>: CommonCrawl + C4 (two web sources)</li>
<li><strong>DC-3</strong>: CommonCrawl + C4 with adjusted proportions</li>
<li><strong>DC-4</strong>: Wikipedia + Books + GitHub + ArXiv + StackExchange (no web crawl)</li>
<li><strong>DC-5</strong>: CommonCrawl + C4 + Wikipedia + Books (four sources, no code/academic)</li>
<li><strong>DC-6</strong>: All seven SlimPajama sources (maximum diversity)</li>
<li><strong>DC-7</strong>: RefinedWeb CommonCrawl (external single-source baseline)</li>
</ul>
<p>The experimental design probes: incremental diversity (DC-1 to DC-2 to DC-5 to DC-6), proportion sensitivity (DC-2 vs DC-3), source importance (DC-3 vs DC-4), and specialization vs generalization (individual vs combined).</p>
<h2 id="diversity-after-global-deduplication-drives-performance">Diversity after global deduplication drives performance</h2>
<h3 id="hugging-face-leaderboard-results">Hugging Face leaderboard results</h3>
<table>
  <thead>
      <tr>
          <th>Model</th>
          <th>Average</th>
          <th>ARC</th>
          <th>HellaSwag</th>
          <th>MMLU</th>
          <th>TruthfulQA</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>RedPajama-1.3B</td>
          <td>38.0</td>
          <td>37.2</td>
          <td>55.8</td>
          <td>24.9</td>
          <td>34.3</td>
      </tr>
      <tr>
          <td>DC-1 (CC only)</td>
          <td>38.5</td>
          <td>36.3</td>
          <td>56.0</td>
          <td>27.0</td>
          <td>34.8</td>
      </tr>
      <tr>
          <td>DC-4 (no web)</td>
          <td>37.6</td>
          <td>33.4</td>
          <td>53.3</td>
          <td>26.0</td>
          <td>37.6</td>
      </tr>
      <tr>
          <td>DC-6 (all sources)</td>
          <td>40.0</td>
          <td>33.7</td>
          <td>61.0</td>
          <td>26.9</td>
          <td>38.4</td>
      </tr>
      <tr>
          <td>DC-7 (RefinedWeb)</td>
          <td>41.0</td>
          <td>35.1</td>
          <td>64.7</td>
          <td>26.2</td>
          <td>37.9</td>
      </tr>
  </tbody>
</table>
<p><strong>Key patterns:</strong></p>
<ol>
<li>
<p><strong>More domain diversity improves average performance.</strong> The progression DC-1 (38.5) to DC-2 (38.4) to DC-5 (38.6) to DC-6 (40.0) shows that adding domains consistently lifts average accuracy once global deduplication has removed cross-source redundancy.</p>
</li>
<li>
<p><strong>Global deduplication enables clean combination.</strong> All SlimPajama configurations except DC-4 outperform RedPajama-1.3B (38.0), which uses local deduplication only. The elimination of cross-source overlap means adding sources contributes genuinely new information.</p>
</li>
<li>
<p><strong>Removing web crawl data hurts.</strong> DC-4 (no CommonCrawl/C4) scores lowest (37.6), demonstrating that web text provides essential breadth even when specialized sources are included.</p>
</li>
<li>
<p><strong>Individual domains excel at specific tasks.</strong> DC-1 (CC only) achieves the highest ARC and MMLU scores. DC-4 leads on Winogrande. DC-5 leads on WSC273. No single combination dominates all tasks, reinforcing that diversity trades specialization for generalization.</p>
</li>
<li>
<p><strong>Findings transfer to 7B scale.</strong> The best 1.3B configuration insights were applied to a 7B model trained with large batch sizes, achieving 63.4 average accuracy across the extended benchmark suite.</p>
</li>
</ol>
<h3 id="training-loss-patterns">Training loss patterns</h3>
<p>DC-6 (all sources) achieves the lowest training loss among SlimPajama configurations, consistent with the downstream results. DC-4 (no web crawl) shows the highest training loss, confirming that the large, diverse web crawl data is the most important single component.</p>
<h2 id="implications-and-limitations">Implications and limitations</h2>
<p>The central finding is that <strong>diversity matters most after deduplication</strong>. When cross-source redundancy is removed, each additional source contributes genuinely new signal. Without global deduplication, adding sources may just increase redundancy without proportional benefit.</p>
<p><strong>Limitations:</strong></p>
<ul>
<li>Only seven fixed configurations are tested. No systematic search over continuous mixture proportions (contrast with <a href="/notes/natural-language-processing/language-models/doremi-data-mixture-optimization/">DoReMi</a> or <a href="/notes/natural-language-processing/language-models/data-mixing-laws-pretraining/">Data Mixing Laws</a>).</li>
<li>The configurations are not independent: DC-6 includes all sources from DC-1 through DC-5, making it difficult to isolate the contribution of any single addition.</li>
<li>Only 1.3B and 7B scales tested. Whether the diversity benefit continues scaling is unverified.</li>
<li>English-only. Cross-lingual diversity effects are not studied.</li>
<li>The paper is a technical report without formal peer review.</li>
</ul>
<hr>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<p><strong>Status: Highly Reproducible.</strong> All 1.3B models and datasets are publicly released under MIT license on HuggingFace.</p>
<h3 id="data">Data</h3>
<table>
  <thead>
      <tr>
          <th>Purpose</th>
          <th>Dataset</th>
          <th>Size</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Training</td>
          <td>SlimPajama</td>
          <td>627B tokens</td>
          <td>Globally deduplicated from 1.2T RedPajama</td>
      </tr>
      <tr>
          <td>Training</td>
          <td>RefinedWeb</td>
          <td>600B tokens</td>
          <td>External CC-only baseline</td>
      </tr>
      <tr>
          <td>Evaluation</td>
          <td>HF Leaderboard (ARC, HellaSwag, MMLU, TruthfulQA)</td>
          <td>Standard</td>
          <td>4 benchmarks</td>
      </tr>
      <tr>
          <td>Evaluation</td>
          <td>Extended suite</td>
          <td>12 additional benchmarks</td>
          <td>Zero and few-shot</td>
      </tr>
  </tbody>
</table>
<h3 id="models">Models</h3>
<p>1.3B parameter Cerebras-GPT architecture with ALiBi positional encoding and SwiGLU activation. All configurations trained on 330B tokens. 7B model trained with large batch-size (LBS) strategy on Cerebras 16x CS-2 cluster (80 PFLOP/s in bf16).</p>
<h3 id="hardware">Hardware</h3>
<p>Cerebras 16x CS-2 cluster, 80 PFLOP/s in bf16 mixed precision.</p>
<h3 id="artifacts">Artifacts</h3>
<table>
  <thead>
      <tr>
          <th>Artifact</th>
          <th>Type</th>
          <th>License</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="https://huggingface.co/MBZUAI-LLM/SlimPajama-DC">SlimPajama-DC Models</a></td>
          <td>Model</td>
          <td>MIT</td>
          <td>All 1.3B DC configurations (select via revision)</td>
      </tr>
      <tr>
          <td><a href="https://huggingface.co/datasets/MBZUAI-LLM/SlimPajama-627B-DC">SlimPajama-627B-DC Dataset</a></td>
          <td>Dataset</td>
          <td>-</td>
          <td>Source-split version of SlimPajama-627B</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="citation">Citation</h2>
<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>{shen2023slimpajamadc,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{SlimPajama-DC: Understanding Data Combinations for LLM Training}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Shen, Zhiqiang and Tao, Tianhua and Ma, Liqun and Neiswanger, Willie and Liu, Zhengzhong and Wang, Hongyi and Tan, Bowen and Hestness, Joel and Vassilieva, Natalia and Soboleva, Daria and Xing, Eric}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span>=<span style="color:#e6db74">{arXiv preprint arXiv:2309.10818}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2023}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>Scaling Data-Constrained Language Models</title><link>https://hunterheidenreich.com/notes/natural-language-processing/language-models/scaling-data-constrained-language-models/</link><pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/natural-language-processing/language-models/scaling-data-constrained-language-models/</guid><description>Muennighoff et al. extend Chinchilla scaling laws to repeated data, finding up to 4 epochs cause negligible loss and 16 epochs mark diminishing returns.</description><content:encoded><![CDATA[<h2 id="an-empirical-study-of-scaling-under-data-constraints">An empirical study of scaling under data constraints</h2>
<p>This is a <strong>discovery paper</strong> that systematically investigates what happens when language models are trained for multiple epochs on repeated data. It extends the Chinchilla scaling laws to the data-constrained regime by proposing a new scaling formula that accounts for the diminishing value of repeated tokens, validated across 400+ training runs ranging from 10M to 9B parameters and up to 1500 epochs.</p>
<h2 id="running-out-of-unique-training-data">Running out of unique training data</h2>
<p>The Chinchilla scaling laws assume unlimited unique data: for a given compute budget, there exists an optimal balance of model parameters and training tokens. But extrapolating these laws to larger models implies data requirements that exceed what is available. Villalobos et al. estimated that high-quality English text would be exhausted by 2024 under Chinchilla-optimal scaling. Most prior large language models trained for a single epoch, and some work explicitly warned against data reuse. The Galactica models (trained for 4.25 epochs) showed that multi-epoch training could work, but no systematic study had quantified the tradeoff between repeated data and fresh data, or how to allocate compute optimally when data is finite.</p>
<h2 id="effective-data-with-exponential-decay-for-repetition">Effective data with exponential decay for repetition</h2>
<p>The paper generalizes the Chinchilla scaling law by replacing raw token count $D$ with an effective data term $D&rsquo;$ that accounts for the diminishing value of repeated tokens:</p>
<p>$$
L(N, D) = \frac{A}{N&rsquo;^{\alpha}} + \frac{B}{D&rsquo;^{\beta}} + E
$$</p>
<p>where the effective data is:</p>
<p>$$
D&rsquo; = U_{D} + U_{D} R_{D}^{<em>} \left(1 - e^{-R_{D}/R_{D}^{</em>}}\right)
$$</p>
<p>Here $U_{D}$ is the number of unique tokens, $R_{D}$ is the number of repetitions (epochs minus 1), and $R_{D}^{<em>}$ is a learned constant representing the &ldquo;half-life&rdquo; of data repetition. When $R_{D} = 0$ (single epoch), $D&rsquo; = U_{D} = D$ and the formula reduces to standard Chinchilla. When $R_{D} \ll R_{D}^{</em>}$, repeated data is worth almost the same as fresh data. As $R_{D}$ grows large, the value of repeated tokens decays to zero, and $D&rsquo;$ saturates at $U_{D}(1 + R_{D}^{<em>})$, meaning no amount of repetition can substitute for more than $R_{D}^{</em>}$ epochs&rsquo; worth of fresh data.</p>
<p>A symmetric formula handles excess parameters:</p>
<p>$$
N&rsquo; = U_{N} + U_{N} R_{N}^{<em>} \left(1 - e^{-R_{N}/R_{N}^{</em>}}\right)
$$</p>
<p>where $U_{N}$ is the compute-optimal parameter count for $U_{D}$ unique tokens and $R_{N}$ measures how much the model exceeds that count. The fitted values are $R_{D}^{<em>} \approx 15.0$ (data repetition half-life at ~16 epochs) and $R_{N}^{</em>} \approx 5.3$ (excess parameters decay faster than repeated data).</p>
<h2 id="experiments-across-400-models">Experiments across 400+ models</h2>
<p><strong>Scale.</strong> Models from 10M to 9B parameters, trained for up to 1500 epochs. Three experimental protocols: fixed unique data (100M, 400M, 1.5B tokens), fixed FLOPs, and parametric fitting across all runs. Training on C4 (English web text) with GPT-2 architecture decoder-only transformers.</p>
<h3 id="resource-allocation-epochs-scale-faster-than-parameters">Resource allocation: epochs scale faster than parameters</h3>
<p>With fixed unique data, results show that more than 50% loss reduction is possible by training beyond one epoch and increasing model size beyond the single-epoch optimum. The data-constrained efficient frontier recommends allocating most additional compute to more epochs rather than more parameters, because excess parameters decay faster ($R_{N}^{<em>} &lt; R_{D}^{</em>}$). This contrasts with Chinchilla, which recommends scaling both equally.</p>
<p>A concrete validation: training the data-constrained compute-optimal model for $9.3 \times 10^{21}$ FLOPs with 25B unique tokens, the recommended allocation (27% fewer parameters, more epochs) achieves better loss and downstream performance than the Chinchilla-optimal allocation.</p>
<h3 id="resource-return-the-4-epoch-safe-zone-and-16-epoch-half-life">Resource return: the 4-epoch safe zone and 16-epoch half-life</h3>
<table>
  <thead>
      <tr>
          <th>Epochs</th>
          <th>Loss impact</th>
          <th>Downstream impact</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>1 (baseline)</td>
          <td>Optimal</td>
          <td>Optimal</td>
      </tr>
      <tr>
          <td>Up to 4</td>
          <td>Negligible (+0.5% loss)</td>
          <td>No significant difference</td>
      </tr>
      <tr>
          <td>~16 ($R_{D}^{*}$)</td>
          <td>Diminishing returns begin sharply</td>
          <td>Measurable degradation</td>
      </tr>
      <tr>
          <td>Beyond 16</td>
          <td>Returns decay to near zero</td>
          <td>Significant degradation</td>
      </tr>
      <tr>
          <td>Extreme (44+)</td>
          <td>Training can diverge</td>
          <td>Failure</td>
      </tr>
  </tbody>
</table>
<p>The 8.7B parameter model trained for 4 epochs ($D_{C} = 44$B unique tokens) finishes with only 0.5% higher validation loss than the single-epoch model ($D_{C} = 178$B unique tokens). Beyond 16 epochs, each repeated token retains only $1 - 1/e \approx 63%$ of the value of a fresh token, meaning roughly 37% of value is lost per repetition cycle at the half-life point.</p>
<h3 id="complementary-strategies-code-augmentation-and-filtering">Complementary strategies: code augmentation and filtering</h3>
<p>When data is limited, two strategies can extend the effective dataset:</p>
<p><strong>Code augmentation.</strong> Mixing Python code from The Stack with natural language data. Up to 50% code (42B tokens) shows no degradation on natural language benchmarks, effectively providing a 2x increase in useful training data. Some tasks (WebNLG generation, bAbI reasoning) actually improve with code, possibly because code trains long-range state-tracking capabilities.</p>
<p><strong>Filtering relaxation.</strong> Perplexity filtering (keeping the 25% lowest-perplexity samples) is effective on noisy datasets, but deduplication filtering does not improve downstream performance (though it may reduce memorization). The recommendation: reserve aggressive filtering for noisy data sources; for clean datasets, more data through reduced filtering is better than less data through strict filtering.</p>
<p><strong>Combined strategy</strong>: doubling available data with code and then repeating for 4 epochs yields 8x more training tokens with performance expected to match 8x more unique data.</p>
<h2 id="key-findings-and-limitations">Key findings and limitations</h2>
<p><strong>Key findings:</strong></p>
<ul>
<li>Multi-epoch training is beneficial, not harmful, up to moderate repetition counts.</li>
<li>The data-constrained scaling law accurately predicts loss under repetition using an exponential decay formulation.</li>
<li>Compute should be allocated to epochs faster than parameters when data is constrained.</li>
<li>Code augmentation and selective filtering extend effective data without quality degradation.</li>
</ul>
<p><strong>Limitations:</strong></p>
<ul>
<li>All experiments use the GPT-2 transformer architecture; applicability to other architectures or modalities is untested.</li>
<li>Only the entire dataset is repeated uniformly. Selectively repeating subsets (e.g., high-value data for more epochs) is not modeled.</li>
<li>Hyperparameter sensitivity (learning rate, dropout) to epoch count is unexplored. Higher learning rates may cause earlier onset of diminishing returns.</li>
<li>Focused on English text. Cross-lingual augmentation effects are not studied.</li>
</ul>
<hr>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<p><strong>Status: Highly Reproducible.</strong> Code, models, datasets, and hyperparameters are all publicly released under Apache 2.0.</p>
<h3 id="data">Data</h3>
<table>
  <thead>
      <tr>
          <th>Purpose</th>
          <th>Dataset</th>
          <th>Size</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Training</td>
          <td>C4 (English)</td>
          <td>Varies by experiment</td>
          <td>Fixed unique data: 100M, 400M, 1.5B tokens</td>
      </tr>
      <tr>
          <td>Code augmentation</td>
          <td>The Stack (Python)</td>
          <td>Up to 42B tokens</td>
          <td>Mixed with natural language</td>
      </tr>
      <tr>
          <td>Evaluation</td>
          <td>19 NL tasks</td>
          <td>Standard splits</td>
          <td>Zero to five-shot, 114 scores per model</td>
      </tr>
  </tbody>
</table>
<h3 id="algorithms">Algorithms</h3>
<p>Data-constrained scaling law: $D&rsquo; = U_{D} + U_{D} R_{D}^{<em>}(1 - e^{-R_{D}/R_{D}^{</em>}})$ with $R_{D}^{<em>} \approx 15.0$, $R_{N}^{</em>} \approx 5.3$. Fitted using the methodology of Hoffmann et al. (2022) adapted for the repetition terms. 400+ training runs used for fitting.</p>
<h3 id="models">Models</h3>
<p>GPT-2 architecture decoder-only transformers with GPT-2 tokenizer. Sizes: 10M to 8.7B parameters. Cosine learning rate schedule (max 2e-4, decay to 2e-5), Adam optimizer ($\beta_2 = 0.999$), dropout 0.1, weight decay 0.1, gradient clipping at 1.0. bfloat16 precision. Trained using Megatron-DeepSpeed.</p>
<h3 id="evaluation">Evaluation</h3>
<table>
  <thead>
      <tr>
          <th>Metric</th>
          <th>Data-Constrained Optimal</th>
          <th>Chinchilla Optimal</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Validation loss (9.3e21 FLOPs, 25B unique)</td>
          <td>Lower</td>
          <td>Higher</td>
          <td>27% fewer parameters</td>
      </tr>
      <tr>
          <td>Downstream (4 epochs vs 1)</td>
          <td>No significant difference</td>
          <td>Baseline</td>
          <td>8.7B params, 44B unique tokens</td>
      </tr>
      <tr>
          <td>Code augmentation (50% code)</td>
          <td>No NL degradation</td>
          <td>Baseline</td>
          <td>Some tasks improve</td>
      </tr>
  </tbody>
</table>
<h3 id="hardware">Hardware</h3>
<p>Trained on the LUMI supercomputer (Finland) using AMD Instinct MI250X GPUs with data, tensor, and pipeline parallelism. Up to 256 GPUs (64 nodes) per run, with up to 2,200 nodes (~8,800 GPUs) used in parallel across all concurrent runs. Total compute: approximately 3 million GPU hours. The cluster runs on 100% renewable hydroelectric energy.</p>
<h3 id="artifacts">Artifacts</h3>
<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/huggingface/datablations">datablations</a></td>
          <td>Code + Models + Data</td>
          <td>Apache 2.0</td>
          <td>All 400+ models, datasets, and training code</td>
      </tr>
      <tr>
          <td><a href="https://github.com/TurkuNLP/Megatron-DeepSpeed">Megatron-DeepSpeed fork</a></td>
          <td>Code</td>
          <td>-</td>
          <td>Training framework adapted for AMD ROCm</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="citation">Citation</h2>
<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">@inproceedings</span>{muennighoff2023scaling,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{Scaling Data-Constrained Language Models}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Muennighoff, Niklas and Rush, Alexander M. and Barak, Boaz and Le Scao, Teven and Piktus, Aleksandra and Tazi, Nouamane and Pyysalo, Sampo and Wolf, Thomas and Raffel, Colin}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">booktitle</span>=<span style="color:#e6db74">{Advances in Neural Information Processing Systems}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span>=<span style="color:#e6db74">{36}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2023}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>Data Mixing Laws for LM Pretraining Optimization</title><link>https://hunterheidenreich.com/notes/natural-language-processing/language-models/data-mixing-laws-pretraining/</link><pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/natural-language-processing/language-models/data-mixing-laws-pretraining/</guid><description>Ye et al. discover that LM loss follows an exponential law over domain mixture proportions, enabling cheap prediction and optimization of data mixtures.</description><content:encoded><![CDATA[<h2 id="an-empirical-discovery-of-predictable-mixture-loss-relationships">An empirical discovery of predictable mixture-loss relationships</h2>
<p>This is a <strong>discovery paper</strong> that identifies a quantitative, functional relationship between pretraining data mixture proportions and language model loss. The key finding is that domain-specific validation loss follows an exponential law over the linear combination of training domain proportions, and this law composes with standard scaling laws to enable cheap prediction of large-model performance under arbitrary mixtures.</p>
<h2 id="the-missing-quantitative-link-between-data-mixtures-and-performance">The missing quantitative link between data mixtures and performance</h2>
<p>Pretraining data for large language models combines text from many domains (web, code, academic, books, etc.), and mixture proportions significantly affect model quality. Existing approaches either set proportions by hand without disclosed criteria (LLaMA, Baichuan) or use algorithmic methods like <a href="/notes/natural-language-processing/language-models/doremi-data-mixture-optimization/">DoReMi</a> that optimize qualitatively but cannot predict the quantitative effect of a specific mixture before training. Scaling laws exist for model size and data quantity, but no equivalent existed for mixture proportions. This paper fills that gap.</p>
<h2 id="the-exponential-data-mixing-law">The exponential data mixing law</h2>
<p>The core finding: for a model of fixed size trained for a fixed number of steps, the validation loss on domain $i$ as a function of the training mixture proportions $r_{1 \dots M}$ follows:</p>
<p>$$
L_{i}(r_{1 \dots M}) = c_{i} + k_{i} \exp\left(\sum_{j=1}^{M} t_{ij} r_{j}\right)
$$</p>
<p>where $c_{i}$, $k_{i}$, and $t_{ij}$ are fitted parameters. The constant $c_{i}$ represents the irreducible loss (not affected by mixture changes). The interaction coefficients $t_{ij}$ capture how training domain $j$ affects validation loss on domain $i$: negative $t_{ij}$ means domain $j$ helps domain $i$, positive means it hurts.</p>
<p>This was discovered progressively:</p>
<ol>
<li><strong>Two domains</strong>: Log-reducible-loss is linear in domain proportion (univariate exponential).</li>
<li><strong>Three domains</strong>: The exponential generalizes to a linear combination over all domain proportions (Eq. above), outperforming alternatives with comparable parameter count.</li>
<li><strong>General validation</strong>: For a validation set composed of $K$ domains with proportions $s_{1 \dots K}$, the overall loss is:</li>
</ol>
<p>$$
L(r_{1 \dots M}) = \sum_{i=1}^{K} s_{i} \left[ c_{i} + k_{i} \exp\left(\sum_{j=1}^{M} t_{ij} r_{j}\right) \right]
$$</p>
<p>When the validation set composition is unknown, implicit domain aggregation treats $s_{i}$ as learnable parameters. Setting the number of implicit domains larger than the true number works well and is robust to overestimation.</p>
<h3 id="domain-interaction-patterns">Domain interaction patterns</h3>
<p>Visualizing the fitted $t_{ij}$ coefficients across 5 coarse Pile domains reveals three relationship types: most domain pairs are <strong>unrelated</strong> (sparse interaction matrix where each domain&rsquo;s loss is dominated by its own training proportion), some show <strong>facilitation</strong> (e.g., dialogue data helps internet text), and some show <strong>conflict</strong> (e.g., symbolic data hurts prose). This sparsity explains why the law can be fitted with fewer samples than the quadratic parameter count would suggest.</p>
<h2 id="nested-scaling-pipeline-for-cheap-prediction">Nested scaling pipeline for cheap prediction</h2>
<p>Fitting data mixing laws directly at target scale is too expensive (requires many full training runs at different mixtures). The paper proposes nesting three scaling laws:</p>
<p><strong>Step 1</strong>: For each mixture $r_{i}$ and each small model size $N_{j}$, train for $S_{0}$ steps. Fit a <a href="https://en.wikipedia.org/wiki/Power_law">power law</a> $L(S) = E_{1} + B/S^{\beta}$ over steps to extrapolate to the target step count $S_{\text{target}}$.</p>
<p><strong>Step 2</strong>: With the step-extrapolated losses for each mixture, fit a power law $L(N) = E_{2} + A/N^{\alpha}$ over model sizes to extrapolate to the target model size $N_{\text{target}}$.</p>
<p><strong>Step 3</strong>: With the predicted losses at $(N_{\text{target}}, S_{\text{target}})$ for all sampled mixtures, fit the data mixing law and search for the optimal mixture.</p>
<p>This pipeline requires only training small models (70M to 410M) for short runs (30B tokens) to predict performance of a 1B model trained for 100B tokens.</p>
<h3 id="mixture-sampling-strategy">Mixture sampling strategy</h3>
<p>To get informative samples efficiently, the paper uses double-diminishing proportions: for each domain, enumerate proportions by halving from the maximum available. This distributes losses evenly across the exponential law&rsquo;s range. From 40 candidate mixtures trained at the smallest scale (70M), 20 are selected based on which subset minimizes data mixing law fitting error.</p>
<h2 id="experiments-on-redpajama-and-continual-pretraining">Experiments on RedPajama and continual pretraining</h2>
<p><strong>Main experiment.</strong> Models trained on RedPajama, validated on the Pile (mimicking the common scenario where validation data comes from a different distribution than training). Small models: 70M, 160M, 305M, 410M trained for 30B tokens. Target: 1B model for 100B tokens.</p>
<p>The optimized mixture dramatically redistributes weight compared to RedPajama defaults:</p>
<table>
  <thead>
      <tr>
          <th>Domain</th>
          <th>Default</th>
          <th>Optimized</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>CommonCrawl</td>
          <td>0.670</td>
          <td>0.125</td>
      </tr>
      <tr>
          <td>C4</td>
          <td>0.150</td>
          <td>0.250</td>
      </tr>
      <tr>
          <td>GitHub</td>
          <td>0.045</td>
          <td>0.141</td>
      </tr>
      <tr>
          <td>ArXiv</td>
          <td>0.045</td>
          <td>0.250</td>
      </tr>
      <tr>
          <td>Books</td>
          <td>0.045</td>
          <td>0.094</td>
      </tr>
      <tr>
          <td>StackExchange</td>
          <td>0.025</td>
          <td>0.125</td>
      </tr>
      <tr>
          <td>Wikipedia</td>
          <td>0.020</td>
          <td>0.016</td>
      </tr>
  </tbody>
</table>
<p>The optimized mixture reaches the default mixture&rsquo;s final performance in 73% of the training steps and eventually achieves performance equivalent to 48% more training on the default mixture.</p>
<p><strong>Comparison to DoReMi and DoGE.</strong> Data mixing laws outperform both: the predicted-optimal mixture achieves lower validation loss than DoReMi and DoGE (both universal and OOD settings) for 1B models trained for 100B tokens on RedPajama.</p>
<p><strong>Continual pretraining.</strong> The law extends to continual pretraining (Pythia-70M on Pile + Python code). It accurately predicts the critical mixture proportion that avoids <a href="https://en.wikipedia.org/wiki/Catastrophic_interference">catastrophic forgetting</a> on the original domain while improving the target domain. This suggests data mixing laws could guide dynamic data schedules across multi-stage pretraining.</p>
<h2 id="implications-and-limitations">Implications and limitations</h2>
<p>The data mixing law provides a predictive framework rather than just an optimization algorithm. Key implications:</p>
<ul>
<li>The interaction coefficients $t_{ij}$ make domain relationships quantitatively observable before full-scale training, identifying facilitation and conflict pairs.</li>
<li>The nested pipeline&rsquo;s cost is dominated by the small-model training runs (40 mixtures at 70M scale), which is orders of magnitude cheaper than even a single target-scale run.</li>
<li>The continual pretraining application opens the door to optimizing dynamic data schedules, where mixture proportions change across training stages.</li>
</ul>
<p><strong>Limitations</strong>: The &ldquo;domain&rdquo; concept remains loosely defined (provenance-based). The nested scaling laws introduce compounding errors at each step, and predictions tend to slightly underestimate actual loss. The number of required fitting samples, while subquadratic in practice due to sparsity, still scales with the number of domains. No theoretical justification for the exponential form is provided; it is a purely empirical finding.</p>
<hr>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<h3 id="data">Data</h3>
<table>
  <thead>
      <tr>
          <th>Purpose</th>
          <th>Dataset</th>
          <th>Size</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Training (pilot)</td>
          <td>The Pile (GitHub, Pile-CC, Books3)</td>
          <td>30B tokens</td>
          <td>2-domain and 3-domain experiments</td>
      </tr>
      <tr>
          <td>Training (main)</td>
          <td>RedPajama</td>
          <td>100B tokens</td>
          <td>7 domains</td>
      </tr>
      <tr>
          <td>Validation</td>
          <td>The Pile validation set</td>
          <td>Standard split</td>
          <td>Out-of-distribution relative to RedPajama</td>
      </tr>
      <tr>
          <td>Continual pretraining</td>
          <td>Pile + Python code</td>
          <td>10B tokens</td>
          <td>Pythia-70M base model</td>
      </tr>
  </tbody>
</table>
<h3 id="algorithms">Algorithms</h3>
<p>Data mixing law: $L_{i}(r_{1 \dots M}) = c_{i} + k_{i} \exp(\sum_{j} t_{ij} r_{j})$. Fitted via AdaBoost Regressor on sampled mixtures. Step scaling law: $L(S) = E_{1} + B/S^{\beta}$. Model size scaling law: $L(N) = E_{2} + A/N^{\alpha}$. Both fitted via Huber loss minimization with LBFGS. Decomposed Chinchilla-style (separate fits for stability). 40 candidate mixtures sampled via double-diminishing proportions, 20 selected for the final pipeline.</p>
<h3 id="models">Models</h3>
<p>Transformer decoder-only LMs. Pilot: 70M, 160M. Main pipeline: 70M, 160M, 305M, 410M (for fitting), 1B (target). Batch size: 1M tokens. Cosine learning rate decay with 2K step warmup, decaying to 0.1x at 100K steps.</p>
<h3 id="evaluation">Evaluation</h3>
<table>
  <thead>
      <tr>
          <th>Metric</th>
          <th>Optimized Mixture</th>
          <th>Default Mixture</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Steps to match default final loss</td>
          <td>73K (73%)</td>
          <td>100K (100%)</td>
          <td>27% training reduction</td>
      </tr>
      <tr>
          <td>Equivalent extra training</td>
          <td>+48%</td>
          <td>Baseline</td>
          <td>Estimated via step scaling law</td>
      </tr>
      <tr>
          <td>Validation loss (1B, 100B)</td>
          <td>Lowest</td>
          <td>Higher than optimized</td>
          <td>Also beats DoReMi and DoGE</td>
      </tr>
  </tbody>
</table>
<h3 id="hardware">Hardware</h3>
<p>8 A100 GPUs. Training times per 30B-token run: 3.5 hours (70M), 8 hours (160M), 16 hours (305M), 21 hours (410M).</p>
<h3 id="artifacts">Artifacts</h3>
<table>
  <thead>
      <tr>
          <th>Artifact</th>
          <th>Type</th>
          <th>License</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="https://pile.eleuther.ai/">The Pile</a></td>
          <td>Dataset</td>
          <td>MIT</td>
          <td>Pilot and validation data</td>
      </tr>
      <tr>
          <td><a href="https://github.com/togethercomputer/RedPajama-Data">RedPajama</a></td>
          <td>Dataset</td>
          <td>Apache 2.0</td>
          <td>Main training data</td>
      </tr>
      <tr>
          <td><a href="https://github.com/EleutherAI/pythia">Pythia Suite</a></td>
          <td>Model</td>
          <td>Apache 2.0</td>
          <td>Model architecture configs; Pythia-70M checkpoint for continual pretraining</td>
      </tr>
  </tbody>
</table>
<p><strong>Reproducibility status: Partially Reproducible.</strong> Datasets and base model checkpoints are public. No official code release for the data mixing law fitting pipeline, mixture sampling, or the nested scaling law prediction workflow.</p>
<hr>
<h2 id="citation">Citation</h2>
<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">@inproceedings</span>{ye2025datamixinglaws,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{Data Mixing Laws: Optimizing Data Mixtures by Predicting Language Modeling Performance}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Ye, Jiasheng and Liu, Peiju and Sun, Tianxiang and Zhan, Jun and Zhou, Yunhua and Qiu, Xipeng}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">booktitle</span>=<span style="color:#e6db74">{International Conference on Learning Representations}</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></span></code></pre></div>]]></content:encoded></item><item><title>Randomized SMILES Improve Molecular Generative Models</title><link>https://hunterheidenreich.com/notes/chemistry/molecular-representations/notations/randomized-smiles-generative-models/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/chemistry/molecular-representations/notations/randomized-smiles-generative-models/</guid><description>Randomized SMILES improve RNN molecular generative models by increasing chemical space coverage, uniformity, and completeness versus canonical SMILES.</description><content:encoded><![CDATA[<h2 id="data-augmentation-through-smiles-randomization">Data Augmentation Through SMILES Randomization</h2>
<p>This is an <strong>Empirical</strong> paper that performs an extensive benchmark of RNN-based molecular generative models trained with different SMILES string variants. The primary contribution is demonstrating that randomized SMILES (non-unique molecular string representations obtained by randomizing atom orderings) substantially improve the quality of the generated chemical space compared to canonical SMILES, without requiring any changes to the model architecture.</p>
<p>The paper evaluates three properties of generated chemical spaces: uniformity (equal probability of sampling each molecule), completeness (coverage of the target space), and closedness (generating only molecules within the target space). These are measured using a new composite metric called UC-JSD.</p>
<h2 id="canonical-smiles-bias-in-generative-models">Canonical SMILES Bias in Generative Models</h2>
<p>Recurrent Neural Networks trained on SMILES strings have shown the capacity to create large chemical spaces of valid molecules. However, when trained with canonical SMILES (the unique string representation produced by a canonicalization algorithm), these models exhibit biases. Specifically, prior work by the same group showed that models trained on one million <a href="/notes/chemistry/datasets/gdb-13/">GDB-13</a> molecules could only recover 68% of GDB-13 when sampled two billion times, compared to the theoretical maximum of 87% from an ideal uniform sampler.</p>
<p>The canonical SMILES representation introduces two problems. First, the canonicalization algorithm constrains how the molecular graph is traversed (e.g., prioritizing sidechains over ring atoms), forcing the model to learn both valid SMILES syntax and the specific canonical ordering rules. Second, structurally similar molecules can have substantially different canonical SMILES, making some molecules harder to sample than others. Molecules with more ring systems and complex topologies are particularly underrepresented.</p>
<p>The authors also note that DeepSMILES, a recently proposed alternative syntax, had not been benchmarked against randomized SMILES, and that the data augmentation capabilities of randomized SMILES at different training set sizes were unexplored.</p>
<h2 id="randomized-smiles-as-non-canonical-representations">Randomized SMILES as Non-Canonical Representations</h2>
<p>The core insight is that by randomizing the atom ordering before SMILES generation, each molecule can be represented by multiple different but equally valid SMILES strings. This effectively provides data augmentation: a molecule with $n$ heavy atoms can theoretically yield up to $n$ different SMILES strings (though the actual number is typically lower due to molecular symmetry).</p>
<p>Two randomized SMILES variants are explored:</p>
<ul>
<li><strong>Restricted randomized SMILES</strong>: Atom ordering is randomized, but RDKit&rsquo;s built-in fixes are applied. These fixes prevent overly complicated traversals, such as prioritizing sidechains before completing ring atoms.</li>
<li><strong>Unrestricted randomized SMILES</strong>: Atom ordering is randomized without any RDKit restrictions, producing a superset of the restricted variant that includes more convoluted SMILES strings.</li>
</ul>
<p>For each training epoch, a new set of randomized SMILES is generated for the same molecules, so a model trained for 300 epochs on one million molecules sees approximately 300 million different SMILES strings (with some overlap due to sampling).</p>
<p>The model architecture is a standard RNN with an embedding layer, $l$ layers of LSTM or GRU cells of size $w$, optional dropout, and a linear output layer with softmax. The training objective minimizes the average negative log-likelihood (NLL):</p>
<p>$$
J(T) = -\ln P(X_{0} = x_{0}) - \sum_{t=1}^{T} \ln P(X_{t} = x_{t} \mid X_{t-1} = x_{t-1} \dots X_{1} = x_{1})
$$</p>
<p>The key metric is the Uniformity-Completeness JSD (UC-JSD), which extends the Jensen-Shannon Divergence to measure how uniform, complete, and closed the generated chemical space is:</p>
<p>$$
JSD = H\left(\sum_{d \in D} \alpha_{i} \cdot d_{i}\right) - \sum_{d \in D} \alpha_{i} H(d_{i})
$$</p>
<p>where $H(d)$ is the Shannon entropy of a probability distribution. The UC-JSD is computed over the NLL vectors of the validation, training, and sampled sets. The composite UCC score is defined as:</p>
<p>$$
UCC = \text{completeness} \times \text{uniformity} \times \text{closedness}
$$</p>
<p>where completeness measures coverage of GDB-13, uniformity measures how equal the sampling probabilities are, and closedness measures how few invalid (out-of-target-space) molecules are generated.</p>
<h2 id="benchmark-design-across-smiles-variants-training-sizes-and-architectures">Benchmark Design Across SMILES Variants, Training Sizes, and Architectures</h2>
<p>The benchmark covers a systematic grid of experimental conditions:</p>
<p><strong>SMILES variants</strong>: Canonical, restricted randomized, unrestricted randomized, and three DeepSMILES variants (branch syntax, ring syntax, both).</p>
<p><strong>Training set sizes from GDB-13</strong>: 1,000,000, 10,000, and 1,000 molecules with corresponding validation sets.</p>
<p><strong>Architecture choices</strong>: LSTM vs. GRU cells, with hyperparameter grids over number of layers ($l$), hidden size ($w$), dropout rate ($d$), and batch size ($b$).</p>
<table>
  <thead>
      <tr>
          <th>Model</th>
          <th>Layers ($l$)</th>
          <th>Hidden ($w$)</th>
          <th>Dropout ($d$)</th>
          <th>Batch ($b$)</th>
          <th>Cell</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>GDB-13 1M</td>
          <td>3</td>
          <td>512</td>
          <td>0, 25, 50</td>
          <td>64, 128, 256, 512</td>
          <td>GRU, LSTM</td>
      </tr>
      <tr>
          <td>GDB-13 10K</td>
          <td>2, 3, 4</td>
          <td>256, 384, 512</td>
          <td>0, 25, 50</td>
          <td>8, 16, 32</td>
          <td>LSTM</td>
      </tr>
      <tr>
          <td>GDB-13 1K</td>
          <td>2, 3, 4</td>
          <td>128, 192, 256</td>
          <td>0, 25, 50</td>
          <td>4, 8, 16</td>
          <td>LSTM</td>
      </tr>
      <tr>
          <td>ChEMBL</td>
          <td>3</td>
          <td>512</td>
          <td>0, 25, 50</td>
          <td>64, 128, 256, 512</td>
          <td>LSTM</td>
      </tr>
  </tbody>
</table>
<p>Each model&rsquo;s best epoch was selected using a smoothed UC-JSD curve, and the best epoch was then sampled with replacement $k = 2 \times 10^{9}$ times for GDB-13 benchmarks.</p>
<p>For ChEMBL experiments, models were trained on 1,483,943 molecules with a validation set of 78,102 molecules. Evaluation used validity, unique molecule count, and Frechet ChemNet Distance (FCD).</p>
<h2 id="randomized-smiles-produce-more-complete-and-uniform-chemical-spaces">Randomized SMILES Produce More Complete and Uniform Chemical Spaces</h2>
<h3 id="gdb-13-results-1m-training-set">GDB-13 results (1M training set)</h3>
<p>The restricted randomized SMILES model recovered 83.0% of GDB-13, compared to 72.8% for canonical SMILES and 68.4-72.1% for DeepSMILES variants. All three quality metrics improved substantially:</p>
<table>
  <thead>
      <tr>
          <th>SMILES Variant</th>
          <th>% GDB-13</th>
          <th>Uniformity</th>
          <th>Completeness</th>
          <th>Closedness</th>
          <th>UCC</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Canonical</td>
          <td>72.8</td>
          <td>0.879</td>
          <td>0.836</td>
          <td>0.861</td>
          <td>0.633</td>
      </tr>
      <tr>
          <td>Rand. restricted</td>
          <td>83.0</td>
          <td>0.977</td>
          <td>0.953</td>
          <td>0.925</td>
          <td>0.860</td>
      </tr>
      <tr>
          <td>Rand. unrestricted</td>
          <td>80.9</td>
          <td>0.970</td>
          <td>0.929</td>
          <td>0.876</td>
          <td>0.790</td>
      </tr>
      <tr>
          <td>DeepSMILES (both)</td>
          <td>68.4</td>
          <td>0.851</td>
          <td>0.785</td>
          <td>0.796</td>
          <td>0.532</td>
      </tr>
  </tbody>
</table>
<p>The NLL distribution of GDB-13 molecules under the randomized SMILES model was centered near $NLL_{GDB13} = -\ln(1/|GDB13|) = 20.6$ with a narrow spread, indicating near-uniform sampling probability. The canonical model showed a much wider NLL distribution, meaning some molecules were orders of magnitude harder to sample.</p>
<p>Randomized SMILES without data augmentation (same SMILES each epoch) still outperformed canonical SMILES (UCC 0.712 vs. 0.633 for restricted), confirming that the non-canonical representation itself is beneficial beyond the augmentation effect.</p>
<h3 id="smaller-training-sets-amplify-the-advantage">Smaller training sets amplify the advantage</h3>
<p>With only 10,000 training molecules (0.001% of GDB-13), the randomized model generated 62.3% of GDB-13 vs. 38.8% for canonical. With 1,000 training molecules, the gap widened further: 34.1% vs. 14.5%. Validity also improved dramatically (81.2% vs. 50.4% for the 1K setting), suggesting randomized SMILES helps the model learn valid SMILES syntax more effectively from limited data.</p>
<h3 id="chembl-results">ChEMBL results</h3>
<p>On the drug-like ChEMBL dataset, the randomized SMILES model generated at least double the number of unique molecules compared to canonical (64.09% vs. 34.67% unique in a 2B sample), with comparable validity (98.33% vs. 98.26%). The canonical model showed a lower FCD (0.0712 vs. 0.1265), but the authors argue this reflects overfitting: the canonical model&rsquo;s NLL distributions for training and validation sets overlapped tightly, while the randomized model showed more uniform coverage. Physicochemical property distributions (molecular weight, logP, SA score, QED, NP score, internal diversity) were nearly identical across both models.</p>
<h3 id="architecture-findings">Architecture findings</h3>
<p>LSTM cells consistently outperformed GRU cells across all SMILES variants. Despite GRU&rsquo;s faster per-epoch training time, LSTM models converged in fewer epochs, making them faster overall. Dropout improved canonical SMILES models but was less beneficial (or detrimental) for randomized SMILES, suggesting that randomized SMILES themselves serve as a regularization mechanism. Larger batch sizes generally improved performance across all variants.</p>
<h3 id="uc-jsd-as-a-model-selection-metric">UC-JSD as a model selection metric</h3>
<p>The UC-JSD showed strong correlation with UCC ($R^{2} = 0.931$ for canonical, $R^{2} = 0.856$ for restricted randomized, $R^{2} = 0.885$ for unrestricted randomized), validating its use as a model selection criterion without requiring expensive sampling of every model.</p>
<p>The authors interpret randomized SMILES models as occupying a hybrid space between grammar-based and action-based generative models. The vocabulary serves as a fixed action space where atom tokens are &ldquo;add atom&rdquo; actions, bond tokens are &ldquo;add bond&rdquo; actions, and ring/branching tokens enable graph traversal. Canonical SMILES constrain this action space to a single deterministic path, while randomized SMILES allow the model to explore multiple valid traversals. This perspective also explains why DeepSMILES performed worse: its altered syntax creates a more complex action space without compensating benefits.</p>
<p>The authors encourage the use of randomized SMILES across different model architectures and tasks, including classification and property prediction, and suggest that finding optimal restricted variants of randomized SMILES is a promising research direction.</p>
<hr>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<h3 id="data">Data</h3>
<table>
  <thead>
      <tr>
          <th>Purpose</th>
          <th>Dataset</th>
          <th>Size</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Training/Eval</td>
          <td>GDB-13 subsets</td>
          <td>1M / 10K / 1K molecules</td>
          <td>Randomly sampled from 975M GDB-13</td>
      </tr>
      <tr>
          <td>Training/Eval</td>
          <td>ChEMBL</td>
          <td>1,483,943 training / 78,102 validation</td>
          <td>Filtered subset of ChEMBL database</td>
      </tr>
  </tbody>
</table>
<p>GDB-13 is available from the <a href="http://gdb.unibe.ch/downloads">Reymond group website</a>. ChEMBL is publicly available.</p>
<h3 id="algorithms">Algorithms</h3>
<ul>
<li>Character-level tokenization with special handling for multi-character tokens (Cl, Br, bracketed atoms, %-prefixed ring numbers)</li>
<li>Teacher forcing during training with NLL loss</li>
<li>Gradient norm clipping to 1.0</li>
<li>Weight initialization from $\mathcal{U}(-\sqrt{1/w}, \sqrt{1/w})$</li>
<li>Adaptive learning rate decay based on UC-JSD</li>
<li>Best epoch selection via smoothed UC-JSD (window size 4)</li>
</ul>
<h3 id="models">Models</h3>
<p>Standard RNN architecture: embedding layer, stacked LSTM/GRU layers with optional dropout, linear output with softmax. Best models used 3 layers of 512-dimensional LSTM cells. Vocabulary sizes: 26 (GDB-13), 31 (ChEMBL).</p>
<h3 id="evaluation">Evaluation</h3>
<table>
  <thead>
      <tr>
          <th>Metric</th>
          <th>Best Randomized</th>
          <th>Best Canonical</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>% GDB-13 (1M)</td>
          <td>83.0%</td>
          <td>72.8%</td>
          <td>2B sample with replacement</td>
      </tr>
      <tr>
          <td>UCC (1M)</td>
          <td>0.860</td>
          <td>0.633</td>
          <td>Composite score</td>
      </tr>
      <tr>
          <td>% GDB-13 (10K)</td>
          <td>62.3%</td>
          <td>38.8%</td>
          <td>2B sample with replacement</td>
      </tr>
      <tr>
          <td>% GDB-13 (1K)</td>
          <td>34.1%</td>
          <td>14.5%</td>
          <td>2B sample with replacement</td>
      </tr>
      <tr>
          <td>% Unique ChEMBL</td>
          <td>64.09%</td>
          <td>34.67%</td>
          <td>2B sample with replacement</td>
      </tr>
  </tbody>
</table>
<h3 id="hardware">Hardware</h3>
<p>Nvidia Tesla V100 (Volta) 16 GB VRAM with CUDA 9.1, driver 390.30. Training times ranged from 1 minute (1K canonical) to 131 hours (ChEMBL canonical). Randomized SMILES models required longer per-epoch training due to augmentation overhead but converged to better solutions.</p>
<h3 id="artifacts">Artifacts</h3>
<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/undeadpixel/reinvent-randomized">reinvent-randomized</a></td>
          <td>Code</td>
          <td>MIT</td>
          <td>Training and benchmarking code</td>
      </tr>
      <tr>
          <td><a href="http://gdb.unibe.ch/downloads">GDB-13</a></td>
          <td>Dataset</td>
          <td>Academic use</td>
          <td>975 million fragment-like molecules</td>
      </tr>
      <tr>
          <td><a href="https://github.com/molecularsets/moses">MOSES benchmark</a></td>
          <td>Code</td>
          <td>MIT</td>
          <td>Used for FCD and property calculations</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="paper-information">Paper Information</h2>
<p><strong>Citation</strong>: Arús-Pous, J., Johansson, S. V., Prykhodko, O., Bjerrum, E. J., Tyrchan, C., Reymond, J.-L., Chen, H., &amp; Engkvist, O. (2019). Randomized SMILES strings improve the quality of molecular generative models. <em>Journal of Cheminformatics</em>, 11(1), 71. <a href="https://doi.org/10.1186/s13321-019-0393-0">https://doi.org/10.1186/s13321-019-0393-0</a></p>
<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>{aruspous2019randomized,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{Randomized SMILES strings improve the quality of molecular generative models}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Ar{\&#39;u}s-Pous, Josep and Johansson, Simon Viet and Prykhodko, Oleksii and Bjerrum, Esben Jannik and Tyrchan, Christian and Reymond, Jean-Louis and Chen, Hongming and Engkvist, Ola}</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">{11}</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">{71}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2019}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span>=<span style="color:#e6db74">{10.1186/s13321-019-0393-0}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">publisher</span>=<span style="color:#e6db74">{Springer}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>Avoiding Failure Modes in Goal-Directed Generation</title><link>https://hunterheidenreich.com/notes/chemistry/molecular-design/generation/evaluation/avoiding-failure-modes-goal-directed-generation/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/chemistry/molecular-design/generation/evaluation/avoiding-failure-modes-goal-directed-generation/</guid><description>Langevin et al. show that apparent failure modes in goal-directed molecular generation stem from QSAR model disagreement, not algorithmic flaws.</description><content:encoded><![CDATA[<h2 id="reinterpreting-goal-directed-generation-failures-as-qsar-model-issues">Reinterpreting Goal-Directed Generation Failures as QSAR Model Issues</h2>
<p>This is an <strong>Empirical</strong> study that challenges a widely cited finding about failure modes in goal-directed molecular generation. <a href="/notes/chemistry/molecular-design/generation/evaluation/failure-modes-molecule-generation/">Renz et al. (2019)</a> had shown that when molecules are optimized against a machine learning scoring function, control models trained on the same data distribution assign much lower scores to the generated molecules. This was interpreted as evidence that generation algorithms exploit model-specific biases. Langevin et al. demonstrate that this divergence is already present in the original data distribution and is attributable to disagreement among the QSAR classifiers, not to flaws in the generation algorithms themselves.</p>
<h2 id="why-qsar-model-agreement-matters-for-molecular-generation">Why QSAR Model Agreement Matters for Molecular Generation</h2>
<p>Goal-directed generation uses a scoring function (typically a <a href="https://en.wikipedia.org/wiki/Quantitative_structure%E2%80%93activity_relationship">QSAR</a> model) to guide the design of molecules that maximize predicted activity. In the experimental framework from Renz et al., three Random Forest classifiers are trained: an optimization model $C_{opt}$ on Split 1, a model control $C_{mc}$ on Split 1 with a different random seed, and a data control $C_{dc}$ on Split 2. Each returns a confidence score ($S_{opt}$, $S_{mc}$, $S_{dc}$). The expectation is that molecules with high $S_{opt}$ should also score highly under $S_{mc}$ and $S_{dc}$, since all three models are trained on the same data distribution for the same target.</p>
<p>Renz et al. observed that during optimization, $S_{mc}$ and $S_{dc}$ diverge from $S_{opt}$, reaching substantially lower values. This was interpreted as goal-directed generation exploiting biases unique to the optimization model. The recommendation was to halt generation when control scores stop increasing, requiring a held-out dataset for a control model, which may not be feasible in low-data regimes.</p>
<p>The key insight of Langevin et al. is that nobody had checked whether this score disagreement existed before generation even began. If the classifiers already disagree on high-scoring molecules in the original dataset, the divergence during generation is expected behavior, not evidence of algorithmic failure.</p>
<h2 id="pre-existing-classifier-disagreement-explains-the-divergence">Pre-Existing Classifier Disagreement Explains the Divergence</h2>
<p>The core contribution is showing that the gap between optimization and control scores is a property of the QSAR models, not of the generation algorithms.</p>
<p>The authors introduce a held-out test set (10% of the data, used for neither training split) and augment it via Topliss tree enumeration to produce structural analogs for smoother statistical estimates. On this held-out set, they compute the Mean Average Difference (MAD) between $S_{opt}$ and control scores as a function of $S_{opt}$:</p>
<p>$$
\text{MAD}(x) = \frac{1}{|\{i : S_{opt}(x_i) \geq x\}|} \sum_{S_{opt}(x_i) \geq x} |S_{opt}(x_i) - S_{dc}(x_i)|
$$</p>
<p>On the three original datasets (DRD2, EGFR, JAK2), the MAD between $S_{opt}$ and $S_{dc}$ grows substantially with $S_{opt}$, reaching approximately 0.3 for the highest-scoring molecules. For EGFR, even the top molecules (with $S_{opt}$ between 0.5 and 0.6) have $S_{dc}$ below 0.2. This disagreement exists entirely within the original data distribution, before any generative algorithm is applied.</p>
<p>The authors formalize this with tolerance intervals. At each generation time step $t$, the distribution of optimization scores is $P_t[S_{opt}(x)]$. From the held-out set, the conditional distributions $P[S_{dc}(x) | S_{opt}(x)]$ and $P[S_{mc}(x) | S_{opt}(x)]$ are estimated empirically. The expected control scores at time $t$ are then:</p>
<p>$$
\mathbb{E}[S_{dc}] = \int P[S_{dc}(x) | S_{opt}(x)] \cdot P_t[S_{opt}(x)] , dS_{opt}
$$</p>
<p>By sampling from these distributions, the authors construct 95% tolerance intervals for the expected control scores at each time step. The observed trajectories of $S_{mc}$ and $S_{dc}$ during generation fall within these intervals, demonstrating that the divergence is fully explained by pre-existing classifier disagreement.</p>
<h2 id="experimental-setup-original-reproduction-and-corrected-experiments">Experimental Setup: Original Reproduction and Corrected Experiments</h2>
<h3 id="reproduction-of-renz-et-al">Reproduction of Renz et al.</h3>
<p>The original experimental framework uses three datasets from ChEMBL: <a href="https://en.wikipedia.org/wiki/Dopamine_receptor_D2">DRD2</a> (842 molecules, 59 actives), <a href="https://en.wikipedia.org/wiki/Epidermal_growth_factor_receptor">EGFR</a> (842 molecules, 40 actives), and <a href="https://en.wikipedia.org/wiki/Janus_kinase_2">JAK2</a> (667 molecules, 140 actives). These are small, noisy, and chemically diverse. Three goal-directed generation algorithms are tested:</p>
<table>
  <thead>
      <tr>
          <th>Algorithm</th>
          <th>Type</th>
          <th>Mechanism</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Graph GA</td>
          <td>Genetic algorithm on molecular graphs</td>
          <td>Mutation and crossover of molecular graphs</td>
      </tr>
      <tr>
          <td>SMILES-LSTM</td>
          <td>Recurrent neural network</td>
          <td>Hill-climbing fine-tuning on best molecules</td>
      </tr>
      <tr>
          <td>MSO</td>
          <td>Particle swarm in CDDD latent space</td>
          <td>Multiple swarm optimization</td>
      </tr>
  </tbody>
</table>
<p>All algorithms are run for 151 epochs with 10 runs each. The reproduction confirms the findings of Renz et al.: $S_{mc}$ and $S_{dc}$ diverge from $S_{opt}$ during optimization.</p>
<h3 id="tolerance-interval-analysis">Tolerance interval analysis</h3>
<p>The held-out set is augmented using Topliss tree enumeration on phenyl rings, providing structural analogs that are reasonable from a medicinal chemistry perspective. The optimization score range is divided into 25 equal bins, and for each molecule at each time step, 10 samples from the conditional control score distribution are drawn to construct empirical tolerance intervals.</p>
<h3 id="corrected-experiments-with-adequate-models">Corrected experiments with adequate models</h3>
<p>To test whether generation algorithms actually exploit biases when the classifiers agree, the authors construct two tasks where optimization and control models correlate well:</p>
<ol>
<li><strong>ALDH1 dataset</strong>: 464 molecules from LIT-PCBA, split using similarity-based pairing to maximize intra-pair chemical similarity. This ensures both splits sample similar chemistry.</li>
<li><strong>Modified JAK2</strong>: The same JAK2 dataset but with Random Forest hyperparameters adjusted (200 trees instead of 100, minimum 3 samples per leaf instead of 1) to reduce overfitting to spurious correlations.</li>
</ol>
<p>In both cases, $S_{opt}$, $S_{mc}$, and $S_{dc}$ agree well on the held-out test set. The starting population for generation is set to the held-out test set (rather than random ChEMBL molecules) to avoid building in a distribution shift.</p>
<h2 id="findings-no-algorithmic-failure-when-models-agree">Findings: No Algorithmic Failure When Models Agree</h2>
<p>On the corrected experimental setups (ALDH1 and modified JAK2), there is no major divergence between optimization and control scores during generation. The three algorithms produce molecules that score similarly under all three classifiers.</p>
<p>Key findings:</p>
<ol>
<li>
<p><strong>Pre-existing disagreement explains divergence</strong>: On all three original datasets, the divergence between $S_{opt}$ and control scores during generation falls within the tolerance intervals predicted from the initial data distribution alone. The generation algorithms are not exploiting model-specific biases beyond what already exists in the data.</p>
</li>
<li>
<p><strong>Split similarity bias is also pre-existing</strong>: Renz et al. observed that generated molecules are more similar to Split 1 (used to train $C_{opt}$) than Split 2. The authors show this bias is already present in the top-5 percentile of the held-out set: on EGFR and DRD2, high-scoring molecules are inherently more similar to Split 1.</p>
</li>
<li>
<p><strong>Appropriate model design resolves the issue</strong>: When Random Forest hyperparameters are chosen to avoid overfitting (more trees, higher minimum samples per leaf), or when data splits are constructed to be chemically balanced, the classifiers agree and the generation algorithms behave as expected.</p>
</li>
<li>
<p><strong>Quality problems remain independent</strong>: Even when optimization and control scores align, the generated molecules can still be poor drug candidates (unreactive, unsynthesizable, containing unusual fragments). The score divergence issue and the chemical quality issue are separate problems.</p>
</li>
</ol>
<h3 id="limitations-acknowledged-by-the-authors">Limitations acknowledged by the authors</h3>
<ul>
<li>The study focuses on Random Forest classifiers with ECFP fingerprints. The behavior of other model types (e.g., graph neural networks) and descriptor types is not fully explored, though supplementary results show similar patterns with physico-chemical descriptors and Atom-Pair fingerprints.</li>
<li>The corrected ALDH1 task uses a relatively small dataset (464 molecules) with careful split construction. Scaling this approach to larger, more heterogeneous datasets is not demonstrated.</li>
<li>The authors note that their results do not prove generation algorithms never exploit biases; they show that the specific evidence from Renz et al. can be explained without invoking algorithmic failure.</li>
<li>The problem of low-quality generated molecules (poor synthesizability, unusual fragments) remains unresolved and is acknowledged as an open question.</li>
</ul>
<hr>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<h3 id="data">Data</h3>
<table>
  <thead>
      <tr>
          <th>Purpose</th>
          <th>Dataset</th>
          <th>Size</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Original tasks</td>
          <td>DRD2, EGFR, JAK2</td>
          <td>842, 842, 667 molecules</td>
          <td>Extracted from ChEMBL; small with few actives</td>
      </tr>
      <tr>
          <td>New task</td>
          <td>ALDH1</td>
          <td>464 molecules (173 with purine substructure)</td>
          <td>Extracted from LIT-PCBA; similarity-based split</td>
      </tr>
      <tr>
          <td>Augmentation</td>
          <td>Topliss tree analogs</td>
          <td>~10x augmentation of held-out set</td>
          <td>Structural analogs via phenyl ring enumeration</td>
      </tr>
  </tbody>
</table>
<h3 id="algorithms">Algorithms</h3>
<p>Three goal-directed generation algorithms from the original Renz et al. study:</p>
<ul>
<li><strong>Graph GA</strong>: Genetic algorithm on molecular graphs (Jensen, 2019)</li>
<li><strong>SMILES-LSTM</strong>: Hill-climbing on LSTM-generated SMILES (Segler et al., 2018)</li>
<li><strong>MSO</strong>: Multi-Swarm Optimization in CDDD latent space (Winter et al., 2019)</li>
</ul>
<p>All run for 151 epochs, 10 runs each.</p>
<h3 id="models">Models</h3>
<p>Random Forest classifiers (scikit-learn) with:</p>
<ul>
<li>ECFP fingerprints (radius 2, 1024 bits, RDKit)</li>
<li>Default parameters for original tasks</li>
<li>Modified parameters for JAK2 correction: 200 trees, min 3 samples per leaf</li>
</ul>
<h3 id="evaluation">Evaluation</h3>
<table>
  <thead>
      <tr>
          <th>Metric</th>
          <th>Purpose</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Mean Average Difference (MAD)</td>
          <td>Measures disagreement between optimization and control scores</td>
          <td>Computed as function of $S_{opt}$ on held-out set</td>
      </tr>
      <tr>
          <td>95% tolerance intervals</td>
          <td>Expected range of control scores given optimization scores</td>
          <td>Empirical, constructed from held-out set</td>
      </tr>
      <tr>
          <td>Tanimoto similarity</td>
          <td>Split bias assessment</td>
          <td>Morgan fingerprints, radius 2, 1024 bits</td>
      </tr>
      <tr>
          <td>ROC-AUC</td>
          <td>Classifier predictive performance</td>
          <td>Used to verify models have comparable accuracy</td>
      </tr>
  </tbody>
</table>
<h3 id="hardware">Hardware</h3>
<p>Not specified in the paper.</p>
<h3 id="artifacts">Artifacts</h3>
<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/Sanofi-Public/IDD-papers-avoiding_failure_modes">Code and datasets</a></td>
          <td>Code</td>
          <td>Apache-2.0</td>
          <td>Fork of Renz et al. codebase with modifications</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="paper-information">Paper Information</h2>
<p><strong>Citation</strong>: Langevin, M., Vuilleumier, R., &amp; Bianciotto, M. (2022). Explaining and avoiding failure modes in goal-directed generation of small molecules. <em>Journal of Cheminformatics</em>, 14, 20. <a href="https://doi.org/10.1186/s13321-022-00601-y">https://doi.org/10.1186/s13321-022-00601-y</a></p>
<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>{langevin2022explaining,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{Explaining and avoiding failure modes in goal-directed generation of small molecules}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Langevin, Maxime and Vuilleumier, Rodolphe and Bianciotto, Marc}</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">{20}</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">{Springer}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span>=<span style="color:#e6db74">{10.1186/s13321-022-00601-y}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>Failure Modes in Molecule Generation &amp; Optimization</title><link>https://hunterheidenreich.com/notes/chemistry/molecular-design/generation/evaluation/failure-modes-molecule-generation/</link><pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/chemistry/molecular-design/generation/evaluation/failure-modes-molecule-generation/</guid><description>Renz et al. show trivial models fool distribution-learning metrics and ML scoring functions introduce exploitable biases in goal-directed molecule generation.</description><content:encoded><![CDATA[<h2 id="an-empirical-critique-of-molecular-generation-evaluation">An Empirical Critique of Molecular Generation Evaluation</h2>
<p>This is an <strong>Empirical</strong> paper that critically examines evaluation practices for molecular generative models. Rather than proposing a new generative method, the paper exposes systematic weaknesses in both distribution-learning metrics and goal-directed optimization scoring functions. The primary contributions are: (1) demonstrating that a trivially simple &ldquo;AddCarbon&rdquo; model can achieve near-perfect scores on widely used distribution-learning benchmarks, and (2) introducing an experimental framework with optimization scores and control scores that reveals model-specific and data-specific biases when ML models serve as scoring functions for goal-directed generation.</p>
<h2 id="evaluation-gaps-in-de-novo-molecular-design">Evaluation Gaps in De Novo Molecular Design</h2>
<p>The rapid growth of deep learning methods for molecular generation (RNN-based SMILES generators, VAEs, GANs, graph neural networks) created a need for standardized evaluation. Benchmarking suites like <a href="/notes/chemistry/molecular-design/generation/evaluation/guacamol-benchmarking-de-novo-molecular-design/">GuacaMol</a> and <a href="/notes/chemistry/molecular-design/generation/evaluation/molecular-sets-moses/">MOSES</a> introduced metrics for validity, uniqueness, novelty, KL divergence over molecular properties, and <a href="/notes/chemistry/molecular-design/generation/evaluation/frechet-chemnet-distance/">Frechet ChemNet Distance (FCD)</a>. For goal-directed generation, penalized logP became a common optimization target.</p>
<p>However, these metrics leave significant blind spots. Distribution-learning metrics do not detect whether a model merely copies training molecules with minimal modifications. Goal-directed benchmarks often use scoring functions that fail to capture the full requirements of drug discovery (synthetic feasibility, drug-likeness, absence of reactive substructures). When ML models serve as scoring functions, the problem worsens because generated molecules can exploit artifacts of the learned model rather than exhibiting genuinely desirable properties.</p>
<p>At the time of writing, wet-lab validations of generative models remained scarce, with only a handful of studies (Merk et al., Zhavoronkov et al.) demonstrating in vitro activity for generated compounds. The lack of rigorous evaluation left the field unable to distinguish meaningfully innovative methods from those that simply exploit metric weaknesses.</p>
<h2 id="the-copy-problem-and-control-score-framework">The Copy Problem and Control Score Framework</h2>
<p>The paper introduces two key conceptual contributions.</p>
<h3 id="the-addcarbon-model-for-distribution-learning">The AddCarbon Model for Distribution-Learning</h3>
<p>The AddCarbon model is deliberately trivial: it samples a molecule from the training set, inserts a single carbon atom at a random position in its SMILES string, and returns the result if it produces a valid, novel molecule. This model achieves near-perfect scores across most <a href="/notes/chemistry/molecular-design/generation/evaluation/guacamol-benchmarking-de-novo-molecular-design/">GuacaMol</a> distribution-learning benchmarks:</p>
<table>
  <thead>
      <tr>
          <th>Benchmark</th>
          <th>RS</th>
          <th>LSTM</th>
          <th>GraphMCTS</th>
          <th>AAE</th>
          <th>ORGAN</th>
          <th>VAE</th>
          <th>AddCarbon</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Validity</td>
          <td>1.000</td>
          <td>0.959</td>
          <td>1.000</td>
          <td>0.822</td>
          <td>0.379</td>
          <td>0.870</td>
          <td>1.000</td>
      </tr>
      <tr>
          <td>Uniqueness</td>
          <td>0.997</td>
          <td>1.000</td>
          <td>1.000</td>
          <td>1.000</td>
          <td>0.841</td>
          <td>0.999</td>
          <td>0.999</td>
      </tr>
      <tr>
          <td>Novelty</td>
          <td>0.000</td>
          <td>0.912</td>
          <td>0.994</td>
          <td>0.998</td>
          <td>0.687</td>
          <td>0.974</td>
          <td>1.000</td>
      </tr>
      <tr>
          <td>KL divergence</td>
          <td>0.998</td>
          <td>0.991</td>
          <td>0.522</td>
          <td>0.886</td>
          <td>0.267</td>
          <td>0.982</td>
          <td>0.982</td>
      </tr>
      <tr>
          <td>FCD</td>
          <td>0.929</td>
          <td>0.913</td>
          <td>0.015</td>
          <td>0.529</td>
          <td>0.000</td>
          <td>0.863</td>
          <td>0.871</td>
      </tr>
  </tbody>
</table>
<p>The AddCarbon model beats all baselines except the LSTM on the FCD metric, despite being practically useless. This exposes what the authors call the &ldquo;copy problem&rdquo;: current metrics check only for exact matches to training molecules, so minimal edits evade novelty detection. The authors argue that likelihood-based evaluation on hold-out test sets, analogous to standard practice in NLP, would provide a more comprehensive metric.</p>
<h3 id="control-scores-for-goal-directed-generation">Control Scores for Goal-Directed Generation</h3>
<p>For goal-directed generation, the authors introduce a three-score experimental design:</p>
<ul>
<li><strong>Optimization Score (OS)</strong>: Output of a classifier trained on data split 1, used to guide the molecular optimizer.</li>
<li><strong>Model Control Score (MCS)</strong>: Output of a second classifier trained on split 1 with a different random seed. Divergence between OS and MCS quantifies model-specific biases.</li>
<li><strong>Data Control Score (DCS)</strong>: Output of a classifier trained on data split 2. Divergence between OS and DCS quantifies data-specific biases.</li>
</ul>
<p>This mirrors the training/test split paradigm in supervised learning. If a generator truly produces molecules with the desired bioactivity, the control scores should track the optimization score. Divergence between them indicates the optimizer is exploiting artifacts of the specific model or training data rather than learning generalizable chemical properties.</p>
<h2 id="experimental-setup-three-targets-three-generators">Experimental Setup: Three Targets, Three Generators</h2>
<h3 id="targets-and-data">Targets and Data</h3>
<p>The authors selected three biological targets from ChEMBL: <a href="https://en.wikipedia.org/wiki/Janus_kinase_2">Janus kinase 2</a> (JAK2), <a href="https://en.wikipedia.org/wiki/Epidermal_growth_factor_receptor">epidermal growth factor receptor</a> (EGFR), and <a href="https://en.wikipedia.org/wiki/Dopamine_receptor_D2">dopamine receptor D2</a> (DRD2). For each target, the data was split into two halves (split 1 and split 2) with balanced active/inactive ratios. Random forest classifiers using binary folded ECFP4 fingerprints (radius 2, size 1024) were trained to produce three scoring functions per target: the OS and MCS on split 1 (different random seeds), and the DCS on split 2.</p>
<h3 id="generators">Generators</h3>
<p>Three molecular generators were evaluated:</p>
<ol>
<li><strong>Graph-based Genetic Algorithm (GA)</strong>: Iteratively applies random mutations and crossovers to a population of molecules, retaining the best in each generation. One of the top performers in GuacaMol.</li>
<li><strong>SMILES-LSTM</strong>: An autoregressive model that generates SMILES character by character, optimized via hill climbing (iteratively sampling, keeping top molecules, fine-tuning). Also a top GuacaMol performer.</li>
<li><strong><a href="https://en.wikipedia.org/wiki/Particle_swarm_optimization">Particle Swarm Optimization</a> (PS)</strong>: Optimizes molecules in the continuous latent space of a SMILES-based sequence-to-sequence model.</li>
</ol>
<p>Each optimizer was run 10 times per target dataset.</p>
<h2 id="score-divergence-and-exploitable-biases">Score Divergence and Exploitable Biases</h2>
<h3 id="optimization-vs-control-score-divergence">Optimization vs. Control Score Divergence</h3>
<p>Across all three targets and all three generators, the OS consistently outpaced both control scores during optimization. The DCS sometimes stagnated or even decreased while the OS continued to climb. This divergence demonstrates that the generators exploit biases in the scoring function rather than discovering genuinely active compounds.</p>
<p>The MCS also diverged from the OS despite being trained on exactly the same data, confirming model-specific biases: the optimization exploits features unique to the particular random forest instance. The larger gap between OS and DCS (compared to OS and MCS) indicates that data-specific biases contribute more to the divergence than model-specific biases.</p>
<h3 id="chemical-space-migration">Chemical Space Migration</h3>
<p>Optimized molecules migrated toward the region of split 1 actives (used to train the OS), as shown by t-SNE embeddings and nearest-neighbor Tanimoto similarity analysis. Optimized molecules had more similar neighbors in split 1 than in split 2, confirming data-specific bias. By the end of optimization, generated molecules occupied different regions of chemical space than known actives when measured by logP and molecular weight, with compounds from the same optimization run forming distinct clusters.</p>
<h3 id="quality-of-generated-molecules">Quality of Generated Molecules</h3>
<p>High-scoring generated molecules frequently contained problematic substructures: reactive dienes, nitrogen-fluorine bonds, long heteroatom chains that are synthetically infeasible, and highly uncommon functional groups. The LSTM optimizer showed a bias toward high molecular weight, low diversity, and high logP values. These molecules would be rejected by medicinal chemists despite their high optimization scores.</p>
<h3 id="key-takeaways">Key Takeaways</h3>
<p>The authors emphasize several practical implications:</p>
<ol>
<li><strong>Early stopping</strong>: Control scores can indicate when further optimization is exploiting biases rather than finding better molecules. Optimization should stop when control scores plateau.</li>
<li><strong>Scoring function iteration</strong>: In practice, generative models are &ldquo;highly adept at exploiting&rdquo; incomplete scoring functions, necessitating several iterations of generation and scoring function refinement.</li>
<li><strong>Synthetic accessibility</strong>: Even high-scoring molecules are useless if they cannot be synthesized. The authors consider this a major challenge for practical adoption.</li>
<li><strong>Likelihood-based evaluation</strong>: For distribution-learning, the authors recommend reporting test-set likelihoods for likelihood-based models, following standard NLP practice.</li>
</ol>
<hr>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<h3 id="data">Data</h3>
<table>
  <thead>
      <tr>
          <th>Purpose</th>
          <th>Dataset</th>
          <th>Size</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Bioactivity data</td>
          <td>ChEMBL (JAK2, EGFR, DRD2)</td>
          <td>See Table S1</td>
          <td>Binary classification tasks, split 50/50</td>
      </tr>
      <tr>
          <td>Distribution-learning</td>
          <td>GuacaMol training set</td>
          <td>Subset of ChEMBL</td>
          <td>Used as starting population for GA and PS</td>
      </tr>
  </tbody>
</table>
<h3 id="algorithms">Algorithms</h3>
<ul>
<li><strong>Scoring function</strong>: Random forest classifier (scikit-learn) on binary ECFP4 fingerprints (size 1024, radius 2, RDKit)</li>
<li><strong>GA</strong>: Graph-based genetic algorithm from Jensen (2019)</li>
<li><strong>LSTM</strong>: SMILES-LSTM with hill climbing, pretrained model from GuacaMol</li>
<li><strong>PS</strong>: Particle swarm optimization in latent space of a sequence-to-sequence model (Winter et al. 2019)</li>
<li>Each optimizer run 10 times per target</li>
</ul>
<h3 id="evaluation">Evaluation</h3>
<table>
  <thead>
      <tr>
          <th>Metric</th>
          <th>Description</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Optimization Score (OS)</td>
          <td>RF classifier on split 1</td>
          <td>Guides optimization</td>
      </tr>
      <tr>
          <td>Model Control Score (MCS)</td>
          <td>RF on split 1, different seed</td>
          <td>Detects model-specific bias</td>
      </tr>
      <tr>
          <td>Data Control Score (DCS)</td>
          <td>RF on split 2</td>
          <td>Detects data-specific bias</td>
      </tr>
      <tr>
          <td><a href="/notes/chemistry/molecular-design/generation/evaluation/guacamol-benchmarking-de-novo-molecular-design/">GuacaMol</a> metrics</td>
          <td>Validity, uniqueness, novelty, KL div, FCD</td>
          <td>For distribution-learning</td>
      </tr>
  </tbody>
</table>
<h3 id="artifacts">Artifacts</h3>
<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/ml-jku/mgenerators-failure-modes">ml-jku/mgenerators-failure-modes</a></td>
          <td>Code</td>
          <td>Unknown</td>
          <td>Data, code, and results</td>
      </tr>
  </tbody>
</table>
<h3 id="hardware">Hardware</h3>
<p>Not specified in the paper.</p>
<hr>
<h2 id="citation">Citation</h2>
<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>{renz2019failure,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{On failure modes in molecule generation and optimization}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Renz, Philipp and Van Rompaey, Dries and Wegner, J{\&#34;o}rg Kurt and Hochreiter, Sepp and Klambauer, G{\&#34;u}nter}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span>=<span style="color:#e6db74">{Drug Discovery Today: Technologies}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span>=<span style="color:#e6db74">{32-33}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">pages</span>=<span style="color:#e6db74">{55--63}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2019}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">publisher</span>=<span style="color:#e6db74">{Elsevier}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span>=<span style="color:#e6db74">{10.1016/j.ddtec.2020.09.003}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><hr>
<h2 id="paper-information">Paper Information</h2>
<p><strong>Citation</strong>: Renz, P., Van Rompaey, D., Wegner, J. K., Hochreiter, S., &amp; Klambauer, G. (2019). On failure modes in molecule generation and optimization. <em>Drug Discovery Today: Technologies</em>, 32-33, 55-63. <a href="https://doi.org/10.1016/j.ddtec.2020.09.003">https://doi.org/10.1016/j.ddtec.2020.09.003</a></p>
<p><strong>Publication</strong>: Drug Discovery Today: Technologies, Volume 32-33, 2019</p>
<p><strong>Additional Resources</strong>:</p>
<ul>
<li><a href="https://github.com/ml-jku/mgenerators-failure-modes">Code and data (GitHub)</a></li>
</ul>
]]></content:encoded></item><item><title>Benchmarking Molecular Property Prediction at Scale</title><link>https://hunterheidenreich.com/notes/chemistry/molecular-design/property-prediction/systematic-study-molecular-property-prediction/</link><pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/chemistry/molecular-design/property-prediction/systematic-study-molecular-property-prediction/</guid><description>A study training 62,820 models finds fixed molecular representations often outperform learned representations for property prediction.</description><content:encoded><![CDATA[<h2 id="a-large-scale-empirical-study-of-molecular-property-prediction">A Large-Scale Empirical Study of Molecular Property Prediction</h2>
<p>This is an <strong>Empirical</strong> paper that systematically benchmarks molecular property prediction across multiple dimensions: molecular representations, model architectures, evaluation metrics, data splitting strategies, and chemical space generalization. The primary contribution is a rigorous, large-scale comparison (62,820 trained models) showing that traditional machine learning models on fixed molecular representations frequently outperform recent deep representation learning approaches, and that several overlooked evaluation factors (statistical testing, metric choice, activity cliffs, dataset size) significantly influence conclusions about model performance.</p>
<h2 id="motivation-overlooked-evaluation-pitfalls-in-molecular-property-prediction">Motivation: Overlooked Evaluation Pitfalls in Molecular Property Prediction</h2>
<p>Molecular property prediction is a core task in AI-driven drug discovery, and recent years have seen a proliferation of representation learning methods (transformers on <a href="/notes/chemistry/molecular-representations/notations/smiles/">SMILES</a>, GNNs on molecular graphs) claiming improved performance on <a href="/notes/chemistry/molecular-design/property-prediction/moleculenet-benchmark-molecular-ml/">MoleculeNet benchmark datasets</a>. However, the authors identify several systemic problems in how these methods are evaluated:</p>
<ol>
<li><strong>Heavy reliance on MoleculeNet benchmarks</strong>, which may not reflect real-world drug discovery challenges. Some benchmark tasks (e.g., SIDER, ClinTox) are arguably unreasonable because they try to predict outcomes from chemical structure alone when other factors (food-drug interactions, patient-level variables) dominate.</li>
<li><strong>Lack of statistical rigor.</strong> Most papers report mean metrics over 3 or 10 splits without statistical tests. Without rigorous analysis, improved metrics could be statistical noise.</li>
<li><strong>Inconsistent data splits.</strong> Across studies, the actual splits vary because seeds and splitting implementations differ, making cross-paper comparisons unreliable.</li>
<li><strong>Inappropriate metrics.</strong> AUROC, the default for classification, can overestimate performance, especially on imbalanced datasets. Precision-oriented metrics (PPV, NPV) may be more relevant for virtual screening.</li>
<li><strong>Neglect of activity cliffs.</strong> Most studies only evaluate inter-scaffold generalization via scaffold splits, ignoring intra-scaffold generalization where structurally similar molecules exhibit drastically different activities (<a href="/notes/chemistry/molecular-design/property-prediction/activity-cliffs-benchmark/">activity cliffs</a>).</li>
</ol>
<h2 id="core-contribution-fixed-representations-often-outperform-learned-representations">Core Contribution: Fixed Representations Often Outperform Learned Representations</h2>
<p>The central finding is that traditional ML models (RF, SVM, XGBoost) operating on fixed molecular representations (RDKit2D descriptors, Morgan fingerprints, MACCS keys, AtomPairs) frequently outperform recent self-supervised pretrained models (<a href="/notes/chemistry/molecular-representations/encoders/molbert-molecular-representations/">MolBERT</a>, GROVER) across diverse datasets. The authors frame the paper around a central thesis:</p>
<blockquote>
<p>&ldquo;A model cannot save an unqualified dataset which cannot remedy an improper evaluation for an ambiguous chemical space generalization claim.&rdquo;</p></blockquote>
<p>Key findings on representations and models:</p>
<ul>
<li><strong>RF on RDKit2D descriptors</strong> achieves the best performance on BACE, BBBP, ESOL, and Lipop under scaffold split. MolBERT only matches RF in HIV.</li>
<li><strong>Concatenating RDKit2D descriptors to GROVER&rsquo;s learned embeddings (GROVER_RDKit)</strong> significantly improves performance, suggesting the learned representations alone are insufficient and that fixed descriptors carry substantial predictive signal.</li>
<li><strong>For binding activity datasets</strong> (<a href="https://en.wikipedia.org/wiki/Opioid_receptor">opioid receptors</a> MOR, DOR, KOR), MorganBits fingerprints outperform other representations, consistent with the structural nature of binding.</li>
<li><strong>PhysChem descriptors</strong> excel on datasets where properties correlate strongly with simple molecular features (e.g., ESOL has a near-linear relationship between MolLogP and solubility), but perform poorly on binding activity datasets where the relationship is more complex.</li>
</ul>
<h2 id="experimental-setup-62820-models-across-diverse-datasets">Experimental Setup: 62,820 Models Across Diverse Datasets</h2>
<h3 id="models-evaluated">Models evaluated</h3>
<p>The study evaluates nine models across three categories:</p>
<ul>
<li><strong>Traditional ML</strong>: Random Forest (RF), Support Vector Machine (SVM), XGBoost</li>
<li><strong>Regular neural networks</strong>: RNN (GRU variant), GCN, GIN</li>
<li><strong>Pretrained models</strong>: MolBERT (SMILES-based, ~85M parameters, pretrained on 1.6M molecules), GROVER (graph-based, ~48M parameters, pretrained on ~10M molecules), and GROVER_RDKit (GROVER with concatenated RDKit2D descriptors)</li>
</ul>
<h3 id="molecular-representations">Molecular representations</h3>
<p>Six fixed representations are evaluated: RDKit2D descriptors (200 features), PhysChem descriptors (11 features), MACCS keys, MorganBits fingerprints, MorganCounts fingerprints, and AtomPairs fingerprints. Morgan fingerprints use radius 2 and 2048 bits after testing showed little difference between common parameter choices.</p>
<h3 id="datasets">Datasets</h3>
<table>
  <thead>
      <tr>
          <th>Category</th>
          <th>Datasets</th>
          <th>Task Type</th>
          <th>Source</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>MoleculeNet benchmarks</td>
          <td>BACE, BBBP, HIV</td>
          <td>Classification</td>
          <td>MoleculeNet</td>
      </tr>
      <tr>
          <td>MoleculeNet benchmarks</td>
          <td>ESOL, FreeSolv, Lipop</td>
          <td>Regression</td>
          <td>MoleculeNet</td>
      </tr>
      <tr>
          <td>Opioids-related</td>
          <td>MDR1, CYP2D6, CYP3A4, MOR, DOR, KOR</td>
          <td>Classification + Regression</td>
          <td>ChEMBL</td>
      </tr>
      <tr>
          <td>Activity datasets</td>
          <td>24 targets</td>
          <td>Regression</td>
          <td>Cortes-Ciriano et al.</td>
      </tr>
      <tr>
          <td>Activity datasets</td>
          <td>30 targets (MoleculeACE)</td>
          <td>Regression</td>
          <td>Tilborg et al.</td>
      </tr>
      <tr>
          <td>Descriptor datasets</td>
          <td>MolWt, NumAtoms (16 sizes each)</td>
          <td>Regression</td>
          <td>ZINC250k</td>
      </tr>
  </tbody>
</table>
<h3 id="evaluation-protocol">Evaluation protocol</h3>
<ul>
<li>Both scaffold and random splits (80:10:10 ratio)</li>
<li><strong>30 different random seeds</strong> per experiment for statistical rigor</li>
<li><a href="https://en.wikipedia.org/wiki/Mann%E2%80%93Whitney_U_test">Mann-Whitney U test</a> for pairwise significance ($p &lt; 0.05$, two-sided)</li>
<li>Multiple metrics per task: AUROC, AUPRC, PPV, NPV for classification; RMSE, MAE, $R^2$, Pearson $R$ for regression</li>
</ul>
<h3 id="key-metrics">Key metrics</h3>
<p>Classification:</p>
<p>$$
\text{PPV} = \frac{\text{TP}}{\text{TP} + \text{FP}}
$$</p>
<p>$$
\text{NPV} = \frac{\text{TN}}{\text{TN} + \text{FN}}
$$</p>
<p>Regression:</p>
<p>$$
\text{RMSE} = \sqrt{\frac{1}{N} \sum_{i=1}^{N} (y_i - \hat{y}_i)^2}
$$</p>
<p>$$
\text{MAE} = \frac{1}{N} \sum_{i=1}^{N} |y_i - \hat{y}_i|
$$</p>
<p>$$
\text{Pearson}_R = \frac{\sum_{i=1}^{N} (y_i - \bar{y}_{obs})(\hat{y}_i - \bar{y}_{pred})}{\sqrt{\sum_{i=1}^{N} (y_i - \bar{y}_{obs})^2 \sum_{i=1}^{N} (\hat{y}_i - \bar{y}_{pred})^2}}
$$</p>
<p>$$
R^2 = 1 - \frac{\sum_{i=1}^{N} (y_i - \hat{y}_i)^2}{\sum_{i=1}^{N} (y_i - \bar{y}_{obs})^2}
$$</p>
<h2 id="key-findings-metrics-activity-cliffs-and-dataset-size">Key Findings: Metrics, Activity Cliffs, and Dataset Size</h2>
<h3 id="statistical-testing-is-essential">Statistical testing is essential</h3>
<p>Without statistical tests, there is a real risk of drawing incorrect conclusions. Analysis of individual splits shows that in certain splits, MolBERT or GROVER can appear to outperform RF, even though on aggregate with proper statistical testing, RF is significantly better. For example, in BBBP, RF dominates in 20 of 30 splits, but the remaining 10 could mislead a researcher using only a single split.</p>
<h3 id="metric-choice-changes-conclusions">Metric choice changes conclusions</h3>
<p>Different evaluation metrics can lead to contradictory conclusions about the same models:</p>
<ul>
<li>In BBBP under scaffold split, RF significantly outperforms other models by AUROC, but shows similar performance when evaluated by PPV or NPV.</li>
<li>In FreeSolv, GROVER outperforms RF by Pearson $R$ ($p &lt; 0.05$) but shows similar performance by $R^2$.</li>
<li>Pearson $R$ can overestimate $R^2$: even when $R^2$ drops to zero or negative, Pearson $R$ can remain around 0.5.</li>
<li>AUROC can be over-optimistic, especially on imbalanced datasets like CYP2D6 and CYP3A4.</li>
</ul>
<p>The authors argue that PPV and NPV are more practically relevant for <a href="/notes/chemistry/molecular-design/generation/evaluation/molscore-scoring-benchmarking-framework/">virtual screening</a> than AUROC or AUPRC, since the goal is to identify true hits among predicted positives (or true non-binders among predicted negatives).</p>
<h3 id="activity-cliffs-pose-a-major-challenge">Activity cliffs pose a major challenge</h3>
<p>Activity cliffs, defined as <a href="https://en.wikipedia.org/wiki/IC50">IC50</a> values spanning at least two orders of magnitude within one scaffold, are prevalent in the opioid-related datasets. Although AC scaffolds represent only about 10% of scaffolds, they encompass 25-46% of all molecules:</p>
<table>
  <thead>
      <tr>
          <th>Dataset</th>
          <th>AC scaffolds (%)</th>
          <th>AC molecules (%)</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>MDR1</td>
          <td>62 (10.2%)</td>
          <td>594 (41.3%)</td>
      </tr>
      <tr>
          <td>CYP2D6</td>
          <td>124 (9.3%)</td>
          <td>710 (31.0%)</td>
      </tr>
      <tr>
          <td>CYP3A4</td>
          <td>146 (7.2%)</td>
          <td>926 (25.2%)</td>
      </tr>
      <tr>
          <td>MOR</td>
          <td>213 (13.1%)</td>
          <td>1627 (46.1%)</td>
      </tr>
      <tr>
          <td>DOR</td>
          <td>178 (11.6%)</td>
          <td>1342 (41.6%)</td>
      </tr>
      <tr>
          <td>KOR</td>
          <td>218 (13.1%)</td>
          <td>1502 (45.2%)</td>
      </tr>
  </tbody>
</table>
<p>Prediction performance is consistently worse for AC molecules, indicating limited intra-scaffold generalization. Removing edge-case molecules (those sharing scaffolds with pIC50 spanning 5 to 7) from test sets generally improves classification performance, confirming that activity cliffs are a key source of prediction error.</p>
<h3 id="dataset-size-is-critical-for-representation-learning">Dataset size is critical for representation learning</h3>
<p>Experiments on descriptor datasets (predicting MolWt and NumAtoms) reveal clear patterns:</p>
<ul>
<li>With fewer than 1K data points, traditional ML on fixed representations outperforms all neural network models except pretrained GROVER, which shows competitive performance in the low-data regime.</li>
<li>MolBERT shows severely limited performance (RMSE &gt; 200 for MolWt) with fewer than 10K data points.</li>
<li>RNN achieves the best performance when dataset size exceeds 10K, demonstrating the promise of representation learning in the &ldquo;big-data&rdquo; regime.</li>
<li>SVM achieves near-perfect RMSE (close to zero) on datasets larger than 10K when paired with AtomPairs fingerprints.</li>
<li>GROVER&rsquo;s performance does not substantially improve with increasing dataset size, while MolBERT improves at 100K but is slow to benefit from more data.</li>
</ul>
<h3 id="representation-learning-models-show-higher-metric-variability">Representation learning models show higher metric variability</h3>
<p>Representation learning models, particularly GROVER, exhibit higher variability in performance metrics across splits. This variability correlates negatively with mean performance: models with higher variability tend to perform worse on average. The authors emphasize the importance of reporting metric variability alongside means.</p>
<h3 id="scaffold-split-versus-random-split">Scaffold split versus random split</h3>
<p>Prediction performance under scaffold split is consistently worse than under random split, confirming the inter-scaffold generalization challenge. Notably, random split alleviates the intra-scaffold generalization challenge because some AC scaffolds are seen during training.</p>
<h3 id="descriptors-correlate-with-specific-properties">Descriptors correlate with specific properties</h3>
<p>PhysChem descriptors excel on datasets where molecular properties correlate with simple descriptors (e.g., MolLogP has near $-1$ correlation with ESOL labels). For binding activity datasets, correlation coefficients mostly fall within $[-0.5, 0.5]$, explaining why PhysChem descriptors show limited performance on those tasks, while structural fingerprints are more useful.</p>
<h2 id="limitations-and-future-directions">Limitations and Future Directions</h2>
<p>The authors acknowledge several limitations:</p>
<ol>
<li><strong>Uncertainty from model training</strong> (random initialization, mini-batch shuffling) was not fully addressed. Ensembling was not evaluated due to computational cost.</li>
<li><strong>Experimental uncertainty in labels</strong> (noise, measurement error in pIC50 values) was not modeled, though it can be <a href="https://en.wikipedia.org/wiki/Homoscedasticity_and_heteroscedasticity">heteroscedastic</a> and impact performance.</li>
<li><strong>Model explainability</strong> was not covered, although it is important for building trust in AI tools for drug discovery.</li>
<li>The study focused on GROVERbase only (not GROVERlarge) due to computational constraints.</li>
</ol>
<p>Future directions include: exploring better ways to use fixed representations alongside learned ones, developing techniques for chemical space generalization (both inter- and intra-scaffold), incorporating experimental uncertainty into model training and evaluation, and generating larger high-quality datasets to fully harness representation learning models.</p>
<hr>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<h3 id="data">Data</h3>
<table>
  <thead>
      <tr>
          <th>Purpose</th>
          <th>Dataset</th>
          <th>Size</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Benchmark</td>
          <td>MoleculeNet (BACE, BBBP, HIV, ESOL, FreeSolv, Lipop)</td>
          <td>642-41,127 molecules</td>
          <td>Downloaded from MolMapNet; max length &lt; 400</td>
      </tr>
      <tr>
          <td>Activity</td>
          <td>Opioids-related (MDR1, CYP2D6, CYP3A4, MOR, DOR, KOR)</td>
          <td>Varies</td>
          <td>Collected from ChEMBL27; pIC50 values</td>
      </tr>
      <tr>
          <td>Activity</td>
          <td>Cortes-Ciriano et al. 24 targets</td>
          <td>Varies</td>
          <td>Activity data for drug targets</td>
      </tr>
      <tr>
          <td>Activity</td>
          <td>MoleculeACE 30 targets</td>
          <td>Varies</td>
          <td>Activity cliffs emphasis</td>
      </tr>
      <tr>
          <td>Descriptor</td>
          <td>MolWt, NumAtoms from <a href="/notes/chemistry/datasets/zinc-22/">ZINC250k</a></td>
          <td>0.1K to 100K</td>
          <td>16 dataset sizes per descriptor</td>
      </tr>
  </tbody>
</table>
<h3 id="algorithms">Algorithms</h3>
<ul>
<li>RF: 500 trees (following Chemprop)</li>
<li>SVM: linear kernel</li>
<li>XGBoost: gradient boosting regressor/classifier with default hyperparameters</li>
<li>RNN: GRU variant, hidden size 512, 3 fully connected layers</li>
<li>GCN/GIN: embedding dimension 300, 5 convolutional layers, hidden size 512</li>
<li>MolBERT: BERTBase architecture, 768 embedding, 12 layers, 12 heads, ~85M parameters (769 fine-tuned)</li>
<li>GROVER: GROVERbase, ~48M parameters (~5.2M fine-tuned)</li>
<li>All splits repeated 30 times with seeds 0-29</li>
</ul>
<h3 id="models">Models</h3>
<p>All model configurations, splits, and raw predictions are available in the <a href="https://github.com/dengjianyuan/Respite_MPP">GitHub repository</a>.</p>
<h3 id="evaluation">Evaluation</h3>
<p>Metrics: AUROC, AUPRC, PPV, NPV (classification); RMSE, MAE, $R^2$, Pearson $R$ (regression). Statistical testing via Mann-Whitney U test ($p &lt; 0.05$, two-sided). <a href="https://en.wikipedia.org/wiki/Youden%27s_J_statistic">Youden&rsquo;s $J$ statistic</a> used to determine classification threshold for PPV/NPV.</p>
<h3 id="hardware">Hardware</h3>
<p>All neural network experiments run on a single NVIDIA V100 GPU for 100 epochs. Batch size 32 for most experiments; 256 for GROVER on HIV due to compute time (MolBERT takes ~3 hours per split on HIV at batch size 32; GROVER takes ~5 hours at batch size 256). The study is partially funded by Stony Brook University OVPR Seed Grant, using the AI Institute at Stony Brook for computational resources.</p>
<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/dengjianyuan/Respite_MPP">Respite_MPP</a></td>
          <td>Code</td>
          <td>Unknown</td>
          <td>Code, data, and raw predictions</td>
      </tr>
      <tr>
          <td><a href="https://doi.org/10.1038/s41467-023-41948-6">Nature Communications article</a></td>
          <td>Paper</td>
          <td>CC-BY-4.0</td>
          <td>Open access</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="paper-information">Paper Information</h2>
<p><strong>Citation</strong>: Deng, J., Yang, Z., Wang, H., Ojima, I., Samaras, D., &amp; Wang, F. (2023). A systematic study of key elements underlying molecular property prediction. <em>Nature Communications</em>, 14, 6395. <a href="https://doi.org/10.1038/s41467-023-41948-6">https://doi.org/10.1038/s41467-023-41948-6</a></p>
<p><strong>Publication</strong>: Nature Communications 2023</p>
<p><strong>Additional Resources</strong>:</p>
<ul>
<li><a href="https://github.com/dengjianyuan/Respite_MPP">Respite_MPP GitHub Repository</a></li>
</ul>
<h2 id="citation">Citation</h2>
<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>{deng2023systematic,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{A systematic study of key elements underlying molecular property prediction}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Deng, Jianyuan and Yang, Zhibo and Wang, Hehe and Ojima, Iwao and Samaras, Dimitris and Wang, Fusheng}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span>=<span style="color:#e6db74">{Nature Communications}</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">{6395}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2023}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span>=<span style="color:#e6db74">{10.1038/s41467-023-41948-6}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>Neural Scaling of Deep Chemical Models</title><link>https://hunterheidenreich.com/notes/chemistry/molecular-representations/encoders/neural-scaling-of-deep-chemical-models/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/chemistry/molecular-representations/encoders/neural-scaling-of-deep-chemical-models/</guid><description>Frey et al. discover neural scaling laws for chemical LLMs and GNN interatomic potentials, showing power-law loss improvements with scale.</description><content:encoded><![CDATA[<h2 id="what-kind-of-paper-is-this">What kind of paper is this?</h2>
<p>This is a <strong>discovery paper</strong> that identifies empirical neural scaling laws in two distinct domains of chemical deep learning: large language models (LLMs) for generative chemistry and graph neural networks (GNNs) for machine-learned interatomic potentials. The paper also introduces training performance estimation (TPE) as a practical tool for accelerating hyperparameter optimization in these domains.</p>
<h2 id="why-scaling-laws-matter-for-chemistry">Why scaling laws matter for chemistry</h2>
<p>Neural scaling laws, first characterized for NLP models by Kaplan et al. (2020), describe how model loss decreases as a power law with increasing model size, dataset size, or compute:</p>
<p>$$
L(R) = \alpha R^{-\beta}
$$</p>
<p>where $\alpha$ is a coefficient, $\beta$ is the scaling exponent, and $R$ is the resource being scaled (parameters, data, or compute). These relationships have guided resource allocation decisions in NLP and computer vision, but their applicability to scientific deep learning was unknown.</p>
<p>Chemical deep learning differs from standard NLP and vision tasks in several key ways. Physics-based priors (like symmetry constraints) may reduce the need for massive scale. The heterogeneity of chemical space and molecular tasks makes general pre-training more challenging. There are no established default architectures, datasets, or training recipes at large scale for chemistry.</p>
<p>This paper asks: do the same scaling behaviors hold for chemical models, and how do physical priors affect them?</p>
<h2 id="training-performance-estimation-for-efficient-scaling">Training performance estimation for efficient scaling</h2>
<p>Before running expensive scaling experiments, the authors needed a way to efficiently select hyperparameters. They introduced TPE, a generalization of training speed estimation (TSE) to new domains. TSE computes the cumulative training loss over the first $T$ epochs:</p>
<p>$$
\text{TSE} = \sum_{t=1}^{T} \left( \frac{1}{B} \sum_{i=1}^{B} \mathcal{L}\left(f_{\theta(t,i)}(\mathbf{X}_i), \mathbf{y}_i\right) \right)
$$</p>
<p>where $B$ is the number of training steps per epoch, $\mathcal{L}$ is the loss function, and $f_{\theta(t,i)}$ is the network at epoch $t$ and mini-batch $i$. A linear regression then predicts converged loss from early-training TSE:</p>
<p>$$
L = m \times \text{TSE} + b
$$</p>
<p>Using only 20% of the total training budget, TPE achieves $R^2 = 0.98$ and Spearman&rsquo;s $\rho = 1.0$ for ChemGPT on the MOSES dataset. For GNNs, it achieves $R^2 \geq 0.86$ and $\rho \geq 0.92$ across SchNet, PaiNN, and SpookyNet. This enables discarding suboptimal configurations early, saving up to 90% of compute.</p>
<h2 id="chemgpt-scaling-chemical-language-models">ChemGPT: scaling chemical language models</h2>
<p>ChemGPT is a GPT-3-style autoregressive transformer for molecular generation. It uses GPT-Neo as its backbone with a SELFIES tokenizer, factorizing the probability of a molecular sequence as:</p>
<p>$$
p(x) = \prod_{i=1}^{n} p\left(s_i \mid s_1, \dots, s_{i-1}\right)
$$</p>
<p>The authors trained ChemGPT models ranging from ~78K to over 1 billion non-embedding parameters on subsets of PubChem10M (up to ~10 million molecules, or ~300 million tokens). Key findings from the scaling experiments:</p>
<ul>
<li><strong>Pre-training loss monotonically improves</strong> with increasing dataset size up to nearly 10 million molecules, with no saturation observed.</li>
<li><strong>For a fixed data budget</strong>, increasing model size provides monotonic improvements until models reach ~1 billion parameters.</li>
<li><strong>The scaling exponent</strong> $\beta = 0.17 \pm 0.01$ for the largest dataset (after excluding the three largest models from the power-law fit), and $\beta = 0.30 \pm 0.01$ for the next largest dataset.</li>
<li><strong>Resolution-limited regimes</strong> appear where the power-law behavior breaks down, indicating either insufficient data for a given model size or vice versa. These regimes shift depending on the data budget.</li>
</ul>
<p>An interesting observation: for small datasets, large models ($10^7$ parameters and above) still provide notable loss improvements, suggesting that scaling up model size helps even when data is limited.</p>
<h2 id="neural-force-field-scaling-with-gnns">Neural force field scaling with GNNs</h2>
<p>For tasks requiring three-dimensional molecular geometry, the authors studied GNN-based neural force fields (NFFs). These models predict energies $\hat{E} = f_\theta(X)$ and derive forces by differentiation:</p>
<p>$$
\hat{F}_{ij} = -\frac{\partial \hat{E}}{\partial r_{ij}}
$$</p>
<p>Training uses an L1 loss over energies and forces:</p>
<p>$$
\mathcal{L} = \frac{1}{N} \sum_{i=1}^{N} \left[ \alpha_E | E_i - \hat{E}_i | + \alpha_F | \mathbf{F}_i - \hat{\mathbf{F}}_i | \right]
$$</p>
<p>Four NFF architectures were studied, spanning a range of physical priors:</p>
<table>
  <thead>
      <tr>
          <th>Model</th>
          <th>Type</th>
          <th>Key Characteristic</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>SchNet</td>
          <td>E(3) invariant</td>
          <td>Continuous filter convolutions</td>
      </tr>
      <tr>
          <td>PaiNN</td>
          <td>E(3) equivariant</td>
          <td>Equivariant message passing</td>
      </tr>
      <tr>
          <td>Allegro</td>
          <td>E(3) equivariant</td>
          <td>Local, learned many-body functions</td>
      </tr>
      <tr>
          <td>SpookyNet</td>
          <td>E(3) equivariant</td>
          <td>Non-local interactions, empirical corrections</td>
      </tr>
  </tbody>
</table>
<p>Model capacity is parameterized as $c = d \times w$ (depth times width). Models were trained on subsets of the ANI-1x dataset (up to 100,000 geometries, corresponding to ~4.5 million force labels).</p>
<p>Key GNN scaling findings:</p>
<ul>
<li><strong>PaiNN shows monotonic loss improvement</strong> with increasing dataset size and strong correlation between converged loss and model capacity (Spearman&rsquo;s $\rho \geq 0.88$).</li>
<li><strong>Equivariant GNNs (PaiNN, Allegro) show better scaling efficiency</strong> than invariant GNNs (SchNet), with larger $\beta$ values.</li>
<li><strong>The scaling exponent for equivariant GNNs</strong> is $\beta = 0.26$, indicating that physics-based equivariance priors provide greater sample efficiency that persists to much larger and more chemically diverse datasets than previously studied.</li>
<li><strong>A transition at $10^4$ datapoints</strong> shows nearly perfect rank correlation between model capacity and converged loss ($\rho \geq 0.93$), suggesting this may be a threshold where models move from memorization to generalization.</li>
</ul>
<h2 id="results-and-practical-implications">Results and practical implications</h2>
<p>The scaling results provide actionable guidance for resource allocation:</p>
<ul>
<li>For <strong>chemical LLMs with large data budgets</strong>, the greatest loss improvements come from scaling up small models (around $10^5$ parameters).</li>
<li>For <strong>small data budgets</strong>, rapid improvements come from scaling medium-sized models ($10^7$ parameters).</li>
<li>For <strong>NFFs</strong>, low-capacity models show diminishing returns with more data, while high-capacity models show rapid improvements with increasing dataset size.</li>
<li><strong>Neither model type has saturated</strong> with respect to model size, dataset size, or compute, suggesting substantial room for improvement with further scaling.</li>
</ul>
<p>The 300-million-parameter ChemGPT trained on 300 million tokens and the PaiNN model with capacity ~1,000 trained on $10^5$ frames achieved the minimum losses in their respective scaling plots, providing concrete targets for practitioners.</p>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<p><strong>Data:</strong></p>
<ul>
<li>PubChem10M (10M SMILES strings, via DeepChem)</li>
<li>MOSES (2M molecules, for TPE validation)</li>
<li>ANI-1x (5M DFT calculations, via Figshare)</li>
<li>Revised MD-17 (10 small organic molecules, 10,000 frames for TPE)</li>
</ul>
<p><strong>Models:</strong></p>
<ul>
<li>ChemGPT: GPT-Neo backbone, 24 layers, widths from 16 to 2,048, sizes from ~78K to ~1.2B non-embedding parameters</li>
<li>SchNet, PaiNN, Allegro, SpookyNet: widths of 16, 64, 256; depths of 2, 3, 4; 5 Angstrom cutoff</li>
</ul>
<p><strong>Training:</strong></p>
<ul>
<li>ChemGPT: AdamW optimizer, learning rate $2 \times 10^{-5}$, batch size 8 per GPU, 10 epochs, cross-entropy loss</li>
<li>GNNs: Adam optimizer, learning rate scheduler (halved after 30 epochs without improvement), early stopping after 50 stagnant epochs, max 1,000 epochs, L1 loss (force-only training)</li>
</ul>
<p><strong>Hardware:</strong></p>
<ul>
<li>NVIDIA Volta V100 GPUs (32 GB), 2 GPUs per node</li>
<li>PyTorch with distributed data parallel (DDP), PyTorch Lightning, LitMatter</li>
</ul>
<p><strong>Code:</strong> <a href="https://github.com/ncfrey/litmatter">LitMatter repository</a></p>
<h2 id="paper-information">Paper Information</h2>
<p><strong>Citation:</strong> Frey, N.C., Soklaski, R., Axelrod, S. et al. Neural scaling of deep chemical models. <em>Nat Mach Intell</em> <strong>5</strong>, 1297-1305 (2023).</p>
<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>{frey2023neural,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{Neural scaling of deep chemical models}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Frey, Nathan C. and Soklaski, Ryan and Axelrod, Simon and Samsi, Siddharth and G{\&#39;o}mez-Bombarelli, Rafael and Coley, Connor W. and Gadepally, Vijay}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span>=<span style="color:#e6db74">{Nature Machine Intelligence}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span>=<span style="color:#e6db74">{5}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">number</span>=<span style="color:#e6db74">{11}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">pages</span>=<span style="color:#e6db74">{1297--1305}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2023}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">publisher</span>=<span style="color:#e6db74">{Nature Publishing Group}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span>=<span style="color:#e6db74">{10.1038/s42256-023-00740-3}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>Language Models Learn Complex Molecular Distributions</title><link>https://hunterheidenreich.com/notes/chemistry/molecular-design/property-prediction/lm-complex-molecular-distributions/</link><pubDate>Sun, 22 Mar 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/chemistry/molecular-design/property-prediction/lm-complex-molecular-distributions/</guid><description>RNN language models trained on SMILES and SELFIES outperform graph models at learning complex, multi-modal, and large-scale molecular distributions.</description><content:encoded><![CDATA[<h2 id="rnn-language-models-as-flexible-molecular-generators">RNN Language Models as Flexible Molecular Generators</h2>
<p>This is an <strong>Empirical</strong> paper that investigates the capacity of simple recurrent neural network (RNN) language models to learn complex molecular distributions. The core finding is that LSTM-based models trained on <a href="/notes/chemistry/molecular-representations/notations/smiles/">SMILES</a> (SM-RNN) or <a href="/notes/chemistry/molecular-representations/notations/selfies/">SELFIES</a> (SF-RNN) string representations consistently outperform popular graph generative models (JTVAE, CGVAE) across three increasingly challenging generative modeling tasks. The paper positions language models as flexible, scalable alternatives to graph-based approaches for molecular generation.</p>
<h2 id="scaling-beyond-standard-benchmarks">Scaling Beyond Standard Benchmarks</h2>
<p>Most molecular generative models are evaluated on relatively small, drug-like molecules from datasets like <a href="https://en.wikipedia.org/wiki/ZINC_database">ZINC</a> or <a href="/notes/chemistry/molecular-design/generation/evaluation/molecular-sets-moses/">MOSES</a>. These standard benchmarks do not test whether models can handle larger, more structurally diverse molecules or distributions with complex shapes (multi-modal, heavy-tailed). This gap matters because there is increasing interest in larger, more complex molecules for therapeutics, including peptides and natural products.</p>
<p>Graph generative models like JTVAE and CGVAE impose structural constraints (tree decompositions, valency restrictions) that help with validity but limit their ability to scale. Language models, by contrast, only need to generate a single character sequence, making them inherently more flexible.</p>
<h2 id="three-challenging-generative-modeling-tasks">Three Challenging Generative Modeling Tasks</h2>
<p>The paper introduces three benchmark tasks designed to stress-test generative models:</p>
<h3 id="task-1-penalized-logp-distribution">Task 1: Penalized LogP Distribution</h3>
<p>A dataset of approximately 160K molecules from ZINC15 with penalized <a href="https://en.wikipedia.org/wiki/Partition_coefficient">LogP</a> scores exceeding 4.0. The training distribution is sharply peaked around 4.0 to 4.5 with a subtle tail extending above 6.0. Molecules in the tail tend to have long carbon chains and fewer rings. The challenge is learning this skewed distribution rather than just finding individual high-scoring molecules.</p>
<h3 id="task-2-multi-modal-distribution">Task 2: Multi-Modal Distribution</h3>
<p>A composite dataset of approximately 200K molecules drawn from four sources with distinct molecular weight ranges:</p>
<ul>
<li><a href="/notes/chemistry/datasets/gdb-13/">GDB-13</a> (MW $\leq$ 185)</li>
<li>ZINC (185 $\leq$ MW $\leq$ 425)</li>
<li>Harvard Clean Energy Project (460 $\leq$ MW $\leq$ 600)</li>
<li>POLYMERS (MW $&gt;$ 600)</li>
</ul>
<p>Models must learn to generate from all four modes simultaneously, each with very different molecular structures.</p>
<h3 id="task-3-large-scale-molecules">Task 3: Large-Scale Molecules</h3>
<p>The largest molecules in <a href="https://en.wikipedia.org/wiki/PubChem">PubChem</a> with more than 100 heavy atoms, yielding approximately 300K molecules with molecular weights ranging from 1,250 to 5,000. These include small biomolecules, photovoltaics, peptides, and cyclic peptides. This task is particularly challenging because the SMILES/SELFIES strings are very long.</p>
<h2 id="evaluation-by-distributional-fidelity">Evaluation by Distributional Fidelity</h2>
<p>The evaluation framework focuses on how well a model learns the full training distribution rather than generating individual good molecules. The primary quantitative metric is the <a href="https://en.wikipedia.org/wiki/Wasserstein_metric">Wasserstein distance</a> (earth mover&rsquo;s distance) between molecular property distributions of generated and training molecules:</p>
<p>$$W(P, Q) = \inf_{\gamma \in \Gamma(P,Q)} \int | x - y | , d\gamma(x, y)$$</p>
<p>Properties evaluated include LogP, synthetic accessibility (SA), quantitative estimate of drug-likeness (QED), molecular weight (MW), Bertz complexity (BCT), and natural product likeness (NP). An oracle baseline is computed by measuring the Wasserstein distance between different random samples of the training data itself.</p>
<p>Standard metrics (validity, uniqueness, novelty) are also reported but are secondary to distributional fidelity.</p>
<h2 id="architecture-lstm-language-models">Architecture: LSTM Language Models</h2>
<p>The language models use standard LSTM architectures trained autoregressively on molecular strings. Two variants are compared:</p>
<ul>
<li><strong>SM-RNN</strong>: Trained on canonical SMILES</li>
<li><strong>SF-RNN</strong>: Trained on SELFIES representations</li>
</ul>
<p>Hyperparameters are tuned via random search over learning rate ($\in [0.0001, 0.001]$), hidden units ($\in [100, 1000]$), layers (1 to 5), and dropout ($\in [0.0, 0.5]$). Model selection uses a combination of standard metrics and Wasserstein distance rankings.</p>
<p>The graph model baselines include JTVAE (junction tree VAE) and CGVAE (constrained graph VAE), along with several additional baselines (MolGAN, GraphNVP, and others).</p>
<h2 id="results-language-models-outperform-graph-models-across-all-tasks">Results: Language Models Outperform Graph Models Across All Tasks</h2>
<h3 id="penalized-logp">Penalized LogP</h3>
<p>Both RNN models learn the sharp training distribution far better than graph models. The SM-RNN achieves the lowest Wasserstein distances across most properties. The graph models produce substantial out-of-distribution mass around penalized LogP scores of 1.75 to 2.25, failing to capture the peaked nature of the training distribution.</p>
<p>Critically, the RNNs also learn the subtle tail above penalized LogP of 6.0, generating molecules with long carbon chains and fewer rings that match the structural characteristics of high-scoring training molecules. CGVAE and JTVAE almost entirely miss this tail.</p>
<h3 id="multi-modal-distribution">Multi-Modal Distribution</h3>
<p>Both RNN models capture all four modes of the training distribution. JTVAE entirely misses the GDB13 mode and poorly learns the ZINC and CEP modes. CGVAE learns GDB13 but misses the CEP mode. The SM-RNN again achieves the best Wasserstein metrics.</p>
<h3 id="large-scale-molecules">Large-Scale Molecules</h3>
<p>This is the most discriminating task. Both JTVAE and CGVAE completely fail to train on these large molecules. JTVAE&rsquo;s tree decomposition produces a vocabulary of approximately 11,000 substructures, making training intractable. Only the RNN models succeed, with the SF-RNN achieving slightly better distributional match due to SELFIES guaranteeing 100% validity even for very long strings.</p>
<p>Both RNN models also learn the bimodal LogP structure within the large-molecule distribution and can generate molecules with substructures resembling peptides, including backbone chains and standard amino acid side chains.</p>
<h3 id="summary-of-wasserstein-distance-results">Summary of Wasserstein Distance Results</h3>
<table>
  <thead>
      <tr>
          <th>Task</th>
          <th>Model</th>
          <th>LogP</th>
          <th>SA</th>
          <th>QED</th>
          <th>MW</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>LogP</td>
          <td>SM-RNN</td>
          <td>0.095</td>
          <td>0.031</td>
          <td>0.007</td>
          <td>3.3</td>
      </tr>
      <tr>
          <td>LogP</td>
          <td>SF-RNN</td>
          <td>0.177</td>
          <td>0.290</td>
          <td>0.010</td>
          <td>6.3</td>
      </tr>
      <tr>
          <td>LogP</td>
          <td>JTVAE</td>
          <td>0.536</td>
          <td>0.289</td>
          <td>0.081</td>
          <td>35.9</td>
      </tr>
      <tr>
          <td>LogP</td>
          <td>CGVAE</td>
          <td>1.000</td>
          <td>2.120</td>
          <td>0.115</td>
          <td>69.3</td>
      </tr>
      <tr>
          <td>Multi</td>
          <td>SM-RNN</td>
          <td>0.081</td>
          <td>0.025</td>
          <td>0.006</td>
          <td>5.5</td>
      </tr>
      <tr>
          <td>Multi</td>
          <td>SF-RNN</td>
          <td>0.286</td>
          <td>0.179</td>
          <td>0.023</td>
          <td>11.4</td>
      </tr>
      <tr>
          <td>Multi</td>
          <td>JTVAE</td>
          <td>0.495</td>
          <td>0.274</td>
          <td>0.034</td>
          <td>27.7</td>
      </tr>
      <tr>
          <td>Multi</td>
          <td>CGVAE</td>
          <td>1.617</td>
          <td>1.802</td>
          <td>0.076</td>
          <td>30.3</td>
      </tr>
      <tr>
          <td>Large</td>
          <td>SM-RNN</td>
          <td>1.367</td>
          <td>0.213</td>
          <td>0.003</td>
          <td>124.5</td>
      </tr>
      <tr>
          <td>Large</td>
          <td>SF-RNN</td>
          <td>1.095</td>
          <td>0.342</td>
          <td>0.010</td>
          <td>67.3</td>
      </tr>
      <tr>
          <td>Large</td>
          <td>JTVAE</td>
          <td>&ndash;</td>
          <td>&ndash;</td>
          <td>&ndash;</td>
          <td>&ndash;</td>
      </tr>
      <tr>
          <td>Large</td>
          <td>CGVAE</td>
          <td>&ndash;</td>
          <td>&ndash;</td>
          <td>&ndash;</td>
          <td>&ndash;</td>
      </tr>
  </tbody>
</table>
<h3 id="smiles-vs-selfies-trade-off">SMILES vs. SELFIES Trade-off</h3>
<p>An interesting finding is that SMILES and SELFIES RNNs each have complementary strengths. The SF-RNN consistently achieves better standard metrics (validity, uniqueness, novelty) across all tasks, while the SM-RNN achieves better Wasserstein distance metrics. The authors suggest that the SELFIES grammar may reduce memorization of the training data, improving novelty but slightly hurting distributional fidelity.</p>
<h2 id="limitations">Limitations</h2>
<p>The authors acknowledge several limitations. Language models cannot account for molecular geometry or 3D information, which is important for many applications. The study evaluates distributional fidelity but does not test downstream utility for specific molecular design tasks (e.g., optimizing for a particular biological target). Additionally, while the graph models (JTVAE, CGVAE) are more interpretable, the language models operate as black boxes over string representations. The comparison is also limited to two specific graph model architectures, and more recent or specialized graph models may close the performance gap. Finally, trained model weights are only available upon request rather than being publicly released.</p>
<h2 id="reproducibility">Reproducibility</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/danielflamshep/genmoltasks">danielflamshep/genmoltasks</a></td>
          <td>Dataset</td>
          <td>Apache-2.0</td>
          <td>Processed training data and generated samples</td>
      </tr>
  </tbody>
</table>
<p><strong>Data</strong>: Three custom datasets constructed from ZINC15, <a href="/notes/chemistry/datasets/gdb-13/">GDB-13</a>, Harvard Clean Energy Project, POLYMERS, and PubChem. Processed data available at the GitHub repository.</p>
<p><strong>Code</strong>: LSTM networks implemented in PyTorch using the char-rnn code from the <a href="https://github.com/molecularsets/moses">MOSES repository</a>. Baselines use the official <a href="https://github.com/wengong-jin/icml18-jtnn">JTVAE</a> and <a href="https://github.com/microsoft/constrained-graph-variational-autoencoder">CGVAE</a> implementations. No unified training script is provided in the repository.</p>
<p><strong>Evaluation</strong>: Wasserstein distances computed using SciPy. Molecular properties computed using RDKit. 10K molecules generated from each model for evaluation.</p>
<p><strong>Hyperparameters</strong>: Task-specific configurations reported. For example, the LogP task SM-RNN uses 2 hidden layers with 400 units, dropout of 0.2, and learning rate of 0.0001.</p>
<p><strong>Hardware</strong>: Models were trained using the Canada Computing Systems (Compute Canada). Specific GPU types and training times are not reported.</p>
<hr>
<h2 id="paper-information">Paper Information</h2>
<p><strong>Citation</strong>: Flam-Shepherd, D., Zhu, K., &amp; Aspuru-Guzik, A. (2022). Language models can learn complex molecular distributions. <em>Nature Communications</em>, 13, 3293. <a href="https://doi.org/10.1038/s41467-022-30839-x">https://doi.org/10.1038/s41467-022-30839-x</a></p>
<p><strong>Additional Resources</strong>:</p>
<ul>
<li><a href="https://github.com/danielflamshep/genmoltasks">GitHub: danielflamshep/genmoltasks</a></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>{flamshepherd2022language,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{Language models can learn complex molecular distributions}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Flam-Shepherd, Daniel and Zhu, Kevin and Aspuru-Guzik, Al{\&#39;a}n}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span>=<span style="color:#e6db74">{Nature Communications}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span>=<span style="color:#e6db74">{13}</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">{3293}</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">{Nature Publishing Group}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span>=<span style="color:#e6db74">{10.1038/s41467-022-30839-x}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>The Nature of LUCA and Its Impact on the Early Earth System</title><link>https://hunterheidenreich.com/notes/biology/evolutionary-biology/nature-of-luca-early-earth-system/</link><pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/biology/evolutionary-biology/nature-of-luca-early-earth-system/</guid><description>Phylogenomic reconstruction of LUCA revealing a complex, 4.2 Ga old acetogen living in an established ecosystem.</description><content:encoded><![CDATA[<h2 id="what-kind-of-paper-is-this">What kind of paper is this?</h2>
<p>This is a <strong>Discovery</strong> ($\Psi_{\text{Discovery}}$) paper. While it introduces a refined implementation of molecular clock calibration (&ldquo;cross-bracing&rdquo;), the primary contribution is the biological inference regarding LUCA&rsquo;s age, genome size, and metabolic nature. The computational methods serve to characterize a specific biological entity.</p>
<h2 id="what-is-the-motivation">What is the motivation?</h2>
<p>Understanding the Last Universal Common Ancestor (LUCA) is critical for reconstructing the early evolution of life, yet consensus has been elusive due to disparate data and methods.</p>
<ul>
<li><strong>Age Conflicts:</strong> Estimates vary widely depending on fossil interpretation and molecular clock calibrations, particularly regarding the &ldquo;Late Heavy Bombardment&rdquo; (LHB) constraints.</li>
<li><strong>Physiological Uncertainty:</strong> Debates persist over whether LUCA was a simple &ldquo;progenote&rdquo; dependent on geochemistry or a complex prokaryote-grade organism.</li>
<li><strong>Environmental Context:</strong> LUCA is often modeled in isolation, ignoring the ecological interactions that would have shaped its survival and impact on the early Earth system.</li>
</ul>
<h2 id="what-is-the-novelty-here">What is the novelty here?</h2>
<p>The study integrates three advanced computational approaches to provide a holistic reconstruction of LUCA:</p>
<ul>
<li><strong>Cross-Braced Dating:</strong> It employs a &ldquo;cross-bracing&rdquo; strategy in Bayesian molecular clocks, using pre-LUCA gene duplications (paralogues) to constrain the root. This allows the same fossil calibrations to be applied to mirrored nodes, significantly reducing uncertainty.</li>
<li><strong>Probabilistic Reconciliation:</strong> It uses the ALE (Amalgamated Likelihood Estimation) algorithm to reconcile 9,365 gene family trees against the species tree. This explicitly models gene transfer, duplication, and loss, allowing for a much broader reconstruction of the proteome.</li>
<li><strong>Ecosystem Modeling:</strong> The physiological reconstruction is coupled with geochemical modeling to propose that LUCA was a member of a productive, hydrogen-recycling early ecosystem.</li>
</ul>
<h2 id="what-experiments-were-performed">What experiments were performed?</h2>
<ul>
<li><strong>Phylogenomics:</strong> Inferred a species tree from 57 single-copy marker genes across 700 diverse prokaryotic genomes (350 Archaea, 350 Bacteria) using maximum likelihood (IQ-TREE 2).</li>
<li><strong>Molecular Dating:</strong> Estimated divergence times using MCMCtree with a partitioned dataset of 5 pre-LUCA paralogue pairs (e.g., ATP synthase, EF-Tu/G). Calibrations included 13 fossil constraints and a &ldquo;soft&rdquo; maximum bound based on the Moon-forming impact (4.51 Ga).</li>
<li><strong>Metabolic Reconstruction:</strong> Reconciled 9,365 KEGG ortholog families against the species tree to calculate the posterior probability (PP) of each gene&rsquo;s presence in LUCA. Metabolic potential was inferred from genes with high PP (typically &gt;0.75).</li>
<li><strong>Genome Size Prediction:</strong> Trained a LOESS regression model on modern prokaryotes to predict LUCA&rsquo;s genome size based on the inferred number of KEGG families.</li>
</ul>
<h2 id="what-outcomesconclusions">What outcomes/conclusions?</h2>
<ul>
<li><strong>Age:</strong> LUCA lived approximately <strong>4.2 Ga</strong> (95% CI: 4.09-4.33 Ga), surprisingly soon after the Moon-forming impact (~4.5 Ga).</li>
<li><strong>Complexity:</strong> LUCA was a complex, prokaryote-grade organism with a genome size of ~2.75 Mb (encoding ~2,600 proteins), comparable to modern prokaryotes.</li>
<li><strong>Physiology:</strong>
<ul>
<li><strong>Metabolism:</strong> Anaerobic acetogen using a complete Wood-Ljungdahl pathway (WLP) for $CO_2$ fixation and an almost complete TCA cycle. Likely thermophilic (reverse gyrase present, PP = 0.97). The paper found <strong>no strong evidence for nitrogenase or nitrogen fixation</strong>.</li>
<li><strong>Immunity:</strong> Possessed 19 Class 1 (Type I and Type III) CRISPR-Cas effector protein families. Cas1 and Cas2 were absent, suggesting an early immune system capable of RNA cleavage and binding but lacking the full CRISPR adaptation machinery.</li>
</ul>
</li>
<li><strong>Ecology:</strong> LUCA likely inhabited one of two major habitats: (1) the deep ocean, where hydrothermal vents and serpentinization provided $H_2$ (supported by reverse gyrase presence, PP = 0.97, consistent with hyperthermophily), or (2) the ocean surface, where atmospheric $H_2$ from volcanism and metamorphism could fuel growth. A shallow hydrothermal vent or hot spring is also considered a possibility. LUCA was part of an established ecosystem whose metabolic by-products would have created niches for other metabolisms, including methanogenesis. If methanogens were also present, the $CH_4$ they produced would have been photochemically recycled to $H_2$ in the atmosphere, boosting biosphere productivity by at least an order of magnitude over abiotic $H_2$ input rates.</li>
<li><strong>Limitation:</strong> The placement of two small-genome lineages (CPR, Candidate Phyla Radiation, and DPANN) remained uncertain. The AU (approximately unbiased) test could not reject either topology (p = 0.517), meaning the data cannot discriminate between the two placements. This phylogenetic uncertainty affects inferences about the early bacterial and archaeal stem lineages.</li>
</ul>
<hr>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<h3 id="data">Data</h3>
<p>The study relied on publicly available genomic data and specific subsets of marker genes.</p>
<table>
  <thead>
      <tr>
          <th>Purpose</th>
          <th>Dataset</th>
          <th>Size</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>Phylogeny</strong></td>
          <td>Prokaryotic Genomes</td>
          <td>700 genomes</td>
          <td>350 Archaea, 350 Bacteria selected to maximize diversity</td>
      </tr>
      <tr>
          <td><strong>Dating</strong></td>
          <td>Pre-LUCA Paralogues</td>
          <td>5 gene pairs</td>
          <td>ATP synthase, Elongation Factor Tu/G, SRP/SRPR, Tyr/Trp-tRNA, Leu/Val-tRNA</td>
      </tr>
      <tr>
          <td><strong>Reconciliation</strong></td>
          <td>Gene Families</td>
          <td>9,365 families</td>
          <td>Clustered using KEGG Orthology (KO) identifiers</td>
      </tr>
      <tr>
          <td><strong>Calibration</strong></td>
          <td>Fossil/Isotope Records</td>
          <td>13 constraints</td>
          <td>Includes max bound at 4.51 Ga (Moon formation) and min bound at 2.95 Ga (oxygenic photosynthesis)</td>
      </tr>
  </tbody>
</table>
<h3 id="algorithms">Algorithms</h3>
<p>Key computational steps involved sequence processing, tree inference, and probabilistic reconciliation.</p>
<ul>
<li><strong>Alignment &amp; Trimming:</strong> sequences aligned with <strong>MAFFT L-INS-i</strong> (v7.407) and trimmed with <strong>BMGE</strong> (v1.12, BLOSUM30 matrix, entropy 0.5).</li>
<li><strong>Tree Inference:</strong> <strong>IQ-TREE 2</strong> (v2.1.2). Species tree: <code>LG+C60+F+G</code> (best-fit by BIC from concatenated 57-marker alignment). Gene family trees for ALE reconciliation (9,365 KEGG families): <code>LG+F+G</code> with 1,000 ultrafast bootstraps.</li>
<li><strong>Reconciliation:</strong> <strong>ALE</strong> (Amalgamated Likelihood Estimation) program <code>ALEml_undated</code> used to calculate gene presence probabilities, accounting for HGT, duplication, and loss.</li>
<li><strong>Genome Prediction:</strong> <strong>LOESS regression</strong> (Locally Estimated Scatterplot Smoothing) used to map KEGG family counts to total protein counts/genome size.</li>
</ul>
<h3 id="models">Models</h3>
<p>The analysis employed sophisticated evolutionary models to handle deep time scales and heterogeneity.</p>
<ul>
<li><strong>Substitution Models:</strong>
<ul>
<li>Species Tree: <code>LG+C60+F+G</code> (mixture model with 60 profiles, best-fit by BIC).</li>
<li>Gene Family Trees (for ALE reconciliation): <code>LG+F+G</code> with 1,000 ultrafast bootstraps.</li>
<li>Timetree inference: <code>LG+F+G4</code> for approximate likelihood calculation (CODEML), as CODEML does not implement the CAT mixture model.</li>
</ul>
</li>
<li><strong>Molecular Clock:</strong>
<ul>
<li><strong>MCMCtree</strong> (PAML v4.10.7).</li>
<li>Relaxed clock models: <strong>GBM</strong> (Geometric Brownian Motion) and <strong>ILN</strong> (Independent Lognormal).</li>
<li><strong>Cross-Bracing:</strong> Specifically models shared divergence times for duplicated nodes (driver and mirror nodes).</li>
</ul>
</li>
</ul>
<h3 id="evaluation">Evaluation</h3>
<p>Validation focused on robustness across different topologies and clock models.</p>
<table>
  <thead>
      <tr>
          <th>Metric</th>
          <th>Value</th>
          <th>Baseline</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>LUCA Age (GBM)</strong></td>
          <td>4.18-4.33 Ga</td>
          <td>LHB Hypothesis</td>
          <td>Significantly older than LHB constraints often used</td>
      </tr>
      <tr>
          <td><strong>LUCA Age (ILN)</strong></td>
          <td>4.09-4.32 Ga</td>
          <td>-</td>
          <td>Consistent across clock models</td>
      </tr>
      <tr>
          <td><strong>Genome Size</strong></td>
          <td>2.49-2.99 Mb</td>
          <td>Prior estimates</td>
          <td>Within the range of modern prokaryotes, higher than previous &ldquo;minimal&rdquo; gene set theories</td>
      </tr>
      <tr>
          <td><strong>Topology Test</strong></td>
          <td>p = 0.517</td>
          <td>-</td>
          <td>AU test cannot reject alternative CPR/DPANN topology; placements are statistically indistinguishable</td>
      </tr>
  </tbody>
</table>
<h3 id="hardware">Hardware</h3>
<ul>
<li><strong>Software:</strong> PAML v4.10.7 (MCMCtree), IQ-TREE 2, ALE v0.4, HMMER v3.3.2.</li>
<li><strong>Compute:</strong> IQ-TREE runs specified usage of 4 CPUs; MCMCtree approximated likelihood calculation (<code>approx</code> method) to reduce computational cost.</li>
</ul>
<hr>
<h2 id="paper-information">Paper Information</h2>
<p><strong>Citation</strong>: Moody, E. R. R., Álvarez-Carretero, S., Mahendrarajah, T. A., et al. (2024). The nature of the last universal common ancestor and its impact on the early Earth system. <em>Nature Ecology &amp; Evolution</em>, 8(9), 1654-1666. <a href="https://doi.org/10.1038/s41559-024-02461-1">https://doi.org/10.1038/s41559-024-02461-1</a></p>
<p><strong>Publication</strong>: Nature Ecology &amp; Evolution, Volume 8, Number 9, 2024</p>
<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>{moodyTheNatureLast2024,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{The nature of the last universal common ancestor and its impact on the early Earth system}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Moody, Edmund R. R. and Álvarez-Carretero, Sandra and Mahendrarajah, Tara A. and Clark, James W. and Betts, Holly C. and Dombrowski, Nina and Szánthó, Lénárd L. and Boyle, Richard A. and Daines, Stuart and Chen, Xi and Lane, Nick and Yang, Ziheng and Shields, Graham A. and Szöllősi, Gergely J. and Spang, Anja and Pisani, Davide and Williams, Tom A. and Lenton, Timothy M. and Donoghue, Philip C. J.}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span>=<span style="color:#e6db74">{Nature Ecology &amp; Evolution}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span>=<span style="color:#e6db74">{8}</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">{1654--1666}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2024}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">publisher</span>=<span style="color:#e6db74">{Nature Publishing Group}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span>=<span style="color:#e6db74">{10.1038/s41559-024-02461-1}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p><strong>Open Access</strong>: This article is published under CC BY 4.0 and is freely available at the paper URL above.</p>
<p><strong>Artifacts</strong>:</p>
<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/sabifo4/LUCA-divtimes">LUCA-divtimes (GitHub)</a></td>
          <td>Code</td>
          <td>GPL-3.0</td>
          <td>Molecular clock analysis code and step-by-step tutorials</td>
      </tr>
      <tr>
          <td><a href="https://doi.org/10.6084/m9.figshare.24428659">Figshare Repository</a></td>
          <td>Data</td>
          <td>CC BY 4.0</td>
          <td>Reconciliation and phylogenomic analysis data</td>
      </tr>
      <tr>
          <td><a href="https://doi.org/10.5523/bris.405xnm7ei36d2cj65nrirg3ip">Bristol Data Repository</a></td>
          <td>Data</td>
          <td>Unknown</td>
          <td>Additional analysis data</td>
      </tr>
  </tbody>
</table>
]]></content:encoded></item><item><title>MD Simulation of Self-Diffusion on Metal Surfaces (1994)</title><link>https://hunterheidenreich.com/notes/chemistry/molecular-simulation/surface-science/self-diffusion-metal-surfaces-1994/</link><pubDate>Sun, 14 Dec 2025 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/chemistry/molecular-simulation/surface-science/self-diffusion-metal-surfaces-1994/</guid><description>Molecular dynamics simulation of Iridium surface diffusion confirming atomic exchange mechanisms using EAM and many-body potentials.</description><content:encoded><![CDATA[<h2 id="scientific-typology-computational-discovery">Scientific Typology: Computational Discovery</h2>
<p>This is primarily a <strong>Discovery</strong> ($\Psi_{\text{Discovery}}$) paper, with strong supporting contributions as a <strong>Method</strong> ($\Psi_{\text{Method}}$) evaluation. The primary contribution is the validation and mechanistic visualization of the &ldquo;exchange mechanism&rdquo; for surface diffusion using computational methods (Molecular Dynamics with many-body potentials). This physical phenomenon was previously observed in Field Ion Microscope (FIM) experiments but difficult to characterize dynamically. The paper focuses on determining <em>how</em> atoms move, specifically distinguishing between hopping and exchange mechanisms.</p>
<h2 id="the-field-ion-microscope-fim-observation-gap">The Field Ion Microscope (FIM) Observation Gap</h2>
<p>Surface diffusion is critical for understanding phenomena like crystal growth, epitaxy, and catalysis. Experimental evidence from FIM on fcc(001) surfaces (specifically Pt and Ir) suggested an &ldquo;exchange mechanism&rdquo; where an adatom replaces a substrate atom, challenging the conventional wisdom that adatoms migrate by hopping over potential barriers (bridge sites) between binding sites. The authors sought to:</p>
<ol>
<li>Investigate whether this exchange mechanism could be reproduced dynamically in simulation.</li>
<li>Determine which interatomic potentials (EAM, Sutton-Chen, R-G-L) accurately describe these surface behaviors compared to bulk properties.</li>
</ol>
<h2 id="dynamic-visualization-of-atomic-exchange">Dynamic Visualization of Atomic Exchange</h2>
<p>The study provides a direct dynamic visualization of the &ldquo;concerted motion&rdquo; involved in exchange diffusion events, which happens on timescales too fast for experimental imaging. By comparing three different many-body potentials, the authors demonstrate that the choice of potential is critical for capturing surface phenomena; specifically, identifying that &ldquo;bulk&rdquo; derived potentials (like Sutton-Chen) may fail to capture specific surface exchange events that EAM and R-G-L potentials successfully model.</p>
<h2 id="simulation-protocol--evaluated-potentials">Simulation Protocol &amp; Evaluated Potentials</h2>
<p>The authors performed Molecular Dynamics (MD) simulations on Iridium (Ir) surfaces:</p>
<ul>
<li><strong>Surfaces</strong>: Channeled (110), densely packed (111), and loosely packed (001).</li>
<li><strong>Potentials</strong>: Three many-body models were tested: Embedded Atom Method (EAM), Sutton-Chen (S-C), and Rosato-Guillope-Legrand (R-G-L).</li>
<li><strong>Conditions</strong>: Simulations were primarily run at $T=800$ K to ensure sufficient sampling of diffusion events.</li>
<li><strong>Cross-Validation</strong>: The study extended the analysis to Cu, Rh, and Pt systems to verify the universality of the exchange mechanism against experimental data.</li>
</ul>
<h2 id="confirmation-of-concerted-motion-mechanisms">Confirmation of Concerted Motion Mechanisms</h2>
<ul>
<li><strong>Mechanism Confirmation</strong>: The study confirmed that diffusion on Ir(001) proceeds via an atomic exchange mechanism (concerted motion). The activation energy for exchange ($0.77$ eV) was found to be significantly lower than for hopping over bridge sites ($1.57$ eV).</li>
<li><strong>Surface Structure Dependence</strong>:
<ul>
<li><strong>Ir(111)</strong>: Diffusion is rapid (activation energy $V_a = 0.17$ eV from R-G-L Arrhenius plot) and occurs exclusively via hopping; no exchange events were observed due to the close-packed nature of the surface.</li>
<li><strong>Ir(110)</strong>: Diffusion is anisotropic; atoms hop <em>along</em> channels but use the exchange mechanism to move <em>across</em> channels.</li>
</ul>
</li>
<li><strong>Potential Validity</strong>: The R-G-L and EAM potentials successfully reproduced experimental exchange behaviors, whereas the Sutton-Chen potential failed to predict exchange on Ir(001). The authors attribute the S-C failure primarily to the use of &ldquo;bulk&rdquo; potential parameters to describe interactions at the surface.</li>
<li><strong>Cross-System Comparison</strong>: The study extended the analysis to Cu, Rh, and Pt systems. Both S-C and R-G-L potentials correctly predicted the absence of exchange on all three Rh surfaces and on (111) surfaces of Cu and Pt. Exchange events were correctly predicted on Cu(001), Cu(110), Pt(001), and Pt(110) by both potentials. The sole discrepancy was S-C failing to predict exchange on Ir(001), where R-G-L and EAM succeeded in agreement with experiment.</li>
</ul>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<h3 id="algorithms">Algorithms</h3>
<ul>
<li><strong>Integration</strong>: &ldquo;Velocity&rdquo; form of the Verlet algorithm.</li>
<li><strong>Time Step</strong>: $\Delta t = 0.01$ ps ($10^{-14}$ s).</li>
<li><strong>Simulation Protocol</strong>:
<ol>
<li><strong>Quenching</strong>: System relaxed to 0 K by zeroing velocities when $v \cdot F &lt; 0$.</li>
<li><strong>Equilibration</strong>: 5 ps constant-temperature run (renormalizing velocities every step).</li>
<li><strong>Production</strong>: 15 ps constant-energy (microcanonical) run where trajectories are collected.</li>
</ol>
</li>
</ul>
<h3 id="models">Models</h3>
<p>The study relies on three specific many-body potential formulations:</p>
<ol>
<li><strong>Embedded Atom Method (EAM)</strong>:
<ul>
<li>Total energy:
$$U_{tot} = \sum_i F_i(\rho_i) + \frac{1}{2} \sum_{j \neq i} \phi_{ij}(r_{ij})$$</li>
</ul>
</li>
<li><strong>Sutton-Chen (S-C)</strong>:
<ul>
<li>Uses a square root density dependence and power-law pair repulsion $(a/r)^{n}$:
$$F(\rho) \propto \rho^{1/2}$$</li>
</ul>
</li>
<li><strong>Rosato-Guillope-Legrand (R-G-L)</strong>:
<ul>
<li>Born-Mayer type repulsion:
$$\phi_{ij}(r) = A \exp[-p(r/r_0 - 1)]$$</li>
<li>Attractive band energy:
$$F_i(\rho) = -\left(\sum \xi^2 \exp[-2q(r/r_0 - 1)]\right)^{1/2}$$</li>
</ul>
</li>
</ol>
<h3 id="data">Data</h3>
<ul>
<li><strong>System Size</strong>: 648 classical atoms.</li>
<li><strong>Geometry</strong>:
<ul>
<li>Cubic box with fixed volume.</li>
<li>Periodic boundary conditions in $x$ and $y$ (parallel to surface), free motion in $z$.</li>
<li>Substrate depth: 8, 12, or 9 atomic layers depending on orientation [(001), (110), (111)].</li>
</ul>
</li>
<li><strong>Cutoff Radius</strong>: 14 bohr ($\sim 7.4$ Å).</li>
<li><strong>Initial Conditions</strong>: Velocities initialized from a Maxwellian distribution.</li>
</ul>
<h3 id="evaluation">Evaluation</h3>
<ul>
<li><strong>Diffusion Constant ($D$)</strong>: Calculated using the Einstein relation via Mean Square Displacement (MSD):
$$D = \lim_{t \to \infty} \frac{\langle \Delta r^2(t) \rangle}{2td}$$
where $d=2$ for surface diffusion.</li>
<li><strong>Activation Energy ($V_a$)</strong>: Extracted from the slope of Arrhenius plots ($\ln D$ vs $1/T$).</li>
<li><strong>Attempt Frequency ($\nu$)</strong>: Estimated via harmonic approximation: $\nu = \frac{1}{2\pi}\sqrt{c/M}$.</li>
</ul>
<h2 id="paper-information">Paper Information</h2>
<p><strong>Citation</strong>: Shiang, K.-D., Wei, C. M., &amp; Tsong, T. T. (1994). A molecular dynamics study of self-diffusion on metal surfaces. <em>Surface Science</em>, 301(1-3), 136-150. <a href="https://doi.org/10.1016/0039-6028(94)91295-5">https://doi.org/10.1016/0039-6028(94)91295-5</a></p>
<p><strong>Publication</strong>: Surface Science 1994</p>
<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>{shiang1994molecular,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{A molecular dynamics study of self-diffusion on metal surfaces}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Shiang, Keh-Dong and Wei, C.M. and Tsong, Tien T.}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span>=<span style="color:#e6db74">{Surface Science}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span>=<span style="color:#e6db74">{301}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">number</span>=<span style="color:#e6db74">{1-3}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">pages</span>=<span style="color:#e6db74">{136--150}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{1994}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">publisher</span>=<span style="color:#e6db74">{Elsevier}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span>=<span style="color:#e6db74">{10.1016/0039-6028(94)91295-5}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>In Situ XRD of Oxidation-Reduction Oscillations on Pt/SiO2</title><link>https://hunterheidenreich.com/notes/chemistry/molecular-simulation/surface-science/oxidation-reduction-oscillations-pt-sio2-1994/</link><pubDate>Sun, 14 Dec 2025 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/chemistry/molecular-simulation/surface-science/oxidation-reduction-oscillations-pt-sio2-1994/</guid><description>In situ XRD validation of the oxide model driving kinetic rate oscillations in high-pressure CO oxidation on supported platinum.</description><content:encoded><![CDATA[<h2 id="experimental-validation-of-the-oxide-model">Experimental Validation of the Oxide Model</h2>
<p>This is a <strong>Discovery (Translational/Application)</strong> paper.</p>
<p>It is classified as such because the primary contribution is the experimental resolution of a long-standing scientific debate regarding the physical driving force of kinetic oscillations. The authors use established techniques (in situ X-ray diffraction and Debye Function Analysis) to falsify existing hypotheses (reconstruction model, carbon model) and validate a specific physical mechanism (the oxide model).</p>
<h2 id="the-missing-driving-force-in-high-pressure-co-oxidation">The Missing Driving Force in High-Pressure CO Oxidation</h2>
<p>The study addresses the debate surrounding the driving force of kinetic oscillations in CO oxidation on platinum catalysts at high pressures ($p &gt; 10^{-3}$ mbar). While low-pressure oscillations on single crystals were known to be caused by surface reconstruction, the mechanism for high-pressure oscillations on supported catalysts was unresolved. Three main models existed:</p>
<ul>
<li><strong>Reconstruction model</strong>: Structural changes of the substrate</li>
<li><strong>Carbon model</strong>: Periodic deactivation by carbon</li>
<li><strong>Oxide model</strong>: Periodic formation and reduction of surface oxides</li>
</ul>
<p>Prior to this work, there was no conclusive experimental proof demonstrating the periodic oxidation and reduction required by the oxide model.</p>
<h2 id="direct-in-situ-xrd-proof">Direct In Situ XRD Proof</h2>
<p>The core novelty is the <strong>first direct experimental evidence</strong> connecting periodic structural changes in the catalyst to rate oscillations. Using in situ X-ray diffraction (XRD), the authors demonstrated that the intensity of the Pt(111) Bragg peak oscillates in sync with the reaction rate.</p>
<p>By applying Debye Function Analysis (DFA) to the diffraction profiles, they quantitatively showed that the catalyst transitions between a metallic Pt state and a partially oxidized state (containing $\text{PtO}$ and $\text{Pt}_3\text{O}_4$). This definitively ruled out the reconstruction model (which would produce much smaller intensity variations) and confirmed the oxide model.</p>
<h2 id="in-situ-x-ray-diffraction-and-activity-monitoring">In Situ X-ray Diffraction and Activity Monitoring</h2>
<p>The authors performed <strong>in situ X-ray diffraction</strong> experiments on a supported Pt catalyst (EuroPt-1) during the CO oxidation reaction.</p>
<ul>
<li><strong>Reaction Monitoring</strong>: They cycled the temperature and gas flow rates (CO, $\text{O}_2$, He) to induce ignition, extinction, and oscillations.</li>
<li><strong>Activity Metrics</strong>: Catalytic activity was tracked via sample temperature (using thermocouples) and $\text{CO}_2$ production (using a quadrupole mass spectrometer).</li>
<li><strong>Structural Monitoring</strong>: They recorded the intensity of the Pt(111) Bragg peak continuously.</li>
<li><strong>Cluster Analysis</strong>: Detailed angular scans of diffracted intensity were taken at stationary points (active vs. inactive states) and analyzed using Debye functions to determine cluster size and composition.</li>
</ul>
<h2 id="periodic-oxidation-mechanism-and-reversibility">Periodic Oxidation Mechanism and Reversibility</h2>
<p><strong>Key Findings</strong>:</p>
<ul>
<li><strong>Oscillation Mechanism</strong>: Rate oscillations are accompanied by the periodic oxidation and reduction of the Pt catalyst.</li>
<li><strong>Phase Relationship</strong>: The X-ray intensity (oxide amount) oscillates approximately 120° ahead of the temperature (reaction rate), consistent with the oxide model: oxidation deactivates the surface → rate drops → CO reduces the surface → rate rises.</li>
<li><strong>Oxide Composition</strong>: The oxidized state consists of a mixture of metallic clusters, $\text{PtO}$, and $\text{Pt}_3\text{O}_4$. $\text{PtO}_2$ was not found.</li>
<li><strong>Extent of Oxidation</strong>: Approximately 20-30% of the metal atoms are oxidized, corresponding effectively to a shell of oxide on the surface of the nanoclusters.</li>
<li><strong>Reversibility</strong>: The transition between metallic and oxidized states is fully reversible with no sintering observed under the experimental conditions.</li>
<li><strong>Scope Limitation</strong>: The authors note that whether the oxide model also applies to kinetic oscillations on Pt foils or Pt wires remains to be verified, since small Pt clusters likely have a much higher tendency to form oxides than massive Pt metal.</li>
</ul>
<hr>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<h3 id="data">Data</h3>
<p>The study used the <strong>EuroPt-1</strong> standard catalyst.</p>
<table>
  <thead>
      <tr>
          <th>Type</th>
          <th>Material</th>
          <th>Details</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>Catalyst</strong></td>
          <td>EuroPt-1 ($\text{Pt/SiO}_2$)</td>
          <td>6.3% Pt loading on silica support</td>
      </tr>
      <tr>
          <td><strong>Particle Size</strong></td>
          <td>Pt Clusters</td>
          <td>Mean diameter ~15.5 Å; dispersion $65 \pm 5\%$</td>
      </tr>
      <tr>
          <td><strong>Sample Prep</strong></td>
          <td>Pellets</td>
          <td>40 mg of catalyst pressed into $15 \times 12 \times 0.3 \text{ mm}^3$ self-supporting pellets</td>
      </tr>
  </tbody>
</table>
<h3 id="algorithms">Algorithms</h3>
<p><strong>Debye Function Analysis (DFA)</strong></p>
<p>The study used DFA to fit theoretical scattering curves to experimental intensity profiles. This method is suitable for randomly oriented clusters where standard crystallographic methods might fail due to finite size effects.</p>
<p>$$I_{N}(b)=\sum_{m,n=1}^{N}f_{m}f_{n}\frac{\sin(2\pi br_{mn})}{2\pi br_{mn}}$$</p>
<p>Where:</p>
<ul>
<li><strong>$b$</strong>: Scattering vector magnitude, $b=2 \sin \vartheta/\lambda$</li>
<li><strong>$f_m, f_n$</strong>: Atomic scattering amplitudes</li>
<li><strong>$r_{mn}$</strong>: Distance between atom pairs</li>
<li><strong>Shape Assumption</strong>: Cuboctahedral clusters (nearly spherical)</li>
</ul>
<h3 id="models">Models</h3>
<p><strong>1. The Oxide Model (Physical Mechanism)</strong></p>
<p>Proposed by Sales, Turner, and Maple, validated here:</p>
<ol>
<li><strong>Oxidation</strong>: As oxygen coverage increases, the surface forms a catalytically inactive oxide layer ($\text{PtO}_x$).</li>
<li><strong>Deactivation</strong>: The reaction rate drops as the surface deactivates.</li>
<li><strong>Reduction</strong>: CO adsorption leads to the reduction of the oxide layer, restoring the metallic surface.</li>
<li><strong>Reactivation</strong>: The metallic surface is active for CO oxidation, increasing the rate until oxygen coverage builds up again.</li>
</ol>
<p><strong>2. Shell Model (Structural)</strong></p>
<p>The diffraction data was fit using a &ldquo;Shell Model&rdquo; where a metallic Pt core is surrounded by an oxide shell.</p>
<h3 id="evaluation">Evaluation</h3>
<p><strong>Key Experimental Signatures for Replication</strong>:</p>
<ul>
<li><strong>Ignition Point</strong>: A sharp increase in sample temperature accompanied by a steep 18% decrease in Bragg intensity. After the He flow was switched off, the intensity dropped further to a total decrease of 31.5%.</li>
<li><strong>Oscillation Regime</strong>: Observed at flow rates $\sim 100 \text{ ml/min}$ after cooling the sample to $\sim 375 \text{ K}$. Below $50 \text{ ml/min}$, only bistability is observed. Temperature oscillations had $\sim 50 \text{ K}$ peak-to-peak amplitude.</li>
<li><strong>Magnitude</strong>: Bragg intensity oscillations of ~11% amplitude.</li>
</ul>
<h3 id="hardware">Hardware</h3>
<p><strong>Experimental Setup</strong>:</p>
<ul>
<li><strong>Diffractometer</strong>: Commercial Guinier diffractometer (HUBER) with monochromatized Cu $K_{\alpha1}$ radiation (45° transmission geometry).</li>
<li><strong>Reactor Cell</strong>: Custom 115 $\text{cm}^3$ cell, evacuatable to $10^{-7}$ mbar, equipped with Kapton windows and a Be-cover.</li>
<li><strong>Gases</strong>: CO (4.7 purity), $\text{O}_2$ (4.5 purity), He (4.6 purity) regulated by flow controllers.</li>
<li><strong>Sensors</strong>: Two K-type thermocouples (surface and gas phase) and a differentially pumped Quadrupole Mass Spectrometer (QMS).</li>
</ul>
<hr>
<h2 id="paper-information">Paper Information</h2>
<p><strong>Citation</strong>: Hartmann, N., Imbihl, R., &amp; Vogel, W. (1994). Experimental evidence for an oxidation/reduction mechanism in rate oscillations of catalytic CO oxidation on Pt/SiO2. <em>Catalysis Letters</em>, 28(2-4), 373-381. <a href="https://doi.org/10.1007/BF00806068">https://doi.org/10.1007/BF00806068</a></p>
<p><strong>Publication</strong>: Catalysis Letters 1994</p>
<p><strong>Related Work</strong>: This work complements <a href="/notes/chemistry/molecular-simulation/surface-science/oscillatory-co-oxidation-pt110-1992/">Oscillatory CO Oxidation on Pt(110)</a>, which modeled oscillations via surface reconstruction. Here, the driving force is oxidation/reduction.</p>
<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>{hartmannExperimentalEvidenceOxidation1994,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span> = <span style="color:#e6db74">{Experimental Evidence for an Oxidation/Reduction Mechanism in Rate Oscillations of Catalytic {{CO}} Oxidation on {{Pt}}/{{SiO2}}}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span> = <span style="color:#e6db74">{Hartmann, N. and Imbihl, R. and Vogel, W.}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span> = <span style="color:#ae81ff">1994</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span> = <span style="color:#e6db74">{Catalysis Letters}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span> = <span style="color:#e6db74">{28}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">number</span> = <span style="color:#e6db74">{2-4}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">pages</span> = <span style="color:#e6db74">{373--381}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">issn</span> = <span style="color:#e6db74">{1011-372X, 1572-879X}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span> = <span style="color:#e6db74">{10.1007/BF00806068}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>Chaotic Evolution of the Solar System (Sussman 1992)</title><link>https://hunterheidenreich.com/notes/interdisciplinary/planetary-science/chaotic-solar-system-1992/</link><pubDate>Sun, 14 Dec 2025 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/interdisciplinary/planetary-science/chaotic-solar-system-1992/</guid><description>Numerical study confirming that planetary orbits in the Solar System are chaotic, with a divergence timescale of about 4 million years.</description><content:encoded><![CDATA[<h2 id="what-kind-of-paper-is-this">What kind of paper is this?</h2>
<p>This is a computational/numerical methods paper that combines algorithm development with scientific discovery. The core contribution is both methodological (demonstrating the effectiveness of symplectic mapping for long-term orbital integration) and empirical (providing the first direct numerical confirmation that the entire Solar System exhibits chaotic dynamics). The work validates theoretical predictions through computational experiments spanning nearly 100 million years of simulated planetary motion, significantly longer than any previous full-system integration.</p>
<h2 id="what-is-the-motivation">What is the motivation?</h2>
<p>The authors aimed to address the fundamental question of the long-term stability and predictability of the Solar System. Prior work had limitations:</p>
<ul>
<li><strong>Sussman &amp; Wisdom (1988)</strong>: Found chaos in Pluto&rsquo;s orbit but did not integrate the full system.</li>
<li><strong>Laskar (1989)</strong>: Found evidence for chaos in the whole system (excluding Pluto) but relied on analytically averaged equations, which are perturbative and truncated.</li>
</ul>
<p>A direct integration of the full system without averaging approximations was required to validate these findings and determine whether the observed chaos was a genuine property of the planetary dynamics or an artifact of the approximation methods.</p>
<h2 id="what-is-the-novelty-here">What is the novelty here?</h2>
<p>The study represents the first direct, full-system integration spanning nearly 100 million years. Key innovations included:</p>
<ul>
<li><strong>Symplectic Mapping</strong>: Application of the <a href="https://en.wikipedia.org/wiki/Symplectic_integrator">Wisdom-Holman mapping method</a>, which allows for much larger time steps (e.g., 7.2 days) compared to multistep methods (which require ~100 steps/orbit) while maintaining long-term energy conservation and numerical stability.</li>
<li><strong>Custom Hardware</strong>: Use of the <strong>Supercomputer Toolkit</strong>, a multiprocessor system optimized for ODEs, where each processor was 3x faster than the entire previous generation &ldquo;Digital Orrery&rdquo;.</li>
<li><strong>Direct Numerical Validation</strong>: This work directly integrates Newton&rsquo;s equations without analytical approximations, providing independent verification of chaotic behavior, whereas Laskar&rsquo;s approach relied on <a href="https://en.wikipedia.org/wiki/Perturbation_(astronomy)">secular perturbation theory</a>.</li>
</ul>
<h2 id="what-experiments-were-performed">What experiments were performed?</h2>
<ul>
<li><strong>100 Myr Integration</strong>: Eight separate integrations of the entire planetary system were run for ~100 million years (reversed time) with slightly different initial conditions to measure exponential divergence of trajectories.</li>
<li><strong>Validation</strong>:
<ul>
<li>Compared a 3-million-year segment against the high-precision integration by Quinn, Tremaine, and Duncan (QTD).</li>
<li>Compared results with Laskar&rsquo;s secular resonance angle calculations to verify consistency with the perturbative approach.</li>
</ul>
</li>
<li><strong>Subsystem Analysis</strong>: Additional integrations of just the Jovian planets (outer system) and massless Pluto particles were performed to isolate the source of chaos and determine which subsystems contribute to the overall chaotic behavior.</li>
</ul>
<h2 id="what-outcomesconclusions">What outcomes/conclusions?</h2>
<p>The key results below are supported by three independent lines of evidence against numerical artifacts (see <a href="#is-the-chaos-real-or-a-numerical-artifact">Is the Chaos Real?</a> below).</p>
<ul>
<li><strong>System-wide Chaos</strong>: The Solar System is chaotic with an exponential divergence timescale (<a href="https://en.wikipedia.org/wiki/Lyapunov_time">Lyapunov time</a>) of approximately <strong>4 million years</strong>, meaning that initial condition uncertainties grow by a factor of $e$ roughly every 4 million years.
<ul>
<li><em>Two-segment divergence</em>: The secular phase space divergence is not uniform. The initial segment is dominated by a slower ~12 Myr timescale, and the latter segment transitions to the ~4 Myr component. The inner planets are more sensitive indicators of the faster 4 Myr process; the outer planets show the 12 Myr component for most of the 100 Myr run with the 4 Myr component only appearing in the final 5 Myr. This suggests at least two distinct mechanisms operating simultaneously.</li>
</ul>
</li>
<li><strong>Jovian Chaos</strong>: The Jovian planets (Jupiter, Saturn, Uranus, Neptune) are independently chaotic. This was a <strong>surprising result</strong>: in the earlier 845 Myr Digital Orrery integration, Neptune&rsquo;s orbital elements showed discrete spectral lines (unlike Pluto&rsquo;s broad-band spectrum), which led the authors to dismiss Jovian chaos at that time. A new 1 billion year integration with a slightly perturbed initial position of Neptune showed exponential divergence with a timescale of only <strong>5 million years</strong>, overturning the earlier conclusion. Subsequent Störmer predictor checks confirmed a timescale of ~19 Myr. Eight additional mapping integrations spanning about 300 Myr each, with step sizes ranging from 0.3 to 1 year, found the Lyapunov timescale varies from 3 to 30 Myr and is not a simple function of initial conditions. One specific run (step size ~0.617979 years) yielded quasiperiodic motion, confirming that nearby initial conditions can give qualitatively different long-term behavior.</li>
<li><strong>Pluto&rsquo;s Robust Chaos</strong>: Pluto&rsquo;s chaotic motion (10-20 Myr timescale) is robust and persists independently of whether the Jovian planets are themselves chaotic or quasiperiodic. In every outer planet integration, massless Pluto pairs diverged with a timescale between 10 and 20 Myr, regardless of how the Jovians were behaving. This robustness distinguishes Pluto&rsquo;s chaotic mechanism as independent.</li>
<li><strong>Secular Resonances</strong>: Laskar identified three resonance angles ($\sigma_1$, $\sigma_2$, $\sigma_3$) that alternately librate (oscillate around a fixed value, like a pendulum) and circulate (rotate through all values, like a spinning top), and proposed resonance overlap as the driving mechanism. The authors find $\sigma_1$ and $\sigma_2$ behave consistently with Laskar, but $\sigma_3$ <strong>only circulates</strong> in their calculation, not librates and circulates as Laskar found. They also identify two additional angles, $\sigma_4 = 3(\omega_4^\circ - \omega_3^\circ) - 2(\Omega_4^\circ - \Omega_3^\circ)$ and $\sigma_5 = (\varpi_1^\circ - \varpi_8^\circ) + (\Omega_1^\circ - \Omega_8^\circ)$, both of which alternate between libration and circulation. The polar plot of $\sigma_1$ is more consistent with a chaotic separatrix; the $\sigma_2$ plot resembles a high-dimensional trajectory projected onto a plane, not a chaotic mechanism. <strong>Conclusion</strong>: resonance overlap is consistent with the data but not unambiguously demonstrated as the sole mechanism.</li>
<li><strong>Two Independent Mechanisms</strong>: The numerical experiments suggest at least two independent sources of chaos: one operating in the Jovian subsystem, and a separate mechanism driving Pluto&rsquo;s chaos independently in the field of the Jovian planets. The simultaneous presence of two different exponential timescales in the full Solar System integration supports this. The authors speculate that Mercury (high eccentricity and inclination) may be involved in the faster mechanism, analogously to how Pluto&rsquo;s high eccentricity and inclination couple eccentricity and inclination secular subsystems.</li>
<li><strong>Predictability Horizon</strong>: The chaotic nature fundamentally limits our ability to predict planetary positions beyond roughly 100 million years into the past or future, regardless of improvements in observational precision or computational power.</li>
</ul>
<h2 id="is-the-chaos-real-or-a-numerical-artifact">Is the Chaos Real or a Numerical Artifact?</h2>
<p>The authors devote substantial effort to ruling out the possibility that the exponential divergence is a numerical artifact rather than a genuine physical property. Three lines of evidence support the conclusion that it is real:</p>
<ol>
<li><strong>Agreement across radically different methods</strong>: The 100 Myr Toolkit integration and Laskar&rsquo;s secular perturbation theory approach use completely different techniques (direct integration vs. analytically averaged equations, different masses, different initial conditions, different physics). Both find consistent chaotic behavior. This cross-method agreement is strong evidence against a method-specific artifact.</li>
<li><strong>Quasiperiodic control integration</strong>: The outer planets were integrated for 250 Myr with Uranus removed. Over this period the remaining Jovian planets showed no sign of exponential divergence. This control demonstrates that long-term numerical integrations of planetary systems do not universally produce spurious chaos; the physical configuration matters.</li>
<li><strong>Isolated quasiperiodic run</strong>: One integration with a particular step size (near 0.617979 years) produced quasiperiodic secular phase space divergence over 300 Myr. This shows the chaos is not a universal artifact of the integration method and that some nearby initial conditions do not lead to chaotic behavior.</li>
</ol>
<p>The authors conclude that the chaotic character is not sensitively dependent on the precise model or numerical methods used, but acknowledge that definitively ruling out subtle numerical artifacts requires identifying an unambiguous physical mechanism, which remains open.</p>
<hr>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<h3 id="data">Data</h3>
<ul>
<li><strong>Initial Conditions</strong>: Derived from <strong>JPL Ephemeris DE102</strong>, matching the setup used by Quinn, Tremaine, and Duncan (QTD) for direct comparison.</li>
<li><strong>Masses</strong>: Planetary masses consistent with DE102.</li>
</ul>
<h3 id="algorithms">Algorithms</h3>
<p><strong>Integrator</strong>: Symplectic n-body mapping (Wisdom &amp; Holman method)</p>
<p>The Hamiltonian is split into Keplerian motion and planetary interactions:</p>
<p>$$H = H_{\text{Kepler}} + H_{\text{Interaction}}$$</p>
<ul>
<li><strong>Structure</strong>: Uses a symplectic mapping (Drift-Kick-Drift) where the system evolves via unperturbed Keplerian orbits (Drift) punctuated by instantaneous velocity changes from planet-planet interactions (Kick). Second order is achieved by a half Kepler step, then alternating full interaction kicks and full Kepler steps, ending with a half Kepler step. This preserves phase space volume, preventing the energy drift common in traditional integrators.</li>
<li><strong>Step Size</strong>: <strong>7.2 days</strong> (chosen somewhat arbitrarily; this step size conveniently aligned with QTD output timestamps for validation).</li>
<li><strong>Precision</strong>: Pseudo-quadruple precision for position accumulation to minimize roundoff errors, though retrospectively deemed unnecessary for this problem.</li>
</ul>
<p><strong>Step-size Validation</strong>: A 22 Myr integration with 3.6-day steps (half the primary step size) was performed to verify accuracy of the 7.2-day integration.</p>
<p><strong>Cross-check Integrator</strong>: Traditional linear multistep Störmer predictor (used for independent Jovian planet integrations spanning 100 to 400+ Myr to verify the mapping method&rsquo;s chaotic result).</p>
<h3 id="models">Models</h3>
<ul>
<li><strong>Hamiltonian</strong>: The system is modeled using a split Hamiltonian approach separating two-body Keplerian motion from perturbative interactions.</li>
<li><strong>General Relativity</strong>: Modeled using the potential approximation of <strong>Nobili and Roxburgh</strong> (1986). <strong>Why?</strong> General Relativity adds velocity-dependent terms that make the Keplerian part of the Hamiltonian non-integrable. To use the fast symplectic mapping (which requires an analytically solvable Kepler step), they needed a potential-only approximation that mimics GR effects (precession) without breaking the Hamiltonian splitting.</li>
<li><strong>Earth-Moon</strong>: Treated via a quadrupole approximation similar to QTD, representing the Earth-Moon system as a single body with appropriate mass distribution.</li>
</ul>
<h3 id="evaluation">Evaluation</h3>
<p>The primary metric for chaos was the <strong>Lyapunov Exponent</strong>, estimated via the divergence of nearby trajectories with slightly perturbed initial conditions.</p>
<table>
  <thead>
      <tr>
          <th>Metric</th>
          <th>Value</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Divergence Timescale (Full System)</td>
          <td>~4 Myr (final segment)</td>
          <td>Initial segment ~12 Myr; inner planets are earlier indicators of 4 Myr component</td>
      </tr>
      <tr>
          <td>Divergence Timescale (Pluto)</td>
          <td>10-20 Myr</td>
          <td>Consistent across methods</td>
      </tr>
      <tr>
          <td>Eccentricity Error (vs QTD)</td>
          <td>$10^{-4}$ to $10^{-6}$</td>
          <td>Excellent agreement over 3 Myr (Table 1)</td>
      </tr>
  </tbody>
</table>
<h3 id="hardware">Hardware</h3>
<ul>
<li><strong>System</strong>: <strong>Supercomputer Toolkit</strong> (MIT/Hewlett-Packard collaboration)</li>
<li><strong>Configuration</strong>: 8-processor configuration used for parallel integrations</li>
<li><strong>Performance</strong>: ~30 years of Solar System evolution per second per processor</li>
<li><strong>Total Compute</strong>: ~1000 hours of Toolkit time for the main experiments</li>
</ul>
<hr>
<h2 id="paper-information">Paper Information</h2>
<p><strong>Citation</strong>: Sussman, G. J., &amp; Wisdom, J. (1992). Chaotic Evolution of the Solar System. <em>Science</em>, 257(5066), 56-62. <a href="https://doi.org/10.1126/science.257.5066.56">https://doi.org/10.1126/science.257.5066.56</a></p>
<p><strong>Publication</strong>: Science 1992</p>
<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>{sussmanChaoticEvolutionSolar1992,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span> = <span style="color:#e6db74">{Chaotic {{Evolution}} of the {{Solar System}}}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span> = <span style="color:#e6db74">{Sussman, Gerald J. and Wisdom, Jack}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span> = <span style="color:#e6db74">{Science}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span> = <span style="color:#e6db74">{257}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">number</span> = <span style="color:#e6db74">{5066}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">pages</span> = <span style="color:#e6db74">{56--62}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span> = <span style="color:#e6db74">{1992}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">month</span> = <span style="color:#e6db74">{jul}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span> = <span style="color:#e6db74">{10.1126/science.257.5066.56}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">abstract</span> = <span style="color:#e6db74">{The evolution of the entire planetary system has been numerically integrated for a time span of nearly 100 million years. This calculation confirms that the evolution of the solar system as a whole is chaotic, with a time scale of exponential divergence of about 4 million years. Additional numerical experiments indicate that the Jovian planet subsystem is chaotic, although some small variations in the model can yield quasiperiodic motion. The motion of Pluto is independently and robustly chaotic.}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p><strong>Additional Resources</strong>:</p>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Symplectic_integrator">Wisdom-Holman Mapping (Wikipedia)</a></li>
<li><a href="https://en.wikipedia.org/wiki/Digital_Orrery">Digital Orrery Project</a></li>
</ul>
]]></content:encoded></item><item><title>Adatom Dimer Diffusion on fcc(111) Crystal Surfaces</title><link>https://hunterheidenreich.com/notes/chemistry/molecular-simulation/surface-science/diffusion-adatom-dimers-1984/</link><pubDate>Sat, 13 Dec 2025 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/chemistry/molecular-simulation/surface-science/diffusion-adatom-dimers-1984/</guid><description>A 1984 molecular dynamics study identifying simultaneous multiple jumps in adatom dimer diffusion on fcc(111) surfaces.</description><content:encoded><![CDATA[<h2 id="classification-discovery-of-diffusion-mechanisms">Classification: Discovery of Diffusion Mechanisms</h2>
<p><strong>Discovery (Translational Basis)</strong></p>
<p>This paper applies a computational method (Molecular Dynamics) to observe and characterize a physical phenomenon: the specific diffusion mechanisms of adatom dimers on a crystal surface. It focuses on the &ldquo;what was found&rdquo; (simultaneous multiple jumps).</p>
<p>Based on the <a href="/notes/interdisciplinary/research-methods/ai-physical-sciences-paper-taxonomy/">AI for Physical Sciences Paper Taxonomy</a>, this is best classified as $\Psi_{\text{Discovery}}$ with a minor superposition of $\Psi_{\text{Method}}$ (approximately 80% Discovery, 20% Method). The dominant contribution is the application of computational tools to observe physical phenomena, while secondarily demonstrating MD&rsquo;s capability for surface diffusion problems in an era when the technique was still developing.</p>
<h2 id="bridging-the-intermediate-temperature-data-gap">Bridging the Intermediate Temperature Data Gap</h2>
<p>The study aims to investigate the behavior of adatom dimers in an <strong>intermediate temperature range</strong> ($0.3T_m$ to $0.6T_m$). At the time, Field Ion Microscopy (FIM) provided data at low temperatures ($T \le 0.2T_m$), and previous simulations had studied single adatoms on various surfaces including (111), (110), and (100), but not dimers on (111). The authors sought to compare dimer mobility with single adatom mobility on the (111) surface, where single adatoms move almost like free particles.</p>
<h2 id="observation-of-simultaneous-multiple-jumps">Observation of Simultaneous Multiple Jumps</h2>
<p>The core contribution is the observation of <strong>simultaneous multiple jumps</strong> for dimers on the (111) surface at intermediate temperatures. The study reveals that:</p>
<ol>
<li>Dimers migrate as a whole entity, with both atoms jumping simultaneously</li>
<li>The mobility of dimers (center of mass) is very close to that of single adatoms in this regime.</li>
</ol>
<h2 id="molecular-dynamics-simulation-design">Molecular Dynamics Simulation Design</h2>
<p>The authors performed <strong>Molecular Dynamics (MD) simulations</strong> of a face-centred cubic (fcc) crystallite:</p>
<ul>
<li><strong>System</strong>: A single crystallite of 192 atoms bounded by two free (111) surfaces</li>
<li><strong>Temperature Range</strong>: $0.22 \epsilon/k$ to $0.40 \epsilon/k$ (approximately $0.3T_m$ to $0.6T_m$)</li>
<li><strong>Duration</strong>: Integration over 50,000 time steps</li>
<li><strong>Comparison</strong>: Results were compared against single adatom diffusion data and Einstein&rsquo;s diffusion relation</li>
</ul>
<h2 id="outcomes-on-mobility-and-migration-dynamics">Outcomes on Mobility and Migration Dynamics</h2>
<ul>
<li><strong>Mechanism Transition</strong>: At low temperatures ($T^\ast=0.22$), diffusion occurs via discrete single jumps where adatoms rotate or extend bonds. At higher temperatures, the &ldquo;multiple jump&rdquo; mechanism becomes preponderant.</li>
<li><strong>Migration Style</strong>: The dimer migrates essentially by extending its bond along the $\langle 110 \rangle$ direction.</li>
<li><strong>Mobility</strong>: The diffusion coefficient of dimers is quantitatively similar to single adatoms.</li>
<li><strong>Qualitative Support</strong>: The results support Bonzel&rsquo;s hypothesis of delocalized diffusion involving energy transfer between translation and rotation. The authors attempted to quantify the coupling using the cross-correlation function:</li>
</ul>
<p>$$g(t) = C \langle E_T(t) , E_R(t + t&rsquo;) \rangle$$</p>
<p>where $C$ is a normalization constant, $E_T$ is the translational energy of the center of mass, and $E_R$ is the rotational energy of the dimer. However, the average lifetime of a dimer (2% to 15% of the total calculation time in the studied temperature range) was too short to allow a statistically significant study of this coupling.</p>
<ul>
<li><strong>Dimer Concentration</strong>: The contribution of dimers to mass transport depends on their concentration. As a first approximation, the dimer concentration is expressed as:</li>
</ul>
<p>$$C = C_0 \exp\left[\frac{-2E_f - E_d}{k_B T}\right]$$</p>
<p>where $E_f$ is the formation energy of adatoms and $E_d$ is the binding energy of a dimer. If the binding energy is sufficiently strong, dimer contributions should be accounted for even in the intermediate temperature range ($0.3T_m$ to $0.6T_m$).</p>
<hr>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<h3 id="data-simulation-setup">Data (Simulation Setup)</h3>
<p>Because this is an early computational study, &ldquo;data&rdquo; refers to the initial structural configuration. The simulation begins with an algorithmically generated generic fcc(111) lattice containing two adatoms as the initial state.</p>















<figure class="post-figure center ">
    <img src="/img/notes/chemistry/argon-dimer-diffusion.webp"
         alt="Visualization of argon dimer on fcc(111) surface"
         title="Visualization of argon dimer on fcc(111) surface"
         
         
         loading="lazy"
         class="post-image">
    
    <figcaption class="post-caption">Initial configuration showing an adatom dimer (two adatoms on neighboring sites) on an fcc(111) surface. The crystallite consists of 192 atoms with periodic boundary conditions in the x and y directions.</figcaption>
    
</figure>

<table>
  <thead>
      <tr>
          <th>Parameter</th>
          <th>Value</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>Particles</strong></td>
          <td>192 atoms</td>
          <td>Single fcc crystallite</td>
      </tr>
      <tr>
          <td><strong>Dimensions</strong></td>
          <td>$4[110] \times 4[112]$</td>
          <td>Thickness of 6 planes</td>
      </tr>
      <tr>
          <td><strong>Boundary</strong></td>
          <td>Periodic (x, y)</td>
          <td>Free surface in z-direction</td>
      </tr>
      <tr>
          <td><strong>Initial State</strong></td>
          <td>Dimer on neighbor sites</td>
          <td>Starts with 2 adatoms</td>
      </tr>
  </tbody>
</table>
<h3 id="algorithms">Algorithms</h3>
<p>The simulation relies on standard Molecular Dynamics integration techniques. Historical source code is absent. Complete reproducibility is achievable today utilizing modern open-source tools like LAMMPS with standard <code>lj/cut</code> pair styles and NVE/NVT ensembles.</p>
<ul>
<li><strong>Integration Scheme</strong>: Central difference algorithm (Verlet algorithm)</li>
<li><strong>Time Step</strong>: $\Delta t^\ast = 0.01$ (reduced units)</li>
<li><strong>Total Steps</strong>: 50,000 integration steps</li>
<li><strong>Dimer Definition</strong>: Two adatoms are considered a dimer if their distance $r \le r_c = 2\sigma$</li>
</ul>
<h3 id="models-analytic-potential">Models (Analytic Potential)</h3>
<p>The physics are modeled using a classic Lennard-Jones potential.</p>
<p><strong>Potential Form</strong>: (12, 6) Lennard-Jones
$$ V(r) = 4\epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^6 \right] $$</p>
<p><strong>Parameters (Argon-like)</strong>:</p>
<ul>
<li>$\epsilon/k = 119.5$ K</li>
<li>$\sigma = 3.4478$ Å</li>
<li>$m = 39.948$ a.u.</li>
<li>Cut-off radius: $2\sigma$</li>
</ul>
<h3 id="evaluation">Evaluation</h3>
<p>Metrics used to quantify the diffusion behavior:</p>
<table>
  <thead>
      <tr>
          <th>Metric</th>
          <th>Formula</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>Diffusion Coefficient</strong></td>
          <td>$D = \frac{\langle R^2 \rangle}{4t}$</td>
          <td>Calculated from Mean Square Displacement of center of mass</td>
      </tr>
      <tr>
          <td><strong>Trajectory Analysis</strong></td>
          <td>Visual inspection</td>
          <td>Categorized into &ldquo;fast migration&rdquo; (multiple jumps) or &ldquo;discrete jumps&rdquo;</td>
      </tr>
  </tbody>
</table>
<h3 id="hardware">Hardware</h3>
<ul>
<li><strong>Specifics</strong>: Unspecified in the original text.</li>
<li><strong>Scale</strong>: 192 particles simulated for 50,000 steps is extremely lightweight by modern standards. A standard laptop CPU executes this workload in under a second, providing a strong contrast to the mainframe computing resources required in 1984.</li>
</ul>
<hr>
<h2 id="paper-information">Paper Information</h2>
<p><strong>Citation</strong>: Ghaleb, D. (1984). Diffusion of adatom dimers on (111) surface of face centred crystals: A molecular dynamics study. <em>Surface Science</em>, 137(2-3), L103-L108. <a href="https://doi.org/10.1016/0039-6028(84)90515-6">https://doi.org/10.1016/0039-6028(84)90515-6</a></p>
<p><strong>Publication</strong>: Surface Science 1984</p>
<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>{ghalebDiffusionAdatomDimers1984,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span> = <span style="color:#e6db74">{Diffusion of Adatom Dimers on (111) Surface of Face Centred Crystals: A Molecular Dynamics Study}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span> = <span style="color:#e6db74">{Ghaleb, Dominique}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span> = <span style="color:#e6db74">{1984}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span> = <span style="color:#e6db74">{Surface Science}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span> = <span style="color:#e6db74">{137}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">number</span> = <span style="color:#e6db74">{2-3}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">pages</span> = <span style="color:#e6db74">{L103-L108}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">doi</span> = <span style="color:#e6db74">{10.1016/0039-6028(84)90515-6}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item><item><title>Invalid SMILES Benefit Chemical Language Models: A Study</title><link>https://hunterheidenreich.com/notes/chemistry/molecular-representations/notations/invalid-smiles-help/</link><pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate><guid>https://hunterheidenreich.com/notes/chemistry/molecular-representations/notations/invalid-smiles-help/</guid><description>Skinnider (2024) shows that generating invalid SMILES actually improves chemical language model performance through quality filtering.</description><content:encoded><![CDATA[<h2 id="core-contribution-repurposing-invalid-smiles">Core Contribution: Repurposing Invalid SMILES</h2>
<p>This is an <strong>Empirical</strong> paper that challenges a fundamental assumption in the field of chemical language models. Skinnider provides both empirical evidence and mechanistic explanations for why the ability to generate &ldquo;invalid&rdquo; SMILES strings is beneficial for model performance.</p>
<h2 id="the-problem-with-absolute-validity-in-chemical-lms">The Problem with Absolute Validity in Chemical LMs</h2>
<p>Prior research attempted to eliminate invalid generations using constrained representations like SELFIES. This paper demonstrates that invalid outputs serve as low-likelihood samples whose removal acts as an implicit quality filter, improving distribution learning.</p>
<h2 id="invalid-generation-as-an-implicit-quality-filter">Invalid Generation as an Implicit Quality Filter</h2>
<p>The central insight is counterintuitive: <strong>invalid SMILES generation acts as a built-in quality control mechanism</strong>. The key contributions are:</p>
<ol>
<li>
<p><strong>Empirical Evidence</strong>: Direct comparisons showing that SMILES-based models consistently outperform SELFIES-based models across multiple metrics, with performance gains strongly correlated with the proportion of invalid outputs generated.</p>
</li>
<li>
<p><strong>Mechanistic Explanation</strong>: Invalid SMILES are demonstrated to be low-likelihood samples from the model&rsquo;s probability distribution. When these are filtered out, it&rsquo;s equivalent to removing the model&rsquo;s least confident predictions, a form of automatic quality control.</p>
</li>
<li>
<p><strong>Causal Evidence</strong>: By modifying SELFIES to allow invalid generation (through relaxed constraints), the author shows that performance improves when models can generate and discard invalid outputs, directly proving the causal relationship.</p>
</li>
<li>
<p><strong>Bias Analysis</strong>: SELFIES models are shown to introduce systematic structural biases (fewer aromatic rings, more aliphatic rings) due to their validity constraints, limiting their ability to explore chemical space naturally.</p>
</li>
</ol>
<h2 id="experimental-design-and-causal-interventions">Experimental Design and Causal Interventions</h2>
<p>The paper uses a multi-pronged approach to establish both correlation and causation:</p>
<p><strong>Performance Comparisons</strong>: SMILES and SELFIES models were trained on identical datasets and evaluated using distribution-learning metrics like Fréchet ChemNet distance. The comparison was robust across different architectures, training set sizes, and chemical databases.</p>
<p><strong>Loss Analysis</strong>: The relationship between SMILES validity and model confidence was examined by analyzing the sequence loss. For a given SMILES string $S$ composed of tokens $t_1, t_2, &hellip;, t_N$, the negative log-likelihood acts as a proxy for the model&rsquo;s uncertainty:</p>
<p>$$ \text{NLL}(S) = -\sum_{i=1}^N \log P(t_i | t_1, &hellip;, t_{i-1}) $$</p>
<p>Invalid SMILES strings consistently register higher $\text{NLL}$ scores, meaning they represent the model&rsquo;s least confident predictions. Filtering them effectively acts as automatic quality control, providing the mechanistic explanation for why invalid filtering improves performance.</p>
<p><strong>Causal Intervention</strong>: A key experiment involved modifying the SELFIES valency constraints at two levels: first allowing pentavalent carbons (&ldquo;Texas SELFIES&rdquo;), then removing all constraints entirely (&ldquo;unconstrained SELFIES&rdquo;). This allowed direct testing of whether the ability to generate invalid outputs (which are then discarded) causally improves performance.</p>
<p><strong>Structural Bias Analysis</strong>: Generated molecules were analyzed for chemical features like ring types and bond patterns to quantify how validity constraints systematically distort the model&rsquo;s exploration of chemical space.</p>
<p><strong>Generalization Testing</strong>: Models were trained on subsets of chemical databases and tested on their ability to reproduce the broader chemical space, measuring how validity constraints affect generalization.</p>
<p><strong>Practical Application</strong>: The approach was tested on structure elucidation, using models to identify unknown molecules from minimal experimental data like mass spectrometry.</p>
<h2 id="key-findings-on-validity-constraints-and-bias">Key Findings on Validity Constraints and Bias</h2>
<p><strong>Superior Performance Across the Board</strong>: SMILES-based models consistently outperformed SELFIES models on distribution-learning tasks. Using metrics like Fréchet ChemNet distance, SMILES models generated molecules that more closely matched the statistical properties of their training data. This performance advantage was directly correlated with the proportion of invalid SMILES generated. Models that produced more invalid outputs performed better after filtering.</p>
<p><strong>Invalid SMILES Are Low-Confidence Predictions</strong>: The analysis revealed that invalid SMILES consistently have higher loss values than valid ones, meaning they represent the model&rsquo;s least confident predictions. This suggests that validity checking acts as an automatic confidence filter, removing low-quality samples without requiring explicit uncertainty estimation.</p>
<p><strong>Causal Evidence Through Unconstrained SELFIES</strong>: Direct causal evidence came from modifying SELFIES to allow invalid generation. When &ldquo;unconstrained SELFIES&rdquo; models could generate and discard invalid molecules, their performance improved, approaching that of SMILES models. This provides direct causal evidence that the ability to generate invalid outputs is what drives the performance gains.</p>
<p><strong>Validity Constraints Introduce Systematic Bias</strong>: SELFIES models showed clear structural biases compared to both training data and SMILES outputs. They generated fewer aromatic rings and more aliphatic structures, systematic distortions caused by the valency constraints used to ensure validity. These biases limit the model&rsquo;s ability to faithfully represent chemical space.</p>
<p><strong>Reduced Generalization</strong>: When trained on subsets of chemical databases, SMILES models could reproduce a larger portion of the complete chemical space compared to SELFIES models. Although SELFIES generated more valid molecules in absolute terms, their structural biases constrained exploration and limited generalization beyond the training set.</p>
<p><strong>Real-World Application Benefits</strong>: In structure elucidation tasks, identifying unknown molecules from experimental data like mass spectrometry, SMILES-based models significantly outperformed SELFIES models. This demonstrates that the benefits extend beyond academic benchmarks to practical applications.</p>
<p><strong>CASMI 2022 Benchmark</strong>: The language model trained on the LOTUS database was benchmarked against 19 submissions to the CASMI 2022 competition for structure elucidation of unknown compounds. Using only accurate mass as input (no MS/MS data), the model achieved competitive performance, highlighting the practical utility of the sampling-frequency-based approach for de novo structure elucidation.</p>
<p><strong>Computational Efficiency</strong>: Filtering invalid SMILES is computationally trivial. Parsing ten million SMILES strings with RDKit takes approximately 7.5 minutes on a single CPU, making the post-processing overhead negligible compared to model training and inference costs.</p>
<h2 id="reproducibility-details">Reproducibility Details</h2>
<h3 id="models">Models</h3>
<p><strong>Primary Architecture (LSTM):</strong> The main results rely on a Recurrent Neural Network (RNN) using Long Short-Term Memory (LSTM) units.</p>
<ul>
<li><strong>Structure:</strong> Three-layer LSTM with a hidden layer size of 1,024 dimensions</li>
<li><strong>Embedding:</strong> An embedding layer of 128 dimensions</li>
<li><strong>Decoder:</strong> A linear decoder layer outputs token probabilities</li>
</ul>
<p><strong>Secondary Architecture (Transformer/GPT):</strong> To confirm robustness across architectures, the author also used a Generative Pretrained Transformer (GPT) architecture adapted from MolGPT.</p>
<ul>
<li><strong>Structure:</strong> Eight transformer blocks</li>
<li><strong>Internals:</strong> Each block contains eight masked self-attention heads and a feed-forward network (1,024 dimensions) using GELU activation</li>
<li><strong>Embedding:</strong> 256 dimensions, concatenated with learned positional encodings</li>
</ul>
<h3 id="algorithms">Algorithms</h3>
<p><strong>Optimizer:</strong> Adam optimizer for both architectures with $\beta_1=0.9$ and $\beta_2=0.999$.</p>
<p><strong>Learning Rate:</strong></p>
<ul>
<li>LSTM: 0.001</li>
<li>Transformer: 0.0005</li>
</ul>
<p><strong>Batch Size:</strong> 64</p>
<p><strong>Loss Function:</strong> Cross-entropy loss of next-token prediction.</p>
<p><strong>Stopping Criteria:</strong> Early stopping using a validation set (10% of training data) with patience of 50,000 minibatches.</p>
<h3 id="data">Data</h3>
<p><strong>Primary Source:</strong> ChEMBL database (version 28).</p>
<p><strong>Preprocessing Pipeline:</strong></p>
<ul>
<li><strong>Cleaning:</strong> Removal of duplicate SMILES, salts, and solvents (retaining heavy fragments with $\geq 3$ heavy atoms)</li>
<li><strong>Filtering:</strong> Molecules with atoms other than {Br, C, Cl, F, H, I, N, O, P, S} were removed</li>
<li><strong>Normalization:</strong> Charged molecules were neutralized and converted to canonical SMILES</li>
</ul>
<p><strong>Training Subsets:</strong> Models were trained on random samples of 30,000, 100,000, and 300,000 molecules to test scalability.</p>
<p><strong>Generalization Data:</strong> To test generalization, models were also trained on the <a href="/notes/chemistry/datasets/gdb-13/">GDB-13</a> database (enumerating drug-like molecules up to 13 heavy atoms).</p>
<p><strong>Structure Elucidation Data:</strong> For practical application tasks, models were trained on natural products (LOTUS, COCONUT), food compounds (FooDB), and environmental contaminants (NORMAN).</p>
<h3 id="evaluation">Evaluation</h3>
<p><strong>Primary Metric:</strong> Fréchet ChemNet Distance (FCD), measuring chemical similarity between generated molecules and the training set (lower is better).</p>
<p><strong>Secondary Metrics:</strong></p>
<ul>
<li><strong>Validity:</strong> Percentage of outputs parseable by RDKit</li>
<li><strong>Scaffold Similarity:</strong> Jensen-Shannon distances between Murcko scaffold compositions</li>
<li><strong>Physical Properties:</strong> Comparisons of molecular weight, LogP, topological polar surface area (TPSA), and ring counts (aromatic vs. aliphatic)</li>
<li><strong>Structure Elucidation:</strong> &ldquo;Top-k accuracy,&rdquo; the proportion of held-out molecules where the correct structure appeared in the model&rsquo;s top $k$ ranked outputs</li>
</ul>
<h3 id="hardware">Hardware</h3>
<ul>
<li><strong>Compute Nodes:</strong> Dell EMC C4140 GPU compute nodes</li>
<li><strong>GPUs:</strong> NVIDIA Tesla V100</li>
<li><strong>Compute Time:</strong> Parsing 10 million SMILES took ~7.5 minutes on a single CPU; SELFIES models required an average of 0.6 hours longer to train than SMILES models</li>
</ul>
<h3 id="replicability">Replicability</h3>
<p><strong>Code Availability:</strong> Source code and intermediate data are available via <a href="https://doi.org/10.5281/zenodo.10680855">Zenodo</a>. Pre-trained model weights are not provided in the archive, requiring researchers to train models from scratch using the included scripts to fully replicate the study.</p>
<p><strong>Data Availability:</strong> Training datasets and generated molecule samples (10 million from ChEMBL/GDB-13 models, 100 million from LOTUS/COCONUT/FooDB/NORMAN cross-validation folds) are available via <a href="https://doi.org/10.5281/zenodo.8321735">Zenodo</a>.</p>
<p><strong>Software Libraries:</strong></p>
<ul>
<li><strong>PyTorch:</strong> LSTM and Transformer implementations</li>
<li><strong>RDKit:</strong> SMILES parsing, validity checking, and property calculation</li>
<li><strong>SELFIES:</strong> Version 2.1.1 for conversion</li>
</ul>
<h3 id="artifacts">Artifacts</h3>
<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.5281/zenodo.10680855">Source code (Zenodo)</a></td>
          <td>Code</td>
          <td>Unknown</td>
          <td>Training scripts, analysis code, and intermediate data</td>
      </tr>
      <tr>
          <td><a href="https://doi.org/10.5281/zenodo.8321735">Training and generated molecules (Zenodo)</a></td>
          <td>Dataset</td>
          <td>Unknown</td>
          <td>Preprocessed training sets and sampled molecules</td>
      </tr>
  </tbody>
</table>
<h2 id="implications-and-takeaways">Implications and Takeaways</h2>
<p>This work reframes how we think about &ldquo;errors&rdquo; in generative models. The key insight is that model outputs appearing incorrect often represent low-likelihood samples whose removal improves overall performance.</p>
<p>The findings suggest that the field&rsquo;s drive toward guaranteed validity leads to systematic biases. Letting models fail informatively and using those failures as quality signals can yield better distribution learning. This is relevant as the field moves toward larger, more capable models where such self-correction mechanisms become increasingly valuable.</p>
<p>For practitioners, the takeaway is to consider the role of invalid outputs before eliminating them. Filtering low-confidence generations provides automatic quality control that improves final results.</p>
<h2 id="paper-information">Paper Information</h2>
<p><strong>Citation</strong>: Skinnider, M. A. (2024). Invalid SMILES are beneficial rather than detrimental to chemical language models. Nature Machine Intelligence, 6(4), 437-448. <a href="https://doi.org/10.1038/s42256-024-00821-x">https://doi.org/10.1038/s42256-024-00821-x</a></p>
<p><strong>Publication</strong>: Nature Machine Intelligence (2024)</p>
<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>{skinnider2024invalid,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">title</span>=<span style="color:#e6db74">{Invalid SMILES are beneficial rather than detrimental to chemical language models}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">author</span>=<span style="color:#e6db74">{Skinnider, Michael A}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">journal</span>=<span style="color:#e6db74">{Nature Machine Intelligence}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">volume</span>=<span style="color:#e6db74">{6}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">number</span>=<span style="color:#e6db74">{4}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">pages</span>=<span style="color:#e6db74">{437--448}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">year</span>=<span style="color:#e6db74">{2024}</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">publisher</span>=<span style="color:#e6db74">{Nature Publishing Group UK London}</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded></item></channel></rss>