バイオインフォマティクスでは、大量のデータを整理し、解析することが重要です。Pythonの pandas ライブラリを使うと、遺伝子発現データ、変異データ、臨床データなどを簡単に扱えます。その中でも、「データの並べ替え」 は基本的な操作の一つで、解析結果を見やすく整理するのに役立ちます。
この記事では、pandasの データのソート(並べ替え) の基本的名操作について、バイオインフォマティクスの実例を交えながら解説します。
1. pandasにおけるデータの並べ替えとは?
pandasでは、sort_values()
と sort_index()
の2つのメソッドを使ってデータを並べ替えることができます。
sort_values()
:特定の列の値を基準に並べ替えるsort_index()
:行のインデックス(行ラベル)を基準に並べ替える
どちらの方法も、デフォルトでは 昇順(小さい順) に並べ替えますが、降順(大きい順) にすることもできます。
2. sort_values() を使った並べ替え
sort_values()
を使うと、特定の列を基準に並べ替えることができます。
2.1 基本的な並べ替え
例えば、遺伝子発現データを並べ替えてみましょう。
import pandas as pd
# データの作成
df = pd.DataFrame({
"Gene": ["BRCA1", "TP53", "EGFR", "MYC"],
"Expression": [2.5, 8.1, 5.3, 6.2]
})
# 発現量で並べ替え(昇順)
df_sorted = df.sort_values("Expression")
print(df_sorted)
出力
Gene Expression
0 BRCA1 2.5
2 EGFR 5.3
3 MYC 6.2
1 TP53 8.1
デフォルトでは、Expression
の値が小さい順(昇順)に並べ替えられます。
2.2 降順で並べ替える
発現量が多い順に並べ替えたい場合は、ascending=False
を指定します。
df_sorted_desc = df.sort_values("Expression", ascending=False)
print(df_sorted_desc)
出力
Gene Expression
1 TP53 8.1
3 MYC 6.2
2 EGFR 5.3
0 BRCA1 2.5
発現量の大きい順(降順)になりました。
2.3 複数の列で並べ替える
例えば、以下のような変異データがあるとします。
df = pd.DataFrame({
"Gene": ["BRCA1", "TP53", "EGFR", "MYC", "TP53"],
"Mutation": ["A", "B", "A", "C", "A"],
"Frequency": [10, 15, 8, 20, 12]
})
このデータを 遺伝子名(Gene)ごとに、変異頻度(Frequency)の降順で並べ替える 場合は、次のようにします。
df_sorted = df.sort_values(["Gene", "Frequency"], ascending=[True, False])
print(df_sorted)
出力
Gene Mutation Frequency
0 BRCA1 A 10
2 EGFR A 8
3 MYC C 20
1 TP53 B 15
4 TP53 A 12
- Gene をアルファベット順に並べ替え
- Frequency を降順で並べ替え(同じGene内で高頻度の変異が上にくる)
このように、複数の列を組み合わせることで、より詳細なデータの整理が可能です。
3. sort_index() を使った並べ替え
sort_index()
を使うと、行のインデックス(index)を基準に並べ替える ことができます。
3.1 インデックスを設定して並べ替え
df.set_index("Gene", inplace=True)
df_sorted_index = df.sort_index()
print(df_sorted_index)
出力
Mutation Frequency
Gene
BRCA1 A 10
EGFR A 8
MYC C 20
TP53 B 15
TP53 A 12
インデックス(Gene)をアルファベット順に並べ替えました。
3.2 降順で並べ替える
df_sorted_index_desc = df.sort_index(ascending=False)
print(df_sorted_index_desc)
出力
Mutation Frequency
Gene
TP53 B 15
TP53 A 12
MYC C 20
EGFR A 8
BRCA1 A 10
インデックスを降順に並べ替えました。
4. バイオインフォマティクスでの応用
pandasの並べ替えは、バイオインフォマティクスのデータ解析において次のように活用できます。
4.1 遺伝子発現データの上位・下位遺伝子を抽出
発現量の高い遺伝子トップ3を取得する:
top_genes = df.sort_values("Expression", ascending=False).head(3)
print(top_genes)
発現量の低い遺伝子トップ3を取得する:
low_genes = df.sort_values("Expression", ascending=True).head(3)
print(low_genes)
4.2 変異データの頻度ランキング
変異の頻度が高いものから順にリストアップする:
df_sorted = df.sort_values("Frequency", ascending=False)
print(df_sorted)
4.3 インデックスを使ってデータを管理
遺伝子IDをインデックスに設定し、整理する:
df.set_index("Gene", inplace=True)
df_sorted = df.sort_index()
print(df_sorted)
これにより、特定の遺伝子のデータを簡単に取得できます。
print(df.loc["TP53"])
5. まとめ
pandasの並べ替え機能を活用すると、バイオデータの整理・解析がスムーズになります!!
sort_values()
を使って、特定の列を基準に並べ替えるascending=False
を指定すると降順で並べ替えられる- 複数の列を組み合わせた並べ替え も可能
sort_index()
を使うと、インデックスで並べ替えられる- 遺伝子発現データや変異データの整理・ランキングに活用できる
pandasの並べ替えを上手に使って、データ解析を効率化しましょう〜!