Ver código fonte

improve

master
LUYAO REN 5 anos atrás
pai
commit
300082c0d0
8 arquivos alterados com 452 adições e 63 exclusões
  1. +99
    -0
      codescripts/get_sv_region.sh
  2. +66
    -11
      inputs
  3. +4
    -1
      tasks/MIEpos2bed.wdl
  4. +39
    -0
      tasks/bedAnnotation.wdl
  5. +63
    -23
      tasks/bedCoverage.wdl
  6. +104
    -0
      tasks/diffBed.wdl
  7. +31
    -0
      tasks/mergeBed.wdl
  8. +46
    -28
      workflow.wdl

+ 99
- 0
codescripts/get_sv_region.sh Ver arquivo

cat tier1.sv tier2.sv | grep DEL | cut -f1,2,5 | sed s'/END=//g' > SV.DEL
cat tier1.sv tier2.sv | grep DUP | cut -f1,2,5 | sed s'/END=//g' > SV.DUP

cat tier1.sv tier2.sv | grep INS | cut -f1,2 > SV.INS
cat SV.INS | awk '{print $1 "\t" ($2 - 500) "\t" ($2+500)}' | sort -k1,1 -k2,2n > sv.ins.break.point.500.bed

cat SV.DEL | awk '{print $1 "\t" ($2 - 500) "\t" $2}' > sv.del.break.point.left
cat SV.DEL | awk '{print $1 "\t" $3 "\t" ($3 + 500)}' > sv.del.break.point.right
cat sv.del.break.point.left sv.del.break.point.right | sort -k1,1 -k2,2n > sv.del.break.point.500.bed

cat tier1.sv tier2.sv | grep TRA | grep -v 'chrM' | cut -f1,2,4,5 > SV.TRA
cat SV.TRA | awk '{print $1 "\t" ($2 - 500) "\t" ($2 + 500)}' > sv.tra.chr1
cat SV.TRA | cut -f3,4 | sed s'/CHR2=//g' | sed s'/END=//g' |awk '{print $1 "\t" ($2 - 500) "\t" ($2 + 500)}' > sv.tra.chr2
cat sv.tra.chr1 sv.tra.chr2 | sort -k1,1 -k2,2n > sv.tra.break.point.500.bed

cat tier1.sv tier2.sv | grep INV | cut -f1,2,5 | sed s'/END=//g' > SV.INV
cat SV.INV | awk '{print $1 "\t" ($2 - 500) "\t" $2}' > sv.inv.break.point.left
cat SV.INV | awk '{print $1 "\t" $3 "\t" ($3 + 500)}' > sv.inv.break.point.right
cat sv.inv.break.point.left sv.inv.break.point.right | sort -k1,1 -k2,2n > sv.inv.break.point.500.bed

cat SV.DUP | awk '{print $1 "\t" ($2 - 500) "\t" $2}' > sv.dup.break.point.left
cat SV.DUP | awk '{print $1 "\t" $3 "\t" ($3 + 500)}' > sv.dup.break.point.right
cat sv.dup.break.point.left sv.dup.break.point.right | grep -v 'chrM' | sort -k1,1 -k2,2n > sv.dup.break.point.500.bed


cat SV.INS | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.ins.left.50
cat sv.ins.left.50 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.ins.left.100
cat sv.ins.left.100 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.ins.left.150
cat sv.ins.left.150 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.ins.left.200
cat sv.ins.left.200 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.ins.left.250
cat sv.ins.left.250 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.ins.left.300
cat sv.ins.left.300 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.ins.left.350
cat sv.ins.left.350 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.ins.left.400


cat SV.INS | awk '{print $1"\t"$3 "\t" ($3 + 50)}' > sv.ins.right.50
cat sv.ins.right.50 | awk '{print $1"\t"$3 "\t" ($3 + 50)}' > sv.ins.right.100
cat sv.ins.right.100 | awk '{print $1"\t"$3 "\t" ($3 + 50)}' > sv.ins.right.150
cat sv.ins.right.150 | awk '{print $1"\t"$3 "\t" ($3 + 50)}' > sv.ins.right.200
cat sv.ins.right.200 | awk '{print $1"\t"$3 "\t" ($3 + 50)}' > sv.ins.right.250
cat sv.ins.right.250 | awk '{print $1"\t"$3 "\t" ($3 + 50)}' > sv.ins.right.300
cat sv.ins.right.300 | awk '{print $1"\t"$3 "\t" ($3 + 50)}' > sv.ins.right.350
cat sv.ins.right.350 | awk '{print $1"\t"$3 "\t" ($3 + 50)}' > sv.ins.right.400



cat SV.INS | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.ins.left.50
cat sv.ins.left.50 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.ins.left.100
cat sv.ins.left.100 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.ins.left.150
cat sv.ins.left.150 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.ins.left.200
cat sv.ins.left.200 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.ins.left.250
cat sv.ins.left.250 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.ins.left.300
cat sv.ins.left.300 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.ins.left.350
cat sv.ins.left.350 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.ins.left.400


cat SV.INS | awk '{print $1"\t"$2 "\t" ($2 + 50)}' > sv.ins.right.50
cat sv.ins.right.50 | awk '{print $1"\t"$2 "\t" ($2 + 50)}' > sv.ins.right.100
cat sv.ins.right.100 | awk '{print $1"\t"$2 "\t" ($2 + 50)}' > sv.ins.right.150
cat sv.ins.right.150 | awk '{print $1"\t"$2 "\t" ($2 + 50)}' > sv.ins.right.200
cat sv.ins.right.200 | awk '{print $1"\t"$2 "\t" ($2 + 50)}' > sv.ins.right.250
cat sv.ins.right.250 | awk '{print $1"\t"$2 "\t" ($2 + 50)}' > sv.ins.right.300
cat sv.ins.right.300 | awk '{print $1"\t"$2 "\t" ($2 + 50)}' > sv.ins.right.350
cat sv.ins.right.350 | awk '{print $1"\t"$2 "\t" ($2 + 50)}' > sv.ins.right.400



cat SV.DEL | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.del.left.50
cat sv.del.left.50 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.del.left.100
cat sv.del.left.100 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.del.left.150
cat sv.del.left.150 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.del.left.200
cat sv.del.left.200 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.del.left.250
cat sv.del.left.250 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.del.left.300
cat sv.del.left.300 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.del.left.350
cat sv.del.left.350 | awk '{print $1 "\t" ($2 - 50) "\t" $2}' > sv.del.left.400


cat SV.DEL | awk '{print $1 "\t" $3 "\t" ($3 + 50)}' > sv.del.right.50
cat sv.del.right.50 | awk '{print $1 "\t" $3 "\t" ($3 + 50)}' > sv.del.right.100
cat sv.del.right.100 | awk '{print $1 "\t" $3 "\t" ($3 + 50)}' > sv.del.right.150
cat sv.del.right.150 | awk '{print $1 "\t" $3 "\t" ($3 + 50)}' > sv.del.right.200
cat sv.del.right.200 | awk '{print $1 "\t" $3 "\t" ($3 + 50)}' > sv.del.right.250
cat sv.del.right.250 | awk '{print $1 "\t" $3 "\t" ($3 + 50)}' > sv.del.right.300
cat sv.del.right.300 | awk '{print $1 "\t" $3 "\t" ($3 + 50)}' > sv.del.right.350
cat sv.del.right.350 | awk '{print $1 "\t" $3 "\t" ($3 + 50)}' > sv.del.right.400














+ 66
- 11
inputs Ver arquivo

{ {
"{{ project_name }}.right_200": "oss://pgx-result/renluyao/manuscript/small_variants_near_SV/chr6.ins.right.200",
"{{ project_name }}.left_100": "oss://pgx-result/renluyao/manuscript/small_variants_near_SV/chr6.ins.left.100",
"{{ project_name }}.INS_bedAnnotation.right_150": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.right.150",
"{{ project_name }}.INS_bedAnnotation.left_400": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.left.400",
"{{ project_name }}.INS_bedCoverage.right_200": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.right.200",
"{{ project_name }}.INS_bedCoverage.right_100": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.right.100",
"{{ project_name }}.INS_bedAnnotation.left_350": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.left.350",
"{{ project_name }}.INS_bedAnnotation.right_200": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.right.200",
"{{ project_name }}.MIEpos2bed.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/high_confidence_call_manuscript:v1.4", "{{ project_name }}.MIEpos2bed.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/high_confidence_call_manuscript:v1.4",
"{{ project_name }}.INS_bedCoverage.docker": "registry-internal.cn-shanghai.aliyuncs.com/pgx-docker-registry/bedtools:v2.27.1",
"{{ project_name }}.diffBed.docker": "registry-internal.cn-shanghai.aliyuncs.com/pgx-docker-registry/bedtools:v2.27.1",
"{{ project_name }}.INS_bedCoverage.left_400": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.left.400",
"{{ project_name }}.INS_bedAnnotation.left_300": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.left.300",
"{{ project_name }}.INS_bedCoverage.right_400": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.right.400",
"{{ project_name }}.disk_size": "100", "{{ project_name }}.disk_size": "100",
"{{ project_name }}.right_50": "oss://pgx-result/renluyao/manuscript/small_variants_near_SV/chr6.ins.right.50",
"{{ project_name }}.chromo": "chr6",
"{{ project_name }}.right_150": "oss://pgx-result/renluyao/manuscript/small_variants_near_SV/chr6.ins.right.150",
"{{ project_name }}.DEL_bedCoverage.right_150": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/DEL_break_points/sv.del.right.150",
"{{ project_name }}.DEL_bedCoverage.left_400": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/DEL_break_points/sv.del.left.400",
"{{ project_name }}.DEL_bedCoverage.left_200": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/DEL_break_points/sv.del.left.200",
"{{ project_name }}.INS_bedAnnotation.left_200": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.left.200",
"{{ project_name }}.INS_bedCoverage.right_50": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.right.50",
"{{ project_name }}.INS_bedAnnotation.right_300": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.right.300",
"{{ project_name }}.INS_bedAnnotation.right_350": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.right.350",
"{{ project_name }}.inputSamplesFile": "{{ inputSamplesFile }}", "{{ project_name }}.inputSamplesFile": "{{ inputSamplesFile }}",
"{{ project_name }}.right_100": "oss://pgx-result/renluyao/manuscript/small_variants_near_SV/chr6.ins.right.100",
"{{ project_name }}.left_150": "oss://pgx-result/renluyao/manuscript/small_variants_near_SV/chr6.ins.left.150",
"{{ project_name }}.left_200": "oss://pgx-result/renluyao/manuscript/small_variants_near_SV/chr6.ins.left.200",
"{{ project_name }}.bedCoverage.docker": "registry-internal.cn-shanghai.aliyuncs.com/pgx-docker-registry/bedtools:v2.27.1",
"{{ project_name }}.left_50": "oss://pgx-result/renluyao/manuscript/small_variants_near_SV/chr6.ins.left.50",
"{{ project_name }}.cluster_config": "OnDemand bcs.a2.large img-ubuntu-vpc"
"{{ project_name }}.DEL_bedCoverage.left_350": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/DEL_break_points/sv.del.left.350",
"{{ project_name }}.diffBed.centromere": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/centro_pericentro_region.bed",
"{{ project_name }}.diffBed.sv_tra_bp": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/sv.tra.break.point.500.bed",
"{{ project_name }}.diffBed.sv_del": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/SV.DEL",
"{{ project_name }}.INS_bedAnnotation.right_50": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.right.50",
"{{ project_name }}.sample_name": "{{ sample_name }}",
"{{ project_name }}.DEL_bedCoverage.right_200": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/DEL_break_points/sv.del.right.200",
"{{ project_name }}.INS_bedCoverage.left_250": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.left.250",
"{{ project_name }}.INS_bedCoverage.left_150": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.left.150",
"{{ project_name }}.INS_bedAnnotation.left_150": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.left.150",
"{{ project_name }}.INS_bedAnnotation.right_400": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.right.400",
"{{ project_name }}.INS_bedCoverage.right_150": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.right.150",
"{{ project_name }}.DEL_bedCoverage.right_250": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/DEL_break_points/sv.del.right.250",
"{{ project_name }}.DEL_bedCoverage.right_300": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/DEL_break_points/sv.del.right.300",
"{{ project_name }}.diffBed.sv_ins_bp": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/sv.ins.break.point.500.bed",
"{{ project_name }}.diffBed.sv_inv": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/SV.INV",
"{{ project_name }}.INS_bedCoverage.left_350": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.left.350",
"{{ project_name }}.INS_bedAnnotation.right_250": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.right.250",
"{{ project_name }}.DEL_bedCoverage.left_100": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/DEL_break_points/sv.del.left.100",
"{{ project_name }}.DEL_bedCoverage.left_250": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/DEL_break_points/sv.del.left.250",
"{{ project_name }}.INS_bedCoverage.left_300": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.left.300",
"{{ project_name }}.DEL_bedCoverage.right_100": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/DEL_break_points/sv.del.right.100",
"{{ project_name }}.INS_bedAnnotation.left_250": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.left.250",
"{{ project_name }}.diffBed.lcr": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/btu356_LCR-hs38.bed",
"{{ project_name }}.INS_bedCoverage.left_50": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.left.50",
"{{ project_name }}.DEL_bedCoverage.left_50": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/DEL_break_points/sv.del.left.50",
"{{ project_name }}.INS_bedCoverage.right_300": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.right.300",
"{{ project_name }}.INS_bedCoverage.right_250": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.right.250",
"{{ project_name }}.cluster_config": "OnDemand bcs.a2.large img-ubuntu-vpc",
"{{ project_name }}.INS_bedAnnotation.left_100": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.left.100",
"{{ project_name }}.mergeBed.docker": "registry-internal.cn-shanghai.aliyuncs.com/pgx-docker-registry/bedtools:v2.27.1",
"{{ project_name }}.diffBed.sv_dup_bp": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/sv.dup.break.point.500.bed",
"{{ project_name }}.DEL_bedCoverage.docker": "registry-internal.cn-shanghai.aliyuncs.com/pgx-docker-registry/bedtools:v2.27.1",
"{{ project_name }}.diffBed.sv_del_bp": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/sv.del.break.point.500.bed",
"{{ project_name }}.DEL_bedCoverage.left_150": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/DEL_break_points/sv.del.left.50",
"{{ project_name }}.INS_bedCoverage.right_350": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.right.350",
"{{ project_name }}.DEL_bedCoverage.right_350": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/DEL_break_points/sv.del.right.350",
"{{ project_name }}.INS_bedCoverage.left_200": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.left.200",
"{{ project_name }}.DEL_bedCoverage.right_400": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/DEL_break_points/sv.del.right.400",
"{{ project_name }}.INS_bedCoverage.left_100": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.left.100",
"{{ project_name }}.diffBed.sv_dup": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/SV.DUP",
"{{ project_name }}.INS_bedAnnotation.docker": "registry-internal.cn-shanghai.aliyuncs.com/pgx-docker-registry/bedtools:v2.27.1",
"{{ project_name }}.diffBed.easy_region": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/easy_region.bed",
"{{ project_name }}.diffBed.sv_inv_bp": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/sv.inv.break.point.500.bed",
"{{ project_name }}.INS_bedAnnotation.right_100": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.right.100",
"{{ project_name }}.DEL_bedCoverage.left_300": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/DEL_break_points/sv.del.left.300",
"{{ project_name }}.INS_bedAnnotation.left_50": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/INS_break_points/sv.ins.left.50",
"{{ project_name }}.DEL_bedCoverage.right_50": "oss://pgx-result/renluyao/manuscript/bedregion_snp_distrubution/DEL_break_points/sv.del.right.50"
} }

+ 4
- 1
tasks/MIEpos2bed.wdl Ver arquivo



cat ${sample_name}.${chromo}.info.txt | grep -v '0:4:4' | grep -v '1:4:4' | awk '{ if ($3 != 0) { print } }' | cut -f1,8,9 > ${sample_name}.${chromo}.allvariants.bed cat ${sample_name}.${chromo}.info.txt | grep -v '0:4:4' | grep -v '1:4:4' | awk '{ if ($3 != 0) { print } }' | cut -f1,8,9 > ${sample_name}.${chromo}.allvariants.bed


cat ${sample_name}.${chromo}.info.txt | grep -v '0:4:4' | grep -v '1:4:4' | awk '{ if ($3 != 0) { print } }' | grep 'MIE' | cut -f1,8,9 > ${sample_name}.${chromo}.mie.bed
cat ${sample_name}.${chromo}.info.txt | grep -v '0:4:4' | grep -v '1:4:4' | awk '{ if ($3 != 0) { print } }' | grep 'MIE' | cut -f1,8,9 > ${sample_name}.${chromo}.mie.bed

cat ${sample_name}.${chromo}.info.txt | awk '{print $1,$8,$9,$10,$2,$3,$4,$5,$6,$7}' | sed 's/\s\+/\t/g' > ${sample_name}.${chromo}.info.bed


>>> >>>


File info = "${sample_name}.${chromo}.info.txt" File info = "${sample_name}.${chromo}.info.txt"
File mie_bed = "${sample_name}.${chromo}.mie.bed" File mie_bed = "${sample_name}.${chromo}.mie.bed"
File all_bed = "${sample_name}.${chromo}.allvariants.bed" File all_bed = "${sample_name}.${chromo}.allvariants.bed"
File info_bed = "${sample_name}.${chromo}.info.bed"
} }
} }

+ 39
- 0
tasks/bedAnnotation.wdl Ver arquivo

task bedAnnotation {
File all_info_bed
File left_50
File left_100
File left_150
File left_200
File left_250
File left_300
File left_350
File left_400
File right_50
File right_100
File right_150
File right_200
File right_250
File right_300
File right_350
File right_400
String sample_name
String docker
String cluster_config
String disk_size
command <<<

/opt/ccdg/bedtools-2.27.1/bin/bedtools annotate -counts -i ${all_info_bed} -files ${left_400} ${left_350} ${left_300} ${left_250} ${left_200} ${left_150} ${left_100} ${left_50} ${right_50} ${right_100} ${right_150} ${right_200} ${right_250} ${right_300} ${right_350} ${right_400} > ${sample_name}.info.bed.annotation.txt

>>>

runtime {
docker:docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}
output {
File info_bed_annotation = "${sample_name}.info.bed.annotation.txt"
}
}

+ 63
- 23
tasks/bedCoverage.wdl Ver arquivo

task bedCoverage { task bedCoverage {
File mie_bed
File all_bed
File all_mie_bed
File all_all_bed
File left_50 File left_50
File left_100 File left_100
File left_150 File left_150
File left_200 File left_200
File left_250
File left_300
File left_350
File left_400
File right_50 File right_50
File right_100 File right_100
File right_150 File right_150
File right_200 File right_200
File right_250
File right_300
File right_350
File right_400
String sample_name String sample_name
String chromo
String docker String docker
String cluster_config String cluster_config
String disk_size String disk_size
command <<< command <<<


## MIE ## MIE
/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_50} -b ${mie_bed} -counts | cut -f4 > ${sample_name}.${chromo}.mie.left50.coverage.txt
/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_50} -b ${all_mie_bed} -counts | cut -f4 > ${sample_name}.mie.left50.coverage.txt


/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_100} -b ${mie_bed} -counts | cut -f4 > ${sample_name}.${chromo}.mie.left100.coverage.txt
/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_100} -b ${all_mie_bed} -counts | cut -f4 > ${sample_name}.mie.left100.coverage.txt


/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_150} -b ${mie_bed} -counts | cut -f4 > ${sample_name}.${chromo}.mie.left150.coverage.txt
/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_150} -b ${all_mie_bed} -counts | cut -f4 > ${sample_name}.mie.left150.coverage.txt


/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_200} -b ${mie_bed} -counts | cut -f4 > ${sample_name}.${chromo}.mie.left200.coverage.txt
/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_200} -b ${all_mie_bed} -counts | cut -f4 > ${sample_name}.mie.left200.coverage.txt


/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_250} -b ${all_mie_bed} -counts | cut -f4 > ${sample_name}.mie.left250.coverage.txt


/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_50} -b ${mie_bed} -counts | cut -f4 > ${sample_name}.${chromo}.mie.right50.coverage.txt
/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_300} -b ${all_mie_bed} -counts | cut -f4 > ${sample_name}.mie.left300.coverage.txt


/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_100} -b ${mie_bed} -counts | cut -f4 > ${sample_name}.${chromo}.mie.right100.coverage.txt
/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_350} -b ${all_mie_bed} -counts | cut -f4 > ${sample_name}.mie.left350.coverage.txt


/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_150} -b ${mie_bed} -counts | cut -f4 > ${sample_name}.${chromo}.mie.right150.coverage.txt
/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_400} -b ${all_mie_bed} -counts | cut -f4 > ${sample_name}.mie.left400.coverage.txt


/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_200} -b ${mie_bed} -counts | cut -f4 > ${sample_name}.${chromo}.mie.right200.coverage.txt


paste ${sample_name}.${chromo}.mie.left200.coverage.txt ${sample_name}.${chromo}.mie.left150.coverage.txt ${sample_name}.${chromo}.mie.left100.coverage.txt ${sample_name}.${chromo}.mie.left50.coverage.txt ${sample_name}.${chromo}.mie.right50.coverage.txt ${sample_name}.${chromo}.mie.right100.coverage.txt ${sample_name}.${chromo}.mie.right150.coverage.txt ${sample_name}.${chromo}.mie.right200.coverage.txt > ${sample_name}.${chromo}.mie.coverage.txt
/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_50} -b ${all_mie_bed} -counts | cut -f4 > ${sample_name}.mie.right50.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_100} -b ${all_mie_bed} -counts | cut -f4 > ${sample_name}.mie.right100.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_150} -b ${all_mie_bed} -counts | cut -f4 > ${sample_name}.mie.right150.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_200} -b ${all_mie_bed} -counts | cut -f4 > ${sample_name}.mie.right200.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_250} -b ${all_mie_bed} -counts | cut -f4 > ${sample_name}.mie.right250.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_300} -b ${all_mie_bed} -counts | cut -f4 > ${sample_name}.mie.right300.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_350} -b ${all_mie_bed} -counts | cut -f4 > ${sample_name}.mie.right350.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_400} -b ${all_mie_bed} -counts | cut -f4 > ${sample_name}.mie.right400.coverage.txt


paste ${sample_name}.mie.left400.coverage.txt ${sample_name}.mie.left350.coverage.txt ${sample_name}.mie.left300.coverage.txt ${sample_name}.mie.left250.coverage.txt ${sample_name}.mie.left200.coverage.txt ${sample_name}.mie.left150.coverage.txt ${sample_name}.mie.left100.coverage.txt ${sample_name}.mie.left50.coverage.txt ${sample_name}.mie.right50.coverage.txt ${sample_name}.mie.right100.coverage.txt ${sample_name}.mie.right150.coverage.txt ${sample_name}.mie.right200.coverage.txt ${sample_name}.mie.right250.coverage.txt ${sample_name}.mie.right300.coverage.txt ${sample_name}.mie.right350.coverage.txt ${sample_name}.mie.right400.coverage.txt > ${sample_name}.mie.coverage.txt


# all variants # all variants


/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_50} -b ${all_bed} -counts | cut -f4 > ${sample_name}.${chromo}.all.left50.coverage.txt
/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_50} -b ${all_all_bed} -counts | cut -f4 > ${sample_name}.all.left50.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_100} -b ${all_all_bed} -counts | cut -f4 > ${sample_name}.all.left100.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_150} -b ${all_all_bed} -counts | cut -f4 > ${sample_name}.all.left150.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_200} -b ${all_all_bed} -counts | cut -f4 > ${sample_name}.all.left200.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_250} -b ${all_all_bed} -counts | cut -f4 > ${sample_name}.all.left250.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_300} -b ${all_all_bed} -counts | cut -f4 > ${sample_name}.all.left300.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_350} -b ${all_all_bed} -counts | cut -f4 > ${sample_name}.all.left350.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_400} -b ${all_all_bed} -counts | cut -f4 > ${sample_name}.all.left400.coverage.txt



/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_100} -b ${all_bed} -counts | cut -f4 > ${sample_name}.${chromo}.all.left100.coverage.txt
/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_50} -b ${all_all_bed} -counts | cut -f4 > ${sample_name}.all.right50.coverage.txt


/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_150} -b ${all_bed} -counts | cut -f4 > ${sample_name}.${chromo}.all.left150.coverage.txt
/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_100} -b ${all_all_bed} -counts | cut -f4 > ${sample_name}.all.right100.coverage.txt


/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${left_200} -b ${all_bed} -counts | cut -f4 > ${sample_name}.${chromo}.all.left200.coverage.txt
/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_150} -b ${all_all_bed} -counts | cut -f4 > ${sample_name}.all.right150.coverage.txt


/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_200} -b ${all_all_bed} -counts | cut -f4 > ${sample_name}.all.right200.coverage.txt


/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_50} -b ${all_bed} -counts | cut -f4 > ${sample_name}.${chromo}.all.right50.coverage.txt
/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_250} -b ${all_all_bed} -counts | cut -f4 > ${sample_name}.all.right250.coverage.txt


/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_100} -b ${all_bed} -counts | cut -f4 > ${sample_name}.${chromo}.all.right100.coverage.txt
/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_300} -b ${all_all_bed} -counts | cut -f4 > ${sample_name}.all.right300.coverage.txt


/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_150} -b ${all_bed} -counts | cut -f4 > ${sample_name}.${chromo}.all.right150.coverage.txt
/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_350} -b ${all_all_bed} -counts | cut -f4 > ${sample_name}.all.right350.coverage.txt


/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_200} -b ${all_bed} -counts | cut -f4 > ${sample_name}.${chromo}.all.right200.coverage.txt
/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${right_400} -b ${all_all_bed} -counts | cut -f4 > ${sample_name}.all.right400.coverage.txt


paste ${sample_name}.${chromo}.all.left200.coverage.txt ${sample_name}.${chromo}.all.left150.coverage.txt ${sample_name}.${chromo}.all.left100.coverage.txt ${sample_name}.${chromo}.all.left50.coverage.txt ${sample_name}.${chromo}.all.right50.coverage.txt ${sample_name}.${chromo}.all.right100.coverage.txt ${sample_name}.${chromo}.all.right150.coverage.txt ${sample_name}.${chromo}.all.right200.coverage.txt > ${sample_name}.${chromo}.all.coverage.txt


paste ${sample_name}.all.left400.coverage.txt ${sample_name}.all.left350.coverage.txt ${sample_name}.all.left300.coverage.txt ${sample_name}.all.left250.coverage.txt ${sample_name}.all.left200.coverage.txt ${sample_name}.all.left150.coverage.txt ${sample_name}.all.left100.coverage.txt ${sample_name}.all.left50.coverage.txt ${sample_name}.all.right50.coverage.txt ${sample_name}.all.right100.coverage.txt ${sample_name}.all.right150.coverage.txt ${sample_name}.all.right200.coverage.txt ${sample_name}.all.right250.coverage.txt ${sample_name}.all.right300.coverage.txt ${sample_name}.all.right350.coverage.txt ${sample_name}.all.right400.coverage.txt > ${sample_name}.all.coverage.txt


>>> >>>


dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
} }
output { output {
File mie = "${sample_name}.${chromo}.mie.coverage.txt"
File all = "${sample_name}.${chromo}.all.coverage.txt"
File mie = "${sample_name}.mie.coverage.txt"
File all = "${sample_name}.all.coverage.txt"
} }
} }

+ 104
- 0
tasks/diffBed.wdl Ver arquivo

task diffBed {
File all_mie_bed
File all_all_bed
File lcr
File centromere
File sv_dup
File sv_del
File sv_inv
File easy_region
File sv_ins_bp
File sv_del_bp
File sv_tra_bp
File sv_inv_bp
File sv_dup_bp
String sample_name
String docker
String cluster_config
String disk_size
command <<<

# mie

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${lcr} -b ${all_mie_bed} -counts > ${sample_name}.mie.lcr.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${centromere} -b ${all_mie_bed} -counts > ${sample_name}.mie.centromere.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${sv_dup} -b ${all_mie_bed} -counts > ${sample_name}.mie.sv_dup.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${sv_del} -b ${all_mie_bed} -counts > ${sample_name}.mie.sv_del.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${sv_inv} -b ${all_mie_bed} -counts > ${sample_name}.mie.sv_inv.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${sv_ins_bp} -b ${all_mie_bed} -counts > ${sample_name}.mie.sv_ins_bp.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${sv_del_bp} -b ${all_mie_bed} -counts > ${sample_name}.mie.sv_del_bp.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${sv_tra_bp} -b ${all_mie_bed} -counts > ${sample_name}.mie.sv_tra_bp.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${sv_inv_bp} -b ${all_mie_bed} -counts > ${sample_name}.mie.sv_inv_bp.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${sv_dup_bp} -b ${all_mie_bed} -counts > ${sample_name}.mie.sv_dup_bp.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${easy_region} -b ${all_mie_bed} -counts > ${sample_name}.mie.easy_region.coverage.txt


# all variants

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${lcr} -b ${all_all_bed} -counts > ${sample_name}.all.lcr.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${centromere} -b ${all_all_bed} -counts > ${sample_name}.all.centromere.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${sv_dup} -b ${all_all_bed} -counts > ${sample_name}.all.sv_dup.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${sv_del} -b ${all_all_bed} -counts > ${sample_name}.all.sv_del.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${sv_inv} -b ${all_all_bed} -counts > ${sample_name}.all.sv_inv.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${sv_ins_bp} -b ${all_all_bed} -counts > ${sample_name}.all.sv_ins_bp.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${sv_del_bp} -b ${all_all_bed} -counts > ${sample_name}.all.sv_del_bp.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${sv_tra_bp} -b ${all_all_bed} -counts > ${sample_name}.all.sv_tra_bp.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${sv_inv_bp} -b ${all_all_bed} -counts > ${sample_name}.all.sv_inv_bp.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${sv_dup_bp} -b ${all_all_bed} -counts > ${sample_name}.all.sv_dup_bp.coverage.txt

/opt/ccdg/bedtools-2.27.1/bin/bedtools coverage -a ${easy_region} -b ${all_all_bed} -counts > ${sample_name}.all.easy_region.coverage.txt


>>>

runtime {
docker:docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}
output {
File mie_lcr = "${sample_name}.mie.lcr.coverage.txt"
File mie_centromere = "${sample_name}.mie.centromere.coverage.txt"
File mie_sv_dup = "${sample_name}.mie.sv_dup.coverage.txt"
File mie_sv_del = "${sample_name}.mie.sv_del.coverage.txt"
File mie_sv_inv = "${sample_name}.mie.sv_inv.coverage.txt"
File mie_sv_ins_bp = "${sample_name}.mie.sv_ins_bp.coverage.txt"
File mie_sv_del_bp = "${sample_name}.mie.sv_del_bp.coverage.txt"
File mie_sv_tra_bp = "${sample_name}.mie.sv_tra_bp.coverage.txt"
File mie_sv_inv_bp = "${sample_name}.mie.sv_inv_bp.coverage.txt"
File mie_sv_dup_bp = "${sample_name}.mie.sv_dup_bp.coverage.txt"
File mie_easy_region = "${sample_name}.mie.easy_region.coverage.txt"
File all_lcr = "${sample_name}.all.lcr.coverage.txt"
File all_centromere = "${sample_name}.all.centromere.coverage.txt"
File all_sv_dup = "${sample_name}.all.sv_dup.coverage.txt"
File all_sv_del = "${sample_name}.all.sv_del.coverage.txt"
File all_sv_inv = "${sample_name}.all.sv_inv.coverage.txt"
File all_sv_ins_bp = "${sample_name}.all.sv_ins_bp.coverage.txt"
File all_sv_del_bp = "${sample_name}.all.sv_del_bp.coverage.txt"
File all_sv_tra_bp = "${sample_name}.all.sv_tra_bp.coverage.txt"
File all_sv_inv_bp = "${sample_name}.all.sv_inv_bp.coverage.txt"
File all_sv_dup_bp = "${sample_name}.all.sv_dup_bp.coverage.txt"
File all_easy_region = "${sample_name}.all.easy_region.coverage.txt"
}
}

+ 31
- 0
tasks/mergeBed.wdl Ver arquivo

task mergeBed {
Array[File] mie_bed
Array[File] all_bed
Array[File] info_bed
String sample_name
String docker
String cluster_config
String disk_size
command <<<

cat ${sep=" " mie_bed} > ${sample_name}.mie.bed

cat ${sep=" " all_bed} > ${sample_name}.all.bed

cat ${sep=" " info_bed} > ${sample_name}.info.bed

>>>

runtime {
docker:docker
cluster: cluster_config
systemDisk: "cloud_ssd 40"
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/"
}
output {
File all_mie_bed = "${sample_name}.mie.bed"
File all_all_bed = "${sample_name}.all.bed"
File all_info_bed = "${sample_name}.info.bed"
}
}

+ 46
- 28
workflow.wdl Ver arquivo

import "./tasks/MIEpos2bed.wdl" as MIEpos2bed import "./tasks/MIEpos2bed.wdl" as MIEpos2bed
import "./tasks/mergeBed.wdl" as mergeBed
import "./tasks/bedCoverage.wdl" as bedCoverage import "./tasks/bedCoverage.wdl" as bedCoverage
import "./tasks/diffBed.wdl" as diffBed
import "./tasks/bedAnnotation.wdl" as bedAnnotation


workflow {{ project_name }} { workflow {{ project_name }} {
File inputSamplesFile File inputSamplesFile
Array[Array[File]] inputSamples = read_tsv(inputSamplesFile) Array[Array[File]] inputSamples = read_tsv(inputSamplesFile)
File left_50
File left_100
File left_150
File left_200
File right_50
File right_100
File right_150
File right_200
String chromo
String sample_name
String cluster_config String cluster_config
String disk_size String disk_size


call MIEpos2bed.MIEpos2bed as MIEpos2bed { call MIEpos2bed.MIEpos2bed as MIEpos2bed {
input: input:
mie_file=sample[0], mie_file=sample[0],
chromo=chromo,
sample_name=sample[1],
cluster_config=cluster_config,
disk_size=disk_size
}
call bedCoverage.bedCoverage as bedCoverage {
input:
mie_bed=MIEpos2bed.mie_bed,
all_bed=MIEpos2bed.all_bed,
left_50=left_50,
left_100=left_100,
left_150=left_150,
left_200=left_200,
right_50=right_50,
right_100=right_100,
right_150=right_150,
right_200=right_200,
sample_name=sample[1],
chromo=chromo,
chromo=sample[1],
sample_name=sample_name,
cluster_config=cluster_config, cluster_config=cluster_config,
disk_size=disk_size disk_size=disk_size
} }
} }
call mergeBed.mergeBed as mergeBed {
input:
mie_bed=MIEpos2bed.mie_bed,
all_bed=MIEpos2bed.all_bed,
info_bed=MIEpos2bed.info_bed,
sample_name=sample_name,
cluster_config=cluster_config,
disk_size=disk_size
}
call bedCoverage.bedCoverage as INS_bedCoverage {
input:
all_mie_bed=mergeBed.all_mie_bed,
all_all_bed=mergeBed.all_all_bed,
sample_name=sample_name,
cluster_config=cluster_config,
disk_size=disk_size
}
call bedCoverage.bedCoverage as DEL_bedCoverage {
input:
all_mie_bed=mergeBed.all_mie_bed,
all_all_bed=mergeBed.all_all_bed,
sample_name=sample_name,
cluster_config=cluster_config,
disk_size=disk_size
}
call diffBed.diffBed as diffBed {
input:
all_mie_bed=mergeBed.all_mie_bed,
all_all_bed=mergeBed.all_all_bed,
sample_name=sample_name,
cluster_config=cluster_config,
disk_size=disk_size
}
call bedAnnotation.bedAnnotation as INS_bedAnnotation {
input:
all_info_bed=mergeBed.all_info_bed,
sample_name=sample_name,
cluster_config=cluster_config,
disk_size=disk_size
}
} }

Carregando…
Cancelar
Salvar