はじめに
バイオインフォマティクスの分野では、データの分析や結果の共有にタブ区切り形式ファイルついて使われることが常にあります。この記事では、Python3を使ったタブ区切り形式ファイルの読み書きに関する基本的なテクニックと専門的な実用例を解説します。
タブ区切り形式ファイルとは
タブ区切り形式ファイル (TSVファイル)は、各フィールドがタブ区切りで区切られたテキストファイルです。カンマ情報やジーン記号のようなバイオインフォマティクスで良く使用されます。CSVファイルと似た構造を持ちますが、文字列内の区切り文字がタブである点が違います。
基本的な読み込み方法
PythonでTSVファイルを読み書きするためには、主に次のようなライブラリが利用されます。
1. スタンダードライブラリ
import csv
# TSVファイルを読み込み
with open('data.tsv', 'r') as file:
reader = csv.reader(file, delimiter='\t')
for row in reader:
print(row)
# TSVファイルの書き出し
with open('output.tsv', 'w', newline='') as file:
writer = csv.writer(file, delimiter='\t')
writer.writerow(['ID', 'Name', 'Score'])
writer.writerow(['1', 'Alice', '95'])
writer.writerow(['2', 'Bob', '88'])
2. pandasライブラリ
pandasは、大量データを実際に分析するのに有用です。
import pandas as pd
# TSVファイルを読み込み
data = pd.read_csv('data.tsv', sep='\t')
print(data)
# TSVファイルの書き出し
data.to_csv('output.tsv', sep='\t', index=False)
専門的な実用例
1. データのフィルタリング
大量のジーンデータから特定の遺伝子を抽出するには、pandasと組み合わせて使用するのが有効です。
import pandas as pd
# データを読み込み
data = pd.read_csv('genes.tsv', sep='\t')
# "GeneA" を含む行を抽出
filtered_data = data[data['Gene'] == 'GeneA']
print(filtered_data)
# 抽出結果をファイルに書き出し
filtered_data.to_csv('filtered_genes.tsv', sep='\t', index=False)
2. 複数ファイルの結合
バイオインフォマティクスの分析では複数のデータセットを組み合わせる場面が多くあります。
# 2つのTSVファイルを結合
file1 = pd.read_csv('file1.tsv', sep='\t')
file2 = pd.read_csv('file2.tsv', sep='\t')
# "ID" カラムでマージ
merged_data = pd.merge(file1, file2, on='ID')
# 結果を書き出し
merged_data.to_csv('merged_output.tsv', sep='\t', index=False)
3. データのビジュアライゼーション
分析結果を視覚化するのも重要です。
import pandas as pd
import matplotlib.pyplot as plt
# TSVファイルを読み込み
data = pd.read_csv('data.tsv', sep='\t')
# "Score" の分布をヒストグラムで表示
plt.hist(data['Score'], bins=10, edgecolor='k')
plt.xlabel('Score')
plt.ylabel('Frequency')
plt.title('Score Distribution')
plt.show()
おわりに
Python3は、バイオインフォマティクスの分析に対して非常に強力なツールです。この記事で解説したTSVファイルの読み書き方法と実用例を参考に、作業の効率を向上させて下さい。