クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

DNA配列を文字列で数える

このレッスンのあとで: DNA配列の塩基を数え、GC含量と逆相補鎖を求められる。

55分のレッスンコマンド2件JupyterLab データサイエンスラボ:pandas、Matplotlib、scikit-learn をブラウザーで

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 の数え方

塩基個数割合
A33 ÷ 8 = 0.375
C11 ÷ 8 = 0.125
G22 ÷ 8 = 0.25
T22 ÷ 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含量を計算するコード

コード: python
# 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 と違います。

このラボとソースについて: JupyterLab データサイエンスラボ:pandas、Matplotlib、scikit-learn をブラウザーで

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。