細菌性病原体のゲノムシーケンスは、疫学者の防具の重要なツールになりつつある。パルスフィールドゲル電気泳動やMLSTなどの従来の分子タイピングアプローチよりも特異性と感度が向上し、遺伝子型の抗微生物薬耐性予測などの疫学関連データも提供される。ただし、これらの改善には、ゲノムデータの分析と結果の解釈に専用のバイオインフォマティクスサポートが必要になることが多く、分析の複雑さの犠牲が伴う。自動化は可能だが、通常、複雑な分析パイプラインと重要なコンピューティングインフラストラクチャが必要であり、経験豊富なユーザーからの支援が必要になることがよくある。ここでは、疫学的な目的で細菌のゲノムデータを迅速に分析する手段を提供するツールキットであるSKA(Split Kmer Analysis)を紹介する。 SKAは高速で、メモリ効率が高く、比較的小さな中間ファイルのみを生成するため、平均的な家庭用コンピューターで数百の細菌(またはその他の小さな半数体)ゲノム配列を分析することが可能である。 SKAは、アウトブレイクや伝染の連鎖など、closely relatedなゲノムの分析に特に強力である。SKAは、種全体または大規模なpopulation genomicsのアプリケーション用には設計されていない。
疫学的目的でゲノムデータを利用するための最初のステップは、対象サンプルの配列内の塩基間の相同性の仮説を作成することである。これは、すべての新しいサンプルからのデータがマッピングされる単一の共通のリファレンスシーケンスに基づいて、またはリファレンスなしの手法を使用することによって行うことができる。マッピングは、バリエーションを識別するための比較的単純なアプローチである。Rawシーケンスデータは、ソフトウェアオプションの配列の1つを使用して、関連するリファレンスゲノム(通常はcompleteなclosedのゲノムシーケンス)に合わせて調整される。アラインメントされたリードはフィルターされ、リファレンスゲノムの各塩基についてコンセンサスベースコールが計算される。マッピングアルゴリズムは、ハッシュテーブルやburrows wheeler transforms(ref.1)を使用してシーケンスのインデックスを作成するなど、創造的な方法を使用してアラインメントプロセスを高速化するが、このプロセスは中央処理装置(CPU)、大きな中間ファイルを保存するための時間、メモリ使用量、ディスク容量の使用を含む計算リソースの観点から比較的コストがかかる可能性がある。ゲノム疫学への最も一般的な非リファレンスアプローチには、保存された遺伝子のセットの分析が含まれる。このコア遺伝子アプローチには、対立遺伝子の相同性評価、そしてしばしばアラインメントが続くゲノムアセンブリが必要である。リファレンスマッピング法もコアゲノム法も、ゲノム疫学には理想的ではない。リファレンスマッピングは、リファレンスが分析のすべてまたは一部の分離株から離れている場合、偏った結果につながる可能性がある。これらのバイアスは予測が難しく、同じデータの分析間でも、単一の分析内のサンプル間でも異なる。一方、コアゲノムメソッドでは、ゲノムの大きな領域が除外されるため、感度が不足する可能性がある。
kmer革命
真核生物および病原性細菌種の両方で利用可能なゲノム配列の数が大幅に増加しているため、新世代の分析方法が必要になった。これらの方法の多くは、ゲノムデータを既知のサイズ(k)の小さな断片(しばしばkmersと呼ばれる)に分割し、完全一致による計算効率を活用している。 Kmerマッチングは非常に高速で、数千のゲノム比較に対応できる。より革新的なアプリケーションの例としては、ゲノム間のおおよそのJaccard distances(ref.3)を迅速に推定するMash(ref.2)、、長いシーケンスリードをリファレンスゲノムに非常に迅速にアラインするminimap(ref.4)、非常に大きなゲノムデータベースからグラフ表現で一致する配列を検索するBIGSI(ref.5)。分析速度をさらに向上させ、メモリ要件を削減するために、これらの方法ではminimiser(ref.6)またはbloom filters(ref.7)を使用する。ただし、closely relatedな小さなゲノムの場合、そのような近似は必要ない。すべてのkmerは、速度と効率に悪影響を与えることなく保存および検索できる。それでも、kmerベースのアプローチの大きな課題はシーケンスのバリエーションである。 kmerを数えることで類似性を特定できるが、kmerの不一致はシーケンスの変動をそのシーケンスの不在と区別できないため、距離を計算するためのkmerメソッドはdivergentなサンプルに最も適している。たとえば、単一のMLSTシーケンスタイプ内のサンプル間の関係を識別することは、多くの場合、kmer距離を使用すると不正確になる。
スプリットkmerを使用したバリエーションの迅速な特定
ここで私は(オーサー)、split k-merの概念を紹介する。split k-merとは、1つまたは複数の塩基で分離されたDNAシーケンスの単純なペアのk-merである。 スプリットkmerを使用すると、正確なマッチングの速度を利用して、保存されたシーケンスに隣接する変動領域を特定できる。kSNPソフトウェアで使用されているバリエーションを探す前に、最初にkmerがカウントされ、次にソートされる(ref.8)。 kSNPは、Jellyfishのkmerカウンティングソフトウェア(ref.9)からの結果を後処理することでこれを行う。これにより、速度、効率、および汎用性が制限される。 スプリットkmerには、ゲノムの挿入、欠失、およびその他の構造変異の分析を可能にするkSNPアプローチを超える可能性もある。
split k-mer: A split kmer is a pair of kmers in a DNA sequence that are separated by a single base.
https://github.com/simonrharris/SKA/wiki
インストール
依存
SKA simply requires GNU make and a version of g++ which supports C++11.
#bioconda (link)
conda install -c bioconda -y ska
#homebrew
brew install brewsci/bio/ska
#clone repository
git clone https://github.com/simonrharris/SKA.git
cd SKA
make
sudo make install
> ska
$ ska
SKA: Split Kmer Analysis
Version: 1.0
Citation: TBA
Usage:
ska <subcommand>
Subcommands:
align Reference-free alignment from a set of split kmer files
alleles Create a merged split kmer file for all sequenes in one or
more multifasta files
annotate Locate/annotate split kmers in a reference fasta/gff file
compare Print comparison statistics for a query split kmer file
against a set of subject split kmer files
distance Pairwise distance calculation and clustering from split kmer
files
fasta Create a split kmer file from fasta file(s)
fastq Create a split kmer file from fastq file(s)
humanise Print kmers from a split kmer file in human readable format
info Print some information about one or more kmer files
map Align split kmer file(s) against a reference fasta file
merge Merge split kmer file(s) into one file
summary Print split kmer file summary statistics
type Type split kmer files using a set of allele files
unique Output kmers unique to a set of split kmer files
version Print the version and citation for ska
weed Weed kmers from a split kmer file
実行方法
1、各サンプルのfastqについてsplit kmerファイルを作成する。
ska fastq -o sample1 sample1_1.fastq.gz sample1_2.fastq.gz
ska fastq -o sample2 sample2_1.fastq.gz sample2_2.fastq.gz
ska fastq -o sample3 sample3_1.fastq.gz sample3_2.fastq.gz
2、サマリーレポート
ska summary sample1.skf sample2.skf sample3.skf
出力(ここでは2サンプルのみ)
Sample Kmer size Total kmers As Cs Gs Ts Ns Others GC Content
sample1 15 3848576 1017783 913093 914918 1002225 557 0 0.475052
sample2 15 3668192 969792 870262 872497 955109 532 0 0.475169
3、sample1のsplit kmerファイルをsample2と3のsplit kmerファイルと比較
ska compare -q sample1.skf sample2.skf sample3.skf
出力(link)
$ ska compare -q sample1.skf sample2.skf
Subject Kmers unique to Query Kmers unique to Subject Matches % kmers in Query matching % kmers in Subject matching SNPs %ID of matching kmers %ID of Query kmers %ID of Subject kmers Ns in Query Ns in Subject Ns in both
sample2 191727 11343 3656849 95.0182 99.6908 15 99.9996 95.0178 99.6904 62 38 492
3、split kmer配列を出力
ska humanise -i sample1.skf
$ head humanised_kmers.tsv
sample1
AATCCTTCACGAAATGCGGTGTTGCTGGGC C
CATAAAGACTCATAAATCCGCACAAAGAAA A
AGTTGTCGCTTGCCTTTAACACCTCAGAAA T
GACGCTGTATTTTTGTGTAAATAATCCGTA C
TCCCGATAAAGGCGACGCGCCATTCAAAAA T
CAACTTTTCGGGAATGTCACGGCTGAGGAG G
AGGCATTCGAGAATAAGCATTAGCCATGAT T
AAGGCAAAATAAGTCGATTAATACCGGAAA T
AACCGCAGTGTTTAAAAGACTGATTGATGC T
他にも様々なサブコマンドがあります。wikiを参照して下さい。
引用
SKA: Split Kmer Analysis Toolkit for Bacterial Genomic Epidemiology
S. R. Harris