Skip to content

Commit

Permalink
Galaxy tool configuration for single sample bcbio variant calling. Th…
Browse files Browse the repository at this point in the history
…anks to @jmchilton for advice
  • Loading branch information
chapmanb committed May 26, 2014
1 parent da7ba3a commit b8228ad
Show file tree
Hide file tree
Showing 2 changed files with 94 additions and 0 deletions.
19 changes: 19 additions & 0 deletions bcbio/upload/galaxy.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"""
import collections
import os
import shutil
import time

import bioblend
Expand All @@ -29,6 +30,24 @@ def update_file(finfo, sample_info, config):
if "dir" not in config:
raise ValueError("Galaxy upload requires `dir` parameter in config specifying the "
"shared filesystem path to move files to.")
if "outputs" in config:
_galaxy_tool_copy(finfo, config["outputs"])
else:
_galaxy_library_upload(finfo, sample_info, config)

def _galaxy_tool_copy(finfo, outputs):
"""Copy information directly to pre-defined outputs from a Galaxy tool.
XXX Needs generalization
"""
tool_map = {"align": "bam", "variants": "vcf.gz"}
for galaxy_key, finfo_type in tool_map.items():
if galaxy_key in outputs and finfo.get("type") == finfo_type:
shutil.copy(finfo["path"], outputs[galaxy_key])

def _galaxy_library_upload(finfo, sample_info, config):
"""Upload results to galaxy library.
"""
folder_name = "%s_%s" % (config["fc_date"], config["fc_name"])
storage_dir = utils.safe_makedir(os.path.join(config["dir"], folder_name))
if finfo.get("type") == "directory":
Expand Down
75 changes: 75 additions & 0 deletions config/galaxy/bcbio/variant.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
<tool id="bcbio_variant" name="Variant calling (bcbio-nextgen)"
version="0.7.9.1"
force_history_refresh="True">
<description>SNP and indel detection</description>
<requirements>
<requirement type="package" version="0.7.9">bcbio-nextgen</requirement>
</requirements>
<command>bcbio_nextgen.py $sample_config -n \${GALAXY_SLOTS:-1}</command>
<inputs>
<param name="name" type="text" value="sample1" label="Sample name"/>
<param name="input1" type="data" format="fastq,fastqsanger,bam"
label="First read in fastq format, or BAM file"/>
<param name="input2" type="data" format="fastq,fastqsanger"
label="Optional second read for paired end fastq input" optional="true"/>
<param name="genome_build" type="select" label="Genome build">
<options from_data_table="bwa_indexes">
<filter type="unique_value" column="0" />
</options>
</param>
<param name="aligner" type="select" label="Aligner">
<option value="bwa">bwa</option>
<option value="novoalign">novoalign</option>
</param>
<param name="variantcaller" type="select" label="Variant caller">
<option value="freebayes">FreeBayes</option>
<option value="gatk-haplotype">GATK HaplotypeCaller</option>
</param>
<param name="variant_regions" type="data" format="bed"
label="Regions for variant calling (BED file)" optional="true"/>
</inputs>
<outputs>
<data name="out_align" format="bam">
<action type="metadata" name="dbkey">
<option type="from_param" name="genome_build.fields" param_attribute="dbkey"/>
</action>
</data>
<data name="out_variants" format="vcf">
<action type="metadata" name="dbkey">
<option type="from_param" name="genome_build.fields" param_attribute="dbkey"/>
</action>
</data>
<!-- <data name="out_qc" format="pdf">
</data>
-->
</outputs>
<configfiles>
<configfile name="sample_config" filename="bcbio_sample.yaml">
upload:
method: galaxy
dir: final
outputs:
align: $out_align
variants: $out_variants
details:
- analysis: variant2
genome_build: $genome_build.fields.dbkey
files: [$input1, $input2]
description: $name
algorithm:
aligner: $aligner
mark_duplicates: true
recalibrate: false
realign: false
variantcaller: $variantcaller
platform: illumina
quality_format: Standard
variant_regions: $variant_regions
</configfile>
</configfiles>
<help>
SNP and indel variant calling using `bcbio-nextgen`_.

.. _bcbio-nextgen: https://github.com/chapmanb/bcbio-nextgen
</help>
</tool>

0 comments on commit b8228ad

Please sign in to comment.