mRNA配列に隠された翻訳効率の設計図

mRNA配列の最適化により翻訳効率を向上させる戦略を、機械学習の視点から探る。

  • #mRNA optimization
  • #codon optimization
  • #translation efficiency
  • #machine learning

「同じタンパク質をコードしてるのに、発現量が10倍違う」

ミハイルが二つの配列を比較していた。

「コドンの違い?」英司が推測する。

「そう。遺伝コードの縮重性。同じアミノ酸でも、複数のコドンがある」

リナが興味を示した。「でも、結果は同じタンパク質なのに、なぜ発現量が違うの?」

「翻訳効率が違うからだ。すべてのコドンが、等しく効率的なわけじゃない」

ミハイルは表を見せた。「これ、コドン使用頻度。生物種ごとに、好まれるコドンが違う」

「大腸菌と哺乳類で、全然違いますね」リナが観察した。

「そう。大腸菌で頻繁に使われるコドンを、哺乳類で使うと、対応tRNAが少なくて翻訳が遅れる」

英司が理解した。「だから、発現系に合わせてコドンを最適化する」

「正確。これがコドン最適化だ」

リナが質問した。「単純に、頻度が高いコドンに置き換えればいい?」

「そう単純じゃない」ミハイルが笑った。「他にも多くの要因がある」

「例えば?」

「mRNAの二次構造。リボソームが詰まりやすい配列を避ける必要がある」

ミハイルは折り畳み予測を見せた。複雑なステムループ構造。

「この構造、翻訳開始部位を隠してる。だから発現が低い」

英司が提案した。「じゃあ、二次構造を崩すようにコドンを変える」

「そう。でも、タンパク質の配列は変えられない。同義コドンの中で選ぶしかない」

リナが考えた。「制約付き最適化問題ですね」

「まさに。そして、最近は機械学習で解いてる」

ミハイルはモデルの図を見せた。「入力はmRNA配列、出力は翻訳効率の予測値」

「どんなモデル?」

「Transformerベースの深層学習。配列の文脈を捉えられる」

英司が興味を示した。「学習データは?」

「大規模な発現実験データ。数万のmRNA配列と、それぞれの発現量」

リナが質問した。「でも、発現量には、他の要因もあるのでは?」

「ある。mRNA安定性、5'UTR、3'UTR、ポリAテール長。すべて影響する」

「複雑すぎませんか?」

「複雑だ。だから、深層学習が適してる。非線形な関係を学習できる」

ミハイルは最適化プロセスを説明した。「モデルで翻訳効率を予測しながら、配列を最適化する」

「遺伝的アルゴリズム?」英司が推測する。

「それも使える。でも、最近は勾配ベースの最適化も試されてる」

「離散的な配列で、勾配?」

「One-hot表現を連続化して、勾配を計算する。そして、最も改善するコドンを選ぶ」

リナが感心した。「数学的に美しい」

ミハイルが別の画面を開いた。「これが、最適化前と最適化後の配列」

「見た目は…ほとんど同じ?」英司が言う。

「アミノ酸配列は完全に同じ。でも、コドンは30パーセント変わってる」

「結果は?」

「翻訳効率が5倍向上。医薬品レベルの発現量になった」

リナが実用性を確認した。「mRNAワクチンにも使われてる技術?」

「そう。COVID-19ワクチンのmRNAも、徹底的に最適化されてる」

「どんな最適化?」

「コドン最適化、二次構造の調整、修飾ヌクレオチドの導入」

英司が追加した。「免疫原性を下げることも重要だ」

「正確。mRNAが免疫系に認識されにくくする工夫」

ミハイルは別の例を示した。「これ、同じスパイクタンパク質をコードする配列。野生型とワクチン型」

「GとCの含量が、全然違う」リナが気づいた。

「GC含量を上げると、mRNAが安定化する。でも、高すぎると二次構造が増える」

「また、トレードオフ」英司が言った。

「すべてはバランス。最適化は、多目的最適化なんだ」

リナが質問した。「目的関数は?」

「翻訳効率最大化、二次構造最小化、GC含量の適正範囲、免疫原性最小化」

「これ全部を同時に?」

「パレート最適解を探す。すべてを最大化はできないけど、バランスの良い解を見つける」

英司が感心した。「mRNA設計って、こんなに深いんだな」

「生命の言語を、最適化してる」ミハイルが静かに言った。「配列という情報に、設計図が隠されてる」

リナが微笑んだ。「隠された設計図を読み解く。それが、私たちの仕事ですね」

「そう。そして、より良い設計図を描く」

三人は、mRNA配列という四文字の言語に、無限の可能性を見ていた。