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


2022/1/4 例追記,

2023/07/08 ツイート追記

2023/09/02 説明追加 






SnpEff and SnpSift





Building from the source

Most libraries should be install using Maven, so you just need to run mvn command.


mamba create -n snpeff -y
conda activate snpeff
mamba install -c bioconda -y snpeff
mamba install -c bioconda -y snpsift

docker pull nfcore/snpeff:5.1.R64-1-1

docker pull biocontainers/snpeff:v4.1k_cv3

 > snpEff

$ snpEff

SnpEff version SnpEff 5.0e (build 2021-03-09 06:01), by Pablo Cingolani

Usage: snpEff [command] [options] [files]


Run 'java -jar snpEff.jar command' for help on each specific command


Available commands: 

[eff|ann]                    : Annotate variants / calculate effects (you can use either 'ann' or 'eff', they mean the same). Default: ann (no command or 'ann').

build                        : Build a SnpEff database.

buildNextProt                : Build a SnpEff for NextProt (using NextProt's XML files).

cds                          : Compare CDS sequences calculated form a SnpEff database to the one in a FASTA file. Used for checking databases correctness.

closest                      : Annotate the closest genomic region.

count                        : Count how many intervals (from a BAM, BED or VCF file) overlap with each genomic interval.

databases                    : Show currently available databases (from local config file).

download                     : Download a SnpEff database.

dump                         : Dump to STDOUT a SnpEff database (mostly used for debugging).

genes2bed                    : Create a bed file from a genes list.

len                          : Calculate total genomic length for each marker type.

pdb                          : Build interaction database (based on PDB data).

protein                      : Compare protein sequences calculated form a SnpEff database to the one in a FASTA file. Used for checking databases correctness.

seq                          : Show sequence (from command line) translation.

show                         : Show a text representation of genes or transcripts coordiantes, DNA sequence and protein sequence.

translocReport               : Create a translocations report (from VCF file).


Generic options:

-c , -config                 : Specify config file

-configOption name=value     : Override a config file option

-d , -debug                  : Debug mode (very verbose).

-dataDir <path>              : Override data_dir parameter from config file.

-download                    : Download a SnpEff database, if not available locally. Default: true

-nodownload                  : Do not download a SnpEff database, if not available locally.

-h , -help                   : Show this help and exit

-noLog                       : Do not report usage statistics to server

-q , -quiet                  : Quiet mode (do not show any messages or errors)

-v , -verbose                : Verbose mode

-version                     : Show version number and exit


Database options:

-canon                       : Only use canonical transcripts.

-canonList <file>            : Only use canonical transcripts, replace some transcripts using the 'gene_id  transcript_id' entries in <file>.

-interaction                 : Annotate using inteactions (requires interaciton database). Default: true

-interval <file>             : Use a custom intervals in TXT/BED/BigBed/VCF/GFF file (you may use this option many times)

-maxTSL <TSL_number>         : Only use transcripts having Transcript Support Level lower than <TSL_number>.

-motif                       : Annotate using motifs (requires Motif database). Default: true

-nextProt                    : Annotate using NextProt (requires NextProt database).

-noGenome                    : Do not load any genomic database (e.g. annotate using custom files).

-noExpandIUB                 : Disable IUB code expansion in input variants

-noInteraction               : Disable inteaction annotations

-noMotif                     : Disable motif annotations.

-noNextProt                  : Disable NextProt annotations.

-onlyReg                     : Only use regulation tracks.

-onlyProtein                 : Only use protein coding transcripts. Default: false

-onlyTr <file.txt>           : Only use the transcripts in this file. Format: One transcript ID per line.

-reg <name>                  : Regulation track to use (this option can be used add several times).

-ss , -spliceSiteSize <int>  : Set size for splice sites (donor and acceptor) in bases. Default: 2

-spliceRegionExonSize <int>  : Set size for splice site region within exons. Default: 3 bases

-spliceRegionIntronMin <int> : Set minimum number of bases for splice site region within intron. Default: 3 bases

-spliceRegionIntronMax <int> : Set maximum number of bases for splice site region within intron. Default: 8 bases

-strict                      : Only use 'validated' transcripts (i.e. sequence has been checked). Default: false

-ud , -upDownStreamLen <int> : Set upstream downstream interval length (in bases)

snpEff databases -h

$ snpEff databases -h

Usage: snpEff databases [galaxy|html]



galaxy  : Show databases in a galaxy menu format.

html    : Show databases in a HTML format.

snpEff download -h

$ snpEff download -h

snpEff version SnpEff 5.0e (build 2021-03-09 06:01), by Pablo Cingolani

Usage: snpEff download [options] {snpeff | genome_version}

> snpsift

$ SnpSift 

SnpSift version 4.3t (build 2017-11-24 10:18), by Pablo Cingolani


Usage: java -jar SnpSift.jar [command] params...

Command is one of:

alleleMat     : Create an allele matrix output.

annotate      : Annotate 'ID' from a database (e.g. dbSnp). Assumes entries are sorted.

caseControl   : Compare how many variants are in 'case' and in 'control' groups; calculate p-values.

ccs           : Case control summary. Case and control summaries by region, allele frequency and variant's functional effect.

concordance   : Concordance metrics between two VCF files.

covMat        : Create an covariance matrix output (allele matrix as input).

dbnsfp        : Annotate with multiple entries from dbNSFP.

extractFields : Extract fields from VCF file into tab separated format.

filter        : Filter using arbitrary expressions

geneSets      : Annotate using MSigDb gene sets (MSigDb includes: GO, KEGG, Reactome, BioCarta, etc.)

gt            : Add Genotype to INFO fields and remove genotype fields when possible.

gtfilter      : Filter genotype using arbitrary expressions.

gwasCat       : Annotate using GWAS catalog

hwe           : Calculate Hardy-Weimberg parameters and perform a godness of fit test.

intersect     : Intersect intervals (genomic regions).

intervals     : Keep variants that intersect with intervals.

intIdx        : Keep variants that intersect with intervals. Index-based method: Used for large VCF file and a few intervals to retrieve

join          : Join files by genomic region.

op            : Annotate using an operator.

phastCons     : Annotate using conservation scores (phastCons).

private       : Annotate if a variant is private to a family or group.

rmRefGen      : Remove reference genotypes.

rmInfo        : Remove INFO fields.

sort          : Sort VCF file/s (if multiple input VCFs, merge and sort).

split         : Split VCF by chromosome.

tstv          : Calculate transiton to transversion ratio.

varType       : Annotate variant type (SNP,MNP,INS,DEL or MIXED).

vcfCheck      : Check that VCF file is well formed.

vcf2tped      : Convert VCF to TPED.


Options common to all SnpSift commands:

-d                   : Debug.

-download            : Download database, if not available locally. Default: true.

-noDownload          : Do not download a database, if not available locally.

-noLog               : Do not report usage statistics to server.

-h                   : Help.

-v                   : Verbose.






snpEff databases | grep -i Arabidopsis


Arabidopsis_halleri Arabidopsis_halleri
Arabidopsis_lyrata Arabidopsis_lyrata
Arabidopsis_thaliana Arabidopsis_thaliana
testAthalianaTair10 Test using athaliana's genome



snpEff download -v Arabidopsis_thaliana

snpEff download TAIR10.26




snpEff -v -stats report.html Arabidopsis_thaliana variant_call.vcf > annotated.vcf

snpEff -v -stats report.html TAIR10.27 variant_call.vcf > annotated.vcf










SnpEff は 3 つのファイルを出力する。







データベースにないアノテーションデータも登録して使うこともできる。TXT, BED, BigBed, VCF, GFFなどを提供できるが、ここではexampleの解説に従って、GFFファイルからデータベースを作成する流れを確認する。


mkdir -p data/strainA
mv strainA.gff data/strainA/genes.gff





echo "strainA.genome : strainA" >> snpEff.config




3、snpEff buildコマンドを使ってデータベースを作成する。カレントのコンフィグファイルが自動で認識される(-cで上書き)。gff3だけでなくgtfなども使える(アノテーションの後にリファレンスゲノム配列を結合したものが必要)。

snpEff build -c snpEff.config -gff3 strainA

Database format option (default: Auto detect):

  • -embl : Use Embl format.
  • -genbank : Use GenBank format.
  • -gff2 : Use GFF2 format (obsolete).
  • -gff3 : Use GFF3 format.
  • -gtf22 : Use GTF 2.2 format.
  • -knowngenes : Use KnownGenes table from UCSC.
  • -refseq : Use RefSeq table from UCSC.

data/strrainA/ に.binファイルが保存される(デフォルトのローカルデータベースには保存されない)。



#まずGFFの配列が始まる行を調べ( grep -n "^#")、それより上の行xxx lineだけを保存する。
head -n xxx data/strainA/genes.gff > features.gff


5、snpEff の実行。features.gffファイル、configで設定した株(品種)の名前、ユーザーのVCFファイルを指定する。

snpEff -interval features.gff strainA my.vcf > annotated.vcf




java -Xmx64g -jar
~mambaforge/envs/snpeff/share/snpeff-5.0-1/snpEff.jar eff GRCh38.p13.RefSeq snps.vcf > snps_ann.vcf


variant effectについては公式ドキュメントを読んでください。一覧表が6ページ以降にあります。

variant annotations in VCF format





1、Examples - SnpEff & SnpSift Documentation

SnpEffを使って入力VCFファイルの各バリアントレコードにアノテーションフィールドを追加し、フィルタリングプログラムであるSnpSiftを用いて、特定の基準を満たすアノテーションを持つ最も重要なバリアントを抽出します。CFTR遺伝子のナンセンス変異(G542*)というインパクトの強いコーディングバリアントを原因とするメンデル性劣性疾患、Cystic fibrosisの遺伝子変異を見つけるというものです。具体的には、Complete Genomics社が配列を決定した17人の健常者の血統から得られた7番染色体のバリアントコールのデータセットを使用しています。このデータセットでは、3人の兄弟に嚢胞性線維症の原因となるコーディングバリアントがこのデータ解析のために人為的に導入されています(リンク先の「資料」参照)。この例では、原因となるバリアントはわからないが、3人の兄弟は罹患しており(症例)、14人の両親と祖父母は罹患していない(対照)という、メンデル型劣性疾患を扱っていることはわかっています。そこで、症例のジョイントコールと対象のジョイントコールをそれぞれ行い、SnpEffでアノテーションします。血統がメンデルの劣性疾患と一致しているので、SnpSift caseControl コマンドで症例群と対照群における「ホモ接合」、「ヘテロ接合」、バリアントの数を数え(家系を指定するTFAMファイルを提供する)、Fisher exact 検定とCochran-Armitage 検定を用いて、いくつかの基本的なp値計算を行う。そして、SnpSift filterコマンドで 症例の3人全てホモ接合で、対照の誰もが変異のホモ接合ではないことを期待するフィルタリングを実行します。

2、シーケンス解析パイプラインで一般的に使用されるGATKとSnpEffを統合する方法と(SnpEffを使ってVCFファイルにアノテーションを付け、GATK VariantAnnotatorを使ってVCFファイルに最終的なアノテーションを組み込む)、Galaxy上でSnpEffを統合する方法が説明されています。

3、SnpEffとSnpSiftを使って、ノンコーディングバリアントのアノテーション、優先順位付け、フィルタリングを行う例です。先天性心疾患患者260人のT-box転写因子(TBX5)の遺伝子周辺700kbをシークエンスして同定された、20個のノンコーディングリストが使われています。推定転写因子結合部位(TFBS)を含めるようにしてSnpEffでのアノテーションを実行したが、ほとんどのバリアントが「INTERGENIC」としてカタログ化されており、候補となるSNVを絞り込むために使用できる追加情報は得られなかった(TFBSが小さいことや心臓や四肢の発生に関わる調節エレメントが、一般的に研究されている成人組織では広く活性化していない可能性)。そのため、他の研究のChIP-Seq解析で得られたデータ(BEDやBigBedなどで公開されていることも多い)を-intervalコマンドラインオプションで指定してsnpEffをランし、VCFにChIP-Seq実験の注釈を追加した(このコマンドラインオプションは、ENCODEプロジェクトやEpigenome RoadmapプロジェクトのChIP-Seq実験を使用してアノテーションを追加するのに利用できる。各コマンドラインで複数の-intervalオプションを使用できるので、複数のアノテーションを簡単に組み合わせることができる)。この-intervalオプションを指定した時に出力されるVCFには、bedファイルの指定されたゲノム領域と交差するバリアントに"CUSTOM[name of experiment]"という注釈が付く。それから、結果をSnpSift filterでフィルタリングして、制御領域で高度に保存されたSNPを探す、という流れです。






A program for annotating and predicting the effects of single nucleotide polymorphisms, SnpEff: SNPs in the genome of Drosophila melanogaster strain w1118; iso-2; iso-3

Pablo Cingolani 1 , Adrian Platts, Le Lily Wang, Melissa Coon, Tung Nguyen, Luan Wang, Susan J Land, Xiangyi Lu, Douglas M Ruden

Fly (Austin). Apr-Jun 2012;6(2):80-92