構造変化(SV)は、50bpよりも大きい染色体の構造の変化として定義される。 SVはヒトの遺伝子変異の主要な寄与因子であり、様々なヒト疾患にも関与している(Conrad、et al、2010; Sudmant、et al、2015)。特に、de novo構造変異(子孫固有で親にはない)は、特発性自閉症や知的障害のリスクにつながる(Brandler et al、2016)。新生児SVの正確な検出は、子どもの偽陽性や両親の偽陰性などの遺伝子型判定ミスのために困難である。さらに、ジェノタイピングエラーは、親から子への変異の伝達を強め、家系図の交絡分析にバイアスを与える。
次世代シーケンシングからSVを特徴付けることは、SVの広範なサイズ(50bp〜50Mb)および広範なタイプのために困難な作業である。したがって、SVの多様性を完全に捉えるためには、スタンドアロンソリューション(GoNL Consortium、2014; Sudmant、et al、2015)として設計された多数のツールが必要になる。複数のSVコールメソッドからのバリアンコールと信頼スコアを調和させ統一されたジェノタイプを報告する方法が欠けている。
ここでは、ペアエンドシーケンシングデータからの欠失およびduplicationのジェノタイピングのための機械学習アルゴリズムであるSV2について説明する。 SV2は、複数のSV発見アルゴリズムからのバリアントコールを、高度な遺伝子タイピング精度とde novo変異を検出する能力を備えた統一されたコールセットに迅速に統合することができる。
SV2は、前処理、フィーチャの抽出、その後の遺伝子型分類の3段階で機能する(図1:下の図参照)。 ジェノタイピングは、4つの有益な特徴、すなわち、カバレッジデプス、不一致のペアエンド、スプリットリードおよびヘテロ接合性対立遺伝子比(HAR)を利用する。 ジェノタイピングは、1000ゲノムプロジェクト(1KGP)からの全ゲノム配列(WGS)で訓練された教師ありサポートベクターマシン分類器を用いて行われる。 得られた遺伝子型のVCFファイルには、1KGP(Sudmant et al、2015)によって記録された共通SVの遺伝子、反復要素および変異体識別のアノテーションが含まれている。
https://github.com/dantaki/SV2/wiki/tutorial
SV2に関するツイート。
ワークフロー。GIthubより転載。
インストール
mac os10.12のPython2.7.14環境でテストした。
依存
- samtools (pileupで使う)
- Bedtools 2.25 or later
python2.7とライブラリ
- cython
- numpy
- pandas
- pybedtools
- pysam 0.9+
- scikit-learn v0.19+
本体
pip install sv2
> sv2 -h
$ sv2
____
_____________ ___ |___
/ _____/ / // ___/
_____ Y //_____)
/ /
/_________/ ___/
Support Vector Structural Variation Genotyper
Version 1.4.3.4 Author: Danny Antaki <dantaki at ucsd dot edu> github.com/dantaki/SV2
sv2 -i <bam ...> -v <vcf ...> -b <bed ...> -snv <snv vcf ...> -p <ped ...> [OPTIONS]
input arguments: github.com/dantaki/SV2/wiki/Options#input-arguments
Note: input arguments can take multiple files, separated by space <-i BAM1 BAM2 ...>
-i, -bam ... bam file(s)
-v, -vcf ... vcf files(s) of SVs
-b, -bed ... bed files(s) of SVs
-snv ... snv vcf files(s), must be bgzipped and tabixed
-p, -ped ... ped files(s)
genotype arguments: github.com/dantaki/SV2/wiki/Options#genotype-arguments
-g, -genome reference genome build <hg19, hg38, mm10> [default: hg19]
-pcrfree GC content normalization for pcr free sequences
-M bwa mem -M compatibility, split-reads flagged as secondary instead of supplementary
-merge merge overlapping SV breakpoints after genotyping
-min-ovr minimum reciprocal overlap for merging [default: 0.8]
-no-anno genotype without annotating variants
-pre preprocessing output directory, skips preprocessing
-feats feature extraction output directory, skips feature extraction
classifier arguments: github.com/dantaki/SV2/wiki/Options#classifier-arguments
-load-clf add custom classifiers (-load-clf <clf.json>)
-clf define classifier for genotyping [default:default]
config arguments: github.com/dantaki/SV2/wiki/Options#config-arguments
-download download required data files
-hg19 hg19 fasta file
-hg38 hg38 fasta file
-mm10 mm10 fasta file
-ini configuration INI file [default: $SV2_INSTALL_PATH/config/sv2.ini]
optional arguments:
-L, -log log file for standard error messages [default: STDOUT]
-T, -tmp-dir directory for temporary files [default: working directory]
-s, -seed random seed for preprocessing shuffling [default: 42]
-o, -out output prefix [default: sv2_genotypes]
-O, -odir output path, location for sv2 output directories [default: working directory]
-h, -help show this message and exit
——
ラン
テストランの流れを確認する(リンク)。
準備1: テストリファレンスゲノムデータをダウンロードし、パスを記載する。
#リファレンスのダウンロード(持ってなければ)
wget ftp://ftp-trace.ncbi.nih.gov/1000genomes/ftp/technical/reference/human_g1k_v37.fasta.gz
gunzip human_g1k_v37.fasta.gz
samtools faidx human_g1k_v37.fasta
#付属データのダウンロード
sv2 -download
#fastaのパスを定義しておく。特にメッセージは出ないので、成功してるかわかりにくい(*1)。
sv2 -hg19 /full/path/to/human_g1k_v37.fasta
準備2: テストデータをダウンロードする。
wget https://github.com/dantaki/SV2/releases/download/sv2v1.4.0/sv2_tutorial.zip
unzip sv2_tutorial.zip
cd sv2_tutorial/
データは、1000Genomesのlow coverageサンプルをダウンサンプリングしたもので、bwa memでhg19にアライメントされbamになっている。VCFファイル1kgp_phase3_tutorial.vcfは 1000 Genomesの成果であるphase3 VCFをランダムサンプリングしたもの。HG00096_sub.vcf.gzはダウンサンプリングしたbamからFreebayesでバリアントコールしたもの。bgzipで圧縮されtabixでindexが付いている。bamとこれらをsv2の入力として使う。他にGWASで使うPLINKのバイナリファイル(HG00096.pedと1kgp.ped)などが入る。
テスト1。Freebayes1つのバリアントコール結果からgenotypingを行う。
sv2 -i HG00096_sub.bam -v 1kgp_phase3_tutorial.vcf -snv HG00096_sub.vcf.gz -p HG00096.ped -o HG00096_sv2
- -v vcf files(s) of SVs
-
-snv vcf files(s), must be bgzipped and tabixed
-
-p ped files(s)
- -o output prefix [default: sv2_genotypes]
- -min-ovr minimum reciprocal overlap for merging [default: 0.8]
出力。図1の3段階のフローに相当するディレクトリができる。最終出力はsv2_genotypes。genotyeはvcfとbedで出力される(*2)。
テスト2。複数のバリアントコール結果を統合してgenotypingを行う。 Manta(複数の間接的なSVシグナルを使い、コントロールケース実験の精度の高いSVコールを行う)のコールと、Lumpy(mantaと同様、複数手法を使う高感度なSVコーラー。論文発表はlumpyが先)のコールを使う。
sv2 -i HG00096_sub.bam -v 1kgp_phase3_tutorial.vcf -snv HG00096_sub.vcf.gz -p HG00096.ped -o HG00096_sv2
# merge breakpoints with 95% reciprocal overlap
sv2 -i HG00096_sub.bam -b lumpy.bed manta.bed -snv HG00096_sub.vcf.gz -p HG00096.ped -o HG00096_95merged -min-ovr 0.95 -pre sv2_preprocessing/ -feats sv2_features/
SV2では、各サンプルごとにgenotypingを行い、それから統合し、genotpeの行列を出力するフローを推奨している(コマンド例はリンク先一番下のSV2 Guidelinesを参照)。
修正
mantaの説明をmetasvと勘違いして記載しておりました。修正します。
引用
SV2: accurate structural variation genotyping and de novo mutation detection from whole genomes.
Danny Antaki William M Brandler Jonathan Sebat
Bioinformatics, Volume 34, Issue 10, 15 May 2018, Pages 1774–1777,
*1 /sv2/config/sv2.ini を直接開きFASTAのパスを確認する。直接編集でもOK。
Running without install step (aka "config on the command line") · Issue #10 · dantaki/SV2 · GitHub
*2 出力について
https://github.com/dantaki/SV2/wiki/Output#vcf-output