macでインフォマティクス

macでインフォマティクス

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

multi-FASTA alignmentからSNPを抽出する SNP-sites

 

 次世代シーケンシング(NGS)技術は、 Single Nucleotide polymorphism(SNP)発見のためにゲノムを大規模にリシーケンシングすることを容易にした。そのようなプロジェクト中に発見された何千ものSNPは、生物学的解釈および計算解析のためにいくらかの困難を引き起こす可能性がある。この課題に取り組むために、SNPにリファレンスゲノムから得られた情報をアノテーションし、その情報をデータベース[論文より ref.1-7]に格納する様々なデータベースおよびツールが作成されている。

 これらのツールのSNPデータ管理能力は優れているが、保存されたデータの簡単な処理と検索には注意が払われていない。例えば、WangらがSNP管理のために開発したツールには、限定された検索機能のみ含まれており、高度なユーザーデータベースのクエリは使えない。 Dereeperらによって記述されたもののような、いくつかのデータベースは、SNP発見および解析のためのウェブツールを実装している。しかし、Variant Call Format(VCF)ファイルは入力として受け入れられず、二倍体種にのみ適用される。もう1つのツールはMithaらによるSNPpyであり、SQL照会とデータ操作を可能にするデータベース管理システムを提供している。 SNPpyシステムは、VCFを管理するためにかなりの専門知識を必要とするリレーショナルデータベース(PostgreSQL)に依存している。 VCFファイルは1000 Genomes Project [ref.8]のイニシアティブ(取り組み)であり、dbSNPs [ref.9]、Samtools mpileup [ref.10]、GATK [ref.11]などの多くのSNPコールプログラムによって生成された出力である。

 したがって、VCFファイルからSNPを抽出し、それらを単純なデータベースに格納し、分析のための複数の出力オプションを提供するツールが必要である。このようなニーズを満たすために、著者らは一倍体の次世代シーケンシングデータから生成されたSNPを管理するための使い易いツールsnp-searchを開発した。 VCFファイルを指定すると、snp-searchはバリアントコールアルゴリズムによって生成されたSNPをsqliteデータベースに格納する。Sqliteは、1つのファイルに格納されたリレーショナルデータベースであり、複雑な管理ソフトウェアを必要としない。snp-searchを使用して、データベースから有用な情報を抽出することができる。たとえば、コマンドライン構文を使用してsnp-searchを実行すると、指定された一連の系統に対して固有のSNPを抽出できる。SNP系統を生成し、それが同義または非同義のSNP、遺伝子情報などであるかどうかなど、個々のSNPに関する詳細な情報を提供する(表1参照)。 snp検索データベーススキーマは、単純であるように意図的に設計されており、大規模で複雑な生物学的クエリから得られた結果を簡単に解釈することができる。したがって、単純なSQL結合は、コアゲノム内の変異に関する質問に素早く簡単に回答するためのデータを抽出することができる。 snp-searchはまた、遺伝子の機能に応じてSNPをフィルタリングする能力を有する。さらに、ファイルサイズの制限はなく、外部ツールに依存しない。唯一の要件は、Unix環境、SQLiteRuby 1.8.7以上だけであり、必要に応じて系統樹構築用のFastTree 2 [12]を使う。著者らが知っている限り、文献にsnp-searchと同様の機能を持つツールはない。

 snp-searchは人気の高いスクリプト言語であるRubyで書かれており、データベーステーブルをRubyオブジェクトにマッピングするRuby ActiveRecordライブラリを使用している。これは、最新のUnixベースのアーキテクチャで動作し、コマンドgem install snp-searchを使用してインストールできる。

(以下略)

 

SNP-sitesに関するツイート


インストール

mac os10.14のanaconda3-5.1.0環境でテストした。

本体 Github

#Anaconda環境でcondaを使い導入
conda install -c bioconda -c conda-forge snp-sites

#ubuntu or debian
apt-get install snp-sites

#bioconda dokcer images
https://quay.io/repository/biocontainers/snp-sites

> snp-sites

$ snp-sites 

Usage: snp-sites [-rmvpcbhV] [-o output_filename] <file>

This program finds snp sites from a multi FASTA alignment file.

 -r     output internal pseudo reference sequence

 -m     output a multi fasta alignment file (default)

 -v     output a VCF file

 -p     output a phylip file

 -o STR specify an output filename [STDOUT]

 -c     only output columns containing exclusively ACGT

 -b     output monomorphic sites, used for BEAST

 -h     this help message

 -V     print version and exit

 <file> input alignment file which can optionally be gzipped

 

Example: creating files for BEAST

 snp-sites -cb -o outputfile.aln inputfile.aln

 

If you use this program, please cite:

"SNP-sites: rapid efficient extraction of SNPs from multi-FASTA alignments",

Andrew J. Page, Ben Taylor, Aidan J. Delaney, Jorge Soares, Torsten Seemann, Jacqueline A. Keane, Simon R. Harris,

Microbial Genomics 2(4), (2016). http://dx.doi.org/10.1099/mgen.0.000056

 

入力が以下のようなmulti-fastaだとすると

f:id:kazumaxneo:20181120194947p:plain

SNP-sitesの出力は以下のようになる。SNPがコンカテネートして表示される。

f:id:kazumaxneo:20181120194953p:plain

 

テストラン

git clone https://github.com/sanger-pathogens/snp-sites.git
cd snp-sites/example_data/

#アライメントファイルを指定する
snp-sites -o output salmonella_serovars_core_genes.aln
  •  -o <STR>    specify an output filename [STDOUT]

 

複数のフォーマットで出力する。

#アライメントファイルを指定する
snp-sites -mrvp -o output salmonella_serovars_core_genes.aln
  • -r        output internal pseudo reference sequence
  • -m      output a multi fasta alignment file (default)
  • -v       output a VCF file
  • -p       output a phylip file

 

 

 実際に本ツールを利用するには、最初にリファレンスとのペアワイズアライメントか、マルチプルアライメントを実行して、アライメントのmulti-fastaを作っておく必要があります。

引用
SNP-sites: rapid efficient extraction of SNPs from multi-FASTA alignments

Page AJ, Taylor B, Delaney AJ, Soares J, Seemann T, Keane JA, Harris SR

Microb Genom. 2016 Apr 29;2(4):e000056

 

関連ツール