macでインフォマティクス

macでインフォマティクス

HTS (NGS) 関連のインフォマティクス情報についてまとめています。

De novoトランスクリプトームアセンブリとアノテーションのSnakemakeパイプライン transXpress

 

 RNA-seqとde novoトランスクリプトームアセンブリは、非モデル生物の生物学的研究に変革をもたらす技術であるが、RNA-seqデータの計算処理には、多くの異なるソフトウェアツールが必要である。このようなde novoトランスクリプトームワークフローの複雑さは、研究者がベストプラクティスの手法と最新バージョンのソフトウェアを採用する上で大きな障壁となっている。この論文では、Snakemakeで実装された合理的で普遍的なde novoトランスクリプトームアセンブリアノテーションパイプライン、transXpressを紹介する。 transXpressは、2つの一般的なアセンブリプログラム、TrinityとrnaSPAdesをサポートしており、ヘテロジニアスクラスター計算機上での並列実行が可能になっている。transXpressは、de novoトランスクリプトームアセンブリのためのベストプラクティスメソッドと最新のソフトウェアの使用を簡素化し、SequenceServerを使用してマイニングできる標準的な出力ファイルを作成し、非モデル生物における新しい遺伝子やタンパク質を迅速に発見できるようにする。


旧来のRNA-seqパイプラインは、PerlPython、Rを使用したシェルスクリプトとして実装され、関連する下流解析を実行するのが一般的だった。最近では、Snakemake、Nextflow、Galaxyなどのバイオインフォマティックワークフローエンジンを採用する傾向が強くなっています。本著者らは、実行されるタスク間の依存関係を処理し、パイプラインの再実行時に繰り返される計算を回避し、クラスタコンピューティングをサポートするため、一般的にシンプルで使いやすいSnakemakeを選択した。transXpressのユーザーは、transXpressのGitHubページに記載されているように、CondaとPythonのPIPパッケージ管理システムを使って必要な依存関係をインストールすることを勧める。transXpressのパイプラインは、可能な限り基礎となるツールの並列実行を行う。さらに、入力データファイル(TrimomaticやFASTAアノテーションのステップなど)を複数のパーティション(バッチ)に分割し、並列化によってシングルスレッドのタスクも高速化する。そして、そのような分割されたタスクから得られた部分的な結果ファイルは、自動的にマージされて1つの出力ファイルに戻される。Trinity アセンブラの場合、「Chrysalis」フェーズで生成された個々のジョブは、「Butterfly」フェーズの入力として、transXpress によって自動的に並列化される。すべての基礎ツールからの出力ファイルは、そのグラフィカルな結果も含めて、プロジェクトフォルダに保持される。

シーケンスアダプターや質の悪いリードは、Trimomaticを使用して除去される。人工的に導入された配列(様々なタイプのアダプターやその二量体、多量体、部分コピー、PCRベースのアーチファクト)はコンティグの伸長を妨げる可能性があるため、リードのトリミングはde novoアセンブルにとって非常に重要である。リードトリミング後、transXpressはFastQC/MultiQCの品質評価を再度行い、生成されたレポートに警告の可能性がないかチェックする。transXpressは、提供されたすべてのサンプルのシーケンスリードをプールし、ユーザーによって提供された構成設定に応じて、TrinityまたはrnaSPAdesを使用してde novoアセンブリを実行する。これらのアセンブラは主に高品質のショートリード配列用に開発されたため、サポートするシーケンサーの範囲は、Illumina、DNBSEQ、MGISEQ、BGISEQプラットフォーム、および古いRoche/454装置である。transXpressはPacBioやNanoporeなどのロングリードシーケンサーからのアセンブリをサポートしない。アセンブルされた転写産物は、さらにTransDecoder で処理され、タンパク質コード領域(ORF)の可能性が高いものが特定される。1つの転写産物から複数のORFが同定された場合、TransDecoderはそれらすべてを報告し、複数のタンパク質配列がtransXpressの下流アノテーションタスクの対象となる。

アセンブルされたトランスクリプトームは、さらに自動アノテーションで装飾される。NCBI BLAST +検索(blastxとblastp)は、キュレーションされたUniProtKB/Swiss-Protデータベースに対して実行され、hmmer3は、タンパク質ドメインのPfam-Aデータベースを検索するのに、Infernalパッケージのcmscanは、非コードRNA配列のRfamデータベースを検索するのに使用される。さらに、transXpressはSignalP 6.0とTargetP 2.0を使用して、N末端のシグナル伝達とターゲティングペプチドの予測を行なう。(以下略)

 

 

インストール

Github

#conda(link)
mamba create --name transxpress #*2
conda activate transxpress
conda config --add channels bioconda
conda config --add channels conda-forge
conda config --set channel_priority false
git clone https://github.com/transXpress/transXpress.git
cd transXpress/
mamba env update --file envs/default.yaml

#SignalP6(所属とメールアドレスを書いてこのURL先からダウンロードする)(manual
https://services.healthtech.dtu.dk/services/DeepLoc-1.0/
tar zxvf signalp-6.0g.fast.tar.gz
cd signalp6_fast
pip install signalp-6-package/
SIGNALP_DIR=$(python -c "import signalp; import os; print(os.path.dirname(signalp.__file__))" )
cp -r signalp-6-package/models/* $SIGNALP_DIR/model_weights/
*1

#targetp2(所属とメールアドレスを書いてこのURL先からダウンロードする)
https://services.healthtech.dtu.dk/software.php
tar zxvf targetp-2.0.Linux.tar.gz
export PATH=$PATH:`pwd`/targetp-2.0/bin

envs/default.yamlだけでそれぞれのツールの環境が自動で導入されるわけではないようなので注意。例えばtrimmosticsを実行したければ前もってtrimmosticsの環境を作っておく。conda|mamba env updateは既存の環境をyamlの定義に従って上書きする。

> mamba env update  envs/trimmomatic.yaml

> mamba env update --file envs/qc.yaml 

*2

 

 

テストラン

cd tests
./run_test.sh

Trinityのアセンブリでinchwormのステップの途中でエラーになったが、これはtransXpressに原因があるとは言えないかもしれない(*3)。

 

引用

transXpress: a Snakemake pipeline for streamlined de novo transcriptome assembly and annotation
Timothy R. Fallon, Tereza Čalounová, Martin Mokrejš, Jing-Ke Weng & Tomáš Pluskal 
BMC Bioinformatics volume 24, Article number: 133 (2023) 

 

*1

numpyのエラーが出たら、バージョンが古い可能性がある。アップデートする。

> pip install -U numpy

*2

pythonのバージョンによっては一部の互換性がある依存パッケージが見つからない可能性があるので、最初に環境を作る時にpythonのバージョンを指定しておくのが重要かもしれない。自分が試した時はpython3.11を使っていて、一部パッケージがpython >=3.10,<3.11.0a0を要求して導入できなかった。

env/default.yamlのblastの2.10バージョン指定部分は自己責任で削除した(perlのライブラリが1つ見つからなかったため)。

*3

TrinityでSRAのデータをダウンロードして使用する場合、以下のようにFASTQファイルのヘッダーに含まれる情報を制御するしてダウンロードするように要求される。

 fastq-dump --defline-seq '@$sn[_$rn]/$ri' --split-files SRR6345446

ここではfastqのヘッダ名をデフォルトのシーケンスIDの形式に指定している。しかしこの形式のfastqを指定してテストランを行なっても、Trinityのアセンブル途中でエラーになった。

 

関連