Repository revision
19:af163c712539

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

bcftools merge tool metadata
Miscellaneous
Merge multiple VCF/BCF files from non-overlapping sample sets to create one multi-sample file
bcftools_merge
toolshed.g2.bx.psu.edu/repos/iuc/bcftools_merge/bcftools_merge/1.15.1+galaxy3
1.15.1+galaxy3
bcftools 2>&1 | grep 'Version:'
True
Version lineage of this tool (guids ordered most recent to oldest)
toolshed.g2.bx.psu.edu/repos/iuc/bcftools_merge/bcftools_merge/1.15.1+galaxy3 (this tool)
toolshed.g2.bx.psu.edu/repos/iuc/bcftools_merge/bcftools_merge/1.15.1+galaxy2
toolshed.g2.bx.psu.edu/repos/iuc/bcftools_merge/bcftools_merge/1.15.1+galaxy1
toolshed.g2.bx.psu.edu/repos/iuc/bcftools_merge/bcftools_merge/1.15.1+galaxy0
toolshed.g2.bx.psu.edu/repos/iuc/bcftools_merge/bcftools_merge/1.10
toolshed.g2.bx.psu.edu/repos/iuc/bcftools_merge/bcftools_merge/1.9+galaxy1
toolshed.g2.bx.psu.edu/repos/iuc/bcftools_merge/bcftools_merge/1.9
toolshed.g2.bx.psu.edu/repos/iuc/bcftools_merge/bcftools_merge/1.4.0
toolshed.g2.bx.psu.edu/repos/iuc/bcftools_merge/bcftools_merge/1.3.1
toolshed.g2.bx.psu.edu/repos/iuc/bcftools_merge/bcftools_merge/1.3.0
bcftools_merge
Requirements (dependencies defined in the <requirements> tag set)
name version type
bcftools 1.15.1 package
htslib 1.15.1 package
Additional information about this tool
export BCFTOOLS_PLUGINS=`which bcftools | sed 's,bin/bcftools,libexec/bcftools,'`;

  


## May need to symlink input if there is an associated
#set $input_vcfs = []
#set $vcfs_list_file = 'vcfs_list'
#for (i, input_file) in enumerate($input_files):
  #set $input_vcf = 'input' + str($i) + '.vcf.gz'
  #if $input_file.is_of_type('vcf')
    bgzip -c '$input_file' > $input_vcf &&
    bcftools index $input_vcf &&
  ##elif $input_file.is_of_type('vcf_bgzip') or $input_file.is_of_type('vcf.gz') -> REQUIRES  https://github.com/galaxyproject/galaxy/pull/14605
  #elif $input_file.is_of_type('vcf_bgzip') or $input_file.is_of_type('vcf.gz')
    ln -s '$input_file' $input_vcf &&
    #if $input_file.metadata.tabix_index:
      ln -s '${input_file.metadata.tabix_index}' ${input_vcf}.tbi &&
    #else
      bcftools index $input_vcf &&
    #end if
  #elif $input_file.is_of_type('bcf')
    #set $input_vcf = 'input' + str($i) + '.bcf.gz'
    ln -s '$input_file' $input_vcf &&
    #if $input_file.metadata.bcf_index:
      ln -s '${input_file.metadata.bcf_index}' ${input_vcf}.csi &&
    #else
      bcftools index $input_vcf &&
    #end if
  #end if
  echo '$input_vcf' >> $vcfs_list_file &&
  $input_vcfs.append($input_vcf)
#end for

  
#set $section = $sec_restrict


#set $regions_path = None
#if 'regions' in $section
  #if $section.regions.regions_src == 'regions_file' and $section.regions.regions_file:
    #if $section.regions.regions_file.ext.startswith('bed'):
      #set $regions_path = 'regions_file.bed'
      ln -s '$section.regions.regions_file' $regions_path &&
    #end if
  #end if
#end if

  

bcftools merge

## Header section
#set $section = $sec_header
${section.print_header}
#if $section.use_header:
  --use-header "${section.use_header}"
#end if

## Merge section
#set $section = $sec_merge
${section.force_samples}

#if $section.info_rules:
  --info-rules "${section.info_rules}"
#end if

#if $section.merge:
  --merge "${section.merge}"
  $section.no_index
#end if

#set $section = $sec_restrict

#if $section.apply_filters:
  --apply-filters '${section.apply_filters}'
#end if
  


#if $section.regions.regions_src == 'regions':
  #set $intervals = $section.regions.regions
  

#set $components = []
#for $i in $intervals:
  #set $chrom = str($i.chrom).strip()
  #set $start = str($i.start).strip()
  #set $stop = str($i.stop).strip()
  #if $start or $stop:
    $components.append($chrom + ':' + ($start or '0') + '-' + $stop)
  #else:
    $components.append($chrom)
  #end if
#end for
#set $intervals_spec = ','.join($components)

  
  --regions '$intervals_spec'
#elif $section.regions.regions_src == 'regions_file' and $section.regions.regions_file:
  #if $regions_path is not None:
    --regions-file '$regions_path'
  #else:
    --regions-file '$section.regions.regions_file'
  #end if
#end if
#if $section.regions_overlap
  --regions-overlap $section.regions_overlap
#end if


  


#if str($output_type) != "__none__":
  --output-type '${output_type}'
#end if
  

  --threads \${GALAXY_SLOTS:-4}
  

## Primary Input/Outputs

#echo ' '.join($input_vcfs)#
  
> '$output_file'

    
None
False
Functional tests
name inputs outputs required files
Test-1 input_files: ['merge.a.vcf', 'merge.b.vcf', 'merge.c.vcf']
sec_merge|force_samples: True
output_type: v
name: value
merge.a.vcf
merge.b.vcf
merge.c.vcf
value
Test-2 input_files: ['merge.2.a.vcf', 'merge.2.b.vcf']
sec_merge|force_samples: True
sec_merge|merge: none
output_type: v
name: value
merge.2.a.vcf
merge.2.b.vcf
value
Test-3 input_files: ['merge.2.a.vcf', 'merge.2.b.vcf']
sec_merge|force_samples: True
sec_merge|merge: both
output_type: v
name: value
merge.2.a.vcf
merge.2.b.vcf
value
Test-4 input_files: ['merge.2.a.vcf', 'merge.2.b.vcf']
sec_merge|force_samples: True
sec_merge|merge: all
output_type: v
name: value
merge.2.a.vcf
merge.2.b.vcf
value
Test-5 input_files: ['merge.3.a.vcf', 'merge.3.b.vcf']
sec_merge|force_samples: True
sec_merge|info_rules: TR:sum,TA:sum,TG:sum
output_type: v
name: value
merge.3.a.vcf
merge.3.b.vcf
value
Test-6 input_files: ['merge.4.a.vcf', 'merge.4.b.vcf']
sec_merge|force_samples: True
sec_merge|merge: id
sec_merge|no_index: True
output_type: v
name: value
merge.4.a.vcf
merge.4.b.vcf
value
Test-7 input_files: ['merge.4.a.vcf', 'merge.4.b.vcf']
sec_restrict|regions_overlap: 1
sec_merge|force_samples: True
sec_merge|merge: id
output_type: v
name: value
merge.4.a.vcf
merge.4.b.vcf
value