2026年のある日、私は26年前に自分で書いたPerl製のCGIプログラムを、コードを1行も書かずに復活させた。かかった時間は、ものの数分だった。
2000年のWebと、一人の研究者の「もったいない精神」
当時、私はSPring-8(兵庫県にある大型放射光施設)(図1)でタンパク質のX線結晶構造解析の研究をしていた。研究の流れはざっくりこうだ。
ターゲットとなるタンパク質の遺伝子を単離し、大腸菌に大量生産させ、精製して結晶化し、SPring-8の強力なX線ビームに当てて構造を決定する。このプロセスの入り口で欠かせない作業のひとつが、コドン使用頻度(Codon Usage)の確認だ。
生物種によって「好みのコドン」が異なる。ヒトの遺伝子をそのまま大腸菌に入れても、大腸菌が苦手なコドンが多ければ発現量が激減する。どのコドンが何回使われているかを事前に調べ、必要なら最適化を検討する――これが実験成功の鍵を握る地味だが重要なステップだった。
当時、こうした配列解析の定番ソフトといえば Genetyx(ジェネティクス) だった。しかし、研究費を圧迫するほど高い。しかも、自分が実際に使う機能はほんの一部だ。「それなら必要な機能だけ自分で作ればいい」という発想は、当時の自分にとってごく自然なものだった。
同僚から「私も使いたい」と言われたことで、次のアイデアが浮かんだ。当時、趣味でWebサーバーを自宅で公開していた。「せっかくなら、世界中の誰でも使えるようにしよう」。こうして生まれたのが DNACNV――DNA配列をアミノ酸配列に変換し、コドン使用頻度を表示するWebツールだ(図2)。Perlで書いたCGIスクリプトと、HTMLフォームの2ファイルで構成されていた。
画面は白黒のテキスト表示。今見れば殺風景だが、当時の技術水準としては普通だったし、別に色をつけることもできた。ただ機能さえ動けばよかった。
26年後の「そういえば」――きっかけはテトリス
それから四半世紀が過ぎた。私はここ数年、生成AIを研究や執筆に積極的に活用するようになり、ブログのサブタイトルには「AIとの対話のみでどこまで専門的かつ実用的なテキストを構築できるかの実験記録」と掲げるほどになっていた。
最近まで主に使っていたのはGeminiだったが、比較のためにClaudeも試し始めた。「バイブコーディングの本場」という印象があったので、まずは定番のテトリスを作らせてみることにした。
ここで最初の小さな驚きがあった。
出力がPythonではなく、HTMLだったのだ。
なぜかPythonで返ってくると思い込んでいたのだが、Claudeはブラウザで動くHTML+JavaScriptのゲームを生成した。動かすのにサーバーも実行環境も不要で、HTMLファイルをダブルクリックするだけでテトリスが遊べた。
「あ、そういうことか」と思った瞬間、記憶のどこかにあったあのCGIツールが浮かんだ。
――あのPerlのプログラム、HTMLに移植できるんじゃないか。
PerlのCGIはサーバーサイドで計算してブラウザに結果を返す仕組みだが、DNAからアミノ酸への変換ロジックは純粋な文字列処理だ。サーバーは必要ない。計算はすべてブラウザ内のJavaScriptで完結できる。しかも当時作ったHTMLフォームとCGIスクリプトのファイルが手元に残っていた。
実際にやってみた――一発で動いた
Claudeに渡したのは2つのファイルだけだ。
index.html(当時のフォーム画面)dnacnv.cgi(Perlのロジック本体)
そして伝えたのは、「これを、サーバーなしで動くHTMLの1ファイルに移植してほしい」という一言だった。
Claudeはまずcgiファイルを読んでロジックを把握し、遺伝暗号表(コドンとアミノ酸の対応)から相補鎖変換、3フレーム翻訳、コドン使用頻度集計まで、すべてのサブルーチンをJavaScriptに忠実に書き直した。
結果は一発で動作した。エラーは一度も出なかった。
動作確認には、lacZ遺伝子(大腸菌のβ-ガラクトシダーゼをコードする、それなりの長さの配列)の逆相補鎖を入力してテストした。正常に動作した。
そして出来上がった画面を見て、思わず笑った。
26年前の白黒テキスト表示に対し、今回生成された画面はダークテーマにカラフルなグラデーション、モノスペースフォント、アニメーション付きのボタンという、なかなか派手な仕上がりだった(図3)。見た目については一切注文をつけなかったのに、Claudeが勝手に現代風のデザインを選んできたのだ。気に入っている。
研究者としての最大の気づき――論文に「試せるURL」を添えられる時代
今回の体験で一番大きかった気づきは、「移植が成功した」ことそのものではない。
「サーバーなしでWebに公開できる」という事実が持つ意味だ。
2000年代、個人がWebツールを公開するにはサーバーが必要だった。自宅サーバーを立てるか、レンタルサーバーを契約するか、大学や研究所のサーバーを借りるか。CGIを動かすには実行環境の管理も必要だった。それなりの手間とコストがかかった。
HTMLとJavaScriptだけで動くツールなら、その制約がほぼ消える。GitHubのPages機能でも、その他の静的ホスティングでも、無料で世界に公開できる。
これが何を意味するか、研究者の立場から考えると非常に大きい。
先日、ゲノム編集関係の研究で、標的となる配列を検索するプログラムをC言語で作った。今は手元でしか動かせないが、これをJavaScriptに変換し、HTMLとして公開すれば――論文発表の際に「こちらのURLでツールを試せます」と添えることができる。
再現性と透明性が問われる現代の科学において、これはただの「便利な付録」ではない。研究そのものの価値を補強するものになり得る。
バイブコーディングは趣味や時短の話ではなく、研究インフラそのものになりつつあると感じている。
まとめ
今回の作業を振り返ると、自分がやったことは本当にシンプルだ。
2つの古いファイルを渡して、「サーバーなしで動くHTMLにして」と言っただけだ。プログラミングの知識があるに越したことはないが、「何をしたいか」を説明できれば、それで動くものができる時代になっている。
2000年代初頭のWebは、個人が手作りしたツールが世界中の研究者の役に立っていた。商用ソフトが高すぎるなら自分で作る、というエネルギーに満ちた時代だった。その精神は今も有効だし、実現するための障壁は当時より圧倒的に低い。
手元に眠っている自作スクリプトがあれば、ぜひ一度、AIに「HTMLにして」と頼んでみてほしい。
思いのほか、あっさり動くはずだ。
今回復活したDNACNVはこちらで実際に試すことができます: https://tools.nakaix.com/dnacnv/
DNA配列(FASTA形式でも可)をペーストして「Analyze Sequence」を押すだけです。インストール不要、ブラウザだけで動きます。
(おまけ)バイブコーディングの練習として最初に作ったテトリスもこちらで遊べます(音が出ます。ご注意ください): https://tools.nakaix.com/tetris/
本記事はAIとの対話のみで構成されています。筆者は本文を1行も執筆していません。



0 件のコメント:
コメントを投稿