macでインフォマティクス

macでインフォマティクス

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

大規模なデータセットにもスケールする多目的k-merカウンターおよび多様性推定器 MerCat2

 

 MerCat2("Mer-Catenate2")は、オミックスデータ中のフィーチャーをロバストに解析するための、汎用性、並列性、拡張性、モジュール性を備えたソフトウェアパッケージである。MerCat2は、あらゆるプラットフォームからのHTSシークエンシングの生リード、アセンブルされたコンティグ、タンパク質配列を入力として、任意の長さkのk-merカウントを実行し、フィーチャーアバンダンスカウント表、品質管理レポート、タンパク質フィーチャーメトリクス、グラフ表示(主成分分析(PCA)など)を生成する。
MerCat2は、他のプロファイラーやアセンブリベースの手法では実行できない、全てのデータを初期化するデータベース非依存の方法で、データの特性を直接解析することを可能にする。MerCat2は、サンプル内のオミックスデータを照らし出し、迅速な相互検査や比較を可能にする統合ツールである。

MerCat2はPythonで記述され、BSD-3ライセンスの下で配布されている。MerCat2のソースコードは、https://github.com/raw-lab/mercat2にある。MerCat2はMac OS XおよびLinux上のPython 3と互換性がある。MerCat2は、biocondaを使用して簡単にインストールすることもできる: mamba create -n mercat2 -c conda-forge -c bioconda mercat2

 

インストール

依存(依存している外部ツールは目的によって変化する)

  • MerCat2 runs on python version 3.9 and higher.

Github

mamba create -n mercat2 -c conda-forge -c bioconda mercat2 -y
conda activate mercat2

#特定のオプション指定時には以下のツールが必要
mamba install -c bioconda fastqc fastp prodigal -y

> mercat2.py -h

usage: mercat2.py [-h] [-i I [I ...]] [-f F] -k K [-n N] [-c C] [-prod] [-fgs] [-s S] [-o O] [-replace] [-lowmem LOWMEM] [-skipclean] [-toupper] [-pca] [--version]

 

options:

  -h, --help      show this help message and exit

  -i I [I ...]    path to input file

  -f F            path to folder containing input files

  -k K            kmer length

  -n N            no of cores [auto detect]

  -c C            minimum kmer count [10]

  -prod           run Prodigal on fasta files

  -fgs            run FragGeneScanRS on fasta files

  -s S            Split into x MB files. [100]

  -o O            Output folder, default = 'mercat_results' in current directory

  -replace        Replace existing output directory [False]

  -lowmem LOWMEM  Flag to use incremental PCA when low memory is available. [auto]

  -skipclean      skip trimming of fastq files

  -toupper        convert all input sequences to uppercase

  -pca            create interactive PCA plot of the samples (minimum of 4 fasta files required)

  --version, -v   show the version number and exit

 

 

実行方法

MerCat2は、アセンブルされたコンティグを塩基のfata、生リード、トリミングされたリード、翻訳されたタンパク質fastaから、任意の長さkのk-mer頻度カウントを計算する。MerCat2は拡張子によってどんな種類の配列か推定する。gzip圧縮ファイルも.gzになっていれば受け付ける。

 

1、ゲノムアセンブリなどの塩基配列を指定( '.fa', '.fna', '.ffn', '.fasta')

mercat2.py -i nucleotide.fasta -k 3 -n 8 -c 10
  • -i     path to input file
  • -k    kmer length
  • -n    no of cores [auto detect]
  • -c    minimum kmer count [10]
  • -o    Output folder, default = 'mercat_results' in current directory

ヌクレオチドファイルが指定された場合は、k-mer数、GC含量を含む.tsvファイルが作成される。

 

2、タンパク質配列を指定('.faa')

mercat2.py -i protein.faa -k 3 -c 10

タンパク質ファイルが指定された場合、k-mer 数、pI、分子量、疎水性の指標を含む .tsv ファイルが作成される。

 

3、fastqを指定('.fastq', '.fq')

mercat2.py -i raw_reads.fastq -k 3 -n 8 -c 10

.fastqのraw readsファイルが使用された場合、'clean'フォルダがクリーンなfastaファイルと共に作成される。また、rawリードは品質が低いリードを除去するため、デフォルトでPhred qualityスコア>Q30でトリミングされる。トリミング前後のfastqcレポートが最終的なHTMLベースのレポート(Andrews 2010)にも含まれる。

 

4、複数の配列ファイルが含まれるディレクトリを指定(例えば.fastqがあればrawシークエンシングデータが配置されていると判断する)

mercat2.py -i input_dir -k 3 -n 8 -c 10

 

5,prodigalかFragGeneScanRSオプションを付けると、コンティグと生成アミノ酸の両方でk-merカウンターが実行される。

mercat2.py -i input_dir -k 3 -n 8 -c 10 -prod
  • -prod    run Prodigal on fasta files

  • -fgs       run FragGeneScanRS on fasta files

-prodオプションが指定された場合、アミノ酸の.faaファイルと.gffファイルを含む「prodigal」フォルダが作成される。

 

6、少なくとも4サンプルが提供された場合、"-pca"を付けると、htmlレポートにインタラクティブなPCAプロットも含まれる。

mercat2.py -i input_dir -k 3 -n 8 -c 10 -prod -pca
  • -pca      create interactive PCA plot of the samples (minimum of 4 fasta files required)

 

出力

出力には、k-mer頻度カウントテーブル、生態学的多様性指標(α多様性など)のテーブル、配列組成・特性のダッシュボード、PCA(4サンプル以上)が含まれる。α多様性とβ多様性の時の距離メトリクスはオプションで選択可能(レポジトリ参照)。

combined_Nucleotide.tsv

pca_Nucleotide/pca.tsv

report/

report/diversity-Nucleotide.tsv

 

report/report.html - 図はインタラクティブに操作できる。

(公開されているゲノム配列を使用)

 

論文とレポジトリより

  • k-merベースの計数は、メタオームデータのプロファイリングにおいて最速のアプローチの1つである(Lindgreen et al.) MerCat2はMerCat v1 (White III et al. 2017)を改良し、品質管理、k-merカウント、可視化を含む統合解析を行う "分割統治 "アプローチを利用することで、あらゆるサイズの配列ファイルに対応できる。

  • 大規模並列処理(MPP)とスケーリングのために、大規模なオープンソース並列計算フレームワークであるRAY(www.ray.io/)において、MPPと利用のためにファイルを分割するためのbyte chunking Algorithm 1 を開発した。また、塩基配列アミノ酸配列のfastaファイルの両方を汎用的にカウントするために、kのサイズの範囲に対応するナイーブなk-merカウンターアルゴリズムpythonベースで実装した。

  • 大きなk-merカウントテーブルをマージするに大きなメモリ消費(50GB以上のRAM)が必要だったが、低メモリシステム(ラップトップなど)での動作とRAMの大量消費を防ぐため、大規模データセット>100 GBの生配列データ>60,000細菌ゲノム)でも対応できるgreedyなアルゴリズムを実装した。論文ではGTDBの細菌(62,291種)と小細菌(3412種)を使ったベンチマークがあり、GTDBバクテリア細菌データベースのゲノム使用時でも、1時間未満30 GB未満のRAM10 GB未満のディスク容量で62,291種を分析している(4-merヌクレオチドまたはまたは31-merアミノ酸のどちらかで)。

  • MerCat v1にはなかった大規模な主成分分析(PCA)をプロットするために、sci-kit learnのincremental PCA関数を利用し、修正した。MerCat2は、ラップトップからハイパフォーマンスコンピューティングリソースまで、すべて同じユーザーフレンドリーなパッケージ内でスケールする。

  • MerCat2が提供するアルファ多様性とベータ多様性の指標は実験的なものである。現在、これらの指標の頑健性に取り組んでいる。
  • FragGeneScanRは真核生物の多いサンプルに対して、原核生物の多いサンプルよりも優れた遺伝子コールを提供する。

 

コメント

入力ファイルの名前にピリオドが含まれる場合、一部の解析でエラーが生じる可能性があります。そのような場合、例えばGCA_XXXXXX.1.fnaというファイルなら、予めGCA_XXXXXX_1.fnaにリネームすればエラーは発生しません(拡張子の手前のピリオドはOK)。まもなく修正予定のとのことですが、しばらくはピリオドはリネームしておく必要がある点に注意してください。マルチサンプル且つ特定のオプション指定時のみ起こる現象です。教えていただきありがとうございました。

引用

MerCat2: a versatile k-mer counter and diversity estimator for database-independent property analysis obtained from omics data 
Jose L Figueroa, III, Andrew Redinbo, Ajay Panyala, Sean Colby, Maren L Friesen, Lisa Tiemann, Richard Allen White, III
Bioinformatics Advances, Volume 4, Issue 1, 2024