コドンは塩基3つの区切り
コドンとは、DNAの塩基を3つずつ区切った並びのことです。コドンごとに決まったアミノ酸の文字が対応していて、順に並べるとタンパク質の配列になります。
このレッスンでは、コドン表を使って、配列を読んで翻訳します。配列はすべて作り話で、実在の遺伝子ではありません。
このレッスンのゴール
メモ
コドン表を使って、DNA配列を3文字ずつ読み、タンパク質の配列に翻訳できる。
キーワード
| ことば | いみ | れい |
|---|---|---|
| コドン | 塩基を3つずつ区切った並び | ATG |
| コドン表 | コドンとアミノ酸の対応表 | |
| アミノ酸 | タンパク質の部品で、1文字で表す | M |
| 読み枠 | 3文字ずつ区切り始める位置 | |
| 終止コドン | 翻訳をここで終えるという目印 |
学生が入力するセルは、このプレビューでは空白です。
配列を3文字ずつ区切って読む
翻訳では、k-mer と違って、窓を3文字ずつずらします。重ならずに、3文字ずつ区切ります。
こうして区切った1つ1つがコドンです。コドン表を引くと、コドンごとにアミノ酸の文字が分かります。
例: コドン表の一部
| コドン | 文字 | 意味 |
|---|---|---|
| ATG | M | アミノ酸 |
| TTT | F | アミノ酸 |
| GGC | G | アミノ酸 |
| GCT | A | アミノ酸 |
| AAA | K | アミノ酸 |
| TGG | W | アミノ酸 |
| GAA | E | アミノ酸 |
| TAA | * | 終止コドン |
学生が入力するセルは、このプレビューでは空白です。
3文字ずつに区切る
docker exec jupyter python3 -c 'S="ATGAAAGGC"; print([S[i:i+3] for i in range(0, len(S), 3)])'ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
コドン表を引いて翻訳する
コドンを順に表で引き、文字をつなげると、タンパク質の配列になります。終止コドンが出たら、そこで翻訳を終えます。
最後に、3文字に足りない塩基が余ったら、読まずに捨てます。表にないコドンは、X という文字にします。
小さな表で翻訳する
docker exec jupyter python3 -c 'T={"ATG":"M","TTT":"F","GGC":"G"}; S="ATGTTTGGC"; print("".join([T[S[i:i+3]] for i in range(0, len(S), 3)]))'ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
終止コドンまで翻訳するコード
# 小さなコドン表を使って、3文字ずつ読みます。
table = {"ATG": "M", "TTT": "F", "GGC": "G", "TAA": "*"}
dna = "ATGTTTGGCTAAATG"
protein = ""
for start in range(0, len(dna) - 2, 3):
codon = dna[start:start + 3]
letter = table[codon]
if letter == "*":
# 終止コドンが出たら、そこで読むのをやめます。
break
protein = protein + letter
print("タンパク質:", protein)
# dna の TAA を GGC に変えて、もう一度実行してください。
# 何が起きますか。
読み枠が変わると読み方が変わる
3文字の区切りを始める位置が読み枠です。1文字目から始めるものを枠 0、2文字目からを枠 1、3文字目からを枠 2 と呼びます。
同じ配列でも、枠が変われば、コドンはまったく別になります。
例: ATGAAATGGTAA の3つの枠
| 枠 | コドン | 翻訳 |
|---|---|---|
| 0 | ATG AAA TGG TAA | M K W と終止 |
| 1 | TGA AAT GGT | 最初が終止コドン |
| 2 | GAA ATG GTA | E M と、表にない X |
学生が入力するセルは、このプレビューでは空白です。
よくある間違い
注意
どの位置から3文字ずつ区切っても、同じタンパク質になると考えがちです。実際は、1文字ずれるだけで、コドンの区切りがすべて変わります。まず ATG を探し、その位置から読み始めます。