DNA配列は4文字の文字列
DNA配列とは、A、C、G、Tの4つの文字を並べた文字列のことです。文字列として扱えば、Python の数える、探す、並べ替えるという道具がそのまま使えます。
このモジュールの配列は、すべて作り話です。実在の生き物や人とは関係がありません。
このレッスンのゴール
メモ
DNA配列の塩基を数え、GC含量と逆相補鎖を求められる。
キーワード
| ことば | いみ | れい |
|---|---|---|
| 塩基 | 配列を作る4種類の文字 | A、C、G、T |
| 配列 | 塩基を一列に並べたもの | GGCATTAA |
| GC含量 | GとCが全体に占める割合 | 3 ÷ 8 = 0.375 |
| 相補 | AとT、GとCが組になる関係 | |
| 逆相補鎖 | 逆向きに読み、相補にした配列 |
学生が入力するセルは、このプレビューでは空白です。
塩基を数えると配列の特徴が分かる
配列は4種類の文字だけでできています。文字列の count を使うと、それぞれが何個あるかが分かります。
配列の長さは len で調べます。長さと個数が分かれば、割合も求められます。
例: 配列 GGCATTAA の数え方
| 塩基 | 個数 | 割合 |
|---|---|---|
| A | 3 | 3 ÷ 8 = 0.375 |
| C | 1 | 1 ÷ 8 = 0.125 |
| G | 2 | 2 ÷ 8 = 0.25 |
| T | 2 | 2 ÷ 8 = 0.25 |
学生が入力するセルは、このプレビューでは空白です。
長さとGCの数を調べる
docker exec jupyter python3 -c 'S="GGCATTAA"; print(len(S), S.count("G") + S.count("C"))'ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
GC含量はGとCの割合
GC含量は、配列の中でGとCが占める割合です。GとCの個数を足して、配列の長さで割ります。
8文字のうちGとCが3個なら、GC含量は 3 ÷ 8 で 0.375 です。0 から 1 のあいだの小数になります。
GC含量を計算するコード
# GC含量を、1文字ずつ見て数えます。
dna = "ATGCGCTAAT"
gc_count = 0
for letter in dna:
if letter == "G" or letter == "C":
gc_count = gc_count + 1
print("GCの数:", gc_count)
print("GC含量:", gc_count / len(dna))
# dna を GGGGCCCC に変えて、もう一度実行してください。
# GC含量はいくつになりますか。
逆相補鎖は逆向きの相補
DNAは2本の鎖が向かい合っています。Aの向かいはT、Gの向かいはCです。この関係を相補と呼びます。
一方の鎖から、もう一方を作るには2つの手順が必要です。まず配列を逆向きにし、次に各文字を相補にします。この結果が逆相補鎖です。
例: ATGCCA の逆相補鎖
| 手順 | 結果 |
|---|---|
| 元の配列 | ATGCCA |
| 逆向きにする | ACCGTA |
| 相補にする | TGGCAT |
学生が入力するセルは、このプレビューでは空白です。
逆相補鎖を作る
docker exec jupyter python3 -c 'S="ATGCCA"; C={"A":"T","T":"A","G":"C","C":"G"}; print("".join([C[x] for x in S[::-1]]))'ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
よくある間違い
注意
相補にするだけで逆相補鎖ができると考えがちです。実際は、向きを逆にする手順も必要です。ATGCCA を相補にしただけでは TACGGT になり、逆相補鎖 TGGCAT と違います。