You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
2.7KB

  1. task cnvkit{
  2. String sample_id
  3. File ref_dir
  4. String? fasta
  5. File ref_flat
  6. File bed_file
  7. String method
  8. File hrd
  9. File tumor_bam
  10. File tumor_bam_index
  11. File? normal_bam
  12. File? normal_bam_index
  13. String docker
  14. String cluster_config
  15. String disk_size
  16. String sample=basename(tumor_bam,".bam")
  17. command <<<
  18. set -o pipefail
  19. set -e
  20. nt=$(nproc)
  21. echo ${sample}
  22. PURITY=`awk -F'\t' '{print $6}' ${hrd} | sed -n '2p'`
  23. echo $PURITY
  24. center=`awk -v vv=$PURITY 'BEGIN {print log(2/vv)/log(2)}'`
  25. echo $center
  26. if [ ${normal_bam} ]; then
  27. /root/miniconda2/bin/cnvkit.py batch ${tumor_bam} \
  28. --normal ${normal_bam} \
  29. --method ${method} \
  30. --fasta ${ref_dir} \
  31. --annotate ${ref_flat} -p $nt \
  32. --drop-low-coverage \
  33. --output-dir ${sample}.reference.cnn
  34. else
  35. /root/miniconda2/bin/cnvkit.py access ${ref_dir} -o access.bed
  36. # Prepare the target bed
  37. #/root/miniconda2/bin/cnvkit.py --annotate ${ref_flat} --split --short-names -o my_baits.bed
  38. /root/miniconda2/bin/cnvkit.py autobin ${tumor_bam} --method ${method} -g access.bed
  39. /root/miniconda2/bin/cnvkit.py coverage ${tumor_bam} ${sample}.target.bed -o ${sample}.T.targetcoverage.cnn
  40. /root/miniconda2/bin/cnvkit.py coverage ${tumor_bam} ${sample}.antitarget.bed -o ${sample}.T.antitargetcoverage.cnn
  41. /root/miniconda2/bin/cnvkit.py reference -o ${sample}.reference.cnn/reference.cnn -f ${ref_dir} -t ${sample}.target.bed -a ${sample}.antitarget.bed
  42. fi
  43. ls ./
  44. /root/miniconda2/bin/cnvkit.py batch ${tumor_bam} \
  45. -r ${sample}.reference.cnn/reference.cnn \
  46. --output-dir ${sample}.cns \
  47. -p $nt
  48. ls ./
  49. /root/miniconda2/bin/cnvkit.py call ${sample}.cns/${sample}.cns --center-at $center \
  50. -o ${sample}.call.cns
  51. ls ./
  52. tar cvf ${sample}.tar ${sample}*
  53. >>>
  54. runtime{
  55. docker:docker
  56. cluster:cluster_config
  57. systemDisk:"cloud_ssd 40"
  58. dataDisk:"cloud_ssd " + disk_size + " /cromwell_root/"
  59. timeout:259200
  60. }
  61. output{
  62. File out_file = "${sample}.tar"
  63. #File cnv_bed = "${sample}.ratio_cnv.call.filter.bed"
  64. }
  65. }