Linuxコマンド:データチェック「md5sum」の使い方

スポンサーリンク

バイオインフォマティクスでは、大量のデータを扱うため、データの正確性や整合性を確認することが重要です。そのため、Linuxの基本コマンドを駆使して、データのチェックや管理を行うことは必須スキルの一つとなります。

この記事では、GNU coreutils の一部である md5sum コマンドに焦点を当て、基本的な使い方から応用的な活用方法までを解説します。


1. md5sum コマンドとは?

md5sum は、ファイルの内容を基に MD5ハッシュ(ダイジェスト) を計算するコマンドです。MD5(Message Digest Algorithm 5)は、任意のデータに対して一意の128ビットのハッシュ値を生成するアルゴリズムで、データの整合性チェックに広く利用されています。

特に、バイオインフォマティクスの分野では、大容量のゲノムデータ(FASTA、FASTQ、BAMファイルなど)をダウンロード・転送する際、データの破損がないかを確認するために md5sum がよく使われます。


2. md5sum の基本的な使い方

2.1. ファイルのMD5ハッシュを計算する

基本的な使い方として、単一のファイルのMD5ハッシュを取得する方法を紹介します。

md5sum sample.txt

出力例:

d41d8cd98f00b204e9800998ecf8427e  sample.txt

この場合、d41d8cd98f00b204e9800998ecf8427esample.txt のMD5ハッシュ値です。この値を保存しておくことで、後で同じファイルの整合性を確認できます。


2.2. 複数ファイルのMD5ハッシュを計算する

複数のファイルのMD5ハッシュを計算するには、単にファイル名を並べるだけです。

md5sum file1.txt file2.txt file3.txt

出力例:

d41d8cd98f00b204e9800998ecf8427e  file1.txt
e99a18c428cb38d5f260853678922e03  file2.txt
ab56b4d92b40713acc5af89985d4b786  file3.txt

2.3. ハッシュ値をファイルに保存する

MD5ハッシュをファイルに保存しておくことで、後でデータ整合性を簡単に確認できます。

md5sum sample.txt > sample.md5

保存された sample.md5 の内容:

d41d8cd98f00b204e9800998ecf8427e  sample.txt

2.4. MD5ハッシュの検証

データ転送後や長期保存後に、ファイルが改変されていないかをチェックするには、-c オプションを使用します。

md5sum -c sample.md5

出力例(ファイルが変更されていない場合):

sample.txt: OK

出力例(ファイルが変更されている場合):

sample.txt: FAILED
md5sum: WARNING: 1 computed checksum did NOT match

3. md5sum の応用

3.1. ダウンロードしたゲノムデータの整合性チェック

バイオインフォマティクスでは、ゲノムデータを NCBI や EBI などのデータベースからダウンロードすることが多く、データの破損を防ぐためにMD5チェックが推奨されます。

例えば、以下のように .md5 ファイルが提供されている場合:

wget ftp://ftp.ncbi.nlm.nih.gov/genomes/README.md5
wget ftp://ftp.ncbi.nlm.nih.gov/genomes/human_genome.fa.gz

ダウンロードしたファイルの整合性をチェック:

md5sum -c README.md5

3.2. バッチ処理で複数のファイルを検証

大量のファイルを一括で検証する場合、スクリプトを活用すると便利です。

例えば、特定ディレクトリ内の .fastq ファイルのMD5ハッシュを計算し、保存するスクリプト:

find /data/sequencing/ -name "*.fastq" -exec md5sum {} \; > checksums.md5

後でデータを検証するには:

md5sum -c checksums.md5

3.3. MD5ハッシュを用いた重複ファイル検出

同じデータセットが複数の場所に保存されている場合、md5sum を使って重複をチェックできます。

md5sum file1.fastq file2.fastq file3.fastq | sort

出力例:

3a2d8e4f4dfc05347a8e1a78bdf3c1a5  file1.fastq
3a2d8e4f4dfc05347a8e1a78bdf3c1a5  file2.fastq
9b7d8e9a1f3c1c2b9e6f4d3a7c5b8e2d  file3.fastq

file1.fastqfile2.fastq のハッシュが同じなので、これらは同じファイルであることが分かります。


3.4. md5sum の制約とSHA系ハッシュの活用

md5sum は基本的な整合性チェックには有効ですが、衝突(異なるファイルが同じMD5ハッシュを持つ可能性)が指摘されており、セキュリティ目的では SHA-256 などのより強力なハッシュ関数が推奨されます。

SHA-256を使う場合:

sha256sum sample.txt

出力例:

9c56d8efc0d25235db4ff8a6e62e0e7f1a3b5c7c0b0f7c3b1c2d6d3e8b5a7f9c  sample.txt

4. まとめ

md5sum は、バイオインフォマティクスにおけるデータ整合性チェックの基本ツールです。特に、大量のゲノムデータを扱う際には、データの破損を防ぐために積極的に活用すべきです。

主なポイント

  1. 基本コマンド
    • md5sum filename でMD5ハッシュを取得
    • md5sum -c filename.md5 でハッシュ検証
  2. 応用
    • ゲノムデータの検証
    • バッチ処理で大量のデータチェック
    • MD5ハッシュを使った重複ファイル検出
  3. 制約
    • MD5の衝突リスクがあるため、SHA-256 の利用も検討する

バイオインフォマティクスの現場では、データの完全性を保証することが非常に重要です!!

Linuxの基本コマンドを活用し、信頼性の高いデータ解析環境を構築しましょう〜!

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