バイオインフォマティクスでは、大量のゲノムデータや遺伝子発現データを扱うことが一般的です。こうした複雑かつ大規模なデータを効率よく処理するためには、Pythonのpandasライブラリが非常に有効です。特に、データの参照方法(行・列の取り出し方)は、実際の解析業務において非常に重要なスキルの一つです。
今回は、pandasのデータ参照方法について、基本的な行・列の指定から、bool型(真偽値)を使った条件抽出まで、バイオインフォマティクスの視点で丁寧に解説していきます。
1. pandasの基本:データ構造の確認
まずはpandasの基本的なデータ構造、**DataFrame(データフレーム)**を簡単におさらいしましょう。
import pandas as pd
df = pd.DataFrame({
"Gene": ["BRCA1", "TP53", "EGFR", "MYC"],
"Sample1": [2.5, 8.1, 5.3, 6.2],
"Sample2": [1.2, 7.9, 4.8, 5.6]
})
print(df)
出力例:
Gene Sample1 Sample2
0 BRCA1 2.5 1.2
1 TP53 8.1 7.9
2 EGFR 5.3 4.8
3 MYC 6.2 5.6
このような構造のデータは、遺伝子発現レベルを解析するときによく登場します。
2. 行や列の基本的な参照方法
2.1 列の参照
列を指定して取り出す方法はとても直感的です。
df["Sample1"]
複数列を取り出す場合はリストを使います。
df[["Gene", "Sample1"]]
2.2 行の参照(ilocとloc)
pandasでは行を参照する方法が2つあります。
iloc:インデックス番号で指定(整数)loc:ラベル(indexや列名)で指定
# 1行目(インデックス番号で)
df.iloc[1]
# 1行目から2行目まで(スライス)
df.iloc[1:3]
もし Gene 列を index に指定している場合は、ラベルによる参照ができます。
df.set_index("Gene", inplace=True)
df.loc["TP53"]
3. bool型参照(条件によるデータ抽出)
ここからがpandasの醍醐味。条件に基づいた抽出が柔軟にできるのがpandasの強みです。
3.1 単一条件
例えば、「Sample1の発現値が5以上の遺伝子だけを抽出したい」とき:
filtered = df[df["Sample1"] >= 5.0]
print(filtered)
出力:
Sample1 Sample2
Gene
TP53 8.1 7.9
EGFR 5.3 4.8
MYC 6.2 5.6
3.2 複数条件(AND, OR)
複数の条件を組み合わせることも可能です。
- AND条件:
& - OR条件:
|
# Sample1が5以上かつSample2が5以上
filtered = df[(df["Sample1"] >= 5.0) & (df["Sample2"] >= 5.0)]
print(filtered)
4. 応用:バイオインフォマティクスにおけるbool型参照の使いどころ
4.1 発現差のある遺伝子を抽出する
たとえば、特定のサンプル間で発現差が大きい遺伝子を取り出す場合:
df["diff"] = abs(df["Sample1"] - df["Sample2"])
df[df["diff"] > 2.0]
このように、発現の変動が顕著な遺伝子だけを絞り込むことができます。
4.2 発現レベルによるカテゴリ分類
発現が高いか低いかをbool型で分類することも可能です。
df["High_Expression"] = df["Sample1"] > 5.0
print(df)
出力:
Sample1 Sample2 diff High_Expression
Gene
BRCA1 2.5 1.2 1.3 False
TP53 8.1 7.9 0.2 True
EGFR 5.3 4.8 0.5 True
MYC 6.2 5.6 0.6 True
このようにbool型の列を作成することで、カテゴリ分けや可視化の際にも役立ちます。
4.3 特定の遺伝子群を抽出する
リストを使って、ある遺伝子群(例:がん関連遺伝子)を取り出したい場合:
target_genes = ["BRCA1", "TP53"]
df[df.index.isin(target_genes)]
5. まとめ:pandas参照機能の重要性
pandasのデータ参照機能は、バイオインフォマティクスの現場において極めて強力なツールです。数百、数千のサンプルや遺伝子を対象にしたデータ解析では、以下のような操作が日常的に求められます。
- 特定の遺伝子・サンプルを抽出
- 発現レベルに応じたフィルタリング
- 条件に基づくデータの整理と可視化の準備
これらはすべて、pandasのデータ参照やbool型参照のテクニックで実現可能です。
pandasをしっかり使いこなせば、データの前処理、統計解析、可視化までの流れが非常にスムーズになります!!バイオインフォマティクスの研究・業務を効率化する第一歩として、ぜひこの基本技術をチェックしてみてくださいね〜!
![バイオインフォ 道場 [bioinfo-Dojo]](https://bioinfo-dojo.net/wp-content/uploads/2016/03/some_object_luca-bravo-alS7ewQ41M8-unsplash.jpg)

