2023/02/24 誤字修正
nf-core/rnaseqはnextflow DSL2を使って構築されているRNAシーケンスデータを解析するためのパイプライン。2023年2月現在、nf-coreのベストプラクティスに従ったパイプラインは76個公開されている。このnf-coreの中で最もレポジトリのスター数(お気に入り登録)が多いのがこのnf-core/rnaseqパイプラインとなる。これまでのクローン数は7万を超えており、多くの人が利用している。開発に貢献したコントリビューターの人数は60人を超えており、統計を見ると、2018年のv1.0のリリース以来、比較的コンスタントに開発が続いていることが確認できる。背景には、RNA-seq解析の人気の高さに裏打ちされ、解析を自動化したいユーザーからの需要の高さがあるのだと考えられる。
HP
このパイプラインの歴史、現状、機能についてのショートトーク
ワークフロー
HPより転載。デフォルトでは、STARを用いてのFastQリードのマッピング、SalmonによるBAMレベルの定量が行われる。
手順(HPより)
- FastQファイルのマージする (cat)(ダウンストリーム解析を行う前に生リードは連結される)
- FastQファイルのサブサンプリングとstrandednessの自動推定 (fq, Salmon)
- リードQC (FastQC)
- UMI抽出 (UMI-tools)
- アダプター・品質トリミング (Trim Galore!)
- ゲノム汚染除去(BBSplit)
- リボソームRNAの除去 (SortMeRNA)
- 複数のアライメント・定量ルートから選択可能。
・STAR -> Salmon
・STAR -> RSEM
・HiSAT2 -> 定量なし - ソートおよびindexing、アラインメント (SAMtools)
- UMIベースの重複排除 (UMI-tools)
- 重複リードのマーキング (picard MarkDuplicates)
- トランスクリプトのアセンブルと定量 (StringTie)
- bigWigカバレッジファイルの作成 (BEDTools, bedGraphToBigWig)
- 品質管理
- RSeQC
- Qualimap
- dupRadar (paper)
- Preseq(図とは順番が違う)
- DESeq2
- 擬似アライメントと定量(Salmon、任意)
- 生リード、アライメント、遺伝子バイオタイプ、サンプル類似性、strandednessチェックのQC (MultiQC, R)
ここではいつも通り使い方を簡単に紹介します。
インストール
nextflow pull nf-core/rnaseq
テストラン
testを使う。ここではdockerを指定。docker実行権限がないならsudo実行する。出力ディレクトリも指定する必要がある。
nextflow run nf-core/rnaseq -profile test,docker --outdir outdir
- -profile Use this parameter to choose a configuration profile. Profiles can give configuration presets for different compute environments (link). <docker/singularity/podman/shifter/charliecloud/conda/institute>
出力
実行時間は2回目以降は5分ほどでした。
実行方法
実際のランにはfastqのパスやグループを示したサンプルシート(CSVファイル)が必要。
1列目のサンプル識別子はグループごとに同じでなければならない。サンプルを複数レーンにまたがってシーケンスした場合、HPの説明のように記載する。サンプルシートのカラム数はいくつでも構わないが、最初の4カラムは上の表のように定義されたカラム名と一致していなければならない。ペアエンドとシングルエンドの混在にも対応する。fastqの拡張子は".fastq.gz "または".fq.gz "でなければならない。strandedness はunstranded、forward、reverse、autoのいずれかを指定する。Strandednessをautoに設定すると、パイプラインは入力されたFastQファイルを100万リードサブサンプリングし、Salmon Quantを使って自動的にstrandednessを推測する。
準備できたら実行する。オプションの説明はこちら。
nextflow run nf-core/rnaseq --input samplesheet.csv --outdir OUTDIR --genome GRCh38 -profile <docker/singularity/podman/shifter/charliecloud/conda/institute>
- --genome Name of Genomes reference.
- --fasta Path to FASTA genome file.
- --gtf Path to GTF annotation file.
- --gff Path to GFF3 annotation file.
マニュアルより
- STARは高速だが、実行には多くのメモリを必要とする。GRCh37リファレンスゲノムの場合、通常1つあたり約38GB必要。メモリに制限がある場合はHISAT2アライナーを使う。
- STARでアライメントし、Salmon (--aligner star_salmon) / RSEM (--aligner star_rsem) のどちらかを用いて定量するオプションが用意されている。
- -pseudo_aligner salmonパラメータを指定することで、Salmonでデータを擬似的にアライメント・定量することができる。
- パイプラインのv3.10で追加された2つのパラメータ --extra_star_align_args と --extra_salmon_quant_argsにより、STAR alignとSalmon quantコマンドに任意のカスタムパラメータを付加することができるようになった。
- パイプラインのv3.0以降、featureCountsは遺伝子/トランスクリプトの定量には使用されなくなったが、GFF/GTFゲノムアノテーションファイル内のバイオタイプ情報に基づくQCメトリックスの生成には使用されている。この決定は、主に遺伝子発現データを適切に定量化するためのfeatureCountsの限界からなされた(ref1, ref2)。
- パイプラインは、定量精度を向上させるためにUnique Molecular Identifiersをサポートしている。UMIは、サンプルライブラリ内の各分子を一意にタグ付けするために使用される短い配列で、読み取り値の重複を正確に識別することを容易にする。UMIはライブラリー調製時およびシーケンスの前に追加する必要があるため、シーケンスプロバイダーと事前の適切な取り決めが必要。
- ワークフロー実行中にUMIを考慮するには、--with_umiパラメータを指定する。現在、パイプラインはリードの配列に埋め込まれたUMIとリード名に配列が付与されたUMIをサポートしている。
引用
ref.1
Union Exon Based Approach for RNA-Seq Gene Quantification: To Be or Not to Be?
Shanrong Zhao ,Li Xi,Baohong Zhang
Published: November 11, 2015
https://doi.org/10.1371/journal.pone.0141910
ref.2
Differential analyses for RNA-seq: transcript-level estimates improve gene-level inferences
Charlotte Soneson, Michael I Love, Mark D Robinson
F1000Res. 2015 Dec 30;4:1521. doi: 10.12688/f1000research.7563.2. eCollection 2015
nf-core
The nf-core framework for community-curated bioinformatics pipelines
Philip A Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso, Sven Nahnsen
Nat Biotechnol. 2020 Mar;38(3):276-278
参考
謙遜されていますが、いつもとても分かりやすい説明をありがとうございます。応援しています。
コメント
nf-coreのパイプラインは、nextflow towerによって、ユーザーフレンドリーなGUIを使って商用クラウドでも実行することができます(Launchをクリック)。メジャーなサービスに対応しているようなので、アカウントを持っていて興味がある方はアクセスしてみて下さい。もちろん利用料金は発生します。また、nextflow towerを使ってオンプレミスで実行することもできるようです(Github)。ラボや社内でユーザーフレンドリーな解析環境を作るために便利なのではないでしょうか?(ライセンスは注意して下さい)
nf-coreのページでは、Nextflow DSL2でのパイプラインやモジュールの作成、nf-coreツールの使用、nf-coreパイプラインの実行、Githubへの貢献など、様々なトピックを掲載しています。チェックしてみてください。