バイオインフォマティクスの解析では、大量のデータを扱うため、コマンドラインを活用することが不可欠です。その中でも、GNU coreutils に含まれる wc コマンドは、ファイルの行数・単語数・バイト数などを簡単に取得できる便利なツールです。
本記事では、wc コマンドの基本から応用まで、バイオインフォマティクスの視点で解説します。
1. wc コマンドの基本
wc
コマンドは、ファイルの以下の情報を取得できます。
- 行数(lines):
-l
オプション - 単語数(words):
-w
オプション - 文字数(characters):
-m
オプション - バイト数(bytes):
-c
オプション
1.1 基本的な使い方
wc file.txt
出力例:
100 500 3000 file.txt
これは、
- 100 行
- 500 単語
- 3000 バイト が
file.txt
に含まれていることを示しています。
1.2 特定の情報だけ取得
行数を取得
wc -l file.txt
100 file.txt
単語数を取得
wc -w file.txt
500 file.txt
文字数(UTF-8で正しくカウント)を取得
wc -m file.txt
バイト数を取得
wc -c file.txt
1.3 複数ファイルの統計を取得
複数のファイルに対して wc
を実行すると、それぞれの統計と合計が表示されます。
wc file1.txt file2.txt
出力例:
100 500 3000 file1.txt
200 1000 6000 file2.txt
300 1500 9000 total
このように、ファイルごとの統計と合計が計算されます。
2. バイオインフォマティクスでの活用例
バイオインフォマティクスでは、FASTQ・FASTA・CSV・TSV などのテキストデータ を解析する場面が多くあります。wc
は、そのようなファイルの概要を把握するのに役立ちます。
2.1 FASTQ ファイルのリード数を取得
FASTQ ファイルは 4行で1リード というフォーマットのため、リード数は wc -l
の結果を 4 で割ることで求められます。
wc -l sample.fastq
400000 sample.fastq
リード数を計算:
expr 400000 / 4
または awk
を使って:
wc -l sample.fastq | awk '{print $1/4}'
結果:
100000
この FASTQ ファイルには 100,000 リードが含まれていると分かります。
2.2 FASTA ファイルの配列数をカウント
FASTA ファイルでは、配列名(>
で始まる行)の数を数えれば配列の数が分かります。
grep '^>' sequence.fasta | wc -l
このコマンドは、>
で始まる行を grep
で抽出し、それを wc -l
でカウントします。
2.3 TSV・CSV データの行数を確認
バイオインフォマティクスでは、遺伝子発現データやアノテーションデータを TSV(タブ区切り)や CSV(カンマ区切り)で扱うことが多いです。ファイルのレコード数を確認するのに wc -l
が便利です。
wc -l gene_expression.tsv
これにより、データの規模を把握できます。
3. 応用編:他のコマンドと組み合わせる
3.1 ファイルの行数をリアルタイムで監視
例えば、ロングランのパイプライン処理中に出力ファイルの行数をリアルタイムで監視することができます。
watch -n 5 "wc -l output.txt"
このコマンドは output.txt
の行数を5秒ごとに更新表示します。
3.2 複数の FASTQ ファイルのリード数を一括取得
複数の FASTQ ファイルについてリード数を一覧表示する場合:
for file in *.fastq; do echo -n "$file: "; expr $(wc -l < "$file") / 4; done
出力例:
sample1.fastq: 100000
sample2.fastq: 150000
sample3.fastq: 200000
4. まとめ
wc
コマンドは、シンプルながらバイオインフォマティクス解析において非常に役立つツールです。特に FASTQ や FASTA のリード・配列数の確認、CSV/TSV のデータ規模の把握 など、基本的なデータ解析の第一歩として活用できます。
本記事で紹介したポイント
✅ wc
の基本的な使い方(行数、単語数、バイト数)
✅ FASTQ・FASTA・CSV などの生物データ解析への応用
✅ grep
や watch
との組み合わせによる応用テクニック
バイオインフォマティクスにおける Linux コマンドの活用は、解析の効率を大幅に向上させます!!今後、他のコマンドの活用法についても紹介していきますので、お楽しみに〜!