はじめての調香 · 105
14件の記録の分子量欄には「炭素原子だけ」の質量が入っており、私は誤りが繰り返されていたから見つけた
· 6 分
前回は logP を分子量と突き合わせて1件の誤りを拾った。今回はその手法を完成させる。分子式から分子量を直接計算し、欄と突き合わせる。解析可能な20,626件のうち、1%を超えて食い違うのは22件だけ——99.89%が一致しており、私が測った中で最も綺麗な欄の組だ。そしてその22件には模様がある。180.16が3回、228.21が2回、252.23が2回、276.25が2回現れ、それらの分子式はまったく違う。共通するのは炭素数だ。180.16の3件はすべてC15、228.21の2件はすべてC19。そしてC15 × 12.011 = 180.165、C19 × 12.011 = 228.209。この14件の分子量欄には、分子式中の炭素原子の総質量が入っている。水素も酸素も落とされている。
読了目安 4 分。
前回、logP を分子量と突き合わせて1件の誤りを拾い、それを「欄をまたぐ」検査と呼んだ。今回はその手法を最後までやる。
分子式から分子量を計算する
分子量は信じる必要のある数字ではない——**分子式から計算できる。**各元素の原子量は定数であり、足せばよい。
分子式と分子量の両方があり、分子式が解析可能な20,626件のうち、計算値と欄が1%を超えて食い違うのは22件——0.11%だけだ。
99.89%が一致する。私が測った中で最も綺麗な欄の組である。
(対照:純度欄は83.7%が同じ既定値、引火点は794件が正反対のことを言う。この組にはそれが無い。)
だがその22件には模様がある
1件ずつ見ようとして、欄の誤った値が繰り返されていることに気づいた。
| 欄が書く分子量 | 出現回数 | それらの分子式 |
|---|---|---|
| 180.16 | 3 | C15vH18vO3、C15H26O、C15H 24 |
| 228.21 | 2 | C19H28O2、C19H31NO3 |
| 252.23 | 2 | C21H32O2、C21H22O12 |
| 276.25 | 2 | C23H42O4、C23bH48bO6 |
各組の分子式はまったく違うのに、炭素数が同じだ。
そして炭素の原子量は12.011である。
| 炭素数 | × 12.011 | 欄が書く値 |
|---|---|---|
| C15 | 180.165 | 180.16 |
| C19 | 228.209 | 228.21 |
| C21 | 252.231 | 252.23 |
| C23 | 276.253 | 276.25 |
その欄には分子式中の炭素原子の総質量が入っている。水素も酸素も窒素もすべて落とされている。
1件ずつ検証すると、22件のうち14件がこの署名に完全に一致した——C54の648.59、C30の360.33、C22の264.24、C20の240.22、C7の84.08を含む。
なぜそうなるのか
手がかりは分子式欄そのものにある。該当する数件を見てほしい。
C15vH18vO3C23bH48bO6C15H 24C1 8H25 N O8
炭素数の後ろに余計な文字が入っている。C15v、C23b、C15H の後の空白。
最もありそうな説明は、分子式を解析するプログラムがその余計な文字で止まり、最初の元素だけを計算して、その結果を分子量欄に書いた、というものだ。
だがこの説明は完全ではない——6-epi-beta-bisabolol の分子式は綺麗な C15H26O なのに、分子量はやはり180.16である。余計な文字は原因の一つであって、すべてではない。
残る8件はこの署名に合わない
誤り方がそれぞれ違う(ヨードプロピニルブチルカルバメートは154.19と書くが正しくは281.09、ハルマロールは170.23だが正しくは200.24)——散らばった個別の誤りであって、同じバグではなさそうだ。
この対比そのものが要点である。
この記事の本当の方法論
繰り返し現れる誤った値と、それぞれ異なる誤った値は、まったく別のものだ。
- 散らばった固有の誤り=打ち間違い。1件ずつ直す。
- 繰り返される同じ誤り=あるプログラムが同じ間違いをしている。そのプログラムを直せば一度に全部が直る。
**私は「180.16が3回現れる」のを見てから原因を探しに行った。**もしあの14件がそれぞれ違う誤り方をしていたら、おそらく「22件が不一致」と記録して先に進んでいた。
だからデータを検査するときは、誤りの個数だけを数えず、誤りの分布を見る。
そしてこのバグは誰にも影響しない
あの14件のサプライヤー数を調べた。
すべて0である。
このバグは誰も売っていない記録でしか起きていない——これも同じ模様で、純度欄でも引火点欄でも測った。このデータベースの「商品」への扱いと「項目」への扱いは別物である。
(22件のうちサプライヤーが最も多いのはヨードプロピニルブチルカルバメートの6社だが、それは炭素質量の類ではない。)
実務として
- 分子量は検証できるし、すべきだ。
GROUP BY1つと原子量表があれば足りる。 - **誤った値が繰り返されているときは、まずそれが何に等しいか計算してみる。**180.16は無作為な数字ではない。
- **この欄の組は信頼できる。**99.89%であり、残る0.11%も誰も買わない記録に集中している。
- 分子式欄には英数字以外の文字を含む記録が42件ある(
Al Ca Na O4 Si +2のような)。解析できないが、誤りとは限らない。
この記事が立証していないこと
- **使った原子量表は一般的な32元素しか覆っていない。**他の元素を含む分子式は飛ばした(95件)。
- **1%の閾値は私が決めた。**同位体、水和物、塩の計算法の違いが1%未満の妥当な差を生みうるが、それらは扱っていない。
- 「解析プログラムが余計な文字で止まった」は推論であり、このデータベースを生成したプログラムは見ていない。しかも綺麗な分子式の数件を説明できない。
- **残る8件の誤り方は特定していない。**炭素質量の署名に合わないことだけを確認した。
- **99.89%は「2つの欄が互いに一致する」であって「2つの欄が正しい」ではない。**分子式自体が誤っていれば、この検査は拾えない。
- これは2026年9月時点のスナップショットである。