Repository revision
1:19481653a22f

Repository 'strelka_germline'
hg clone https://toolshed.g2.bx.psu.edu/repos/iuc/strelka_germline

Strelka Germline tool metadata
Miscellaneous
small variant caller for germline variation in small cohorts
strelka_germline
toolshed.g2.bx.psu.edu/repos/iuc/strelka_germline/strelka_germline/2.9.10+galaxy0
2.9.10+galaxy0
None
True
Version lineage of this tool (guids ordered most recent to oldest)
toolshed.g2.bx.psu.edu/repos/iuc/strelka_germline/strelka_germline/2.9.10+galaxy0 (this tool)
strelka_germline
Requirements (dependencies defined in the <requirements> tag set)
name version type
strelka 2.9.10 package
samtools 1.9 package
Additional information about this tool
## sanity check
    #if len($bam) > 1 and str($expert_settings.evs.selector) == "enableEVS" and $expert_settings.evs.reportEVSFeatures
        echo "Reporting of EVS features can only be used with a single input sample" 1>&2; exit 1
    #else
        ## initialize
        #set $bam_inputs = []
        #for $i, $s in enumerate($bam):
            #set $target_file = 'input_sample_%d.%s' % ($i, $s.ext)
            ln -s '$s' $target_file &&
            #if $s.is_of_type('bam')
                ln -s '$s.metadata.bam_index' ${target_file}.bai &&
            #elif $s.is_of_type('cram')
                ln -s '$s.metadata.cram_index' ${target_file}.crai &&
            #end if
            #silent $bam_inputs.extend(['--bam', $target_file])
        #end for
        #set $bam_spec = ' '.join($bam_inputs)
        ## Strelka requires both the --ploidy vcf and the --noCompress bed
        ## to be bgzipped and tabixed.
        ## Same for the --callRegions bed, but that's handled inside
        ## the shared INIT code.
        #if $pl.ploidy
            #if $pl.ploidy.ext == 'vcf'
                ln -s '$pl.ploidy' input_ploidy.vcf &&
                bgzip -c input_ploidy.vcf > input_ploidy.vcf.gz &&
                tabix -p vcf input_ploidy.vcf.gz &&
            #else
                ## File is bgzipped and tabixed already
                ## -> just symlink data and index
                ln -s '$pl.ploidy' input_ploidy.vcf.gz &&
                ln -s '$pl.ploidy.metadata.tabix_index' input_ploidy.vcf.gz.tbi &&
            #end if
        #end if
        #if $oo.gvcf.emit_gvcfs == 'yes' and $oo.gvcf.noCompress
            ln -s '$oo.gvcf.noCompress' input_nocompress.bed &&
            bgzip -c input_nocompress.bed > input_nocompress.bed.gz &&
            tabix -p bed input_nocompress.bed.gz &&
        #end if
        
        ##ln -s '$referenceFasta' './input_ref.fasta' &&
        ##samtools faidx './input_ref.fasta' &&

        ## Make all optional regions files available
        ## Note: all of these must be tabixed
        #set $reg_options = []
        #for $i, $sites in enumerate($forced_regions):
            #set $target_file = 'input_forcedgt_%d.vcf.gz' % $i
            #if $sites.whitelist.ext == 'vcf':
                bgzip -c '${sites.whitelist}' > $target_file &&
                tabix -p vcf $target_file &&
            #else:
                ln -s '${sites.whitelist}' $target_file &&
                ln -s '${sites.whitelist.metadata.tabix_index}' ${target_file}.tbi' &&
            #end if
            #if str($sites.use_whitelist_as) == 'indel_candidates':
                #silent $reg_options.extend(['--indelCandidates', $target_file])
            #else:
                #silent $reg_options.extend(['--forcedGT', $target_file])
            #end if
        #end for
        #if str($regions.restrict_to_region) == 'regions_from_file':
            #silent $reg_options.append('--callRegions')
            #set $target_file = 'input_callregions.bed.gz'
            #if $regions.callRegions.ext == 'bed':
                bgzip -c '$regions.callRegions' $target_file &&
                tabix -p bed $target_file &&
            else:
                ln -s '$regions.callRegions' $target_file &&
                ln -s '$regions.callRegions.tabix_index' ${target_file}.tbi &&
            #end if
            #silent $reg_options.append($target_file)
        #end if
        #set $region_spec = ' '.join($reg_options)
        #if str($ref_cond.ref_sel) == 'history':
            #set $reference_fasta_fn = 'input_ref.fasta'
            ln -s '$ref_cond.ref' $reference_fasta_fn &&
            samtools faidx $reference_fasta_fn &&
        #else
            #set $reference_fasta_fn = str($ref_cond.ref.fields.path)
        #end if
    

        ## create workflow
        configureStrelkaGermlineWorkflow.py
            $bam_spec
            #if str($pl.callContinuousVf)
                --callContinuousVf '$pl.callContinuousVf'
            #end if
            #if $pl.ploidy
                --ploidy input_ploidy.vcf.gz
            #end if
            #if $oo.gvcf.emit_gvcfs == 'yes' and $oo.gvcf.noCompress
                --noCompress input_nocompress.bed.gz
            #end if
            $expert_settings.s_e_e
            
        --config='$config_file'
        $optimization
        #if str($expert_settings.evs.selector) == "disableEVS"
            --disableEVS
        #else
            #if $expert_settings.evs.snvScoringModelFile
                --snvScoringModelFile '$expert_settings.evs.snvScoringModelFile'
            #end if
            #if $expert_settings.evs.indelScoringModelFile
                --indelScoringModelFile '$expert_settings.evs.indelScoringModelFile'
            #end if
            $expert_settings.evs.reportEVSFeatures
        #end if
        $region_spec
        --referenceFasta '${reference_fasta_fn}'
        --runDir results &&
    

        ## run workflow
        
        results/runWorkflow.py
            -m local
            -j \${GALAXY_SLOTS:-2}
            -g \${GALAXY_MEMORY_MB:-8192}
    

        ## decompress results
        #if $oo.vcf_type == "decompressed"
            ## we decompress just the main variants file
            ## per-sample gvcf files are always emitted as a collection of
            ## compressed files.
            && bgzip -d results/results/variants/variants.vcf.gz
            && mv results/results/variants/variants.vcf results/results/variants/variants_out
        #else
            && mv results/results/variants/variants.vcf.gz results/results/variants/variants_out
        #end if
    #end if
    
None
False
Functional tests
name inputs outputs required files
Test-1 bam: ['sample1.bam', 'sample2.bam', 'sample3.bam']
ref_cond|ref: hg98.fa
ref_cond|ref_sel: history
expert_settings|s_e_e: --disableSequenceErrorEstimation
oo|vcf_type: False
oo|gvcf|emit_gvcfs: yes
name: value
sample1.bam
sample2.bam
sample3.bam
hg98.fa
value
Test-2 bam: ['sample1.cram', 'sample2.cram']
ref_cond|ref: hg98.fa
ref_cond|ref_sel: history
expert_settings|s_e_e: --disableSequenceErrorEstimation
oo|vcf_type: True
name: value
sample1.cram
sample2.cram
hg98.fa
value
Test-3 bam: ['sample1.cram', 'sample2.cram']
ref_cond|ref: hg98.fa
ref_cond|ref_sel: history
optimization: --rna
pl|callContinuousVf: Chr1
oo|vcf_type: False
oo|gvcf|emit_gvcfs: yes
strelka|minMapq: 21
strelka|maxIndelSize: 51
name: value
sample1.cram
sample2.cram
hg98.fa
value