Pythonのpandas活用:データフレームの操作

スポンサーリンク

バイオインフォマティクスでは、DNAやRNAのシーケンスデータ、遺伝子発現データ、タンパク質の相互作用データなど、多種多様なデータを扱います。これらのデータはしばしば大規模かつ構造化されており、効率的に処理するためにPythonの pandas ライブラリがよく活用されます。

この記事では、pandasのデータフレーム操作の基本と応用 について、バイオインフォマティクスの文脈を交えながら解説します。


1. pandasとは?なぜバイオインフォマティクスで重要なのか?

pandas は、Pythonでデータ解析を行うための強力なライブラリで、データフレーム(DataFrame) という表形式のデータ構造を提供します。
バイオインフォマティクスでは、次のような場面でpandasが活躍します。

  • 遺伝子発現データの前処理(マイクロアレイやRNA-seqデータの正規化)
  • サンプル情報と遺伝子情報の統合(メタデータとオミクスデータのマージ)
  • フィルタリングとサブセット化(特定の条件に合う遺伝子やサンプルの抽出)
  • 統計解析の前処理(欠損値処理、スケーリング、集計)

それでは、データフレームの基本的な操作から応用までを具体例とともに学んでいきましょう。


2. データフレームの基本操作

2.1 データフレームの作成

まずは、仮の遺伝子発現データを作成してみましょう。

import pandas as pd

# サンプルデータの作成
data = {
    'Gene': ['BRCA1', 'TP53', 'EGFR', 'MYC', 'KRAS'],
    'Sample_1': [12.5, 8.2, 15.3, 22.1, 9.8],
    'Sample_2': [10.1, 7.8, 14.7, 20.3, 11.4],
    'Sample_3': [11.2, 9.1, 16.5, 23.0, 10.2]
}

df = pd.DataFrame(data)
print(df)

出力:

    Gene  Sample_1  Sample_2  Sample_3
0  BRCA1      12.5      10.1      11.2
1   TP53       8.2       7.8       9.1
2   EGFR      15.3      14.7      16.5
3    MYC      22.1      20.3      23.0
4   KRAS       9.8      11.4      10.2

遺伝子ごとの発現量を、各サンプル(患者や実験条件)ごとに格納したデータフレームが作成されました。


2.2 データの基本情報を確認

データを操作する前に、基本情報を把握しておくことが重要です。

# データの基本情報
print(df.info())

# データの統計情報
print(df.describe())

これにより、データ型や欠損値の有無、発現値の分布などを確認できます。


2.3 行・列の操作

列の選択

# 特定の列を選択(遺伝子名とSample_1のデータ)
df_subset = df[['Gene', 'Sample_1']]
print(df_subset)

行の選択(スライシング)

# 2行目から4行目までを取得(インデックスは0から始まる)
df_subset = df.iloc[1:4]
print(df_subset)

3. 応用編:フィルタリング・集計・結合

3.1 条件に基づくフィルタリング

特定の条件を満たすデータだけを抽出できます。

# Sample_1の発現量が10以上の遺伝子を抽出
high_expression = df[df['Sample_1'] >= 10]
print(high_expression)

3.2 データの集計

グループごとに平均値や最大値を計算することも可能です。

# 各サンプルの平均発現量を求める
df['Mean_Expression'] = df[['Sample_1', 'Sample_2', 'Sample_3']].mean(axis=1)
print(df[['Gene', 'Mean_Expression']])

3.3 データの結合

バイオインフォマティクスでは、異なるデータセットを統合することがよくあります。

# 遺伝子のアノテーション情報
annotations = pd.DataFrame({
    'Gene': ['BRCA1', 'TP53', 'EGFR', 'MYC', 'KRAS'],
    'Pathway': ['DNA Repair', 'Tumor Suppressor', 'Growth Factor', 'Transcription Factor', 'Signaling']
})

# データのマージ(遺伝子名をキーに結合)
df_merged = pd.merge(df, annotations, on='Gene')
print(df_merged)

出力:

    Gene  Sample_1  Sample_2  Sample_3  Mean_Expression               Pathway
0  BRCA1      12.5      10.1      11.2            11.27            DNA Repair
1   TP53       8.2       7.8       9.1             8.37    Tumor Suppressor
2   EGFR      15.3      14.7      16.5            15.50       Growth Factor
3    MYC      22.1      20.3      23.0            21.80  Transcription Factor
4   KRAS       9.8      11.4      10.2            10.47          Signaling

このように、遺伝子の発現データとアノテーション情報を統合できます。


4. まとめ

pandasのデータフレームを活用することで、バイオインフォマティクスのデータを効率的に整理・分析できます。
今回紹介した内容をまとめると:

データフレームの基本操作:作成、情報取得、行・列の操作
フィルタリング:条件に合うデータの抽出
集計:平均や最大値の計算
データ結合:異なるデータセットの統合

実際のデータ解析では、これらの操作を組み合わせながら、遺伝子発現データやゲノムデータを処理することが求められます!!

pandasを活用して、データ解析のスキルを磨いていきましょう〜!

タイトルとURLをコピーしました