macでインフォマティクス

macでインフォマティクス

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

複数のメタゲノムをその場で分析するための軽量で多機能なメタゲノム分析ツール SqueezeMeta(オフライン使用)

2020 11/19 condaインストール追記

 

  シーケンシング技術の改良によりメタゲノムシーケンシングが一般化し、メタゲノムシーケンシングがマイクロバイオームの構造および機能性を分析するための標準的な手順となった。メタゲノム実験によって生成された膨大な数のショートリード配列に対処するために、多くの新規なバイオインフォマティックツールおよびアプローチが開発されてきた。単に膨大な量のデータ以外に、メタゲノム解析は、結果に直接互換性がないことが多いさまざまなソフトウェアツールといくつかの標準化されていないステップを含む複雑な作業になっている。

 最近、携帯性の高いシーケンサー、特にナノポア技術に基づくシーケンサーの開発(Deamer et al、2016)は、迅速な結果を得る必要性が最も重要であるシナリオ、例えば疾病管理または伝染病の臨床シナリオにおいてin situシークエンシングを容易にした(Quick et al、2015、2016)。メタゲノムシークエンシングもまた、例えば南極氷の海洋調査がその場で行われており(Lim et al、2014; Johnson et al、2017)、サンプリングしてすぐにシークエンスを生成する能力が増大している。これにより、前日の結果に従って、今後のサンプリング実験の情報に基づく計画が可能になる。近い将来、このようなアプリケーションがますます使用されるようになると予測される。したがって、バイオインフォマティック分析は非常に短い時間(数時間)で実行されるべきであり、軽量コンピューティングインフラストラクチャに適しているはずである。

 標準的なメタゲノムパイプラインには、リードのキュレーション、アセンブリ、遺伝子予測、および結果として得られる遺伝子の機能および分類学アノテーションが含まれる。これらの分析の大部分を自動化するために、いくつかのパイプラインが作成されている(Li、2009; Arumugam et al、2010; Glass and Meyer、2011; Abubucker et al、2012; Eren et al、2015; Kim et al、2016) 。ただし、能力とアプローチの点では異なり、最も重要な違いの1つは、アセンブリ手順が必要かどうかになる。いくつかのプラットフォームは、アセンブリをスキップし、その結果、遺伝子予測をスキップし、代わりにrawリードのダイレクトアノテーションに頼っているが、rawリードを扱ういくつかの欠点がある:これは巨大なリファレンスデータベースに対する何百万ものシーケンスの相同性検索に基づいているので、それは通常非常に大きいCPU使用率を必要とする。特に分類学アサインについては、リファレンスデータベースはエラーを最小にするために可能な限り完全でなければならない(Pignatelli et al、2008)。さらに、正確なアサインを生成するにはシーケンス長が短すぎることが多い(Wommack et al、2008; Carr and Borenstein、2014)。

 多くの遺伝子を含むことが多いゲノムのより大きな断片を回収することができるので、アセンブリは賢明な手段である。完全な遺伝子配列およびそのコンテキストを有することは、その機能および分類学アサインをはるかに容易かつより信頼性の高いものにする。アセンブリの欠点は、異なるゲノムパーツを誤ってアセンブリことによるキメラ形成、およびいくつかのリード、特に存在量の少ない種からのリードをアセンブリすることができないことである。アセンブリされていないリードの割合は、いくつかの要因、特にシーケンシングデプスとマイクロバイオームの多様性に左右されるが、通常は少ない(多くの場合20%未満)。最近、最初の段階でアセンブリされなかったリードをリアセンブリし、このステップの性能を向上させるいくつかのツールが開発されている(Hitch and Creevey、2018)。結果のセクションで説明するように、関連するメタゲノムを共にアセンブリすることで、この問題を大幅に軽減することもできる。

 アセンブリはまた、ビニング方法を介して準完全なゲノム回収を容易にするので、賢明である。ゲノムの検索は、微生物と機能を結び付けることを可能にし、よってコミュニティの機能のより正確な生態学的記述に寄与するので、マイクロバイオームの研究における大きな前進につながる。例えば、(特に重要な機能に関与する)マイクロバイオームの重要なメンバーを決定すること、メンバー間の潜在的な相互作用を推測すること(例えば代謝の補完関係を探すこと)、および生態学的効果の理解を進めることが可能である。

 ビニングのための最良の戦略は、関連メタゲノムの共アセンブリである。異なる試料中のコンティグの存在量および組成を比較することによって、どのコンティグが同じ生物に属するかを決定することが可能である:これらのコンティグは類似のオリゴヌクレオチド組成、個々の試料中で類似の存在量、および異なる試料間では共変動パターンを有する。このようにして、マイクロバイオームの機能をより詳細に分析するための出発点として使用することができる、異なる完成レベルを有する数十または数百のゲノムビンを検索することが可能である。

 SqueezeMetaはメタゲノム/メタトランスクリプトミクスのための完全自動のパイプラインで、分析のすべてのステップを網羅している。これは、関連メタゲノムの共アセンブリおよびビニング手順による個々のゲノムの検索を可能にするマルチメタゲノムサポートを含む。

 SqueezeMetaと他のパイプラインの機能の比較を論文の表Table 1.1に示す。現在のほとんどのパイプラインでは、協調およびビニングのサポートは含まれていないが、外部ビニング結果をインポートして関連情報を表示することを許可するものもある。

SqueezeMetaには、既存のパイプラインとは異なる高度な特性がいくつかある。例えば、

1、各メタゲノムにおける個々の遺伝子存在量推定のためのリードマッピングと組み合わせた共アセンブリ手順。
2、個々のメタゲノムのマージを介して無制限の数のメタゲノムの処理を可能にする代替の共アセンブリ手法。
3、ナノポアロングリードのサポート。
4、個々のゲノムを回収するためのビニングおよびビンチェック。
5、コンティグとビンの分類学アノテーションの内部チェック。
6、リファレンスメタゲノムに対してcDNAリードをマッピングするメタトランスクリプトームのサポート。メタゲノムとメタトランスクリプトームの共アセンブリへのマッピングも利用できる。
7、結果を保存するためのMySQLデータベース。Webインターフェースを使用して簡単にエクスポート、共有および検査ができる。

 

我々(著者ら)は、サンプリングしたその場でのメタゲノムシーケンシング実験に利用できるよう、SqueezeMetaをコンピュータリソースの乏しい環境でも実行できるように設計した。すべてのパイプラインのコンポーネントを適切に設定することで、16GBのRAMを搭載したデスクトップコンピューターを使用して、個々のメタゲノムを完全に分析し、さらに関連するメタゲノムを統合することさえできた。本システムは完全に自動化されているため、技術的な知識やバイオインフォマティックな知識を必要としない非常に使いやすいものである。また、インターネット接続有無とは完全に無関係である。

SqueezeMetaはhttps://github.com/jtamames/SqueezeMetaからダウンロードできる。

 

 

f:id:kazumaxneo:20190215205638p:plain

Workflow of the three modes of operation of SqueezeMeta.

論文より転載

 

SqueezeMeta uses a combination of custom scripts and external software packages for the different steps of the analysis: (Githubより)

  1. Assembly
  2. RNA prediction and classification
  3. ORF (CDS) prediction
  4. Homology searching against taxonomic and functional databases
  5. Hmmer searching against Pfam database
  6. Taxonomic assignment of genes
  7. Functional assignment of genes
  8. Taxonomic assignment of contigs, and check for taxonomic disparities
  9. Coverage and abundance estimation for genes and contigs
  10. Estimation of taxa abundances
  11. Estimation of function abundances
  12. Merging of previous results to obtain the ORF table
  13. Binning with MaxBin
  14. Binning with MetaBAT
  15. Binning integration with DAS tool
  16. Taxonomic assignment of bins, and check for taxonomic disparities
  17. Checking of bins with CheckM
  18. Merging of previous results to obtain the bin table
  19. Merging of previous results to obtain the contig table
  20. Prediction of kegg and metacyc patwhays for each bin
  21. Final statistics for the run

 

 

インストール

ubuntu16.04でテストした(ホストOS macos10.14)。

本体 Github

GithubレポジトリのINSTALL-UBUNTU14+(リンク)の手順にしたがってインストールした。

git clone https://github.com/jtamames/SqueezeMeta.git
cd SqueezeMeta/

#以下のインストールスクリプトをdockerのrootで実行した。インストールスクリプトのsudoとスクリプト最後の200GBのデータセットダウンロードを消してから実行した。
bash INSTALL-UBUNTU14+

#blastp、pysamが入っていなかったので手動で導入。usearch(v11)はlinux 32bit版をオーサーのHPからダウンロード

2020 11/19追記(python3.7でテストした)
conda create -n SqueezeMeta -c bioconda -c conda-forge -c fpusan squeezemeta
conda activate SqueezeMeta

> perl scripts/SqueezeMeta.pl

# perl scripts/SqueezeMeta.pl

 

SqueezeMeta v0.4.2, Jan 2019 - (c) J. Tamames, F. Puente-Sánchez CNB-CSIC, Madrid, SPAIN

 

Please cite: Tamames & Puente-Sanchez, bioRxiv 347559 (2018); doi: https://doi.org/10.1101/347559; Tamames & Puente-Sanchez, Frontiers in Microbiology (2019), in press

 

Usage: SqueezeMeta.pl -m <mode> -p <projectname> -s <equivfile> -f <raw fastq dir> <options>

 

Arguments:

 

 Mandatory parameters:

   -m: Mode (sequential, coassembly, merged) (REQUIRED)

   -s|-samples: Samples file (REQUIRED)

   -f|-seq: Fastq read files' directory (REQUIRED)

   -p: Project name (REQUIRED in coassembly and merged modes)

   

 Filtering: 

   --cleaning: Filters with Trimmomatic (Default: No)

   -cleaning_options: Options for Trimmomatic (Default:LEADING:8 TRAILING:8 SLIDINGWINDOW:10:15 MINLEN:30)

   

 Assembly: 

   -a: assembler [megahit,spades,canu] (Default: megahit)

   -assembly_options: Options for required assembler

   -c|-contiglen: Minimum length of contigs (Default: 200)

   

 Mapping: 

   -map: mapping software [bowtie,bwa,minimap2-ont,minimap2-pb,minimap2-sr] (Default: bowtie) 

 

 Annotation:  

   --nocog: Skip COG assignment (Default: no)

   --nokegg: Skip KEGG assignment (Default: no)

   --nopfam: Skip Pfam assignment  (Default: no)

   -b|-block-size: block size for diamond against the nr database (Default: 8)

   -e|-evalue: max evalue for discarding hits diamond run  (Default: 1e-03)

   -miniden: identity perc for discarding hits in diamond run  (Default: 50)

   

 Binning:

   --nobins: Skip all binning  (Default: no)

   --nomaxbin: Skip MaxBin binning  (Default: no)

   --nometabat: Skip MetaBat2 binning  (Default: no)

   

 Performance:

   -t: Number of threads (Default: 12)

   -canumem: memory for canu in Gb (Default: 32)

   --lowmem: run on less than 16Gb of memory (Default:no)

 

 Other:

   --minion: Run on MinION reads (use canu and minimap2) (Default: no)

   

 Information:

   -v: Version number  

   -h: This help 

     

 

データベースの準備

オフライン環境になる前にダウンロードしておく。

200GBほどスペースが必要。

mkdir data_dir
perl scripts/preparing_databases/download_databases.pl data_dir

#condaで導入した場合
download_databases.pl data_dir

 ダウンロードされ、data_dir/db/に解凍される。

> ls -alth *

db:

total 120G

drwxr-xr-x 4 root root 4.0K Mar 20 06:47 ..

drwxr-xr-x 10 1000 1000 4.0K Feb 26 07:55 .

-rw-r--r-- 1 1000 1000 56 Feb 26 07:55 DB_BUILD_DATE

drwxr-xr-x 2 1000 1000 4.0K Feb 26 07:55 LCA_tax

-rw-r--r-- 1 1000 1000 1.4G Feb 26 06:18 Pfam-A.hmm

-rw-r--r-- 1 1000 1000 3.3G Feb 26 06:17 eggnog.dmnd

-rw-r--r-- 1 1000 1000 112G Feb 26 06:13 nr.dmnd

-rw-r--r-- 1 1000 1000 2.7G Feb 26 00:17 keggdb.dmnd

-rw-r--r-- 1 1000 1000 130M Feb 24 21:18 taxdb.btd

-rw-r--r-- 1 1000 1000 14M Feb 24 21:18 taxdb.bti

-rw-r--r-- 1 1000 1000 1.1K Feb 22 20:51 nr.pal

-rw-r--r-- 1 1000 1000 65M Nov 16 23:54 arc.all.faa

-rw-r--r-- 1 1000 1000 1.3M Nov 16 23:54 arc.scg.faa

-rw-r--r-- 1 1000 1000 198K Nov 16 23:54 arc.scg.lookup

-rw-r--r-- 1 1000 1000 16M Nov 16 23:54 bac.all.faa

-rw-r--r-- 1 1000 1000 244K Nov 16 23:54 bac.scg.faa

-rw-r--r-- 1 1000 1000 36K Nov 16 23:54 bac.scg.lookup

-rw-r--r-- 1 1000 1000 335 May 21 2018 ReadMe

-rw-r--r-- 1 1000 1000 820K Apr 27 2018 arc.hmm

-rw-r--r-- 1 1000 1000 790K Apr 27 2018 bac.hmm

-rw-r--r-- 1 1000 1000 1015K Apr 27 2018 euk.hmm

-rw-r--r-- 1 1000 1000 446K Apr 27 2018 mito.hmm

-rw-r--r-- 1 1000 1000 3.6M Apr 27 2018 bacar_marker.hmm

-rw-r--r-- 1 1000 1000 16M Apr 27 2018 marker.hmm

-rw-r--r-- 1 1000 1000 5.1K Apr 27 2018 .dmanifest

drwxr-xr-x 4 1000 1000 4.0K Jan 14 2015 genome_tree

drwxr-xr-x 2 1000 1000 4.0K Jan 14 2015 img

drwxr-xr-x 2 1000 1000 4.0K Jan 14 2015 pfam

-rw-r--r-- 1 1000 1000 80K Jan 14 2015 selected_marker_sets.tsv

-rw-r--r-- 1 1000 1000 21M Jan 14 2015 taxon_marker_sets.tsv

drwxr-xr-x 2 1000 1000 4.0K Jan 14 2015 test_data

drwxr-xr-x 2 1000 1000 4.0K Jan 14 2015 hmms

drwxr-xr-x 2 1000 1000 4.0K Jan 14 2015 hmms_ssu

drwxr-xr-x 2 1000 1000 4.0K Jan 14 2015 distributions

test:

total 16K

drwxr-xr-x 4 root root 4.0K Mar 20 06:47 ..

drwxrwxr-x 3 1007 1008 4.0K May 21 2018 .

drwxrwxr-x 2 1007 1008 4.0K May 21 2018 raw

-rw-r--r-- 1 1007 1008 156 May 21 2018 test.samples

 

 

 

実行方法

 3つのモードがある。テストデータを使い説明する。

data_dir/test/raw/

f:id:kazumaxneo:20190610171133j:plain

2セットのfastqが用意されている。

 

1、Sequential mode

すべてのサンプルを個別に処理し、順次分析する。 このモードはビニングを含まない。

perl scripts/SqueezeMeta.pl -m sequential -t 40 \
-f data_dir/test/raw/ -s data_dir/test/test.samples
  • -m  <sequential, coassembly, merged>: Mode (REQUIRED)
  • -s    Samples file (REQUIRED)
  • -f     Fastq read files' directory (REQUIRED)
  • -t     Number of threads (Default: 12)

 

2、Coassembly mode

すべてのサンプルからのリードがプールされ、まとめてアセンブリが実行される。 次に、個々のサンプルからのリードをCoアセンブリマッピングして、各サンプル量を取得し、 ビニングしてゲノムビンを得る。メモリ要件が高すぎてクラッシュする場合、3のmerged modeを使う。プロジェクト名が必要。

perl scripts/SqueezeMeta.pl -m coassembly -p projectname -t 40 \
-f data_dir/test/raw/ -s data_dir/test/test.samples
  • -p <string>: Project name (REQUIRED in coassembly and merged modes)

 

3、Merged mode

このモードでは無制限数のサンプルのCoアセンブリが可能なっている。 まずサンプルを個々にアセンブリし、得られたコンティグを単一の共アセンブリにマージする。 その後、Coassemblyモードの場合と同様にビニングが行われる。 キメラコンティグを作成する可能性がより高いので、これは推奨される手順ではない(可能であればcoassembly mode使用)。プロジェクト名が必要。

perl scripts/SqueezeMeta.pl -m merged -p projectname -t 40 \
-f data_dir/test/raw/ -s data_dir/test/test.samples

 

 

 

dockerイメージもあげましたが、ランの最後にクラッシュします。非推奨です。

docker pull kazumax/squeezemeta 

#ホストのカレントディレクトリとイメージの/dataをシェアして起動(pullを飛ばして以下を実行してもOK)
docker run -itv $PWD:/data/ kazumax/squeezemeta

> source ~/.profile
> cd ~/SqueezeMeta

引用

SqueezeMeta, A Highly Portable, Fully Automatic Metagenomic Analysis Pipeline
Javier Tamames, Fernando Puente-Sánchez

Front Microbiol. 2018; 9: 3349