この記事では、クオリティチェックの次のステップである「トリミング」について解説します。トリミングとは何かという概念から、fastp・Trimmomatic・Cutadapt・BBDukの4ツールの特徴と使い分け、そしてCutadaptを使った実践コードの読み方まで、初学者にもわかりやすく説明します。
トリミングとは?なぜ必要なのか
クオリティチェックで問題が見つかったら、次はその問題を取り除く作業が必要です。それがトリミングです。
具体的には、リードの末端にある低品質な塩基や、混入しているアダプター配列を除去します。この作業を行うことで、後続のマッピングや定量の精度が大きく向上します。
💡 アダプター配列とは?
シーケンサーでDNA・RNAを読み取る際、技術的な理由から配列の端に人工的な配列(アダプター)が付加されます。これが解析データに混入するため、除去する必要があります。前のステップのFastQCレポートの「Adapter Content」で混入状況を確認できます。経験上、受託解析業者から納品されたFASTQは、すでにトリミングされているケースが多いです。FastQCでチェックしてみましょう。
主なツールの紹介と比較
トリミングで使われる主なツールは以下の4つです。
| ツール名 | 開発言語 | 特徴 |
|---|---|---|
| fastp | C++ | 高速・QCレポートも同時生成 |
| Trimmomatic | Java | 論文実績が豊富な定番ツール |
| Cutadapt | Python | シンプルで学習コストが低い |
| BBDuk | Java | 汚染除去にも対応した高機能ツール |
fastp
C++で書かれた高速なツール。トリミングとQCレポートの生成を1コマンドで行えます。設定が少なくてもある程度よい結果が得られるため、スピード重視の場面で活躍します。
メリット
- 処理が非常に速い(マルチスレッド対応)
- QCレポートを自動生成
- コマンドが短くて済む
デメリット
- 細かいカスタマイズは限定的
- 歴史が浅くドキュメントが少ない
このツールを選ぶ理由:大量サンプルをとにかく速く処理したい場合に最適。QCとトリミングを同時に終わらせたいときにも便利です。
Trimmomatic
Javaベースのトリミングツールで、RNA-seq解析の論文で長年使われてきた実績があります。複数の処理ステップを組み合わせる柔軟な設計が特徴です。
メリット
- 論文での使用実績が多く信頼性が高い
- ペアエンド処理を得意とする
- 処理ステップを細かく組み合わせ可能
デメリット
- Javaが必要で環境構築がやや面倒
- コマンドが長くなりがち
- fastpと比べると速度が劣る
このツールを選ぶ理由:使用するツールを論文に合わせる必要がある場合や、細かいパラメーター調整が必要な場面に向いています。
Cutadapt
Pythonで書かれたアダプター除去に特化したツールです。コマンドがシンプルで動作が直感的に理解しやすく、ドキュメントも充実しています。
メリット
- コマンドがシンプルで覚えやすい
- Python環境があればすぐ導入可能
- 公式ドキュメントが充実している
デメリット
- fastpより処理速度は遅い
- QCレポートは別途FastQCが必要
このツールを選ぶ理由:初学者や、Pythonに慣れている方に最適。将来的にPythonスクリプトへ組み込む際もスムーズに連携できます。
BBDuk
BBToolsと呼ばれるツール群の一部で、トリミングだけでなく外来配列(コンタミ)の除去も得意とする多機能ツールです。
メリット
- 汚染除去など幅広い前処理に対応
- 処理速度が速い
- 柔軟なフィルタリング設定が可能
デメリット
- オプションが多く初心者には難しい
- 日本語の情報が少ない
このツールを選ぶ理由:コンタミ除去も同時に行いたい場合や、より高度な前処理が求められる研究に適しています。
ツール選びのまとめ
| 状況 | おすすめの選択 |
|---|---|
| はじめてトリミングをする | Cutadapt |
| 大量サンプルを速く処理したい | fastp |
| 論文の手法に合わせたい | Trimmomatic |
| 汚染除去もまとめてやりたい | BBDuk |
Cutadaptの基本的な使い方
インストール
Pythonのパッケージ管理ツール(pip)でインストールできます。
# pipでインストール pip install cutadapt # バージョン確認 cutadapt –version
💡 Conda環境を使っている場合conda install -c bioconda cutadapt でもインストールできます。
シングルエンドの基本コマンド
ファイルが1つの場合(例:一般的なRNA-seqデータ)のコマンドです。
cutadapt -a AGATCGGAAGAGC -q 20 --minimum-length 30 -o trimmed.fastq.gz input.fastq.gz
cutadapt -a AGATCGGAAGAGC -q 20 –minimum-length 30 -o trimmed.fastq.gz input.fastq.gz
| -a AGATCGGAAGAGC | 3’末端のアダプター配列を指定。これはIllumina TruSeqの例です。FastQCのAdapter ContentでアダプターIDを確認し、対応する配列に変更してください。 |
| -q 20 | 品質スコア(Phredスコア)が20未満の塩基を3’末端から除去します。Q20は正確度99%が目安の一般的な閾値です。 |
| –minimum-length 30 | トリミング後にリードが30bp未満になった場合は破棄します。短すぎるリードはマッピングで使えないためです。 |
| -o trimmed.fastq.gz | 出力ファイル名を指定します。.gzをつけると自動的に圧縮して保存されます。 |
| input.fastq.gz | 解析したい入力ファイル。コマンドの最後に書きます。 |
ペアエンドへの応用
R1・R2の2ファイルがある場合(Illuminaのペアエンドシーケンス)は以下のように書きます。シングルエンドのコマンドに、R2用のオプション(-Aと-p)を追加するだけです。
cutadapt \ -a AGATCGGAAGAGC \ # R1のアダプター -A AGATCGGAAGAGC \ # R2のアダプター(-A が R2 用) -q 20 \ --minimum-length 30 \ -o trimmed_R1.fastq.gz \ # R1の出力 -p trimmed_R2.fastq.gz \ # R2の出力(-p が R2 用) input_R1.fastq.gz input_R2.fastq.gz
💡 ペアエンドの特徴
R1とR2は対になっているため、片方のリードがトリミングで破棄された場合、もう片方も自動的に破棄されます。これによりペアの対応関係が維持されます。
発展的なオプション(参考)
慣れてきたら以下のオプションも活用してみましょう。
- –cores 4使用するCPUコア数を指定。増やすほど処理が速くなる(デフォルトは1コア)。
- -g SEQUENCE5’末端のアダプターを除去したい場合に使用(-a は3’末端用)。
- –discard-untrimmedアダプターが検出されなかったリードを結果から除外する。
- -e 0.1アダプターマッチングのエラー許容率を調整(デフォルト0.1 = 10%のミスマッチを許容)。
- –nextseq-trim 20NextSeqシリーズ特有のG塩基誤認識に対応した品質トリミング。
- –json report.jsonトリミング統計をJSONで保存。パイプライン自動化に便利。
まとめ
- トリミングは、低品質塩基とアダプター配列を除去するRNA-seq前処理の重要なステップ
- 初学者にはシンプルなコマンドで学べるCutadaptがおすすめ
- 大量サンプルにはfastp、論文の手法に合わせる場合はTrimmomaticを検討する
- 基本オプションは
-a・-q・--minimum-length・-oの4つだけでまず試してみよう - ペアエンドはシングルエンドのコマンドに
-Aと-pを追加するだけ
次のステップ:トリミング後はFastQCで品質が改善されたか再確認し、マッピング(HISAT2・STAR等)へと進みましょう。

コメント