Posted at

遺伝子配列を奏でたら癒された

More than 1 year has passed since last update.

かねてから思っていたことがありました。

「遺伝子配列を音階にしたらどんな旋律になるのだろう」

ラズパイ付属のソフトを使って、遺伝子を演奏してみました。

結果は思いの外いい感じで、すさんだ心を癒してくれました。

これから自宅でくつろぐ時にはさまざまな遺伝子の調べを聞くのが習慣になりそうです。


実行環境


  • Raspberry pi 3


    • ブレッドボード、赤色LED、抵抗330Ω、ジャンパーワイヤ(オスオス)×2、40ピンケーブル

    • 電子工作は こちら を参考にさせていただきました



  • Sonic pi 2.11(演奏ソフト)1

  • Python 3.4.2


    • BioPython(アミノ酸翻訳部分に使用)2

    • python-sonic(Sonic piをPythonから呼ぶためのライブラリ)3




ソースコード

https://github.com/emihat/genome_sonic


処理内容


  1. 入力されたmRNA配列をBioPythonを使ってアミノ酸に翻訳する4

  2. アミノ酸配列を音階(ドレミ...)に割り当ててSonic piで演奏する


    • 分子量の大きい→小さい順に、低い→高い音(ドから2オクターブ上のシ)を割り当てる 5

    • コーディング領域(開始コドンと終止コドンの間)は音色を 派手な感じ に変える

    • 終止コドンで 合いの手 を入れる(結果の動画ではわかりづらいですが、短い叫び?が入っています)



  3. コーディング領域は 派手な感じを出したい ため、ラズパイにつないだLEDを光らせる


テストデータ


  • お好きな遺伝子のmRNA配列のFastaファイル(マルチFastaでもOK)


    • 今回は Serotonin 5-HT3 receptor(D49394.1)のmRNA配列を使用6




実行結果

https://twitter.com/emi_2sheds/status/945680716062265344

※音が出ます


感想


  • ノンコーディング部分がオルゴールみたいでなかなか良い


  • 画面表示と音とLEDが全部ずれている のは味です


今後の課題


  • コーディング部分の音色が汚いのをなんとかする


  • 6フレームでの翻訳に対応する ※多分やらない


  • 翻訳後修飾への対応(半音上げる下げるなど) ※多分やらない

  • リピート領域を延々と聞いてみたい

  • 変異を耳で検出できるようになりたい





  1. ラズパイに入っていたものを使用。Windows/Mac/Linuxにもインストールできるらしい。 



  2. $ pip install biopython で入れた。 



  3. $ pip install python-sonic で入れた。 



  4. 塩基配列そのままだと4音しかないため、アミノ酸に翻訳して音を増やします。 



  5. 「大きいものは低音な気がする」というフィーリングベースの独自ルールです。科学的根拠はありません。 



  6. 配列情報はUCSC Genome Browserより取得。