LoginSignup
1
1

More than 1 year has passed since last update.

UNIX パイプで分子生物学実験

Last updated at Posted at 2022-12-08

この投稿の趣旨は簡単な生物学的現象や分子生物学実験を UNIX コマンド上で再現することです。生物学に馴染みのない方はまず以下のページを見ていただくと良いかもしれません。


ランダムな塩基配列を生成

生物の遺伝情報は DNA 分子中のアデニン・チミン・グアニン・シトシンの4つの塩基の配列としてコードされています。それぞれが ATGC の4文字に割り当てられているものとして、次のコマンドでランダムな塩基配列が生成され標準出力に書き出されます。

# DNA
$ cat /dev/urandom | base64 | tr -dc 'ATGC'
# RNA
$ cat /dev/urandom | base64 | tr -dc 'AUGC'

スクリーンショット 2022-12-08 9.16.20.png

終了するときは ctrl + C でキャンセルしてください。

コマンドの詳細

/dev/urandom

乱数生成器です。
cat /dev/urandom を実行すると標準出力でランダムなビット列が得られます。

base64

パイプ元から得られたランダムなビット列を base64 でエンコードします。

tr -dc 'ATGC'

ATGC 以外の文字を削除します。 チミンの代わりにウラシルが含まれれる RNA の場合は TU に変えると対応できます。

転写

DNA は RNA ポリメラーゼの働きで RNA に転写されます。rna-polymerase-stream というライブラリを使ってこの働きを再現してみます。このライブラリでは Node.js の TransformStream のインターフェースを実装して、標準入力された ATGC の文字列に対して A -> UT -> AG -> CC -> G の変換を行います。

$ cat /dev/urandom | base64 | tr -dc 'ATGC' | \
  npx rna-polymerase-stream

翻訳

mRNA 中の3文字の塩基配列の組み合わせ(コドン)はそれぞれ20種類のアミノ酸に対応していて、この順序に従ってアミノ酸が重合することで様々なタンパク質になります。この塩基配列を元にタンパク質を合成する仕組みを翻訳といい、細胞内にあるリボソームで行われます。
次のライブラリはリボソームの働きを模し、コドン表に基づいて RNA の塩基配列をタンパク質に翻訳します。イニシエーター配列(AUAAUGGUG)とターミネーター配列(UAAUAGUGA)を認識してその間の塩基配列をタンパク質に翻訳し、 Arg.(アルギニン) などの記号に置換します。

$ cat /dev/urandom | base64 | tr -dc 'ATGC' | \
  npx rna-polymerase-stream | \
  npx ribosome-stream

スクリーンショット 2022-12-08 9.25.13.png

制限酵素

制限酵素の働きを模して特定の塩基配列を認識し切断します。回文配列が対象です。
例: AAGCTT GATATC

制限酵素で切断された DNA 断片は改行区切り文字列としてストリームに流します。

$ cat /dev/urandom | base64 | tr -dc 'ATGC' | \
  npx restriction-endonuclease AAGCTT

スクリーンショット 2022-12-08 11.14.06.png

電気泳動

DNA 断片が得られたら最後は電気泳動です。DNA 断片の重さ = 文字数の長さとしてカウントしヒストグラムを作成します。以下のライブラリを使います。 --resolution オプションはヒストグラムのステップ間隔で小さい値を指定するとヒストグラムが細かくなります。

$ cat /dev/urandom | base64 | tr -dc 'ATGC' | \
  npx restriction-endonuclease AAGCTT | \
  npx electrophoresis --resolution=10000

Dec-08-2022 12-24-12.gif


そのほかに CLI で再現できそうなおもしろい生物学的現象や実験方法などがあればぜひコメントで教えてください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1