GATKやsamtoolsなどを用いて検出したバリアントについて,どの遺伝子に影響があるのかを調べるためには,アノテーションをつける必要がある。snpEffを用いると,アノテーションとバリアントの効果を予測することができる。snpEffの使いかたについて,簡単に備忘録としてまとめる。
snpEffについて詳しい情報は以下を参照。
また,日本語だと,以下の上坂一馬さん(id:kazumaxneo)のサイトが詳しい。(ただし,カスタムアノテーションについては,configファイルを書き換える方法もあるので,特にその部分については私が書いたカスタムアノテーションの項目についても参照してほしい)
使用環境等
MacOSで,snpEffは以下にようにcondaでインストールした。
$ mamba install -c bioconda -y snpeff
$ snpEff -h
SnpEff version SnpEff 5.2 (build 2023-09-29 06:17), by Pablo Cingolani
Usage: snpEff [command] [options] [files]
アノテーション
基本的な使用方法は以下の通り。
(1) データベースのダウンロード
まず,用いる生物種のデータベースがあるか確認する。
$ snpEff databases
上記のコマンドだと,データベースにあるものが全部表示されるので,以下のように見つけたい生物種で絞り込む。(ここでは,Aspergillus oryzaeを対象とする)
$ snpEff databases | grep -i Aspergillus
用いる生物種のデータベースが見つからない場合は,以下のカスタムアノテーションに進む。
用いる生物種のデータベースが見つかった場合は,以下のようにデータベースをダウンロードする。
$ snpEff download -v Aspergillus_oryzae
(2)アノテーションの実行
以下のように,実行する。(variant.vcfはアノテーションをつけたいファイル,annotation.vcfはアウトプットファイルの名前)
$ snpEff -v -stats result.html Aspergillus_oryzae variant.vcf > annotation.vcf
カスタムアノテーション
データベースに目的の生物種,もしくはアノテーションデータがない場合には,自身で登録したファイルも使用可能。bed,gtfファイルなどが使用できるが,ここではgffファイル(gff3)を用いる方法を紹介する。
(1)ファイルの準備
ゲノムのリファレンス配列(fastaファイル: .faの拡張子にする)とアノテーションファイル(gff3形式のファイル: .gffの拡張子にする)を用意する。ここでは,RIB40という株についてアノテーションをつけることにする。公式ではgz圧縮した例が紹介されているが,非圧縮ファイルでも作業内容は同様。
(2)ファイルのbuild
snpEffのインストールディレクトリにまず移動する。condaで導入した場合には以下のような感じ。
$ cd /Users/Username/mambaforge/share/snpeff-5.2-0
このディレクトリにある,snpEff.configファイルに,ゲノムの情報を追加する。例えば以下のような感じ。(上一行はなんでも良い気がするが,よくわからない)
\# RIB40 genome, version RIB40
RIB40.genome : RIB40
/snpeff-5.2-0/data/ディレクトリに移動。新しいディレクトリを作成する。この時,名前はアノテーションをつける株の名前にしておく。(つまり,"RIB40"という名前のフォルダを作る)
/snpeff-5.2-0/data/RIB40/に移動し,gffファイルを置く。ファイル名はgenes.gffにする。
さらに,fastaファイル(RIB40.fa)をsequences.faに名前を変えて置く。
(fastaファイルは,/snpeff-5.2-0/data/にgenomes/というディレクトリを作り,その中にRIB40.faとしてファイルを置いても良い)
/snpeff-5.2-0/に移動し,以下のコマンドを打つ。
$ snpEff build -gff3 -noCheckCds -noCheckProtein -v RIB40
-v オプションで株名(データベース名)を指定する。また,今回はgff3形式ファイルを用いたので,-gff3 オプションで指定する(他のファイル形式は公式サイトを参照)。
他のサイトには詳しく述べられていないが,ここで"-noCheckCds"と"-noCheckProtein"オプションを入れることが重要。CDSとProteinの情報を入れていない場合にはerrorが起きてbuildが実行できないので,必ずこのオプションを入れること。
うまくbuildできれば,/data/RIB40/ディレクトリに.binファイルが作られているはず。
(3)アノテーション
アノテーションは,データベースをダウンロードした場合も,カスタムアノテーションも同じ。
$ snpEff -v -stats result.html RIB40 variant.vcf > annotation.vcf