LUYAO REN 4 роки тому
коміт
2a602114ea
5 змінених файлів з 156 додано та 0 видалено
  1. +11
    -0
      inputs
  2. BIN
      tasks/.DS_Store
  3. +32
    -0
      tasks/merge_mendelian.wdl
  4. +68
    -0
      tasks/split_file.wdl
  5. +45
    -0
      workflow.wdl

+ 11
- 0
inputs Переглянути файл

@@ -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"
}

BIN
tasks/.DS_Store Переглянути файл


+ 32
- 0
tasks/merge_mendelian.wdl Переглянути файл

@@ -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"
}
}

+ 68
- 0
tasks/split_file.wdl Переглянути файл

@@ -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"
}
}

+ 45
- 0
workflow.wdl Переглянути файл

@@ -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
}
}



Завантаження…
Відмінити
Зберегти