A very simple generator for simple somatic read and caller data for demonstration and testing the PCAWG-1 somatic call validation and merge pipeline.
Uses ART to generate synthetic reads for a normal bam (currently hg19 with no germline mutations) and BAMSurgeon to add somatic SNVs and indels.
Requirements:
- BAMSurgeon, which requires:
- velvet
- bwa
- samtools, htslib
- bcftools
- picard
- exonerate
- ART (downloaded by the setup.sh script)
Running the following
./setup.sh # downloads/indexes reference: takes some time!
./build_small_data small
will result in a directory small containing simulated normal and tumour BAMs for chr20, VCFs for five callers
that include false positives and negatives, and truth datasets. Similarly,
./build_full_data full
(which will take much longer) will generate synthetic data for the whole genome.
In addition, a bam (tumour or normal) may be oversampled at sites given by variants in a VCF to (very crudely) simulate validation data:
./supersample -b sim_normal.bam -v variant_targets.vcf -o sim_validation_normal.bam
./supersample -b sim_tumour.bam -v variant_targets.vcf -o sim_validation_tumour.bam
The provided Dockerfile allows running these tools as a container:
docker build -t simple_synthetic_somatic .
docker run -it -v ${PWD}:/output simple_synthetic_somatic generate small # generates data for chr20
docker run -it -v ${PWD}:/output simple_synthetic_somatic generate full # generates whole-genome data
docker run -it -v ${PWD}:/output simple_synthetic_somatic generate supersample -b small/sim_normal.bam -v small/truth.vcf -o small/sim_validation.bam