# DELLY Somatic Mutation Calling | |||||
## App概述 | |||||
输入文件为deduped bam files。肿瘤和配对检测somatic SV,一共包括5种SV,Insertion、Deletion、Inversion、Translocation、Duplication。 | |||||
## 流程与参数 | |||||
1. DELLY检测突变 | |||||
```bash | |||||
delly call -g <fastq_file> -o <output_bcf> -x human.hg38.excl.tsv <tumor_bam> <normal_bam> | |||||
delly filter -f somatic -o <output_filtered_bcf> -s samples.tsv <output_bcf> | |||||
``` | |||||
其中samples.tsv按照如下准备,其中的tumor_name和normal_name要与bam文件中一致 | |||||
```bash | |||||
tumor_name tumor | |||||
normal_name control | |||||
``` | |||||
2. 将bcf文件转换成vcf | |||||
```bash | |||||
bcftools view <output_filtered> > <vcf> | |||||
``` | |||||
## App输出文件 | |||||
最终的结果文件在bcf2vcf中,是一个包含了所有SV类型,经过过滤后的vcf文件 |
{ | |||||
"{{ project_name }}.SENTIEON_INSTALL_DIR": "/opt/sentieon-genomics", | |||||
"{{ project_name }}.fasta": "hg19_nochr.fa", | |||||
"{{ project_name }}.normal_bam_idx": "{{ normal_bam_idx}}", | |||||
"{{ project_name }}.tumor_bam": "{{ tumor_bam }}", | |||||
"{{ project_name }}.DELLYdocker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/delly:v0.8.1", | |||||
"{{ project_name }}.disk_size": "500", | |||||
"{{ project_name }}.normal_bam": "{{ normal_bam }}", | |||||
"{{ project_name }}.sample_name": "{{ sample_name }}", | |||||
"{{ project_name }}.SMALLcluster_config": "OnDemand bcs.a2.xlarge img-ubuntu-vpc", | |||||
"{{ project_name }}.BCFdocker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/bcftools:v1.9", | |||||
"{{ project_name }}.BIGcluster_config": "OnDemand bcs.a2.7xlarge img-ubuntu-vpc", | |||||
"{{ project_name }}.tumor_bam_idx": "{{ tumor_bam_idx }}", | |||||
"{{ project_name }}.SENTIEONdocker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/sentieon-genomics:v2018.08.01", | |||||
"{{ project_name }}.ref_dir": "oss://pgx-reference-data/hg19/" | |||||
} |
task bcf2vcf { | |||||
File bcf | |||||
File bcf_index | |||||
String sample_name | |||||
String docker | |||||
String disk_size | |||||
String cluster_config | |||||
command <<< | |||||
set -o pipefail | |||||
set -e | |||||
/opt/hall-lab/bcftools-1.9/bin/bcftools view ${bcf} > ${sample_name}.vcf | |||||
>>> | |||||
runtime { | |||||
docker:docker | |||||
cluster:cluster_config | |||||
systemDisk: "cloud_ssd 40" | |||||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||||
} | |||||
output { | |||||
File vcf = "${sample_name}.vcf" | |||||
} | |||||
} | |||||
task delly { | |||||
File tumor_bam | |||||
File tumor_bam_idx | |||||
File normal_bam | |||||
File normal_bam_idx | |||||
File ref_dir | |||||
String fasta | |||||
String sample_name | |||||
String docker | |||||
String disk_size | |||||
String cluster_config | |||||
command <<< | |||||
set -o pipefail | |||||
set -e | |||||
echo -e "${sample_name}.tumor\ttumor\n${sample_name}.normal\tcontrol" > samples.tsv | |||||
nt=$(nproc) | |||||
export OMP_NUM_THREADS=$nt | |||||
/opt/delly/src/delly call -g ${ref_dir}/${fasta} -o ${sample_name}.delly.somatic.bcf -x /opt/delly/excludeTemplates/human.hg38.excl.tsv ${tumor_bam} ${normal_bam} | |||||
/opt/delly/src/delly filter -f somatic -o ${sample_name}.delly.somatic.filtered.bcf -s samples.tsv ${sample_name}.delly.somatic.bcf | |||||
>>> | |||||
runtime { | |||||
docker:docker | |||||
cluster:cluster_config | |||||
systemDisk: "cloud_ssd 40" | |||||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||||
} | |||||
output { | |||||
File bcf = "${sample_name}.delly.somatic.filtered.bcf" | |||||
File bcf_index = "${sample_name}.delly.somatic.filtered.bcf.csi" | |||||
} | |||||
} | |||||
import "./tasks/delly.wdl" as delly | |||||
import "./tasks/bcf2vcf.wdl" as bcf2vcf | |||||
workflow {{ project_name }} { | |||||
String SENTIEON_INSTALL_DIR | |||||
String SENTIEONdocker | |||||
String DELLYdocker | |||||
String BCFdocker | |||||
File tumor_bam | |||||
File tumor_bam_idx | |||||
File normal_bam | |||||
File normal_bam_idx | |||||
File ref_dir | |||||
String fasta | |||||
String sample_name | |||||
String disk_size | |||||
String BIGcluster_config | |||||
String SMALLcluster_config | |||||
call delly.delly as delly { | |||||
input: | |||||
tumor_bam=tumor_bam, | |||||
tumor_bam_idx=tumor_bam_idx, | |||||
normal_bam=normal_bam, | |||||
normal_bam_idx=normal_bam_idx, | |||||
ref_dir=ref_dir, | |||||
fasta=fasta, | |||||
sample_name=sample_name, | |||||
docker=DELLYdocker, | |||||
disk_size=disk_size, | |||||
cluster_config=SMALLcluster_config | |||||
} | |||||
call bcf2vcf.bcf2vcf as bcf2vcf { | |||||
input: | |||||
bcf=delly.bcf, | |||||
bcf_index=delly.bcf_index, | |||||
docker=BCFdocker, | |||||
disk_size=disk_size, | |||||
cluster_config=SMALLcluster_config, | |||||
sample_name=sample_name | |||||
} | |||||
} | |||||