バイオインフォマティクスでは、大量のデータを効率的に処理することが求められます。例えば、遺伝子発現データ、ゲノムデータ、タンパク質の相互作用データ など、多くの情報を整理・解析する必要があります。
このようなデータを扱う際に非常に便利なのが Pythonのpandasライブラリ です。
pandasを活用すると、データの 読み込み・整理・操作・可視化 などを簡単に行うことができます。本記事では、pandasの概要と、バイオインフォマティクスでの活用例を交えながら解説していきます。
1. pandasとは?
pandasは、Pythonでデータを効率よく扱うためのライブラリ であり、特に 表形式のデータ を扱うのに適しています。
「PythonのExcel」とも言える存在で、データの操作や解析を簡単に実装できます。
pandasの特徴:
- データの読み書きが容易(CSV、Excel、SQL、JSONなど)
- データの集計や統計処理が得意
- データのフィルタリングや変形が柔軟
- matplotlibやseabornと連携して可視化が可能
バイオインフォマティクスでは、次のような用途で使われます:
- 遺伝子発現データの解析
- ゲノムバリアント(SNP, Indel)のフィルタリング
- メタデータの整理
- バイオデータベースとの統合解析
2. pandasのデータ構造
pandasには主に Series(1次元) と DataFrame(2次元) の2つのデータ構造があります。
2.1 Series(1次元データ)
Seriesは リストや配列にラベル(index)を付けたデータ構造 です。
import pandas as pd
gene_expression = pd.Series([2.5, 8.1, 5.3], index=["BRCA1", "TP53", "EGFR"])
print(gene_expression)
出力
BRCA1 2.5
TP53 8.1
EGFR 5.3
dtype: float64
遺伝子名をindexとして設定することで、データの検索や操作が容易 になります。
特定の値を取得する
print(gene_expression["TP53"]) # 8.1
2.2 DataFrame(2次元データ)
DataFrameは 表形式のデータ を扱う構造で、ExcelのシートやSQLのテーブルに似ています。
df = pd.DataFrame({
"Gene": ["BRCA1", "TP53", "EGFR"],
"Expression": [2.5, 8.1, 5.3],
"Sample1": [3.1, 7.9, 6.2]
})
print(df)
出力
Gene Expression Sample1
0 BRCA1 2.5 3.1
1 TP53 8.1 7.9
2 EGFR 5.3 6.2
DataFrameは 複数の列 を持つため、遺伝子発現データのような 多次元データの管理に最適 です。
特定の列を取得
print(df["Expression"])
3. pandasを使ったデータの基本操作
3.1 CSVファイルの読み込み
バイオインフォマティクスでは、CSVファイルにデータを保存することが多いため、pandasを使って簡単に読み込めます。
df = pd.read_csv("gene_expression.csv")
print(df.head()) # 最初の5行を表示
3.2 データのフィルタリング
例えば、「発現値が5以上の遺伝子だけを抽出したい」とき:
filtered_df = df[df["Expression"] > 5]
print(filtered_df)
3.3 列の追加
新しい列「Normalized_Expression」を追加する例:
df["Normalized_Expression"] = df["Expression"] / df["Expression"].max()
print(df)
4. バイオインフォマティクスでの応用
pandasは、バイオデータの解析でも役立ちます。いくつかの具体例を見てみましょう。
4.1 遺伝子発現データの解析
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],
"Sample3": [3.1, 8.5, 6.1, 7.0]
})
df.set_index("Gene", inplace=True)
# 発現値が5以上の遺伝子のみ表示
filtered_df = df[df.mean(axis=1) > 5]
print(filtered_df)
出力
Sample1 Sample2 Sample3
Gene
TP53 8.1 7.9 8.5
MYC 6.2 5.6 7.0
特定の条件に基づいてデータを簡単に抽出できます。
4.2 ゲノムバリアントデータ(VCFファイル)の処理
ゲノム解析で使われる VCF(Variant Call Format) のデータをpandasで処理する例:
df = pd.read_csv("variants.vcf", sep="\t", comment="#", header=None)
df.columns = ["CHROM", "POS", "ID", "REF", "ALT", "QUAL", "FILTER", "INFO"]
print(df.head())
このように、pandasを使えば 遺伝子変異情報を簡単に扱えます。
5. まとめ
pandasは、バイオインフォマティクスにおいて データの整理・解析・可視化 を強力にサポートするライブラリです!!
🔹 pandasのポイント
- 表形式データ(DataFrame)を簡単に扱える
- データのフィルタリング・変形・集計が可能
- 遺伝子発現データやゲノム変異データの解析に活用できる
- CSV, Excel, SQL, JSON など多様なフォーマットに対応
バイオインフォマティクスでのデータ解析をよりスムーズにするために、ぜひ pandasを活用してみてくださいね〜!