changeset 18:dd3622f501f3 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tool_collections/snpeff commit 680a6111d751031f02233715a529a336ad4b2bf4
author iuc
date Fri, 07 Sep 2018 10:30:41 -0400
parents 65ae79bddc69
children 36dc3690a82c
files snpeff_get_chr_names.xml
diffstat 1 files changed, 118 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/snpeff_get_chr_names.xml	Fri Sep 07 10:30:41 2018 -0400
@@ -0,0 +1,118 @@
+<tool id="snpEff_get_chr_names" name="SnpEff chromosome-info:" version="@wrapper_version@.galaxy1">
+    <description>list chromosome names/lengths</description>
+    <macros>
+        <import>snpEff_macros.xml</import>
+    </macros>
+    <requirements>
+        <expand macro="requirement" />
+    </requirements>
+    <expand macro="stdio" />
+    <expand macro="version_command" />
+    <command><![CDATA[
+      snpEff dump
+      #if $snpDb.genomeSrc == 'cached':
+        -dataDir ${snpDb.genomeVersion.fields.path}
+        $snpDb.genomeVersion
+      #elif $snpDb.genomeSrc == 'history':
+        -dataDir '${snpDb.snpeff_db.extra_files_path}'
+        '${snpDb.snpeff_db.metadata.genome_version}'
+      #elif $snpDb.genomeSrc == 'custom':
+          -dataDir '${snpDb.snpeff_db.extra_files_path}'
+          -configOption '${snpDb.snpeff_db.metadata.genome_version}'.genome='${snpDb.snpeff_db.metadata.genome_version}'
+          '${snpDb.snpeff_db.metadata.genome_version}'
+      #else
+        -download
+        '$snpDb.genome_version'
+      #end if
+      | awk '/# Chromosomes/{y=1;next}y' | grep "#" | grep -E "[0-9]" | awk 'BEGIN {err=1;} {c=$0;sub(/^[^a-zA-Z0-9_]+/, "", c) && err=0; sub(/[^a-zA-Z0-9_]+/, "\t", c) && err=0; sub(/[^0-9]*$/, "", c) && err=0; print c } END {exit err}' > '$chr_names'
+    ]]></command>
+    <inputs>
+        <conditional name="snpDb">
+            <param name="genomeSrc" type="select" label="Genome source">
+                <!-- These options are referenced in the help section of SnpEff download tool. If you change them, change help of SnpEff download as well -->
+                <option value="cached">Locally installed snpEff database</option>
+                <option value="history">Downloaded snpEff database in your history</option>
+                <option value="named">Download on demand</option>
+                <option value="custom">Custom snpEff database in your history</option>
+            </param>
+            <when value="cached">
+                <param name="genomeVersion" type="select" label="Genome">
+                    <help>This can only be used on built-in databases manually configured by your galaxy admin.</help>
+                    <options from_data_table="snpeffv_genomedb">
+                            <filter type="static_value" name="snpeff_version" value="@snpeff_version@" column="1"/>
+                            <filter type="unique_value" column="2" />
+                    </options>
+                </param>
+            </when>
+            <when value="history">
+                <param name="snpeff_db" type="data" format="snpeffdb" label="@snpeff_version@ Genome Data">
+                    <help>This can only be used on databases in your history that were downloaded using the snpEff download tool.</help>
+                    <options options_filter_attribute="metadata.snpeff_version" >
+                        <filter type="add_value" value="@snpeff_version@" />
+                    </options>
+                    <validator type="expression" message="This version of SnpEff will only work with @snpeff_version@ genome databases">value is not None and value.metadata.snpeff_version == "@snpeff_version@"</validator>
+                </param>
+            </when>
+            <when value="named">
+                <param name="genome_version" type="text" value="" label="Snpff Genome Version Name (e.g. GRCh38.76)">
+                    <help>The list of available databases can be obtained with 'SnpEff databases' tool. If the database name is not found, locate a database here and download it in your history.</help>
+                    <validator type="regex" message="A genome version name is required">\S+</validator>
+                </param>
+            </when>
+            <when value="custom">
+                <param name="snpeff_db" type="data" format="snpeffdb" label="@snpeff_version@ Genome Data">
+                    <help>This can only be used on databases in your history that were created using the snpEff build tool.</help>
+                    <options options_filter_attribute="metadata.snpeff_version" >
+                        <filter type="add_value" value="@snpeff_version@" />
+                    </options>
+                    <validator type="expression" message="This version of SnpEff will only work with @snpeff_version@ genome databases">value is not None and value.metadata.snpeff_version == "@snpeff_version@"</validator>
+                </param>
+            </when>
+        </conditional>
+    </inputs>
+    <outputs>
+        <data format="tabular" name="chr_names" label="Chromosome names and sizes"/>
+    </outputs>
+    <tests>
+        <test>
+            <param name="genomeSrc" value="named"/>
+            <param name="genome_version" value="Bacillus_subtilis_subsp_subtilis_str_168"/>
+            <output name="chr_names">
+                <assert_contents>
+                    <has_text text="Chromosome" />
+                    <has_text text="4215606" />
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_failure="True">
+            <param name="genomeSrc" value="named"/>
+            <param name="genome_version" value="should_not_match"/>
+        </test>
+    </tests>
+    <help><![CDATA[
+
+**What it does**
+
+This tool outputs a tab-delimited file of chromosome names and their lengths, as they are in the selected genome/SnpEff database.  The output can be used to validate and rename chromosomes in VCF files in order to annotate its records.
+
+Note, make sure that the genome you select from the snpEff database precisely matches the one used in your analysis.  As a cursory check, you can use the chromosome lengths in this output to match those in your reference, however the lengths can match, but the version may still differ.
+
+Known issue: this strategy will not work if more than 1 chromosome in the same genome has the same length.
+
+-------
+
+.. class:: infomark
+
+**The usage scenario**
+
+Suppose you want to use snpEff to annotate a VCF file that was generated using an mouse reference with a different chromosome naming convention than in the snpEff database. To do this you can:
+
+    #. Use `SnpEff databases` to find the precise genome name for mouse data (e.g. "mm10") as it appears in the snpEff database.
+    #. List the chromosome names using this tool.  Either select a built-in genome, one in your history, or select "Download on demand" and enter the genome version obtained in the previous step (which only actually downloads if snpEff doesn't already have it).
+    #. Check that the chromosomes in the SnpEff database are the same as the reference you used (e.g. as a cursory check, ensure the chromosome lengths reported from the SnpEff database match those of your reference).
+    #. Edit your vcf file to replace the chromosome names with the ones the SnpEff database uses.
+    #. Use **SnpEff eff** and supply the edited VCF file.
+
+    ]]></help>
+    <expand macro="citations" />
+</tool>