Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- prefix=$(echo "$1" | cut -f 1 -d '-')
- cores=$(nproc --all)
- if [ "$1" = "" ]
- then
- echo "Llamada incorrecta, debe indicar el nombre del archivo Input en la llamada al script."
- echo "Por ejemplo: ./script.sh 20190618-0-Input_R1_.fastq.gz"
- echo "Se debe poner los archivos de entrada en la ruta del usuario actual: ${HOME}"
- else
- if [ "$2" = "" ]
- then
- echo ""
- else
- cores=$2
- fi
- cd ${HOME}
- if [ $(dpkg-query -W -f='${Status}' samtools 2>/dev/null | grep -c "ok installed") -eq 0 ];
- then
- sudo apt install samtools;
- fi
- if [ $(dpkg-query -W -f='${Status}' curl 2>/dev/null | grep -c "ok installed") -eq 0 ];
- then
- sudo apt install curl;
- fi
- if [ $(dpkg-query -W -f='${Status}' bcftools 2>/dev/null | grep -c "ok installed") -eq 0 ];
- then
- sudo apt install bcftools;
- fi
- if test -f "$prefix-0-Input_R1_.fastq.gz"; then
- if test -f "bin/trimmomatic.jar"; then
- echo ""
- else
- echo " === Error en el preprocesado. El archivo bin/trimmomatic.jar no existe. Descargando... ==="
- curl -L https://github.com/timflutre/trimmomatic/archive/master.zip -o master.zip
- unzip master.zip
- cd trimmomatic-master
- make
- make install
- cp adapters/TruSeq3-SE.fa ${HOME}/
- cp adapters/TruSeq3-PE.fa ${HOME}/
- echo "=== Instalacion de Trimmomatic finalizada. ==="
- cd ${HOME}
- fi
- echo "=== Realizando preprocesado ==="
- echo ""
- echo "$cores"
- java -jar bin/trimmomatic.jar PE -basein $prefix-0-Input_R1_.fastq.gz -baseout $prefix-1-TRIM.fastq.gz ILLUMINACLIP:TruSeq3-PE.fa:2:30:10 LEADING:3
- if test -f "hg19.fa"; then
- echo ""
- else
- echo ""
- echo "No se ha encontrado el archivo hg19.fa, descargando..."
- echo ""
- wget http://hgdownload.soe.ucsc.edu/goldenPath/hg19/bigZips/hg19.fa.gz
- fi
- echo ""
- echo "=== Realizando alineamiento ==="
- echo ""
- if test -f "index/hg19_index.1.bt2"; then
- echo ""
- else
- echo ""
- echo "=== Archivos de referencia no encontrados. Este paso puede tardar unas horas ==="
- echo ""
- mkdir index
- bowtie2-build hg19.fa.gz index/hg19_index
- fi
- bowtie2 -x index/hg19_index -p $cores -1 $prefix-1-TRIM_1P.fastq.gz -2 $prefix-1-TRIM_2P.fastq.gz -S $prefix-2-BOWTIE.sam
- echo ""
- echo "=== Ordenando ==="
- echo ""
- samtools sort -@ $cores $prefix-2-BOWTIE.sam > $prefix-3-SAMTOOLSsort.bam
- echo ""
- echo "=== Indexando ==="
- echo ""
- samtools index -@ $cores $prefix-3-SAMTOOLSsort.bam
- echo "Indexado terminado."
- echo ""
- echo "=== Opcion BCFTOOLS: ==="
- echo ""
- bcftools mpileup -threads $cores -f hg19.fa $prefix-3-SAMTOOLSsort.bam | bcftools call -mv -Oz -o $prefix-4a-BCF.vcf.gz
- bcftools filter -threads $cores -i 'QUAL>=20 & DP>=10' $prefix-4a-BCF.vcf.gz > $prefix-4a-BCF_filt.vcf.gz
- echo ""
- echo "=== Opcion VARSCAN ==="
- echo ""
- if test -f "VarScan.v2.4.3.jar"; then
- echo ""
- else
- echo ""
- echo "=== No se ha encontrado el archivo VarScan.v2.4.3.jar, descargando... ==="
- echo ""
- wget https://github.com/dkoboldt/varscan/raw/master/VarScan.v2.4.3.jar
- fi
- echo "SNP + INDEL Variants"
- samtools mpileup -f hg19.fa $prefix-3-SAMTOOLSsort.bam | java -jar VarScan.v2.4.3.jar mpileup2cns -v --min-coverage 100 --min-reads2 4 --min-avg-qual 20 --min-var-freq 0.30 --output-vcf --variants > $prefix-4b-VSCANcns_filt.vcf
- echo "SNP Variants"
- samtools mpileup -f hg19.fa $prefix-3-SAMTOOLSsort.bam | java -jar VarScan.v2.4.3.jar mpileup2snp -v --min-coverage 100 --min-reads2 4 --min-avg-qual 20 --min-var-freq 0.30 --output-vcf --variants > $prefix-4b-VSCANcns_filt.vcf
- echo "INDEL Variants"
- samtools mpileup -f hg19.fa $prefix-3-SAMTOOLSsort.bam | java -jar VarScan.v2.4.3.jar mpileup2indel -v --min-coverage 100 --min-reads2 4 --min-avg-qual 20 --min-var-freq 0.30 --output-vcf --variants > $prefix-4b-VSCANcns_filt.vcf
- echo ""
- echo "=== Replacement of read groups in BAM file ==="
- echo ""
- if test -f "gatk-4.1.2.0/gatk-package-4.1.2.0-local.jar"; then
- echo ""
- else
- echo ""
- echo "=== No se ha encontrado el archivo gatk-package-4.1.2.0-local.jar, descargando... ==="
- echo ""
- wget https://github.com/broadinstitute/gatk/releases/download/4.1.2.0/gatk-4.1.2.0.zip
- unzip gatk-4.1.2.0.zip
- export PATH=$PATH:${HOME}/gatk-4.1.2.0/
- echo ""
- echo "Instalacion de GATK finalizada..."
- echo ""
- fi
- java -jar gatk-4.1.2.0/gatk-package-4.1.2.0-local.jar BaseRecalibrator -R hg19.fa -I $prefix-4c-GATKgroup.bam -known-sites All_20180423.vcf.gz -O $prefix-4c-GATKrecal.table
- java -jar gatk-4.1.2.0/gatk-package-4.1.2.0-local.jar CreateSequenceDictionary -R hg19.fa.gz -O hg19.dict
- java -jar gatk-4.1.2.0/gatk-package-4.1.2.0-local.jar AddOrReplaceReadGroups -I $prefix-3-SAMTOOLSsort.bam -O $prefix-4c-GATKgroup.bam -ID 1 -LB dna -PL illumina -PU UNKNOWN -SM $prefix-3-SAMTOOLSsort
- java -jar gatk-4.1.2.0/gatk-package-4.1.2.0-local.jar HaplotypeCaller -R hg19.fa -I $prefix-4c-GATKrecal.bam --genotyping-mode DISCOVERY -O $prefix-4c-GATKcns.vcf
- echo ""
- echo "=== Iniciando filtrado ==="
- echo ""
- java -jar gatk-4.1.2.0/gatk-package-4.1.2.0-local.jar SelectVariants -R hg19.fa -V $prefix-4c-GATKcns.vcf -O $prefix-4c-GATKsnp.vcf -select-type SNP
- java -jar gatk-4.1.2.0/gatk-package-4.1.2.0-local.jar VariantFiltration --filter-name "NO PASS" -filter "QD<2.0 || FS>60.0 || MQ<40.0|| MQRankSum<-12.5 ||ReadPosRankSum<-8.0" -R hg19.fa -V $prefix-4c-GATKsnp.vcf -O $prefix-4c-GATKsnp_filt.vcf
- java -jar gatk-4.1.2.0/gatk-package-4.1.2.0-local.jar SelectVariants -R hg19.fa -V $prefix-4c-GATKcns.vcf -O $prefix-4c-GATKindel.vcf -select-type INDEL
- java -jar gatk-4.1.2.0/gatk-package-4.1.2.0-local.jar VariantFiltration --filter-name "NO PASS" -filter "QD<2.0 || FS>200.0 || ReadPosRankSum<-20.0" -R hg19.fa -V $prefix-4c-GATKindel.vcf -O $prefix-4c-GATKindel_filt.vcf
- echo ""
- echo "=== Combinando ==="
- echo ""
- gatk MergeVcfs -I $prefix-4c-GATKsnp_filt.vcf -I $prefix-4c-GATKindel_filt.vcf -R hg19.fa -O $prefix-4c-GATKmerge.vcf
- gatk SelectVariants -R hg19.fa -V $prefix-4c-GATKmerge.vcf -O $prefix-4c-GATKmerge_pass.vcf -select 'vc.isNotFiltered()'
- echo ""
- echo "=== Uniendo VCFs ==="
- echo ""
- if test -f "GenomeAnalysisTK.jar"; then
- java -jar GenomeAnalysisTK.jar -T CombineVariants -R hg19.fa -minN 2 -V: $prefix-4a-BCF_filt.vcf -V: $prefix-4b-VSCANcns_filt.vcf -V: $prefix-4c-GATKmerge_pass.vcf -o $prefix-5_GATKunion.vcf
- echo "=== VCFs unidos, saliendo... ==="
- else
- echo ""
- echo "=== No se ha encontrado el archivo GenomeAnalysisTK.jar. Por favor descarguelo y ponga el jar en la carpeta ${HOME} ==="
- echo ""
- fi
- else
- echo "=== El archivo de entrada indicado no existe. Debe estar en la misma ruta del script ==="
- fi
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement