Skip to content

Instantly share code, notes, and snippets.

@kojix2
Created December 3, 2025 07:33
Show Gist options
  • Select an option

  • Save kojix2/41bebc066adf9a2c48f5d82fd37b5ff7 to your computer and use it in GitHub Desktop.

Select an option

Save kojix2/41bebc066adf9a2c48f5d82fd37b5ff7 to your computer and use it in GitHub Desktop.

入力ファイルと出力ファイル

  • この Gist は、以下のリンクのオリジナルのテキストを Gemini 3.0 で日本語に翻訳した物です。
  • Input & output files

SnpEffへの入力として使用されるファイルは、標準フォーマットに準拠している必要があります。 ここでは、サポートされている入力データフォーマットについて説明します。

VCFファイル

以前にも述べたように、Variant Call Format (VCF) は入力ファイルとして推奨されるフォーマットです。 これは「1000ゲノムプロジェクト」で使用されているフォーマットであり、現在ゲノム変異(バリアント)のデファクトスタンダード(事実上の標準)と見なされています。 また、これはSnpEffで使用されるデフォルトのフォーマットでもあります。

簡単に言えば、VCFフォーマットは以下の列を持つタブ区切りのテキストファイルです:

  1. 染色体名 (Chromosome name)
  2. 位置 (Position)
  3. バリアントID (Variant's ID)
  4. リファレンスゲノム (Reference genome)
  5. 代替配列(つまりバリアント)(Alternative)
  6. クオリティスコア (Quality score)
  7. フィルター(バリアントが品質フィルターを通過したかどうか)(Filter)
  8. INFO:このバリアントに関する一般的な情報。SnpEffはこの列にアノテーション情報を追加します。

以下は、VCFファイルの数行の例です:

#CHROM POS     ID        REF    ALT     QUAL FILTER INFO
20     14370   rs6054257 G      A       29   PASS   NS=3;DP=14;AF=0.5;DB;H2
20     17330   .         T      A       3    q10    NS=3;DP=11;AF=0.017

最初の行はヘッダー情報であることに注意してください。ヘッダー行は '#' で始まります。

VCF出力

前章で述べたように、VCFはSnpEffのデフォルトの入力および出力フォーマットです。 VCFは他のツールやソフトウェアパッケージでも使用できる標準フォーマットであるため、入力および出力フォーマットとして使用することを強く推奨します。 これにより、ゲノムデータ処理パイプラインへの統合がはるかに容易になります。

SnpEffは、VCFファイルのINFOフィールドにアノテーション情報を追加します。 INFOフィールドはVCFファイルの8列目です。簡単な例については前のセクションを参照するか、詳細についてはVCF仕様をご覧ください。

以下は、SnpEffを使用してアノテーションを行う前と後のファイルの例です:

アノテーション前のVCFファイル

#CHROM POS     ID        REF    ALT     QUAL FILTER INFO
1	889455	.	G	A	100.0	PASS	AF=0.0005
1	897062	.	C	T	100.0	PASS	AF=0.0005

SnpEffを使用してアノテーションされた後のVCFファイル

#CHROM POS     ID        REF    ALT     QUAL FILTER INFO
1	889455	.	G	A	100.0	PASS	AF=0.0005;EFF=STOP_GAINED(HIGH|NONSENSE|Cag/Tag|Q236*|749|NOC2L||CODING|NM_015658|)
1	897062	.	C	T	100.0	PASS	AF=0.0005;EFF=STOP_GAINED(HIGH|NONSENSE|Cag/Tag|Q141*|642|KLHL17||CODING|NM_198317|)

ご覧のとおり、SnpEffはINFOフィールド(8列目)に 'EFF' タグを追加しました。

VCFヘッダー行

SnpEffは、追加されたフィールドを反映するためにVCFファイルのヘッダーを更新します。 これはVCF仕様で要求されています。 SnpEffはまた、ファイルをアノテーションするために使用されたコマンドラインオプションやSnpEffのバージョンも追加するため、正確に何が行われたかを追跡できます。

以下は、アノテーションされたファイルに追加されたヘッダー行の例です:

##SnpEffVersion="SnpEff 3.1m (build 2013-02-08)"
##SnpEffCmd="SnpEff  hg19 demo.1kg.vcf "
##INFO=<ID=EFF,Number=.,Type=String,Description="Predicted effects for this variant.Format: 'Effect ( Effect_Impact | Functional_Class | Codon_Change | Amino_Acid_change| Amino_Acid_length | Gene_Name | Gene_BioType | Coding | Transcript | Exon [ | ERRORS | WARNINGS ] )' \">

ANNフィールド (VCF出力ファイル)

機能的アノテーション情報は、ANN タグを使用してINFOフィールドに追加されます。

注: SnpEffは VCF annotation standard 'ANN' field (VCFアノテーション標準 'ANN' フィールド) を実装しています。

このフォーマット仕様は、最も広く使用されているバリアントアノテーションプログラム(SnpEff、ANNOVAR、ENSEMBLのVEP)の開発者によって作成され、以下を目的としています:

  • バリアントアノテーションのための共通フレームワークを提供する
  • パイプライン開発を容易にする
  • ベンチマークを促進する
  • バリアントアノテーションにおけるいくつかの既知の問題を改善する

明らかに、この 'ANN' フィールドは、古いSnpEffバージョンの古い 'EFF' フィールドとの互換性を損ないます。古い 'EFF' フィールドを使用するには、-formatEff コマンドラインオプションを使用できます。

アノテーション 'ANN' フィールドは以下のようになります(完全なアノテーション標準仕様はこちらにあります)。

ANN=T|missense_variant|MODERATE|CCT8L2|ENSG00000198445|transcript|ENST00000359963|protein_coding|1/1|c.1406G>A|p.Gly469Glu|1666/2034|1406/1674|469/557||,T|downstream_gene_variant|MODIFIER|FABP5P11|ENSG00000240122|transcript|ENST00000430910|processed_pseudogene||n.*397G>A|||||3944|

1つのバリアントは複数のアノテーションを持つことができ(通常は持っています)。 複数のアノテーションはカンマで区切られます。 前の例では、異なる遺伝子(CCT8L2とFABP5P11)に対応する2つのアノテーションがありました。

各アノテーションは、パイプ文字 "|" で区切られた複数のサブフィールドで構成されます(この例ではフィールド15と16は空です):

Annotation      : T|missense_variant|MODERATE|CCT8L2|ENSG00000198445|transcript|ENST00000359963|protein_coding|1/1|c.1406G>A|p.Gly469Glu|1666/2034|1406/1674|469/557|  |
SubField number : 1|       2        |    3   |  4   |       5       |    6     |      7        |      8       | 9 |    10   |    11     |   12    |   13    |   14  |15| 16

以下は、各サブフィールドの意味の説明です:

  1. Allele (または ALT): 複数のALTフィールドがある場合、どのALTを参照しているかを識別するのに役立ちます。 例:

    # CHROM  POS     ID  REF  ALT    QUAL  FILTER  INFO
    chr1    123456  .   C    A      .     .       ANN=A|...
    chr1    234567  .   A    G,T    .     .       ANN=G|... , T|...
    

    がんサンプルの場合、非標準リファレンス(例えば、ALTの1つがリファレンスである場合)を使用して体細胞(somatic)対 生殖細胞系列(germline)を比較するとき、フォーマットは ALT-REFERENCE となります。例:

    #CHROM  POS     ID  REF  ALT  QUAL  FILTER  INFO
    chr1    123456  .   A    C,G  .     .       ANN=G-C|...
    

    複合バリアント:アノテーションに影響を与える2つ以上のバリアント(例:MNPを構成する2つの連続したSNP、フレームを「修復」する2つの連続したフレームシフトバリアント)。 この場合、Alleleフィールドには、アノテーションに含まれる他のバリアントへの参照を含める必要があります:

    #CHROM  POS     ID  REF  ALT  QUAL  FILTER  INFO
    chr1    123456  .   A    T    .     .       ANN=T|...
    chr1    123457  .   C    G    .     .       ANN=C-chr1:123456_A>T|...
    
  2. Annotation (別名 effect): Sequence Ontology (SO) 用語を使用してアノテーションされます。複数のエフェクトは '&' を使用して連結できます。

    #CHROM  POS     ID  REF  ALT  QUAL  FILTER  INFO
    chr1    123456  .   C    A    .     .      ANN=A|intron_variant&nc_transcript_variant|...
    
  3. Putative_impact (推定インパクト): 推定されるインパクト(影響度)/ 有害性の単純な評価:{HIGH (高), MODERATE (中), LOW (低), MODIFIER (修飾)}

  4. Gene Name (遺伝子名): 一般的な遺伝子名 (HGNC)。オプション:バリアントが「遺伝子間 (intergenic)」にある場合は、最も近い遺伝子を使用します。

  5. Gene ID (遺伝子ID): 遺伝子ID

  6. Feature type (フィーチャータイプ): 次のフィールドにあるフィーチャーのタイプ(例:transcript, motif, miRNAなど)。Sequence Ontology (SO) 用語の使用が推奨されますが、'custom'(ユーザー定義)も許可されます。

    ANN=A|stop_gained|HIGH|||transcript|...
    

    組織特異的なフィーチャーには、セミコロンで区切られた細胞型/組織情報が含まれる場合があります。例:

    ANN=A|histone_binding_site|LOW|||H3K4me3:HeLa-S3|
    
  7. Feature ID (フィーチャーID): アノテーションに応じて、これは以下のようになります:トランスクリプトID(バージョン番号の使用が望ましい)、モチーフID、miRNA、ChipSeqピーク、ヒストンマークなど。 注:一部のフィーチャーにはIDがない場合があります(例:カスタムChip-Seq実験からのヒストンマークには一意のIDがない場合があります)。

  8. Transcript biotype (トランスクリプトバイオタイプ): 最低限、トランスクリプトが {"Coding" (コーディング), "Noncoding" (非コーディング)} であるかの記述が必要です。可能であれば、ENSEMBLバイオタイプを使用してください。

  9. Rank / total (ランク / 総数): エクソンまたはイントロンのランク / エクソンまたはイントロンの総数。

  10. HGVS.c: HGVS表記を使用したバリアント (DNAレベル)

  11. HGVS.p: バリアントがコーディングの場合、このフィールドはHGVS表記を使用してバリアントを記述します (タンパク質レベル)。トランスクリプトIDはすでに 'Feature ID' で言及されているため、ここでは省略される場合があります。

  12. cDNA_position / cDNA_len: cDNA内の位置およびトランスクリプトのcDNA長(1ベース)。

  13. CDS_position / CDS_len: コーディング塩基の位置および数(1ベース、開始コドンと停止コドンを含む)。

  14. Protein_position / Protein_len: アミノ酸の位置および数(1ベース、開始を含むが停止は含まない)。

  15. Distance to feature (フィーチャーへの距離): このフィールドのすべての項目はオプションであるため、フィールドが空になる可能性があります。

    • Up/Downstream: 最初の/最後のコドンまでの距離
    • Intergenic: 最も近い遺伝子までの距離
    • エクソン内の最も近いイントロン境界までの距離 (+/- 上流/下流)。同じ場合は正の数を使用します。
    • イントロン内の最も近いエクソン境界までの距離 (+/- 上流/下流)
    • MOTIFの最初の塩基までの距離
    • miRNAの最初の塩基までの距離
    • splice_site または splice_region 内のエクソン-イントロン境界までの距離
    • ChipSeqピーク: サミット(またはピーク中心)までの距離
    • ヒストンマーク / ヒストン状態: サミット(またはピーク中心)までの距離
  16. Errors, Warnings or Information messages (エラー、警告、または情報メッセージ): アノテーションの精度に影響を与える可能性のあるエラー、警告、または有益なメッセージを追加します。詳細はこちらを参照

HGVSと機能的アノテーション間の整合性:

場合によっては、「アノテーション」とHGVSの間で報告に不整合が生じることがあります。 これは、VCFが左端(leftmost)の座標にアラインメントすることを推奨しているのに対し、HGVSは「最も3'側(3-prime)の座標」にアラインメントすることを推奨しているという事実に起因します。 例えば、エキソンの端にあるインデル(挿入欠失)は、VCFのアラインメント推奨に従うと 'intronic'(イントロン)アノテーションになりますが、HGVSの推奨(可能な限り最も3'側のアラインメントを使用)を使用してアラインメントすると 'stop_gained'(停止コドン獲得)になる可能性があります。 そのため、'annotation' サブフィールドは 'intron' を報告し、HGVSサブフィールドは 'stop_gained' を報告します。 これは明らかに矛盾しており、回避する必要があります。 HGVS表記と整合性のあるアノテーションを報告するには、バリアントを各トランスクリプトの鎖(ストランド)に従って再アラインメントする必要があります(つまり、トランスクリプトの最も3'側の座標に従ってバリアントをアラインメントします)。 その後、アノテーションが計算されるため、報告されるアノテーションはHGVS表記と整合性がとれます。 アノテーションソフトウェアには、この動作をオーバーライドするコマンドラインオプション(例:-no_shift_hgvs)が必要です。

EFFフィールド (VCF出力ファイル)

効果(Effects)情報は、'EFF' タグを使用してINFOフィールドに追加されます。

!!! warning このセクションは、-formatEff コマンドラインオプションを使用して有効にできる、'EFF' タグを使用した廃止されたアノテーションフォーマットに関するものです。 バージョン4.1以降、SnpEffはデフォルトで 'ANN' フィールドを使用します。

注:

  • バージョン4.0以降、デフォルトの出力では 'Effect' 名に Sequence Ontology (SO) を使用します。-classic コマンドラインオプションを使用することで、「古い」スタイルのエフェクト名を出力できます。
  • 複数のエフェクトが利用可能な場合、それらは最初に "Effect_Impact"、次に "Effect"、最後に "マーカーのゲノム座標"(例:影響を受けるトランスクリプトのゲノム座標)でソートされます。
  • バージョン4.0から、SnpEffはデフォルトで 'AA' サブフィールドにHGVS表記を出力します。

カンマで区切られた複数のエフェクトが存在する可能性があります。各エフェクトのフォーマットは以下の通りです:

EFF= Effect ( Effect_Impact | Functional_Class | Codon_Change | Amino_Acid_Change| Amino_Acid_Length | Gene_Name | Transcript_BioType | Gene_Coding | Transcript_ID | Exon_Rank  | Genotype_Number [ | ERRORS | WARNINGS ] )
EFFサブフィールド 意味
Effect このバリアントのエフェクト(効果)。詳細についてはこちらを参照してください。
Effect impact エフェクトのインパクト(影響度) {High, Moderate, Low, Modifier}。詳細についてはこちらを参照してください。
Functional Class 機能クラス {NONE, SILENT, MISSENSE, NONSENSE}。
Codon_Change / Distance コドン変化: 古いコドン/新しいコドン、またはトランスクリプトまでの距離(上流/下流の場合)
Amino_Acid_Change アミノ酸変化: 古いAA AA位置/新しいAA (例: 'E30K')
Amino_Acid_Length アミノ酸単位のタンパク質の長さ(実際には、転写長を3で割ったもの)。
Gene_Name 遺伝子名
Transcript_BioType トランスクリプトのバイオタイプ(利用可能な場合)。
Gene_Coding `[CODING
Transcript_ID トランスクリプトID(通常はENSEMBL ID)
Exon/Intron Rank エクソンランクまたはイントロンランク(例:最初のエクソンの場合は '1'、2番目のエクソンの場合は '2' など)
Genotype_Number このエフェクトに対応する遺伝子型番号(例:エフェクトが2番目のALTに対応する場合は '2')
Warnings / Errors 警告またはエラー(空の場合は表示されません)。

VCF行ごとの複数アノテーション

通常、各 ANN (または EFF) フィールドには複数のアノテーションが報告されます。

これにはいくつかの理由があります:

  • バリアントが複数の遺伝子に影響を与える可能性があるため。例:あるバリアントがある遺伝子の下流(DOWNSTREAM)にあり、別の遺伝子の上流(UPSTREAM)にある場合など。

  • 複雑な生物では、遺伝子は通常複数のトランスクリプトを持っています。そのため、SnpEffは各トランスクリプトに対するバリアントのエフェクトを報告します。 例:

      #CHROM  POS       ID   REF  ALT    QUAL  FILTER  INFO
      1       889455    .    G    A      .     .       .
    

    この場合、SnpEffは各遺伝子および各トランスクリプトに対する各バリアントのエフェクトを報告します(読みやすくするために出力を編集しています):

      #CHROM  POS     ID   REF  ALT  QUAL FILTER   INFO
      1       889455  .    G    A    .    .        ANN=A|stop_gained|HIGH|NOC2L|ENSG00000188976|transcript|ENST00000327044|protein_coding|7/19|c.706C>T|p.Gln236*|756/2790|706/2250|236/749||
                                                      ,A|downstream_gene_variant|MODIFIER|NOC2L|ENSG00000188976|transcript|ENST00000487214|processed_transcript||n.*865C>T|||||351|
                                                      ,A|downstream_gene_variant|MODIFIER|NOC2L|ENSG00000188976|transcript|ENST00000469563|retained_intron||n.*878C>T|||||4171|
                                                      ,A|non_coding_exon_variant|MODIFIER|NOC2L|ENSG00000188976|transcript|ENST00000477976|retained_intron|5/17|n.2153C>T||||||;LOF=(NOC2L|ENSG00000188976|6|0.17);NMD=(NOC2L|ENSG00000188976|6|0.17)
    
    • VCFの1行に複数のバリアントが含まれる場合があります。 例:リファレンスゲノムが 'G' で、サンプルが 'A' または 'T'(非二対立遺伝子バリアント)の場合、これは複数の代替バリアントを持つ1つのVCF行として報告されます(2つのALTがあることに注意してください):

        #CHROM  POS       ID   REF  ALT      QUAL  FILTER  INFO
        1       889455    .    G    A,T      .     .       .
      

      この場合、SnpEffは各ALTについて、各遺伝子および各トランスクリプトに対するエフェクトを報告します。 ENST00000327044には stop_gained バリアント (ALT = 'A') と missense_variant (ALT = 'T') があることに注目してください。

        #CHROM  POS      ID    REF  ALT    QUAL FILTER    INFO
        1       889455   .     G    A,T    .    .         ANN=A|stop_gained|HIGH|NOC2L|ENSG00000188976|transcript|ENST00000327044|protein_coding|7/19|c.706C>T|p.Gln236*|756/2790|706/2250|236/749||
                                                             ,T|missense_variant|MODERATE|NOC2L|ENSG00000188976|transcript|ENST00000327044|protein_coding|7/19|c.706C>A|p.Gln236Lys|756/2790|706/2250|236/749||
                                                             ,A|downstream_gene_variant|MODIFIER|NOC2L|ENSG00000188976|transcript|ENST00000487214|processed_transcript||n.*865C>T|||||351|
                                                             ,T|downstream_gene_variant|MODIFIER|NOC2L|ENSG00000188976|transcript|ENST00000487214|processed_transcript||n.*865C>A|||||351|
                                                             ,A|downstream_gene_variant|MODIFIER|NOC2L|ENSG00000188976|transcript|ENST00000469563|retained_intron||n.*878C>T|||||4171|
                                                             ,T|downstream_gene_variant|MODIFIER|NOC2L|ENSG00000188976|transcript|ENST00000469563|retained_intron||n.*878C>A|||||4171|
                                                             ,A|non_coding_exon_variant|MODIFIER|NOC2L|ENSG00000188976|transcript|ENST00000477976|retained_intron|5/17|n.2153C>T||||||
                                                             ,T|non_coding_exon_variant|MODIFIER|NOC2L|ENSG00000188976|transcript|ENST00000477976|retained_intron|5/17|n.2153C>A||||||;LOF=(NOC2L|ENSG00000188976|6|0.17);NMD=(NOC2L|ENSG00000188976|6|0.
      

エフェクトのソート順。複数のエフェクトが報告される場合、SnpEffは以下の方法でエフェクトをソートします:

  • 推定インパクト (Putative impact):より高い推定インパクトを持つエフェクトが最初に来ます。
  • エフェクトタイプ (Effect type):より有害であると想定されるエフェクトが最初に来ます。
  • Canonical(標準)トランスクリプトが非Canonicalよりも先。
  • マーカーのゲノム座標(例:先に始まる遺伝子が先)。

バリアントアノテーションの詳細

SnpEffによって Effect および Effect_Impact サブフィールドで予測されるバリアントの機能的アノテーションの詳細説明。

注:

  • Effect (Sequence Ontology) Sequence ontology (SO) を使用することで、配列の変化と影響を評価するために使用される用語を標準化できます。 これにより、すべてのバリアントアノテーションプログラム間で共通の言語が可能になり、統一された用語を使用してコミュニケーションが容易になります。 バージョン4.0以降、VCF出力はデフォルトでSO用語を使用します。

  • Effect (Classic) これらはSnpEffで使用される「クラシック」なエフェクト名であり、-classic コマンドラインオプションを使用してアクセスできます。

  • Effect impact エフェクトは「インパクト(影響度)」によって分類されます:{High (高), Moderate (中), Low (低), Modifier (修飾)}。これらは、ユーザーがより重要なバリアントを見つけるのを助けるための事前定義されたカテゴリです。

    !!! warning インパクトカテゴリは注意して使用する必要があります。これらはフィルタリングプロセスを支援し、簡素化するためだけに作成されました。 当然のことながら、「高インパクト」または「低インパクト」のバリアントが、関心のある表現型を生み出すものであるかどうかを予測する方法はありません。

以下は、エフェクトと簡単な説明のリストです:

Effect
Seq. Ontology
Effect
Classic
注釈 & 例 Impact
coding_sequence_variant CDS バリアントがCDS(コーディング領域)にヒットする。 MODIFIER
chromosome CHROMOSOME_LARGE_DELETION 染色体の大部分(1%以上)が欠失した。 HIGH
duplication CHROMOSOME_LARGE_DUPLICATION 大きな染色体セグメントの重複(1%または1,000,000塩基以上)。 HIGH
inversion CHROMOSOME_LARGE_INVERSION 大きな染色体セグメントの逆位(1%または1,000,000塩基以上)。 HIGH
coding_sequence_variant CODON_CHANGE 1つまたは複数のコドンが変化する。
例:サイズが3の倍数のMNP
LOW
inframe_insertion CODON_INSERTION 1つまたは複数のコドンが挿入される。
例:コドン境界に3の倍数の挿入
MODERATE
disruptive_inframe_insertion CODON_CHANGE_PLUS CODON_INSERTION 1つのコドンが変化し、1つまたは複数のコドンが挿入される。
例:コドン境界ではない場所にサイズが3の倍数の挿入
MODERATE
inframe_deletion CODON_DELETION 1つまたは複数のコドンが欠失する。
例:コドン境界での3の倍数の欠失
MODERATE
disruptive_inframe_deletion CODON_CHANGE_PLUS CODON_DELETION 1つのコドンが変化し、1つまたは複数のコドンが欠失する。
例:コドン境界ではない場所でのサイズが3の倍数の欠失
MODERATE
downstream_gene_variant DOWNSTREAM 遺伝子の下流(デフォルト長:5K塩基)。 MODIFIER
exon_variant EXON バリアントがエクソン(非コーディングトランスクリプトの)または保持されたイントロンにヒットする。 MODIFIER
exon_loss_variant EXON_DELETED 欠失によりエクソン全体が除去される。 HIGH
exon_loss_variant EXON_DELETED_PARTIAL エクソンの一部に影響を与える欠失。 HIGH
duplication EXON_DUPLICATION エクソンの重複。 HIGH
duplication EXON_DUPLICATION_PARTIAL エクソンの一部に影響を与える重複。 HIGH
inversion EXON_INVERSION エクソンの逆位。 HIGH
inversion EXON_INVERSION_PARTIAL エクソンの一部に影響を与える逆位。 HIGH
frameshift_variant FRAME_SHIFT 挿入または欠失によりフレームシフトが発生する。
例:インデルサイズが3の倍数ではない
HIGH
gene_variant GENE バリアントが遺伝子にヒットする。 MODIFIER
feature_ablation GENE_DELETED 遺伝子の欠失。 HIGH
duplication GENE_DUPLICATION 遺伝子の重複。 MODIFIER
gene_fusion GENE_FUSION 2つの遺伝子の融合。 HIGH
gene_fusion GENE_FUSION_HALF 1つの遺伝子と遺伝子間領域の融合。 HIGH
bidirectional_gene_fusion GENE_FUSION_REVERSE 反対方向の2つの遺伝子の融合。 HIGH
rearranged_at_DNA_level GENE_REARRANGEMENT 1つ以上の遺伝子に影響を与える再編成。 HIGH
intergenic_region INTERGENIC バリアントが遺伝子間領域にある。 MODIFIER
conserved_intergenic_variant INTERGENIC_CONSERVED バリアントが高保存遺伝子間領域にある。 MODIFIER
intragenic_variant INTRAGENIC バリアントが遺伝子にヒットするが、遺伝子内のトランスクリプトにはヒットしない。 MODIFIER
intron_variant INTRON バリアントがイントロンにヒットする。厳密には、トランスクリプト内のどのエクソンにもヒットしない。 MODIFIER
conserved_intron_variant INTRON_CONSERVED バリアントが高保存イントロン領域にある。 MODIFIER
miRNA MICRO_RNA バリアントがmiRNAに影響を与える。 MODIFIER
missense_variant NON_SYNONYMOUS_CODING バリアントにより、異なるアミノ酸を生成するコドンになる。
例:Tgg/Cgg, W/R
MODERATE
initiator_codon_variant NON_SYNONYMOUS_START バリアントにより、開始コドンが別の開始コドンに変異する(新しいコドンは異なるAAを生成する)。
例:Atg/Ctg, M/L (ATGとCTGはSTARTコドンになり得る)
LOW
stop_retained_variant NON_SYNONYMOUS_STOP バリアントにより、停止コドンが別の停止コドンに変異する(新しいコドンは異なるAAを生成する)。
例:Atg/Ctg, M/L (ATGとCTGはSTARTコドンになり得る) [訳注: 原文の説明は開始コドンのコピペミスの可能性がありますが、Stop Retainedは通常、停止コドンが別の停止コドンに変わることを指します]
LOW
protein_protein_contact PROTEIN_PROTEIN_INTERACTION_LOCUS タンパク質間相互作用部位。 HIGH
structural_interaction_variant PROTEIN_STRUCTURAL_INTERACTION_LOCUS タンパク質内部の相互作用部位(例:構造的コンフォメーションを助ける可能性のある、同じタンパク質内で接触している2つのAA)。 HIGH
rare_amino_acid_variant RARE_AMINO_ACID バリアントが希少アミノ酸にヒットするため、タンパク質の機能喪失を引き起こす可能性が高い。 HIGH
splice_acceptor_variant SPLICE_SITE_ACCEPTOR バリアントがスプライスアクセプターサイト(最初のエクソンを除く、エクソン開始の2塩基前と定義)にヒットする。 HIGH
splice_donor_variant SPLICE_SITE_DONOR バリアントがスプライスドナーサイト(最後のエクソンを除く、コーディングエクソン終了の2塩基後と定義)にヒットする。 HIGH
splice_region_variant SPLICE_SITE_REGION スプライスサイト領域内(エクソンの1-3塩基以内、またはイントロンの3-8塩基以内)で変化が発生した配列バリアント。 LOW
splice_region_variant SPLICE_SITE_BRANCH イントロンに位置する推定(ラリアット)分岐点に影響を与えるバリアント。 LOW
splice_region_variant SPLICE_SITE_BRANCH_U12 イントロンに位置する、U12スプライシング機構からの推定(ラリアット)分岐点に影響を与えるバリアント。 MODERATE
stop_lost STOP_LOST バリアントにより、停止コドンが非停止コドンに変異する。
例:Tga/Cga, */R
HIGH
5_prime_UTR_premature_
start_codon_gain_variant
START_GAINED 5'UTR領域のバリアントにより、STARTコドンになり得る3塩基配列が生成される。 LOW
start_lost START_LOST バリアントにより、開始コドンが非開始コドンに変異する。
例:aTg/aGg, M/R
HIGH
stop_gained STOP_GAINED バリアントにより、STOPコドンが生じる。
例:Cag/Tag, Q/*
HIGH
synonymous_variant SYNONYMOUS_CODING バリアントにより、同じアミノ酸を生成するコドンになる。
例:Ttg/Ctg, L/L
LOW
start_retained SYNONYMOUS_START バリアントにより、開始コドンが別の開始コドンに変異する。
例:Ttg/Ctg, L/L (TTGとCTGはSTARTコドンになり得る)
LOW
stop_retained_variant SYNONYMOUS_STOP バリアントにより、停止コドンが別の停止コドンに変異する。
例:taA/taG, */*
LOW
transcript_variant TRANSCRIPT バリアントがトランスクリプトにヒットする。 MODIFIER
feature_ablation TRANSCRIPT_DELETED トランスクリプトの欠失。 HIGH
regulatory_region_variant REGULATION バリアントが既知の制御フィーチャー(非コーディング)にヒットする。 MODIFIER
upstream_gene_variant UPSTREAM 遺伝子の上流(デフォルト長:5K塩基)。 MODIFIER
3_prime_UTR_variant UTR_3_PRIME バリアントが3'UTR領域にヒットする。 MODIFIER
3_prime_UTR_truncation + exon_loss UTR_3_DELETED バリアントにより、トランスクリプトの3'UTRにあるエクソンが欠失する。 MODERATE
5_prime_UTR_variant UTR_5_PRIME バリアントが5'UTR領域にヒットする。 MODIFIER
5_prime_UTR_truncation + exon_loss_variant UTR_5_DELETED バリアントにより、トランスクリプトの5'UTRにあるエクソンが欠失する。 MODERATE
sequence_feature + exon_loss_variant NEXT_PROT 'NextProt' ベースのアノテーション。詳細は 'feature type' サブフィールド (ANN)、またはエフェクト詳細 (EFF) に記載されています。 MODERATE

希少アミノ酸アノテーションの詳細

これらは、生物において非常に稀にしか発生しないアミノ酸です。例えば、ヒトは20種類のアミノ酸を使用するとされていますが、1つの希少アミノ酸も存在します。セレノシステイン(1文字コード 'U')は、全ゲノム中で約100回出現します。 このアミノ酸は非常に稀であるため、通常コドン翻訳テーブルには表示されません。これはUGAとしてエンコードされますが、UGAは通常STOPコドンを意味します。二次RNA構造がこの特別な翻訳を可能にすると考えられています。

これらの部位のバリアントは、タンパク質の機能喪失を引き起こす可能性が高いです。例えば、セレノシステインの場合、セレン分子の喪失は機能喪失を引き起こす可能性が高いです。簡単に言えば、そこに非標準的なアミノ酸を配置するために多大な労力が払われているとすれば、それは重要であるに違いないという仮定です。RARE_AMINO_ACIDマークは、これらのケースで特別な注意を払うべきであることを示すために使用されます。

!!! warning バリアントがRARE_AMINO_ACIDマークにヒットする場合、'old_AA/new_AA' フィールドが正しくない可能性があります。これは、アミノ酸がコドンテーブルを使用して予測できないために発生する可能性があります。

タンパク質相互作用アノテーションの詳細

タンパク質相互作用は、PDB または AlphaFold から計算されます。相互作用には主に2つのタイプがあります:

  • protein_protein_contact: これらは「タンパク質間」相互作用部位です。これらはPDBの共結晶構造から、互いに3オングストローム以内の原子を持つ異なるタンパク質のアミノ酸ペアを推測することによって計算されます。
  • structural_interaction_variant: これらは「タンパク質内」相互作用部位であり、タンパク質構造を支えている可能性があります。 これらは単一タンパク質のPDBエントリから、以下の条件を満たすアミノ酸を選択することによって計算されます: a) 原子が互いに3オングストローム以内であること、かつ b) AA配列上で遠く離れていること(20AA以上の距離)。 距離が非常に近いということは、それらが「相互作用」しており、タンパク質構造にとって重要であるに違いないという仮定に基づいています。

インパクト予測

SnpEffは、バリアントを迅速に分類し優先順位付けしやすくするために、推定されるバリアントのインパクト(影響度)を報告します。

!!! warning インパクトカテゴリは注意して使用する必要があります。これらはフィルタリングプロセスを支援し、簡素化するためだけに作成されました。 当然のことながら、HIGH(高)インパクトまたは LOW(低)インパクトのバリアントが、関心のある表現型を生み出すものであるかどうかを予測する方法はありません。

Impact 意味
HIGH バリアントはタンパク質に高い(破壊的な)影響を与えると想定され、おそらくタンパク質のトランケーション(短縮)、機能喪失、またはナンセンス変異依存分解(NMD)を引き起こします。 stop_gained, frameshift_variant
MODERATE タンパク質の有効性を変化させる可能性がある非破壊的なバリアント。 missense_variant, inframe_deletion
LOW ほとんど無害であるか、タンパク質の挙動を変える可能性が低いと想定されます。 synonymous_variant
MODIFIER 通常、非コーディングバリアントや非コーディング遺伝子に影響を与えるバリアントであり、予測が困難であるか、影響の証拠がありません。 exon_variant, downstream_gene_variant

機能クラス

バリアントがタンパク質コーディングトランスクリプト内の単一ヌクレオチド(SNV)である場合、SnpEffは「機能クラス (Functional class)」を推測します。

機能クラスは以下のように推測されます:

Functional Class 意味
SILENT バリアント変化後もコドンは同じままです
MISSENSE バリアント変化後にコドンが変化します
NONSENSE コドンがSTOPコドンに変化しました

機能喪失(LOF)およびナンセンス変異依存分解(NMD)の予測

機能喪失('LOF': Loss of function)およびナンセンス変異依存分解('NMD': nonsense-mediated decay)の予測。 古いバージョンでは、この予測はコマンドラインオプション -lof を使用して有効化されていましたが、バージョン4.0以降はデフォルトで有効になっています。 これらのバリアントがどのように機能するかについての詳細は、こちらのスライドにあります。

!!! info バージョン4.0以降、このオプションはデフォルトで有効になっています。

一連のエフェクトが「機能喪失」および「ナンセンス変異依存分解」エフェクトを作成できるかどうかを分析します。

言うまでもなく、これは「推定エフェクト」のグループの分析に基づく予測です。「真の」LOFを推測するには、適切なウェットラボでの検証が必要です。

参考文献: 以下の論文で使用されているLOFの定義を使用しました。[疑わしいリンクは削除されました]

!!! info 論文より:

*我々は、影響を受けるトランスクリプトの完全な機能喪失と相関すると予想されるLoFバリアントの定義を採用しました:停止コドンを導入する(ナンセンス)またはスプライスサイトを破壊する単一ヌクレオチドバリアント(SNV)、トランスクリプトのリーディングフレームを破壊すると予測される挿入/欠失(インデル)バリアント、または影響を受けるトランスクリプトの最初のエクソンまたはタンパク質コーディング配列の50%以上を除去する大きな欠失。*

*ナンセンスSNVとフレームシフトインデルの両方が、影響を受ける遺伝子の3'末端に向かって濃縮されており、これはコーディング配列の末端に近いトランケーションに対する耐性が高いことと一致しています。したがって、コーディング領域の最後の5%で特定された推定LoFバリアントは、我々の高信頼性セットから体系的に除去されました。*

LOF/NMD計算に使用されるその他のパラメータ:

  • ナンセンス変異依存分解が発生すると想定される、最後のエクソン-エクソン接合部より前の塩基数:50
  • タンパク質の最後の5%でタンパク質コーディングの変化があっても、タンパク質は依然として機能的である可能性があると想定されます。
  • タンパク質の最初の5%でタンパク質コーディングの変化があっても、次のように想定されます:「...一部の破壊されたトランスクリプトは、代替開始コドンでの転写再開によって救済されることを示唆しています。」
  • 影響を受けるトランスクリプトの最初のエクソンまたはタンパク質コーディング配列の50%以上を除去する大きな欠失

使用例:

# 注: バージョン4.0以降、'-lof' コマンドラインオプションは不要です
java -Xmx8g -jar snpEff.jar -v \
    -lof \
    GRCh37.75 \
    test.chr22.vcf > test.chr22.ann.vcf

SnpEffはINFOフィールド(VCFフォーマットの8列目)に 'LOF' および 'NMD' タグを追加します。LOFおよびNMDタグのフォーマットは以下の通りです:

Gene | ID | num_transcripts | percent_affected

ここで:

Field Description
Gene 遺伝子名
ID 遺伝子ID(通常はENSEMBL)
Num_transcripts この遺伝子のトランスクリプト数
percent_affected このバリアントの影響を受けるトランスクリプトの割合

例:以下のエフェクトがある場合

EFF=stop_gained(LOW|NONSENSE|Gga/Tga|p.Gly163*/c.487G>T|574|GAB4|protein_coding|CODING|ENST00000400588|3|1),...

対応するLOFおよびNMDタグは以下のようになります

LOF=(GAB4|ENSG00000215568|4|0.25);NMD=(GAB4|ENSG00000215568|4|0.25)

LOFタグの意味は以下の通りです:

Field Description
Gene GAB4
ID ENSG00000215568
Num_transcripts この遺伝子には4つのトランスクリプトがあります
percent_affected トランスクリプトの25%がこのバリアントの影響を受けています。

エラーと警告

前のセクションで述べたように、EFFフィールドの最後のサブフィールドにはエラーまたは警告が表示されます(ある場合)。 以下はエラーと警告の説明です:

Error 意味と可能な解決策
ERROR_CHROMOSOME_NOT_FOUND 染色体がリファレンスデータベースに存在しません。通常、入力ファイルの染色体名とリファレンスで使用されている染色体名の不一致を示します。詳細については、このFAQを参照してください。
ERROR_OUT_OF_CHROMOSOME_RANGE これは、位置が染色体の長さよりも大きいことを意味します。おそらく、データがこのリファレンスゲノムのものではないことを示しています。
ERROR_OUT_OF_EXON エキソン情報が座標と一致していません。データベースの問題(またはバグ?)を示しています。
ERROR_MISSING_CDS_SEQUENCE トランスクリプトにCDS情報がありません。データベースの問題(またはバグ?)を示しています。
Warning 意味と可能な解決策
WARNING_REF_DOES_NOT_MATCH_GENOME これは、REF フィールドがリファレンスゲノムと一致しないことを意味します。
警告! この警告は、おそらくデータに重大な問題があることを示しています!
これは、データがSnpEffのデータベース作成に使用されたものとは異なるリファレンスゲノムにアラインメントされた場合に発生します。これらの警告が多い場合、データが一致していないことを強く示唆しており、すべてのアノテーションはゴミになります(間違ったデータベースを使用しているため)。
解決策: アノテーションには正しいデータベースを使用してください!
パフォーマンスとメモリの最適化のため、SnpEffはエクソン上のリファレンス配列のみをチェックします。
WARNING_SEQUENCE_NOT_AVAILABLE 何らかの理由でエクソン配列が利用できないため、エフェクトを計算できません。
WARNING_TRANSCRIPT_INCOMPLETE 長さが3の倍数ではないタンパク質コーディングトランスクリプト。これは、1つ以上のアミノ酸の情報が欠落していることを意味します。
これは通常、ゲノム情報の誤り(例:UCSCやENSEMBLによって提供されるゲノムデータベース)によるものです。ゲノム情報データベースは常に改善され、より正確になっていますが、一部のエラーは依然として残っています。
WARNING_TRANSCRIPT_MULTIPLE_STOP_CODONS タンパク質コーディングトランスクリプトのコーディング配列(CDS)の中間に2つ以上のSTOPコドンがあります。これは発生するはずがなく、通常、このトランスクリプトのゲノム情報にエラーがある可能性があります。
これは通常、ゲノム情報の誤り(例:UCSCやENSEMBLによって提供されるゲノムデータベース)によるものです。ゲノム情報データベースは常に改善され、より正確になっていますが、一部のエラーは依然として残っています。
WARNING_TRANSCRIPT_NO_START_CODON タンパク質コーディングトランスクリプトに適切なSTARTコドンがありません。実際のトランスクリプトにSTARTコドンがないことは稀であるため、これはおそらくこのトランスクリプトのゲノム情報のエラーを示しています(例:UCSCやENSEMBLによって提供されるゲノムデータベース)。
ゲノム情報データベースは常に改善され、より正確になっていますが、一部のエラーは依然として残っています。
Info 意味
INFO_REALIGN_3_PRIME バリアントはトランスクリプト内の最も3'側の位置に再アラインメントされました。これは通常、常に最も3'側のアノテーションを報告するというHGVS仕様に準拠するために行われます。
INFO_COMPOUND_ANNOTATION このエフェクトは、複数のバリアント(例:MNPを構成する2つの連続したSNP、またはフレームを補正する2つの連続したフレームシフトバリアント)を組み合わせた結果です。
INFO_NON_REFERENCE_ANNOTATION このアノテーションを計算するために代替リファレンス配列が使用されました(例:体細胞 vs 生殖細胞系列を比較するがんサンプル)。

BEDファイル

ChIP-Seqなどのエンリッチメント実験では、結果は通常「ピーク」と呼ばれるエンリッチメント領域となります。 「ピークコーラー」(エンリッチメントを検出するアルゴリズム)が、結果をBEDファイルに書き出すことは一般的です。 SnpEffは、エンリッチメント実験の解釈を容易にするためにBEDファイルをアノテーションできます。

!!! warning BEDファイルフォーマットを使用する場合、5列目以降は無視され、出力ファイルでは失われます。

SnpEffは、エンリッチメント実験の解釈を容易にするためにBEDファイルをアノテーションできます。 アノテーションはBEDファイルの4列目に追加されます。

例:

$ java -Xmx8g -jar snpEff.jar -i bed BDGP5.69 chipSeq_peaks.bed

# SnpEff version 3.3 (build 2013-05-15), by Pablo Cingolani
# Command line: SnpEff  -i bed BDGP5.69 /home/pcingola/fly_pvuseq/chipSeq/Sample_w1118_IP_w_5hmC/w1118_IP_w_5hmC_peaks.bed
# Chromo  Start     End       Name;Effect|Gene|BioType        Score
2L        189463    190154    MACS_peak_1;Exon|exon_6_12_RETAINED|FBtr0078122|protein_coding|spen|protein_coding;Exon|exon_5_10_RETAINED|FBtr0078123|protein_coding|spen|protein_coding;Exon|exon_7_13_RETAINED|FBtr0306341|protein_coding|spen|protein_coding;Exon|exon_6_11_RETAINED|FBtr0078121|protein_coding|spen|protein_coding 245.41
2L        195607    196120    MACS_peak_2;Exon|exon_6_12_RETAINED|FBtr0078122|protein_coding|spen|protein_coding;Exon|exon_5_10_RETAINED|FBtr0078123|protein_coding|spen|protein_coding;Exon|exon_7_13_RETAINED|FBtr0306341|protein_coding|spen|protein_coding;Exon|exon_6_11_RETAINED|FBtr0078121|protein_coding|spen|protein_coding 51.22
2L        527253    527972    MACS_peak_3;Intron|intron_2_RETAINED-RETAINED|FBtr0078063|protein_coding|ush|protein_coding     55.97
2L        711439    711764    MACS_peak_4;Intron|intron_1_RETAINED-RETAINED|FBtr0078045|protein_coding|ds|protein_coding      61.16
2L        1365255   1365556   MACS_peak_5;Upstream|FBtr0077927|protein_coding|CG14346|protein_coding;Upstream|FBtr0077926|protein_coding|CG14346|protein_coding;Intergenic|NLaz...CG14346;Upstream|FBtr0077942|protein_coding|NLaz|protein_coding     62.78
2L        1970199   1970405   MACS_peak_6;Upstream|FBtr0077813|protein_coding|Der-1|protein_coding;Intergenic|tRNA:CR31942...Der-1;Downstream|FBtr0077812|tRNA|tRNA:CR31942|tRNA      110.34
2L        3345637   3346152   MACS_peak_7;Intron|intron_2_ALTTENATIVE_3SS-ALTTENATIVE_3SS|FBtr0089979|protein_coding|E23|protein_coding;Intron|intron_3_ALTTENATIVE_3SS-ALTTENATIVE_3SS|FBtr0089981|protein_coding|E23|protein_coding 65.49
2L        4154734   4155027   MACS_peak_8;Intergenic|CG2955...Or24a;Downstream|FBtr0077468|protein_coding|CG2955|protein_coding       76.92
2L        4643232   4643531   MACS_peak_9;Downstream|FBtr0110769|protein_coding|BG642163|protein_coding;Exon|exon_2_2_RETAINED|FBtr0300354|protein_coding|CG15635|protein_coding      76.92

ピークが複数のトランスクリプト、あるいは複数の遺伝子と交差する場合、各アノテーションはセミコロンで区切られます。 したがって、先ほどの結果をより詳細に見ると、最初の行は以下のようになります(読みやすくするためにフォーマットを編集しています):

2L  189463  190154  MACS_peak_1;Exon|exon_6_12_RETAINED|FBtr0078122|protein_coding|spen|protein_coding
                                ;Exon|exon_5_10_RETAINED|FBtr0078123|protein_coding|spen|protein_coding
                                ;Exon|exon_7_13_RETAINED|FBtr0306341|protein_coding|spen|protein_coding
                                ;Exon|exon_6_11_RETAINED|FBtr0078121|protein_coding|spen|protein_coding

このピークは、遺伝子 'spen' 内の4つのトランスクリプト (FBtr0078122, FBtr0078123, FBtr0306341, FBtr0078121) にヒットしています。

エクソン命名規則

エクソン識別子のフォーマットは exon_Rank_Total_Type です。ここで:

  • rank はトランスクリプト内のエクソンランク(トランスクリプト内の位置)
  • total はそのトランスクリプト内のエクソンの総数
  • type はエクソンのスプライスタイプです。

例えば、exon_5_10_RETAINED は、10エクソンのトランスクリプト内の5番目のエクソンとなります。 このエクソンは "RETAINED" タイプであり、スプライシングで除去されていないことを意味します。

エクソンはスプライシングによって以下のように分類されます:

  • NONE : スプライスされない
  • RETAINED : すべてのトランスクリプトがこのエクソンを持つ
  • SKIPPED : 一部のトランスクリプトはこれをスキップする
  • ALTTENATIVE_3SS : 一部のトランスクリプトは代替3'エクソン開始を持つ
  • ALTTENATIVE_5SS : 一部のトランスクリプトは代替5'エクソン終了を持つ
  • MUTUALLY_EXCLUSIVE : 相互排他的(他のエクソンに関して)
  • ALTTENATIVE_PROMOMOTER : 一部のトランスクリプトで最初のエクソンが異なる
  • ALTTENATIVE_POLY_A : 最後のエクソン

エクソンスプライスタイプの詳細については、このWikipediaのエントリを参照してください。

イントロン命名規則

エクソンと同様に、イントロンは intron_Rank_ExonTypeBefore-ExonTypeAfter と命名されます。ここで:

  • Rank : トランスクリプト内のこのイントロンのランク番号
  • ExonTypeBefore : このイントロンの前のエクソンのスプライシングタイプ(詳細はエクソン命名規則を参照)。
  • ExonTypeAfter : このイントロンの後のエクソンのスプライシングタイプ(詳細はエクソン命名規則を参照)。

例えば、intron_9_SKIPPED-RETAINED はトランスクリプトの9番目のイントロンとなります。 このイントロンの前には SKIPPED エクソンがあり、後には RETAINED エクソンが続きます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment