@@ -0,0 +1,11 @@ | |||
{ | |||
"{{ project_name }}.D6_trio_raw_vcf": "{{ D6_trio_raw_vcf }}", | |||
"{{ project_name }}.high_confidence_bed": "{{ high_confidence_bed }}", | |||
"{{ project_name }}.family_name": "{{ family_name }}", | |||
"{{ project_name }}.D5_trio_raw_vcf": "{{ D5_trio_raw_vcf }}", | |||
"{{ project_name }}.BEDdocker": "registry-internal.cn-shanghai.aliyuncs.com/pgx-docker-registry/bedtools:v2.27.1", | |||
"{{ project_name }}.disk_size": "200", | |||
"{{ project_name }}.SMALLcluster_config": "OnDemand bcs.ps.g.xlarge img-ubuntu-vpc", | |||
"{{ project_name }}.family_raw_vcf": "{{ family_raw_vcf }}", | |||
"{{ project_name }}.DIYdocker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/high_confidence_call_manuscript:v1.4" | |||
} |
@@ -0,0 +1,32 @@ | |||
task merge_mendelian { | |||
File D5_in | |||
File D6_in | |||
File family_in | |||
File D5_out | |||
File D6_out | |||
File family_out | |||
String family_name | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
python /opt/merge_two_family_with_genotype.py -LCL5 ${D5_in} -LCL6 ${D6_in} -genotype ${family_in} -family ${family_name}.inside | |||
python /opt/merge_two_family_with_genotype.py -LCL5 ${D5_out} -LCL6 ${D6_out} -genotype ${family_out} -family ${family_name}.outside | |||
>>> | |||
runtime { | |||
docker:docker | |||
cluster: cluster_config | |||
systemDisk: "cloud_ssd 40" | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File mendelian_in = "${family_name}.inside.txt" | |||
File mendelian_in_summary = "${family_name}.inside.summary.txt" | |||
File mendelian_out = "${family_name}.outside.txt" | |||
File mendelian_out_summary = "${family_name}.outside.summary.txt" | |||
} | |||
} |
@@ -0,0 +1,68 @@ | |||
task split_file { | |||
File D5_trio_raw_vcf | |||
File D6_trio_raw_vcf | |||
File family_raw_vcf | |||
File high_confidence_bed | |||
String family_name | |||
String docker | |||
String cluster_config | |||
String disk_size | |||
command <<< | |||
cat ${D5_trio_raw_vcf} | grep '#CHROM' > D5.header | |||
cat ${D6_trio_raw_vcf} | grep '#CHROM' > D6.header | |||
cat ${family_raw_vcf} | grep '#CHROM' > family.header | |||
/opt/ccdg/bedtools-2.27.1/bin/bedtools intersect -a ${D5_trio_raw_vcf} -b ${high_confidence_bed} > D5.in | |||
/opt/ccdg/bedtools-2.27.1/bin/bedtools intersect -a ${D6_trio_raw_vcf} -b ${high_confidence_bed} > D6.in | |||
/opt/ccdg/bedtools-2.27.1/bin/bedtools intersect -a ${family_raw_vcf} -b ${high_confidence_bed} > family.in | |||
/opt/ccdg/bedtools-2.27.1/bin/bedtools intersect -a ${D5_trio_raw_vcf} -b ${high_confidence_bed} -v > D5.out | |||
/opt/ccdg/bedtools-2.27.1/bin/bedtools intersect -a ${D6_trio_raw_vcf} -b ${high_confidence_bed} -v > D6.out | |||
/opt/ccdg/bedtools-2.27.1/bin/bedtools intersect -a ${family_raw_vcf} -b ${high_confidence_bed} -v > family.out | |||
cat D5.header D5.in > ${family_name}.D5.in.txt | |||
cat D6.header D6.in > ${family_name}.D6.in.txt | |||
cat family.header family.in > ${family_name}.family.in.txt | |||
cat D5.header D5.out > ${family_name}.D5.out.txt | |||
cat D6.header D6.out > ${family_name}.D6.out.txt | |||
cat family.header family.out > ${family_name}.family.out.txt | |||
cat ${family_name}.family.in.txt | awk ' | |||
BEGIN { OFS = "\t" } | |||
NF > 2 && FNR > 1 { | |||
for ( i=9; i<=NF; i++ ) { | |||
split($i,a,":") ;$i = a[1]; | |||
} | |||
} | |||
{ print } | |||
' > ${family_name}.family.in.gt.txt | |||
cat ${family_name}.family.out.txt | awk ' | |||
BEGIN { OFS = "\t" } | |||
NF > 2 && FNR > 1 { | |||
for ( i=9; i<=NF; i++ ) { | |||
split($i,a,":") ;$i = a[1]; | |||
} | |||
} | |||
{ print } | |||
' > ${family_name}.family.out.gt.txt | |||
>>> | |||
runtime { | |||
docker:docker | |||
cluster: cluster_config | |||
systemDisk: "cloud_ssd 40" | |||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||
} | |||
output { | |||
File D5_in = "${family_name}.D5.in.txt" | |||
File D6_in = "${family_name}.D6.in.txt" | |||
File family_in = "${family_name}.family.in.gt.txt" | |||
File D5_out = "${family_name}.D5.out.txt" | |||
File D6_out = "${family_name}.D6.out.txt" | |||
File family_out = "${family_name}.family.out.gt.txt" | |||
} | |||
} |
@@ -0,0 +1,45 @@ | |||
import "./tasks/split_file.wdl" as split_file | |||
import "./tasks/merge_mendelian.wdl" as merge_mendelian | |||
workflow {{ project_name }} { | |||
File D5_trio_raw_vcf | |||
File D6_trio_raw_vcf | |||
File family_raw_vcf | |||
File high_confidence_bed | |||
String BEDdocker | |||
String DIYdocker | |||
String family_name | |||
String disk_size | |||
String SMALLcluster_config | |||
call split_file.split_file as split_file { | |||
input: | |||
D5_trio_raw_vcf=D5_trio_raw_vcf, | |||
D6_trio_raw_vcf=D6_trio_raw_vcf, | |||
family_raw_vcf=family_raw_vcf, | |||
high_confidence_bed=high_confidence_bed, | |||
family_name=family_name, | |||
docker=BEDdocker, | |||
cluster_config=SMALLcluster_config, | |||
disk_size=disk_size | |||
} | |||
call merge_mendelian.merge_mendelian as merge_mendelian { | |||
input: | |||
D5_in=split_file.D5_in, | |||
D6_in=split_file.D6_in, | |||
family_in=split_file.family_in, | |||
D5_out=split_file.D5_out, | |||
D6_out=split_file.D6_out, | |||
family_out=split_file.family_out, | |||
family_name=family_name, | |||
docker=DIYdocker, | |||
cluster_config=SMALLcluster_config, | |||
disk_size=disk_size | |||
} | |||
} | |||