Part. 3 SnpEff によるアノテーション

全ゲノム解析ハンズオン 2024 新村グループ
—スモールデータで理解する SNP 解析の流れ

畜産研 博士1年 松田 優樹

Part. 3 SnpEff によるアノテーション

目標

  1. 公開データを用いた SNP 解析ができるようになる。
  2. データの中身と解析の流れについて理解を深める。

コンテンツ

  • 基本的なコマンドライン操作
  • NGS 公開データの取得
  • クオリティコントロール
  • リードマッピング
  • バリアントコール
  • SNP アノテーション

SnpEff を用いた変異のアノテーション

遺伝子の位置情報 (GTF/GFF) を参照して、 “この SNP は XX 遺伝子上の変異で、しかもアミノ酸を変える” みたいな情報を付加する。

SnpEff 実行環境の構築 (のための Java 環境構築)

https://pcingola.github.io/SnpEff/download/

SnpEff は Java というプログラミング言語に依存している。 遺伝研の Java はちょっと古いので、 最新版の Java をインストール する:

mkdir ~/bin
cd ~/bin
wget https://download.oracle.com/java/23/latest/jdk-23_linux-x64_bin.tar.gz
tar zxvf jdk-23_linux-x64_bin.tar.gz
# rm jdk-23_linux-x64_bin.tar.gz

SnpEff 実行環境の構築 (のための Java 環境構築)

Java コマンドをどこでも使えるようにする。 (PATH を通す。)

ホームに戻って、.bash_profile (もしくは .bashrc) というファイルがあることを確認する。

cd
ls -a

どちらかを開いて、以下の行を追加して保存する:

export JAVA_HOME=${HOME}/bin/jdk-23  # ダウンロードしたものに合わせる。jdk23-1 なら ${HOME}/bin/jdk23-1 と書く。
export PATH=${JAVA_HOME}/bin:$PATH
export MALLOC_ARENA_MAX=2

編集したファイルを読み込み、Java の動作確認をする:

source .bash_profile
java -version

SnpEff 実行環境の構築

最新版の SnpEff をダウンロードする:

cd ~/bin
wget https://snpeff.blob.core.windows.net/versions/snpEff_latest_core.zip
unzip snpEff_latest_core.zip
# rm snpEff_latest_core.zip

先ほどと同じように SnpEff の PATH を通す。 ホームの .bash_profile.bashrc を開いて以下の行を追加する:

export PATH=${HOME}/bin/snpEff/scripts:$PATH

SnpEff の動作確認をする:

snpEff -version

SnpEff による変異のアノテーション

SnpEff は既存の遺伝子情報データベースをダウンロードしたり、 手元の GTF/GFF からデータベースを自作したりして使う。

Escherichia_coli_b_str_rel606 の遺伝子情報をダウンロード:

cd ~/snp24  # 作業ディレクトリへ戻るのを忘れずに
snpEff download -v Escherichia_coli_b_str_rel606

変異のアノテーション:

snpEff Escherichia_coli_b_str_rel606 hq_SRR030257.vcf > hq_SRR030257_snpeff.vcf

SnpEff の結果 (VCF)

less hq_SRR030257_snpeff.vcf

長くて見づらいが、INFO フィールドに新たに ANN= に続く形でアノテーション結果が書かれている。

アノテーション結果は | 区切りの16項目からなる。 複数の遺伝子にまたがる場合はさらに , 区切りで続く。

例:

G|missense_variant|MODERATE|pcnB|ECB_00142|transcript|ACT37835|protein_coding|1/1|c.904A>C|p.Asn302His|904/1365|904/1365|302/454||WARNING_TRANSCRIPT_NO_START_CODON
# ALTアリル|変異の種類|変異の影響|遺伝子名|遺伝子ID|タイプ|転写産物名|転写産物biotype|Rank/total|塩基の位置と変異|アミノ酸の位置と変異|cDNA_position/cDNA_length|CDS_position/CDS_length|Protein_position/Protein_length|Distance to feature|エラーや警告

pcnB のアミノ酸を変える変異、302番目のアスパラギンがヒスチジンになっている。

SnpEff の結果 (genes)

SnpEff を実行すると、snpEff_genes.txt というファイルもできる。

このファイルには各転写産物ごとに、どの程度の影響の変異がいくつあるかがタブ区切りで整理されている。

アミノ酸を変える変異をともなう遺伝子を抜き出してみる:

cat snpEff_genes.txt | awk 'NR>1 { if ($11 >= 1) { print $0 } }'

🔰 元論文 Barrick et al. 2009Table. 1 と比べてみよう。

ニワトリで SnpEff を動かす場合

生物種/ゲノムのバージョンによってはデータベースがない場合もある:

snpEff databases | grep Gallus
# GRCg6a.99  Gallus_gallus
# Galgal4.75  Gallus_gallus

ニワトリも GRCg7b を使う場合、データベースを自作する必要がある:

やり方
https://pcingola.github.io/SnpEff/snpeff/build_db/
https://ymat2.github.io/bio/snpEff.html

Part. 3 まとめ

達成🎉


参考

今日のまとめ

達成🎉


できるようになったこと

  • 基本的なコマンドライン操作
  • NGS 公開データの取得
  • クオリティコントロール
  • リードマッピング
  • バリアントコール
  • SNP アノテーション