run_FeBY2_cnv_call_L2.sh.bak 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. set -e
  2. function usage() {
  3. echo "Usage: $0 [ -s <sample> ] [ -o <out_dir> ] [ -l <sam_list> ] [ -x <script_dir> ] [ -c <FeBY2_CNV_outdir> ]"
  4. echo "-s Sample Name"
  5. echo "-o Output dir"
  6. echo "-l sample list"
  7. echo "-x script_dir"
  8. echo "-c FeBY2 CNV outdir"
  9. }
  10. if [ $# -eq 0 ]
  11. then
  12. usage
  13. exit
  14. fi
  15. while getopts ":s:o:l:x:c:h" opt; do
  16. case $opt in
  17. s)
  18. sample=$OPTARG
  19. ;;
  20. o)
  21. out_dir=$OPTARG
  22. ;;
  23. l)
  24. sam_list=$OPTARG
  25. ;;
  26. c)
  27. cnv_dir=$OPTARG
  28. ;;
  29. x)
  30. feby2_script=$OPTARG
  31. ;;
  32. h)
  33. usage
  34. exit
  35. ;;
  36. \?)
  37. echo "Invalid option: -$OPTARG" > /dev/stderr
  38. usage
  39. exit
  40. ;;
  41. esac
  42. done
  43. if [ ! -f $cnv_dir/ref.list ]
  44. then
  45. echo "Referenc Sample List:$cnv_dir/ref.list does NOT exist!"
  46. echo "Please Check."
  47. cp $sam_list ref.list
  48. fi
  49. if [ -d $cnv_dir ]
  50. then
  51. echo $cnv_dir.
  52. else
  53. echo $cnv_dir " NOT exist!"
  54. exit
  55. fi
  56. cd $cnv_dir
  57. echo "out_dir:" $out_dir
  58. . $feby2_script/conf/feby2.cfg
  59. sex=`echo ${sample}_?_QC_plot.pdf |sed "s/${sample}_//;s/_QC_plot.pdf//" `
  60. echo sex is $sex.
  61. test -d ${sample}_cnv || mkdir ${sample}_cnv
  62. test -e ${sample}_cnv/$sample.normals.txt && rm ${sample}_cnv/$sample.normals.txt
  63. for sam in ` cat ref.list |grep -v $sample `
  64. do
  65. echo $sam.pcov | cat >> ${sample}_cnv/$sample.normals.txt
  66. done
  67. $gatkb CombineReadCounts -inputList ${sample}_cnv/$sample.normals.txt -O ${sample}_cnv/$sample.combined-normals.tsv
  68. $gatkb CreatePanelOfNormals -I ${sample}_cnv/$sample.combined-normals.tsv -O ${sample}_cnv/$sample.normals.pon -noQC --disableSpark --minimumTargetFactorPercentileThreshold 0.2
  69. ref_cov=${sample}_cnv/$sample.normals.pon
  70. echo $ref_cov
  71. $gatkb NormalizeSomaticReadCounts -I ${sample}.pcov -PON ${ref_cov} -PTN ${sample}_cnv/${sample}.ptn.tsv -TN ${sample}_cnv/${sample}.tn.tsv
  72. $gatkb PerformSegmentation -TN ${sample}_cnv/${sample}.tn.tsv -O ${sample}_cnv/${sample}.seg -LOG
  73. $gatkb CallSegments -TN ${sample}_cnv/${sample}.tn.tsv -S ${sample}_cnv/${sample}.seg -O ${sample}_cnv/${sample}.called
  74. $gatkb PlotSegmentedCopyRatio -TN ${sample}_cnv/${sample}.tn.tsv -PTN ${sample}_cnv/${sample}.ptn.tsv -S ${sample}_cnv/${sample}.seg -O ${sample}_cnv -pre ${sample} -SD ${b37_dict} -LOG
  75. perl $exe_dir/seg_merge.pl ${sample}_cnv/${sample}.seg
  76. awk 'NR>1 && ($6 > 1.38 || $6 < 0.62) ' ${sample}_cnv/${sample}.seg.xls |awk -v sex=$sex '{print $1"\t"sex"\t"$2"\t"$3"\t"$4"\t"$5"\t"$6}' > ${sample}-cnv.input.tsv
  77. echo -e "Sample\tGender\tChr\tStart\tEnd\tLength\tCopy-ratio\tBand_region" |cat - ${sample}-cnv.input.tsv > ${sample}-${sex}-cnv.input.xls && rm ${sample}-cnv.input.tsv
  78. $anno_cnv -name ${sample} -outdir . -clean ${sample}-${sex}-cnv.input.xls
  79. perl $exe_dir/trim_cnv_result.pl $sample && mv $sample.cnv.anno.xls $sample-?-cnv.input.xls ${sample}_cnv/
  80. ## plot
  81. cp ${sample}_cnv/$sample.ptn.tsv .
  82. cp ${sample}_cnv/$sample.tn.tsv .
  83. cp ${sample}_cnv/$sample.seg .
  84. cp $out_dir/${sample}/conest/${sample}.ps.tab .
  85. perl $exe_dir/pre_plot.pl ${sample}
  86. /cgdata/guocq/soft/R-3.6.0/bin/Rscript $exe_dir/plot_panel_CR.r ${sample}
  87. convert -density 300 $sample.CR_VAF.pdf $sample.CR_VAF.png && rm -r $sample.ptn.tsv $sample.tn.tsv $sample.seg ${sample}.ps.tab $sample.CR_VAF.pdf ${sample}_plot.tsv