您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. task cnvkit{
  2. String sample_id
  3. File ref_dir
  4. String? fasta
  5. File ref_flat
  6. #File hrd
  7. File tumor_bam
  8. File tumor_bam_index
  9. File? normal_bam
  10. File? normal_bam_index
  11. String docker
  12. String cluster_config
  13. String disk_size
  14. String sample=basename(tumor_bam,".bam")
  15. command <<<
  16. set -o pipefail
  17. set -e
  18. nt=$(nproc)
  19. echo ${sample}
  20. /root/miniconda2/bin/cnvkit.py batch ${tumor_bam} -n ${normal_bam} -m wgs -f ${ref_dir} --annotate ${ref_flat} -p $nt
  21. # Check noise
  22. /root/miniconda2/bin/cnvkit.py metrics ${sample}.cnr -s ${sample}.cns > ${sample}.stats
  23. # Derive each segment's absolute integer copy number, ploidy must be int value
  24. #PURITY=`awk -F'\t' '{print $6}' ${hrd} | sed -n '2p'`
  25. PURITY=3.3
  26. /root/miniconda2/bin/cnvkit.py segmetrics ${sample}.cnr -s ${sample}.cns --ci -o ${sample}.segmetrics.cns
  27. /root/miniconda2/bin/cnvkit.py call ${sample}.segmetrics.cns --drop-low-coverage --filter ci -m threshold --purity $PURITY -o ${sample}.call.cns
  28. /root/miniconda2/bin/cnvkit.py genemetrics ${sample}.cnr -t 0.2 -m 3 -o ${sample}.ratio_cnv.txt
  29. /root/miniconda2/bin/cnvkit.py genemetrics ${sample}.cnr -s ${sample}.call.cns -t 0.2 -m 3 -o ${sample}.segment_cnv.txt
  30. /root/miniconda2/bin/cnvkit.py scatter ${sample}.cnr -s ${sample}.call.cns -o ${sample}_scatter.pdf
  31. /root/miniconda2/bin/cnvkit.py diagram ${sample}.cnr -s ${sample}.call.cns -o ${sample}.diagram.pdf
  32. /root/miniconda2/bin/cnvkit.py heatmap ${sample}.cnr ${sample}.call.cns -o ${sample}.heatmap.pdf
  33. cat ${sample}.ratio_cnv.txt | tail -n+2 | cut -f1 | sort | uniq > ratio_cnv.txt
  34. cat ${sample}.segment_cnv.txt | tail -n+2 | cut -f1 | sort | uniq > segment_cnv.txt
  35. comm -12 ratio_cnv.txt segment_cnv.txt > ${sample}.trusted_genes.txt
  36. awk 'NR==FNR {a[$1]=$2;next} NR!=FNR {if(FNR == 1 || (FNR != 1 && $1 in a)) print $0}' ${sample}.trusted_genes.txt ${sample}.ratio_cnv.txt > ${sample}.ratio_cnv.trusted.txt
  37. /root/miniconda2/bin/cnvkit.py call ${sample}.ratio_cnv.trusted.txt -m threshold -o ${sample}.ratio_cnv.call.txt
  38. awk '{if ($6 != 2) print $0}' ${sample}.ratio_cnv.call.txt > ${sample}.ratio_cnv.call.filter.txt
  39. cp ${sample}.ratio_cnv.call.filter.txt ${sample}.ratio_cnv.call.filter.bed
  40. ls ./
  41. tar cvf ${sample}.tar ${sample}*
  42. >>>
  43. runtime{
  44. docker:docker
  45. cluster:cluster_config
  46. systemDisk:"cloud_ssd 40"
  47. dataDisk:"cloud_ssd " + disk_size + " /cromwell_root/"
  48. timeout:259200
  49. }
  50. output{
  51. File out_file = "${sample}.tar"
  52. File cnv_bed = "${sample}.ratio_cnv.call.filter.bed"
  53. }
  54. }