macでインフォマティクス

macでインフォマティクス

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

冗長なデータベースに対して正確なmappingを行う KMA

 

 バイオインフォマティクスで最も古く、おそらくおそらく最も重要なツールは、1つまたは複数の配列のアラインメントである。アラインメントは、ある配列が別の配列とどのように類似しているかを示し、類似の配列パターンの豊富さを定量するために使用できる。見つかったパターンにアノテーションがある場合、これをクエリシーケンスにtransferできる。したがって、アラインメント方法の適切な選択は、さらなる調査にとって重要である[ref.1]。

 過去10年間で、ターゲットシーケンスに対するrawリードの直接マッピングを可能にするいくつかのマッピング方法が開発された。(一部略)BLASTはrawリードを直接マップするには遅すぎ、アセンブリの品質によって大きく左右される。これは、ゲノムのrepetitive領域および低デプス領域内で問題となる。アセンブリでは、多くの場合、アセンブルされたコンティグ間にギャップが生じ、データが失われる[ref.2、3]。今日、Bowtie2 [ref.4]、BWA-MEM [ref.5]、およびMinimap2 [ref.6]は、大きなリファレンスゲノムに対するrawリードの高速マッピングおよびアライメントを可能にする一般的なマッピング方法である。これらの方法はすべて、配列データベース全体に対してマップするように適合させることができるが、最適な一致が得られる場合はランダムに選択される。これらの関係を解決するために、これらのランダムな選択を広範な前処理および後処理で解決するためのいくつかのツールが設計されている。これらの例は、SRST2 [ref.3]とMGmapper [ref.7]であり、それぞれBowtie2とBWA-MEMでマッピングするためのシーケンスの前処理と後処理の両方を行う。 Salmon [ref.8]などの他の方法では、EMアルゴリズムを使用して、従来の方法で生成されたマッピングから相同なテンプレートのシーケンスレベルを推定する。

 しかし、ゲノム疫学で使用される冗長なデータベースは、未加工のリードを直接マッピングすることに関して依然として課題を提起している。自然進化によりデータベースが新しいシーケンスで絶えず更新されると、結果は絶えず変化する状態になり、クラスタリングが困難になる。データベースのこの機能により、リードがリファレンスシーケンスの一意の部分をカバーする保証がないため、 rawリードの直接マッピングが面倒になる。細菌データベースへのマッピングでは冗長性が問題になるが、これらのデータベースは一部の遺伝子データベースほど冗長ではないため、程度は低くなる。この冗長さの問題を正確かつ迅速に解決して、迅速な意思決定を可能にする新しい方法が必要であう。このニーズに応えて、新しいアライメント方法、KMA(k-merアラインメント)が開発された。 KMAは、相同テンプレートを区別するために、新しい分類スキームConClaveを導入している。(一部略)これにより、未加工のリードを冗長データベースに対して直接マッピングできる。 KMAは、データベース内の冗長性を許可することで既知のマッパーとは異なる。また、KMAはコンセンサスシーケンスと結果の概要も生成する。 KMAは、現在のユーザーの要求と分析の課題に基づいて、できるだけ直感的でユーザーフレンドリーになるように作成された。これを解決するために、KMAは5つの主要なステップで動作する。リードのトリミング、ヒューリスティックなk-merマッピング、微調整、ConClaveスコアリング、リファレンスアセンブリ(論文図1を参照)。(以下略)

  

 

インストール

本体 Bitbucket

#bioconda (link)
conda install -c bioconda -y kma

git clone https://bitbucket.org/genomicepidemiology/kma.git
cd kma && make

kma

$ kma

Too few arguments handed

# For help please use:

# kma -h

# kma index -h

# kma shm -h

# kma seq2fasta -h

# kma update -h

kma index -h

$ kma index -h

# kma_index creates the databases needed to run KMA, from a list of fasta files given.

# Options are: Desc: Default:

#

# -i Input/query file name (STDIN: "--") None

# -o Output file Input/template file

# -batch Batch input file

# -deCon File with contamination (STDIN: "--") None/False

# -batchD Batch decon file

# -t_db Add to existing DB None/False

# -k Kmersize 16

# -k_t Kmersize for template identification 16

# -k_i Kmersize for indexing 16

# -ML Minimum length of templates kmersize (16)

# -CS Start Chain size 1 M

# -ME Mega DB False

# -NI Do not dump *.index.b False

# -Sparse Make Sparse DB ('-' for no prefix) None/False

# -ht Homology template 1.0

# -hq Homology query 1.0

# -and Both homolgy thresholds

# has to be reached or

# -v Version

# -h Shows this help message

kma shm -h

$ kma shm -h

# kma_shm sets up a shared database (sysV) for mapping with KMA.

# Options are: Desc: Default: Requirements:

#

# -t_db Template DB None REQUIRED

# -destroy Destroy shared DB False

# -shmLvl Level of shared memory 1

# -shm-h Explain shm levels

# -v Version

# -h Shows this help message

#

kma seq2fasta -h

$ kma seq2fasta -h

kma seq2fasta prints the fasta sequence of a given kma index to stdout.

# Options are: Desc: Default: Requirements:

# -t_db Template DB None REQUIRED

# -seqs Comma separated list of templates Print entire index.

# -h Shows this help message

kma update -h

$ kma update -h

# KMA_update syncronises kma-indexes to the needed version.

# Options are: Desc: Requirements:

#

# -t_db Template DB REQUIRED

# -v [XXYY], from version major version XX

# to major version YY. Use minor version,

# if major version is 0. REQUIRED

# -h Shows this help message

#

 

 

実行方法

1、indexing 

kma index -i templates.fsa.gz -o index

複数ファイルできる。

 

2、mapping

#short single. One read maps only to one template:
kma -i single.fq.gz -o output -t_db index -1t1

#short paired-end.
kma -ipe pair_*.fq.gz -o output -t_db index -1t1

#Whole genome mapping with nanopore reads
kma –i nanoporeReads.fq.gz –o output –t_db index –mem_mode –mp 20 –mrs 0.0 –bcNano
  • -i    Inputfile(s), default is read from stdin. All input options takes as many files as you wish in fastq or fasta format, space separated.
  • -ipe   Inputfile(s), paired end. The file pairs should be placed right after each other.
  • -int   Inputfile(s), interleaved.
  • -o     Output destination.
  • -1t1  One read to one template, no splicing performed. Well suited for short reads and whole genome mapping.
  • -bc90   Basecalls should be significantly overrepresented, and have at least 90% agreement.
  • -bcNano   Basecalls optimized for nanopore sequencing.
  • -mrs   minimum alignment score normalized to alignment length.

複数ファイル出力される。

 

 他の例はBitbucketを参考にしてください。出力はResult Explanationに説明があります。

引用

Rapid and precise alignment of raw reads against redundant databases with KMA
Philip T. L. C. Clausen, Frank M. Aarestrup & Ole Lund
BMC Bioinformatics volume 19, Article number: 307 (2018)

 

*1

 #Bitbucketのexampleコードは途中になぜか全角?があって、コピペするとエラーになった。手打ちしたら治った。

 

関連