macでインフォマティクス

macでインフォマティクス

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

バクテリアのシーケンスエンリッチメント解析ツール SEER

 

 細菌形質の遺伝的基盤を決定しようとする研究は、伝統的に特定の原因遺伝子エレメントを特定するのではなく、目的の表現型に関連する新生クローンを同定することに限定されてきた(ref.1)。これは、バクテリアがクローン的に複製するという事実に起因しており、これはゲノムの大部分が任意の形質 (ref.2) と連鎖不平衡(LD)にあることを意味している。形質に関連する変異のリストのうちのどれが真に形質と因果関係であるかを決定するには、その形質が単一のクローン系統に特有に関連していないことを必要とする。(一部略)病原性のような臨床的に関連する形質の場合のように、表現型に対して完全に浸透 (浸透率 penetration rate) していない変異を見出すには、多数の試料を必要とし、より一般的な関連検査が必要となる(ref.4)。

これらの理由から、バクテリアの表現型のゲノムワイド関連研究(GWAS)は近年になってわずかになってきている(ref.2,5,6,7,8)。もともとヒトの一塩基多型(SNP)データのために開発された標準的なGWAS法は、バクテリアのゲノム突然変異に首尾よく適用可能であることが示されている(ref.6,7)。しかしながら、既知のバクテリア種の多くのゲノムの可塑性が高いことから、そのような方法は表現型の変異の遺伝的決定因子を部分的にしか同定できないと予想される。例えば遺伝子内容に関連する機構の発見を可能にするために、アライメントフリーの代替法も導入されている(ref.5,8)。これらの方法は、観察された表現型分布における差異の推定的説明に、一般的にk-mer、すなわち長さkのDNAワードを使用する。 k-mersの主な利点は、突然変異、indel、組換え、可変プロモーター構造および遺伝子含量の差異を含むゲノムのコレクション全体に存在するいくつかの異なるタイプの変異を捕捉する能力である。

K-mersは、アセンブリ (ref.9)、SNPjコール (ref.10) および距離推定 (ref.11) のためのバクテリアゲノミクスに使用されている。これまでのk-mersを用いた研究は、母集団構造をコントロールし系統推定を行うためにワードの増加と消失のモンテカルロシミュレーションを用いていた(ref.5)。一方で、SNPベースの研究では、コアアライメントに関するクラスタリングアルゴリズムと、得られたサンプルグループについてのstratified association testが使用されている( ref.6,7)。前者は、より小さなエフェクトサイズ(効果量)の関連を見つける必要があり、数百の分離株まで計算的にスケーリングできない。後者は、コアアライメントを探す感度が不十分であり、また多数のサンプルがある場合には生成が困難であり、 そもそも多様性があるかもしれない。

 ここでは、新たにアセンブリされたコンティグまたはrawシーケンシングデータを入力として使用するスタンドアロンパイプライン実装の、計算的に数万のゲノムへスケーラブルできるsequence element enrichment analysisツール(SEER)を紹介する。著者らは、SEERを大規模で多様な集団のシミュレーテッドデータおよびリアルデータの両方に適用し、遺伝子の存在およびコード領域におけるSNPの両方によって引き起こされる抗生物質耐性との関連性を正確に検出することができることを示す。

 

Usage

https://github.com/johnlees/seer/wiki/Usage

 

インストール

ubuntu18.04でテストした。

依存

You will also require

  • gcc >4.9 or equivalent
  • gcc libstdc++ >4.9

スタティックとダイナミックのバイナリファイルをダウンロードできる。自分でビルドする場合はGithubを参照。

https://github.com/johnlees/seer/releases

> ./seer -h

$ ./seer -h

seer: sequence element enrichment analysis

 

Required options:

  -k [ --kmers ] arg       dsm kmer output file

  -p [ --pheno ] arg       .pheno metadata

 

Covariate options:

  --struct arg             mds values from kmds

  --covar_file arg         file containing covariates

  --covar_list arg         list of columns covariates to use. Format is 1,2q,3 

                           (use q for quantitative)

 

Performance options:

  --threads arg (=1)       number of threads. Suggested: 2

 

Filtering options:

  --no_filtering           turn off all filtering and perform tests on all 

                           kmers input

  --max_length arg (=100)  maximum kmer length

  --maf arg (=0.01)        minimum kmer frequency

  --min_words arg          minimum kmer occurences. Overrides --maf

  --chisq arg (=10e-5)     p-value threshold for initial chi squared test. Set 

                           to 1 to show all

  --pval arg (=10e-8)      p-value threshold for final logistic test. Set to 1 

                           to show all

 

Other options:

  --print_samples          print lists of samples significant kmers were found 

                           in

  --version                prints version and exits

  -h [ --help ]            full help message

 

またはオーサーらが準備してくれている仮想イメージを利用する。(VirtualBox

ftp://ftp.sanger.ac.uk/pub/pathogens/pathogens-vm/pathogens-vm.latest.ova

 

ラン

以下の手順で解析を進める。

  1. k-merカウント。
  2. kmdsを走らせて.dsmファイル作成。
  3. .dsmファイルを使い、もう一度kmdsを走らせる。distance matrixテーブルが出力される。
  4. seerで解析。

 

1、初めに、アセンブリして作成したcontig配列をターゲットkにしてk-merカウントを実施する。クラスター環境でランできるなら、推奨されているようにdsmリンク)を使用する。一般的なシングルサーバ環境ならfsm-lite(リンク)を使用する。

fsm-lite -v -s 5 -S 95 -l fsm_list.txt -t tmp_index > fsm_kmers.txt

The -s and -S options control the frequency of k-mers to report. In the above example there are 100 samples and only k-mers appearing in between 5 and 95 samples are output. This is equivalent to the recommended 5% minor allele frequency cutoff.

 

 使えないならdskを使う。k-merサイズは固定となる。

dsk -file sample1_contigs.fa -abundance-min 1 -out sample1_dsk
dsk2ascii -file sample1_dsk.h5 -out sample1_dsk.txt
combineKmers -r 21mer_samples.txt -o all_21mers_new --min_samples 2

 

2、kmdsによる全k-merのサブサンプリングして.dsmファイルを作成。

distance.matrixを2ステップで作成する。まず分割してgzipする。

split -d -n l/16 fsm_kmers.txt fsm_out
rm fsm_kmers.txt
gzip fsm_out*

それからkmdsを走らせる。

kmds -k fsm_out{1..16}.gz --pheno metadata.pheno --no_filtering --no_mds --size 10000

 {1..16}は1から16まで16回ランすることを意味する。

2の作業については、オーサーらはmash(紹介)を使った方が計算が早く終わり好ましいとしてmashを使った手順も紹介している(リンク)。

 

 3、 2で作った.dsmを使い、distance matrixを計算。

ls *.dsm > subsampled_matrices.txt
kmds -p metadata.pheno --mds_concat subsampled_matrices.txt -o all_structure --threads 16 --write_distances

 

4、seerで解析する。

seer -k fsm_out{1..16}.gz --pheno metadata.pheno --struct all_structure --threads 4 --print_samples > significant_kmers.txt

Various filtering options are available. Note the the default is a MAF of >1%, unadjusted p-value of < 10e-5 and adjusted p-value of < 10e-8. 

 

 

インストールが簡単になったpyseerも発表されています (link)。また紹介します。

引用

Sequence element enrichment analysis to determine the genetic basis of bacterial phenotypes

Lees JA, Vehkala M, Välimäki N, Harris SR, Chewapreecha C, Croucher NJ, Marttinen P, Davies MR, Steer AC, Tong SY, Honkela A, Parkhill J, Bentley SD, Corander J

Nat Commun. 2016 Sep 16;7:12797.

https://www.nature.com/articles/ncomms12797