diff --git a/variants/cnvkit.sh b/variants/cnvkit.sh index a728ad9cc23a8ad0d5015a0d2da36d82b2e6e7c5..c039906dcd21701313d13633bb7eeec54243e925 100755 --- a/variants/cnvkit.sh +++ b/variants/cnvkit.sh @@ -11,7 +11,7 @@ usage() { exit 1 } OPTIND=1 # Reset OPTIND -while getopts :b:p:n:t:r:uqh opt +while getopts :b:p:n:d:t:r:uqh opt do case $opt in b) sbam=$OPTARG;; @@ -33,6 +33,7 @@ fi # Check for mandatory options if [[ -z $pair_id ]] || [[ -z $sbam ]] then + "missing pair_id or bam" usage fi NPROC=$SLURM_CPUS_ON_NODE @@ -42,6 +43,7 @@ then fi if [[ -z $paneldir ]] then + echo "missing panel dir" usage fi if [[ -s "${index_path}/genome.fa" ]] diff --git a/variants/germline_vc.sh b/variants/germline_vc.sh index b8699b0272243106981dc2093a514fd64a7b8b9e..5e02d9ebfdbeeb79081387dab5c82632ab641d44 100755 --- a/variants/germline_vc.sh +++ b/variants/germline_vc.sh @@ -125,7 +125,7 @@ then for i in *.bam; do bamlist+="-I ${i} " done - gatk --java-options "-Xmx20g" Mutect2 $ponopt -R ${reffa} ${bamlist} --output ${pair_id}.mutect.vcf -RF AllowAllReadsReadFilter --independent-mates + gatk --java-options "-Xmx20g" Mutect2 $ponopt -R ${reffa} ${bamlist} --output ${pair_id}.mutect.vcf -RF AllowAllReadsReadFilter --independent-mates --tmp-dir `pwd` gatk --java-options "-Xmx20g" FilterMutectCalls -R ${reffa} -V ${pair_id}.mutect.vcf -O ${pair_id}.mutect.filt.vcf vcf-sort ${pair_id}.mutect.filt.vcf | vcf-annotate -n --fill-type | java -jar $SNPEFF_HOME/SnpSift.jar filter -p '(GEN[*].DP >= 10)' | bgzip > ${pair_id}.mutect.vcf.gz @@ -145,7 +145,12 @@ then done configManta.py $gvcflist --referenceFasta ${reffa} $mode --runDir manta manta/runWorkflow.py -m local -j $NPROC - configureStrelkaGermlineWorkflow.py $gvcflist --referenceFasta ${reffa} $mode --indelCandidates manta/results/variants/candidateSmallIndels.vcf.gz --runDir strelka + if [[ -f manta/results/variants/candidateSmallIndels.vcf.gz ]] + then + configureStrelkaGermlineWorkflow.py $gvcflist --referenceFasta ${reffa} $mode --indelCandidates manta/results/variants/candidateSmallIndels.vcf.gz --runDir strelka + else + configureStrelkaGermlineWorkflow.py $gvcflist --referenceFasta ${reffa} $mode --runDir strelka + fi strelka/runWorkflow.py -m local -j $NPROC bcftools norm -c s -f ${reffa} -w 10 -O z -o ${pair_id}.strelka2.vcf.gz strelka/results/variants/variants.vcf.gz fi diff --git a/variants/somatic_vc.sh b/variants/somatic_vc.sh index 0689f7ebf3f6ae1399ecf5eabff3d1efd97c6c3a..b5813c72391bff8277fc7fed88b4d155fbd9bb6b 100755 --- a/variants/somatic_vc.sh +++ b/variants/somatic_vc.sh @@ -97,7 +97,12 @@ if [ $algo == 'strelka2' ] mkdir manta strelka configManta.py --normalBam ${normal} --tumorBam ${tumor} --referenceFasta ${reffa} --runDir manta manta/runWorkflow.py -m local -j 8 - configureStrelkaSomaticWorkflow.py --normalBam ${normal} --tumorBam ${tumor} --referenceFasta ${reffa} --targeted --indelCandidates manta/results/variants/candidateSmallIndels.vcf.gz --runDir strelka + if [[ -f manta/results/variants/candidateSmallIndels.vcf.gz ]] + then + configureStrelkaSomaticWorkflow.py --normalBam ${normal} --tumorBam ${tumor} --referenceFasta ${reffa} --targeted --indelCandidates manta/results/variants/candidateSmallIndels.vcf.gz --runDir strelka + else + configureStrelkaSomaticWorkflow.py --normalBam ${normal} --tumorBam ${tumor} --referenceFasta ${reffa} --targeted --indelCandidates --runDir strelka + fi strelka/runWorkflow.py -m local -j 8 vcf-concat strelka/results/variants/*.vcf.gz | vcf-annotate -n --fill-type -n |vcf-sort |java -jar $SNPEFF_HOME/SnpSift.jar filter "(GEN[*].DP >= 10)" | perl -pe "s/TUMOR/${tid}/g" | perl -pe "s/NORMAL/${nid}/g" |bgzip > ${pair_id}.strelka2.vcf.gz fi diff --git a/variants/svcalling.sh b/variants/svcalling.sh index 17830e7b4a84c303bffbf63a041495cd58588287..59119ba234bea4693c1247063361ec3837bd23ce 100755 --- a/variants/svcalling.sh +++ b/variants/svcalling.sh @@ -11,7 +11,7 @@ usage() { exit 1 } OPTIND=1 # Reset OPTIND -while getopts :r:p:b:i:x:y:n:l:a:h opt +while getopts :r:p:b:i:x:y:n:l:f:a:h opt do case $opt in r) index_path=$OPTARG;; @@ -22,6 +22,7 @@ do a) method=$OPTARG;; x) tid=$OPTARG;; y) nid=$OPTARG;; + f) filter=1;; l) bed=$OPTARG;; h) usage;; esac @@ -96,8 +97,7 @@ then bcftools concat -a -O v delly_dup.bcf delly_inv.bcf delly_tra.bcf delly_del.bcf delly_ins.bcf| vcf-sort -t temp > delly.vcf bgzip delly.vcf java -Xmx10g -jar $SNPEFF_HOME/snpEff.jar -no-intergenic -lof -c $SNPEFF_HOME/snpEff.config ${snpeffgeno} delly.vcf | bgzip > ${pair_id}.delly.vcf.gz -fi -if [[ $method == 'svaba' ]] +elif [[ $method == 'svaba' ]] then if [[ -n ${normal} ]] then @@ -105,20 +105,19 @@ then else svaba run -p $NPROC -G ${reffa} -t ${sbam} -a ${pair_id} fi + #Create SV FILE vcf-concat ${pair_id}.svaba.unfiltered*sv.vcf | vcf-sort -t temp > svaba.sv.vcf cat svaba.sv.vcf | java -jar $SNPEFF_HOME/SnpSift.jar filter "( GEN[*].AD[0] >= 20 )" | bgzip > svaba.vcf.gz tabix svaba.sv.vcf.gz bash $baseDir/norm_annot.sh -r ${index_path} -p svaba.sv -v svaba.sv.vcf.gz -s java -Xmx10g -jar $SNPEFF_HOME/snpEff.jar -no-intergenic -lof -c $SNPEFF_HOME/snpEff.config ${snpeffgeno} svaba.sv.norm.vcf | bgzip > ${pair_id}.svaba.sv.vcf.gz + #Create INDEL FILE vcf-concat ${pair_id}.svaba.unfiltered*indel.vcf | vcf-sort -t temp > svaba.indel.vcf cat svaba.indel.vcf | java -jar $SNPEFF_HOME/SnpSift.jar filter "( GEN[*].AD[0] >= 20 )" | bgzip > svaba.indel.vcf.gz tabix svaba.indel.vcf.gz bash $baseDir/norm_annot.sh -r ${index_path} -p svaba.indel -v svaba.indel.vcf.gz -s java -Xmx10g -jar $SNPEFF_HOME/snpEff.jar -no-intergenic -lof -c $SNPEFF_HOME/snpEff.config ${snpeffgeno} svaba.indel.norm.vcf | bgzip > ${pair_id}.svaba.vcf.gz - -fi - -if [[ $method == 'lumpy' ]] +elif [[ $method == 'lumpy' ]] then #MAKE FILES FOR LUMPY samtools sort -@ $NPROC -n -o namesort.bam ${sbam} @@ -137,8 +136,7 @@ then speedseq sv -t $NPROC -o lumpy -R ${reffa} -B ${sbam} -D discordants.bam -S splitters.bam -x ${index_path}/exclude_alt.bed fi java -Xmx10g -jar $SNPEFF_HOME/snpEff.jar -no-intergenic -lof -c $SNPEFF_HOME/snpEff.config ${snpeffgeno} lumpy.sv.vcf.gz | java -jar $SNPEFF_HOME/SnpSift.jar filter " ( GEN[*].DV >= 20 )" | bgzip > ${pair_id}.lumpy.vcf.gz -fi -if [[ $method == 'pindel' ]] +elif [[ $method == 'pindel' ]] then module load pindel/0.2.5-intel genomefiledate=`find ${reffa} -maxdepth 0 -printf "%TY%Tm%Td\n"` @@ -157,12 +155,18 @@ then java -Xmx10g -jar $SNPEFF_HOME/snpEff.jar -no-intergenic -lof -c $SNPEFF_HOME/snpEff.config ${snpeffgeno} ${pair_id}.indel.vcf |bgzip > ${pair_id}.pindel_indel.vcf.gz java -Xmx10g -jar $SNPEFF_HOME/snpEff.jar -no-intergenic -lof -c $SNPEFF_HOME/snpEff.config ${snpeffgeno} ${pair_id}.dup.vcf | bedtools intersect -header -b ${bed} -a stdin | bgzip > ${pair_id}.pindel_tandemdup.vcf.gz java -Xmx10g -jar $SNPEFF_HOME/snpEff.jar -no-intergenic -lof -c $SNPEFF_HOME/snpEff.config ${snpeffgeno} ${pair_id}.sv.vcf | bgzip > ${pair_id}.pindel_sv.vcf.gz -fi -if [[ $method == 'itdseek' ]] +elif [[ $method == 'itdseek' ]] then stexe=`which samtools` samtools view -@ $NPROC -L ${bed} ${sbam} | itdseek.pl --refseq ${reffa} --samtools ${stexe} --bam ${sbam} | vcf-sort | bedtools intersect -header -b ${bed} -a stdin | bgzip > ${pair_id}.itdseek.vcf.gz - + tabix ${pair_id}.itdseek.vcf.gz bcftools norm --fasta-ref $reffa -m - -Ov ${pair_id}.itdseek.vcf.gz | java -Xmx30g -jar $SNPEFF_HOME/snpEff.jar -no-intergenic -lof -c $SNPEFF_HOME/snpEff.config ${snpeffgeno} - |bgzip > ${pair_id}.itdseek_tandemdup.vcf.gz + if [[ $filter == 1 ]] + then + perl $baseDir/filter_itdseeker.pl -t ${pair_id} -d ${pair_id}.itdseek_tandemdup.vcf.gz + mv ${pair_id}.itdseek_tandemdup.vcf.gz ${pair_id}.itdseek_tandemdup.unfilt.vcf.gz + mv ${pair_id}.itdseek_tandemdup.pass.vcf ${pair_id}.itdseek_tandemdup.vcf + bgzip ${pair_id}.itdseek_tandemdup.vcf + fi fi