Python pandasライブラリ:データの読み込みについて

スポンサーリンク

バイオインフォマティクスでは、大量のデータを扱う機会が多く、効率的にデータを処理するためのツールが必要不可欠です。その中でも、Pythonのpandasライブラリは、データの読み込み、整理、解析において非常に強力な機能を提供します。

本記事では、pandasの概要と基本的な使い方 に加え、バイオインフォマティクスの実践的な応用として、遺伝子発現データの読み込みや前処理の手法 について詳しく解説します。


1. pandasとは?

1.1 pandasの概要

pandasは、Pythonでデータ解析を行うためのライブラリであり、以下のような特徴を持っています。

  • 表形式(データフレーム)のデータを扱える
  • 高速なデータ処理が可能
  • データのフィルタリングや統計解析が容易
  • CSV、Excel、SQLなど多くのデータ形式を読み書きできる

特にバイオインフォマティクスでは、次のようなデータを扱うのに適しています。

  • 遺伝子発現データ(RNA-Seq、Microarray)
  • 変異データ(VCFファイル)
  • メタデータ(サンプル情報、患者データ)
  • タンパク質相互作用データ(PPIネットワーク)

1.2 pandasの基本データ構造

pandasには主に2つのデータ構造が存在します。

① Series(1次元データ)

1列だけのデータを扱う構造です。

import pandas as pd

data = pd.Series([2.5, 8.1, 5.3], index=["BRCA1", "TP53", "EGFR"])
print(data)

出力

BRCA1    2.5
TP53     8.1
EGFR     5.3
dtype: float64

これは、遺伝子名をインデックスにした発現データの例です。

② DataFrame(2次元データ)

表形式のデータを扱うための構造で、行と列を持ちます。

df = pd.DataFrame({
    "Gene": ["BRCA1", "TP53", "EGFR"],
    "Sample1": [2.5, 8.1, 5.3],
    "Sample2": [3.2, 7.9, 6.1]
})
print(df)

出力

    Gene  Sample1  Sample2
0  BRCA1      2.5      3.2
1   TP53      8.1      7.9
2   EGFR      5.3      6.1

このように、DataFrameは遺伝子発現データやメタデータを扱うのに適しています。


2. データの読み込み

バイオインフォマティクスでは、多くのデータを外部ファイル(CSV、Excel、TSV、JSON、SQLなど)から読み込むことが一般的です。ここでは、基本的なデータの読み込み方法と応用例を紹介します。

2.1 CSVファイルの読み込み

最もよく使われる形式の一つがCSV(カンマ区切り) です。

基本的なCSVの読み込み

df = pd.read_csv("gene_expression.csv")
print(df.head())  # 最初の5行を表示

pd.read_csv() を使うことで、簡単にCSVファイルを読み込むことができます。

区切り文字が異なる場合(TSVファイル)

タブ区切り(TSV)の場合は、sep="\t" を指定します。

df = pd.read_csv("gene_expression.tsv", sep="\t")

特定の列をインデックスにする

遺伝子名をインデックスにする場合、index_col を指定します。

df = pd.read_csv("gene_expression.csv", index_col="Gene")
print(df.head())

データに欠損値(NaN)が含まれる場合

欠損値(NaN)を処理するには、以下のように dropna()fillna() を活用します。

df.dropna(inplace=True)  # 欠損値を削除
df.fillna(0, inplace=True)  # 欠損値を0で埋める

2.2 Excelファイルの読み込み

Excelファイル(.xlsx)も直接読み込むことが可能です。

df = pd.read_excel("gene_data.xlsx", sheet_name="Sheet1")

シート名を指定することで、複数シートのデータも扱えます。


2.3 JSONファイルの読み込み

データベースやWeb APIから取得したデータがJSON形式である場合も多いです。

df = pd.read_json("gene_data.json")

2.4 SQLデータベースからの読み込み

バイオインフォマティクスでは、大規模なデータをSQLデータベースで管理することもあります。pandasはSQLデータベースと連携可能です。

import sqlite3

conn = sqlite3.connect("bioinfo.db")
df = pd.read_sql_query("SELECT * FROM gene_expression", conn)

この方法を使うことで、大量のデータを効率的に扱うことができます。


3. データの簡単な前処理

データを読み込んだ後、解析を行う前にクリーニングや整形が必要になります。

3.1 列の名前を変更

df.rename(columns={"Sample1": "Control", "Sample2": "Treatment"}, inplace=True)

3.2 特定の遺伝子だけを抽出

filtered_df = df[df["Gene"].isin(["BRCA1", "TP53"])]
print(filtered_df)

3.3 発現値が一定以上の遺伝子を抽出

high_expression = df[df["Sample1"] > 5.0]
print(high_expression)

3.4 データの統計情報を取得

print(df.describe())  # 平均値、標準偏差などを表示

4. まとめ

pandasを使うことで、バイオインフォマティクスのデータを効率的に読み込み、前処理を行う ことができます!!

今回学んだポイント

✅ pandasは表形式のデータを扱うのに適している
✅ CSV、TSV、Excel、JSON、SQLなど、さまざまなデータ形式を読み込める
index_col を指定すると、遺伝子名やサンプルIDをキーにできる
✅ データのフィルタリングや統計情報の取得も簡単

この知識を活かして、バイオインフォマティクスのデータ解析をさらにスムーズに進めましょう〜!

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