NGS 데이터에서 유전변이를 탐지하는 대표적인 프로그램 가운데 하나.
WGS, WES 등 NGS 데이터에 대한 플랫폼 독립적인 mutation caller 프로그램으로써, Illumina, SOLiD, Life/PGM, Roche/454, 등 장비로 부터 데이터를 받아 분석할 수 있다.
다음과 같은 유전변이의 탐지가 가능하다.
- Germline variants (SNPs an dindels) in individual samples or pools of samples.
- Multi-sample variants (shared or private) in multi-sample datasets (with mpileup).
- Somatic mutations, LOH events, and germline variants in tumor-normal pairs.
- Somatic copy number alterations (CNAs) in tumor-normal exome data.
Table of Contents
기능 요약 #
Germline variants #
Commands
- mpileup2snp
- mpileup2indel
- mpileup2cns
- pileup2snp
- pileup2indel
- pileup2cns
명령행 예제
$ samtools mpileup -B -f [reference] [bam] | java -jar VarScan.v2.2.jar mpileup2snp
Somatic mutations #
Commands
- somatic
명령행 예제
$ samtools pileup -f [reference] [normal_bam] > normal.pileup
$ samtools pileup -f [reference] [tumor_bam] > tumor.pileup
$ java -jar VarScan.jar somatic [normal_pileup] [tumor_pileup]
CNV #
Commands
- copynumber
명령행예제
$ samtools pileup -f [reference] [normal_bam] > normal.pileup
$ samtools pileup -f [reference] [tumor_bam] > tumor.pileup
$ java -jar VarScan.jar copynumber [normal_pileup] [tumor_pileup] [outfile]
Tumor/normal CNA with DNAcopy #
Tumor BAM파일과 정상 BAM 파일을 함께 SAMtools로 mpileup 파일을 만들고, copynumber와 capyCaller 명령을 수행한 후, DNAcopy로 segmentation 한다.
$ samtools mpileup -q 1 -f ref.fa normal.bam tumor.bam | java -jar VarScan.jar copynumber varScan --mpileup 1 --output-file varScan.copynumber
$ java -jar VarScan.jar copyCaller varScan.copynumber --output-file varScan.copynumber.called
$ R
> library(DNAcopy)
> cn <- read.table('varScan.copynumber.called', header=TRUE)
> CNA.object <- CNA(genomdat=cn[,7], chrom=cn[,1], maploc=cn[,2],
data.type = 'logratio')
> CNA.smoothed <- smooth.CNA(CNA.object)
> segs <- segment(CNA.smoothed, verbose=0, alpha=0.01, nperm=10000,
min.width=2, undo.splits="sdundo", undo.SD=3)
> psegs <- segments.p(segs)
> write.table(psegs, file="varScan.copynumber.called.cbs",
row.names=FALSE, col.names=TRUE, quote=FALSE, sep="\t")
VarScan과 함께 제공되는 Perl script 파일 mergeSegments.pl 을 이용하여 머지한다. (스크립트 파일을 일부 수정해야 함. 김형용이 수정한 파일은 mergeSegments-hygkim.pl)
$ perl mergeSegment-hygkim.pl --ref-arm-sizes hg19.arm --output-basename varScam.copynumber.called.cbs varScam.copynumber.called.cbs
위 명령에 사용되는 arm 길이 파일 (hg19.arm)은 다음과 같다.
1 1 125000000 p
1 125000001 249250621 q
2 1 93300000 p
2 93300001 243199373 q
3 1 91000000 p
3 91000001 198022430 q
4 1 50400000 p
4 50400001 191154276 q
5 1 48400000 p
5 48400001 180915260 q
6 1 61000000 p
6 61000001 171115067 q
7 1 59900000 p
7 59900001 159138663 q
8 1 45600000 p
8 45600001 146364022 q
9 1 49000000 p
9 49000001 141213431 q
10 1 40200000 p
10 40200001 135534747 q
11 1 53700000 p
11 53700001 135006516 q
12 1 35800000 p
12 35800001 133851895 q
13 1 17900000 p
13 17900001 115169878 q
14 1 17600000 p
14 17600001 107349540 q
15 1 19000000 p
15 19000001 102531392 q
16 1 36600000 p
16 36600001 90354753 q
17 1 24000000 p
17 24000001 81195210 q
18 1 17200000 p
18 17200001 78077248 q
19 1 26500000 p
19 26500001 59128983 q
20 1 27500000 p
20 27500001 63025520 q
21 1 13200000 p
21 13200001 48129895 q
22 1 14700000 p
22 14700001 51304566 q
X 1 60600000 p
X 60600001 155270560 q
Y 1 12500000 p
Y 12500001 59373566 q
de novo mutations (trios) #
명령행예제
$ samtools mpileup -B -f [reference] [bam] > trio.mpileup
$ java -jar VarScan.v2.2.jar trio trio.mpileup