s2_noUMI_sv_calling_varscan_pair_20221226.pbs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. #!/bin/sh
  2. #PBS -N noUMI_varscan_pair
  3. #PBS -j oe
  4. #PBS -l ncpus=12
  5. #PBS -l nodes=1
  6. #PBS -l mem=20G
  7. #inputpath=$1
  8. #sample=$2
  9. source /home/liuxiangqiong/miniconda3/bin/activate base
  10. hg19=/cgdata/Database/GATK/b37/human_g1k_v37_decoy.fasta
  11. target=/cgdata/liuxiangqiong/work62pancancer/Client/v0/script/refdata/NanOnco_Plus_Panel_v2.0_Covered_b37_cg.parY2X.sort.bed
  12. target1=/cgdata/liuxiangqiong/work62pancancer/pipeline/v0/refdata/NanOnco_Plus_Panel_v2.0_Covered_b37_cg.parY2X.sort
  13. #min_af=0.005 for blood,0.01 for tissue
  14. outputdir=${inputpath}/1SV_varscan_pair
  15. #######################1.pileup file########################################################################
  16. #samtools mpileup -B -q 10 -d 1000000 -f ${hg19} -l $target ${bam_dir}/${tumor}_clean.bam > ${outputdir}/${tumor}.pileup
  17. #samtools mpileup -B -q 10 -d 1000000 -f ${hg19} -l $target ${bam_dir}/${normal}_clean.bam > ${outputdir}/${normal}.pileup
  18. ##for tumor
  19. for i in `seq 1 8`
  20. do
  21. samtools mpileup -B -q 10 -d 10000000 -f ${hg19} -l ${target1}-$i.bed ${bam_dir}/${tumor}_clean.bam > ${outputdir}/${tumor}_$i.pileup&
  22. done
  23. wait
  24. cat ${outputdir}/${tumor}_*.pileup >${outputdir}/${tumor}.pileup
  25. rm -rf ${outputdir}/${tumor}_*.pileup
  26. #for normal
  27. for i in `seq 1 8`
  28. do
  29. samtools mpileup -B -q 10 -d 10000000 -f ${hg19} -l ${target1}-$i.bed ${bam_dir}/${normal}_clean.bam > ${outputdir}/${normal}_$i.pileup&
  30. done
  31. wait
  32. cat ${outputdir}/${normal}_*.pileup >${outputdir}/${normal}.pileup
  33. rm -rf ${outputdir}/${normal}_*.pileup
  34. ########################2.pair########################################################################
  35. varscan somatic ${outputdir}/${normal}.pileup ${outputdir}/${tumor}.pileup --output-snp ${outputdir}/${sample}.snp --output-indel ${outputdir}/${sample}.indel --tumor-purity 0.01 --output-vcf
  36. ########################3.Run the processSomatic subcommand to divide the output into separate files based on somatic status and confidence########
  37. #3.1获得高置信的突变
  38. varscan processSomatic ${outputdir}/${sample}.snp.vcf --min-tumor-freq 0.001 --max-normal-freq 0.05 --p-value 0.5
  39. varscan processSomatic ${outputdir}/${sample}.indel.vcf --min-tumor-freq 0.001 --max-normal-freq 0.05 --p-value 0.5
  40. #3.2merge the hc
  41. less ${outputdir}/${sample}.snp.Somatic.hc.vcf | grep -vE "^#"> ${outputdir}/${sample}.merge.Somatic.hc.nohead.vcf
  42. less ${outputdir}/${sample}.indel.Somatic.hc.vcf | grep -vE "^#" >> ${outputdir}/${sample}.merge.Somatic.hc.nohead.vcf
  43. #3.3 将邻近的位点进行合并#3.3 将邻近的位点进行合并
  44. #python3 /cgdata/liuxiangqiong/work62pancancer/Client/v0/script/complex_variant_new.py -i ${outputdir}/${sample}.merge.Somatic.hc.nohead.vcf -b ${bam_dir}/${tumor}_clean.bam -f ${hg19} -mode 2 -n 10 -p 0.5 -o ${outputdir}/${sample}.merge.Somatic.hc.nohead.combind.vcf
  45. #grep "^#" ${outputdir}/${sample}.snp.Somatic.hc.vcf >${outputdir}/${sample}.merge.Somatic.hc.combind.vcf
  46. #less ${outputdir}/${sample}.merge.Somatic.hc.nohead.combind.vcf >>${outputdir}/${sample}.merge.Somatic.hc.combind.vcf
  47. #rm -rf ${outputdir}/${sample}.merge.Somatic.hc.nohead.combind.vcf
  48. ##将VCF按照染色体进行拆分
  49. python3 /cgdata/liuxiangqiong/work62pancancer/Client/v0/script/20220705/vcfsplit_v0_20220929_finish.py -i ${outputdir}/${sample}.merge.Somatic.hc.nohead.vcf
  50. fun() {
  51. hg19=/cgdata/Database/GATK/b37/human_g1k_v37_decoy.fasta
  52. python3 /cgdata/liuxiangqiong/work62pancancer/Client/v0/script/complex_variant_new.py -i ${file} -b ${bam_dir}/${tumor}_clean.bam -f ${hg19} -mode 2 -n 10 -p 0.5 -o ${file}_chr.vcf &
  53. wait
  54. echo "fun is end."
  55. }
  56. for file in ${outputdir}/${sample}.merge.Somatic.hc.nohead_*.vcf;
  57. do
  58. fun ${tumor} ${file} ${bam_dir} &
  59. done
  60. wait
  61. echo "the vcfmergeing is finished"
  62. grep "^#" ${outputdir}/${sample}.snp.Somatic.hc.vcf >${outputdir}/${sample}.merge.Somatic.hc.combind.vcf
  63. cat ${outputdir}/${sample}.merge.Somatic.hc.nohead_*.vcf_chr.vcf>>${outputdir}/${sample}.merge.Somatic.hc.combind.vcf
  64. rm -rf ${outputdir}/${sample}.merge.Somatic.hc.nohead_*.vcf
  65. rm -rf ${outputdir}/${sample}.merge.Somatic.hc.nohead_*.vcf_chr.vcf
  66. #########################4.filter the false positive########################################################################
  67. grep -v "#" ${outputdir}/${sample}.merge.Somatic.hc.combind.vcf | awk '{a=$2+10;print $1"\t"$2"\t"a}' > ${outputdir}/${sample}.merge.Somatic.hc.combind.bed
  68. #将bed分成多个小文件
  69. split -l 3000 ${outputdir}/${sample}.merge.Somatic.hc.combind.bed -d -a 2 ${outputdir}/${sample}.merge.Somatic.hc.combind.bed_
  70. conda deactivate
  71. source /home/liuxiangqiong/miniconda3/bin/activate python2
  72. #bam-readcount -q 20 -b 20 -w 100 -f ${hg19} -l ${outputdir}/${sample}.merge.Somatic.hc.combind.bed ${bam_dir}/${tumor}_clean.bam >${outputdir}/${sample}.merge.Somatic.hc.combind.readcount
  73. fun() {
  74. hg19=/cgdata/Database/GATK/b37/human_g1k_v37_decoy.fasta
  75. bam-readcount -q 20 -b 20 -w 100 -f ${hg19} -l ${file} ${bam_dir}/${tumor}_clean.bam >${file}.readcount &
  76. wait
  77. echo "fun is end."
  78. }
  79. for file in ${outputdir}/${sample}.merge.Somatic.hc.combind.bed_*;
  80. do
  81. fun ${inputpath} ${tumor} ${file} ${bam_dir} &
  82. done
  83. wait
  84. echo "the bam-readcount is finished"
  85. cat ${outputdir}/${sample}.merge.Somatic.hc.combind.bed_*readcount>${outputdir}/${sample}.merge.Somatic.hc.combind.readcount
  86. rm -rf ${outputdir}/${sample}.merge.Somatic.hc.combind.bed_*readcount
  87. rm -rf ${outputdir}/${sample}.merge.Somatic.hc.combind.bed_*
  88. conda deactivate
  89. source /home/liuxiangqiong/miniconda3/bin/activate base
  90. varscan fpfilter \
  91. ${outputdir}/${sample}.merge.Somatic.hc.combind.vcf \
  92. ${outputdir}/${sample}.merge.Somatic.hc.combind.readcount \
  93. --min-var-count 5 \
  94. --min-var-basequal 20 \
  95. --min-ref-basequal 20 \
  96. --min-var-freq ${min_af} \
  97. --output-file ${outputdir}/${sample}.merge.Somatic.hc.combind.pass.vcf
  98. ##########################5.注释########################################################################
  99. #5.1对没有过滤的进行注释对高置信的过滤
  100. #perl /cgdata/CGTools/soft/src/annovar_20200608/table_annovar.pl ${outputdir}/${sample}.merge.Somatic.hc.head.combind.vcf /cgdata/soft/src/annovar.archive/DB/ -buildver hg19 -out ${outputdir}/${sample}.merge.Somatic.hc.head.combind.anno -remove -protocol refGene,popfreq_max_20150413,gnomad_genome,avsnp150,snp138NonFlagged,dbnsfp33a,cosmic94,clinvar_20210501,intervar_20170202,icgc28 -operation g,f,f,f,f,f,f,f,f,f -nastring . -vcfinput --thread 40
  101. #perl /cgdata/CGTools/soft/src/annovar_20200608/table_annovar.pl ${outputdir}/${sample}.snp.Somatic.hc.vcf /cgdata/soft/src/annovar.archive/DB/ -buildver hg19 -out ${outputdir}/${sample}.merge.Somatic.hc.anno -remove -protocol refGene,popfreq_max_20150413,gnomad_genome,avsnp150,snp138NonFlagged,dbnsfp33a,cosmic94,clinvar_20210501,intervar_20170202,icgc28 -operation g,f,f,f,f,f,f,f,f,f -nastring . -vcfinput --thread 40
  102. #5.2先拆分再标准化对齐
  103. #vt decompose ${outputdir}/${sample}.merge.Somatic.hc.combind.pass.vcf |vt normalize - -r ${hg19} -o ${outputdir}/${sample}.merge.Somatic.hc.combind.pass.norm.vcf
  104. conda deactivate
  105. #5.3对经过标准化的进行vep注释
  106. source /home/liuxiangqiong/miniconda3/bin/activate ensemble-vep
  107. PERL5LIB=/home/liuxiangqiong/miniconda3/envs/ensemble-vep/share/ensembl-vep-105.0-1/Bio/EnsEMBL/Variation/Utils/DB/HTS/Faidx
  108. export PERL5LIB=$PERL5LIB
  109. inputdir0=${outputdir}/${sample}.merge.Somatic.hc.combind.pass.vcf
  110. outdir1_0=${outputdir}/${sample}.merge.Somatic.hc.combind.pass.norm.vepanno.vcf
  111. vep --cache --fork 16 \
  112. -i ${inputdir0} \
  113. -o ${outdir1_0} \
  114. --assembly GRCh37 \
  115. --cache_version 104 \
  116. --dir_cache /home/liuxiangqiong/miniconda3/share/ensembl-vep-88.9-0/hg19 \
  117. --refseq \
  118. --canonical \
  119. --offline \
  120. --hgvs \
  121. --fasta /cgdata/Database/GATK/b37/human_g1k_v37_decoy.fasta \
  122. --hgvsg \
  123. --max_af \
  124. --check_existing \
  125. --numbers \
  126. --symbol \
  127. --canonical \
  128. --offline \
  129. -vcf \
  130. --use_given_ref \
  131. --af_gnomad \
  132. --check_existing
  133. #5.4对vep的再进行annovar注释
  134. outdir2_0=${outputdir}/${sample}.merge.Somatic.hc.combind.pass.norm.vepanno.annovar
  135. perl /cgdata/CGTools/soft/src/annovar_20200608/table_annovar.pl ${outdir1_0} /cgdata/soft/src/annovar.archive/DB/ -buildver hg19 -out ${outdir2_0} -remove -protocol refGene,popfreq_max_20150413,gnomad_genome,avsnp150,snp138NonFlagged,dbnsfp33a,cosmic94,clinvar_20220829,intervar_20170202,icgc28,exac03,esp6500siv2_all -operation g,f,f,f,f,f,f,f,f,f,f,f -nastring . -vcfinput --thread 40
  136. ###############################6.删除中间文件
  137. #rm -rf ${outputdir}/${normal}.pileup
  138. #rm -rf ${outputdir}/${tumor}.pileup
  139. rm -rf ${outputdir}/${sample}.merge.Somatic.hc.readcount
  140. conda deactivate
  141. source /home/liuxiangqiong/miniconda3/bin/activate base
  142. #对varscan的结果进行过滤
  143. python3 /cgdata/liuxiangqiong/work62pancancer/Client/v0/script/20220705/datafile_somatic_filter_varscan_v0_20220929_finish.py -i ${inputpath} -s ${sample}
  144. ##对varscan和vardict的方法结合获得最后的突变
  145. #python3 /cgdata/liuxiangqiong/work62pancancer/Client/v0/script/20220705/datafile_somatic_filter_mergeresult_v0_20220929_finish.py -i ${inputpath} -s ${sample}
  146. #########################################################################原始的结果进行合并并注释#####################
  147. ##对原始的结果进行合并并注释
  148. less ${outputdir}/${sample}.snp.vcf | grep -vE "^#" > ${outputdir}/${sample}.merge.Somatic.vcf
  149. less ${outputdir}/${sample}.indel.vcf | grep -vE "^#" >> ${outputdir}/${sample}.merge.Somatic.vcf
  150. #3.3 将邻近的位点进行合并#3.3 将邻近的位点进行合并
  151. #python3 /cgdata/liuxiangqiong/work62pancancer/Client/v0/script/complex_variant_new.py -i ${outputdir}/${sample}.merge.Somatic.vcf -b ${bam_dir}/${tumor}_clean.bam -f ${hg19} -mode 2 -n 10 -p 0.5 -o ${outputdir}/${sample}.merge.Somatic.combind1.vcf
  152. #grep "^#" ${outputdir}/${sample}.snp.vcf >${outputdir}/${sample}.merge.Somatic.combind.vcf
  153. #less ${outputdir}/${sample}.merge.Somatic.combind1.vcf >>${outputdir}/${sample}.merge.Somatic.combind.vcf
  154. #rm -rf ${outputdir}/${sample}.merge.Somatic.combind1.vcf
  155. ##将VCF按照染色体进行拆分
  156. python3 /cgdata/liuxiangqiong/work62pancancer/Client/v0/script/20220705/vcfsplit_v0_20220929_finish.py -i ${outputdir}/${sample}.merge.Somatic.vcf
  157. fun() {
  158. hg19=/cgdata/Database/GATK/b37/human_g1k_v37_decoy.fasta
  159. python3 /cgdata/liuxiangqiong/work62pancancer/Client/v0/script/complex_variant_new.py -i ${file} -b ${bam_dir}/${tumor}_clean.bam -f ${hg19} -mode 2 -n 10 -p 0.5 -o ${file}_chr.vcf &
  160. wait
  161. echo "fun is end."
  162. }
  163. for file in ${outputdir}/${sample}.merge.Somatic_*.vcf;
  164. do
  165. fun ${tumor} ${file} ${bam_dir} &
  166. done
  167. wait
  168. echo "the vcfmergeing is finished"
  169. grep "^#" ${outputdir}/${sample}.snp.vcf >${outputdir}/${sample}.merge.Somatic.combind.vcf
  170. cat ${outputdir}/${sample}.merge.Somatic_*.vcf_chr.vcf>>${outputdir}/${sample}.merge.Somatic.combind.vcf
  171. rm -rf ${outputdir}/${sample}.merge.Somatic_*.vcf
  172. rm -rf ${outputdir}/${sample}.merge.Somatic_*.vcf_chr.vcf
  173. #perl /cgdata/CGTools/soft/src/annovar_20200608/table_annovar.pl ${outputdir}/${sample}.merge.Somatic.combind.vcf /cgdata/soft/src/annovar.archive/DB/ -buildver hg19 -out ${outputdir}/${sample}.merge.Somatic.combind.anno -remove -protocol refGene,popfreq_max_20150413,gnomad_genome,avsnp150,snp138NonFlagged,dbnsfp33a,cosmic94,clinvar_20210501,intervar_20170202,icgc28 -operation g,f,f,f,f,f,f,f,f,f -nastring . -vcfinput --thread 40
  174. #5.2先拆分再标准化对齐
  175. vt decompose ${outputdir}/${sample}.merge.Somatic.combind.vcf |vt normalize - -r ${hg19} -o ${outputdir}/${sample}.merge.Somatic.combind.norm.vcf
  176. conda deactivate
  177. #5.3对经过标准化的进行vep注释
  178. source /home/liuxiangqiong/miniconda3/bin/activate ensemble-vep
  179. PERL5LIB=/home/liuxiangqiong/miniconda3/envs/ensemble-vep/share/ensembl-vep-105.0-1/Bio/EnsEMBL/Variation/Utils/DB/HTS/Faidx
  180. export PERL5LIB=$PERL5LIB
  181. inputdir=${outputdir}/${sample}.merge.Somatic.combind.norm.vcf
  182. outdir1=${outputdir}/${sample}.merge.Somatic.combind.norm.vepanno.vcf
  183. vep --cache --fork 16 \
  184. -i ${inputdir} \
  185. -o ${outdir1} \
  186. --assembly GRCh37 \
  187. --cache_version 104 \
  188. --dir_cache /home/liuxiangqiong/miniconda3/share/ensembl-vep-88.9-0/hg19 \
  189. --refseq \
  190. --canonical \
  191. --offline \
  192. --hgvs \
  193. --fasta /cgdata/Database/GATK/b37/human_g1k_v37_decoy.fasta \
  194. --hgvsg \
  195. --max_af \
  196. --check_existing \
  197. --numbers \
  198. --symbol \
  199. --canonical \
  200. --offline \
  201. -vcf \
  202. --use_given_ref \
  203. --af_gnomad \
  204. --check_existing
  205. #5.4对vep的再进行annovar注释
  206. outdir2=${outputdir}/${sample}.merge.Somatic.combind.norm.vepanno.annovar
  207. perl /cgdata/CGTools/soft/src/annovar_20200608/table_annovar.pl ${outdir1} /cgdata/soft/src/annovar.archive/DB/ -buildver hg19 -out ${outdir2} -remove -protocol refGene,popfreq_max_20150413,gnomad_genome,avsnp150,snp138NonFlagged,dbnsfp33a,cosmic94,clinvar_20220829,intervar_20170202,icgc28,exac03,esp6500siv2_all -operation g,f,f,f,f,f,f,f,f,f,f,f -nastring . -vcfinput --thread 40
  208. conda deactivate