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

Changeset 7:2e497a770bca (2020-11-29)
Previous changeset 6:2b3e65a4252f (2019-01-16) Next changeset 8:5fab4f81391d (2021-09-11)
Commit message:
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tool_collections/snpsift/snpsift commit 200c7d062259a94a28c6a224586f59d1a5e08309"
modified:
snpSift_filter.xml
added:
test-data/test_set1.txt
test-data/test_set2.txt
b
diff -r 2b3e65a4252f -r 2e497a770bca snpSift_filter.xml
--- a/snpSift_filter.xml Wed Jan 16 15:35:26 2019 -0500
+++ b/snpSift_filter.xml Sun Nov 29 21:14:56 2020 +0000
[
b'@@ -1,4 +1,4 @@\n-<tool id="snpSift_filter" name="SnpSift Filter" version="@WRAPPER_VERSION@.galaxy0">\n+<tool id="snpSift_filter" name="SnpSift Filter" version="@WRAPPER_VERSION@.galaxy1">\n     <description>Filter variants using arbitrary expressions</description>\n     <macros>\n         <import>snpSift_macros.xml</import>\n@@ -8,54 +8,75 @@\n     <expand macro="version_command" />\n     <command><![CDATA[\n SnpSift -Xmx6G filter -f \'$input\' -e \'$exprFile\' $inverse\n-#if $filtering.mode == \'field\':\n-    #if $filtering.replace.pass:\n-        --pass\n-        #if $filtering.replace.filterId.strip():\n-            --filterId \'$filtering.replace.filterId\'\n-        #end if\n-    #end if\n-    #if $filtering.addFilter.strip():\n-        --addFilter \'$filtering.addFilter\'\n-    #end if\n-    #if $filtering.rmFilter.strip():\n-        --rmFilter \'$filtering.rmFilter\'\n-    #end if\n+#if str($filter_expression.type) == \'complex\':\n+    #for $set_file in $filter_expression.set:\n+        --set $set_file\n+    #end for\n+#end if\n+#if $filtering.mode == \'set_filter\':\n+    --filterID $filtering.filter_id\n+#elif $filtering.mode == \'remove_filter\':\n+    --rmFilter $filtering.rm_filter\n+#elif $filtering.mode == \'add_filter\':\n+    --addFilter $filtering.add_filter\n #end if\n > \'$output\'\n     ]]></command>\n     <configfiles>\n         <configfile name="exprFile">\n-$expr#slurp\n+$filter_expression.expr#slurp\n         </configfile>\n     </configfiles>\n     <inputs>\n-        <param name="input" type="data" format="vcf" label="Variant input file in VCF format"/>\n-        <param name="expr" type="text" label="Filter criteria" help="Need help? See below a few examples">\n-            <sanitizer sanitize="False"/>\n-        </param>\n-        <param name="inverse" type="boolean" truevalue="--inverse" falsevalue="" checked="false" label="Inverse filter" help="Show lines that do not match filter expression" />\n+        <param name="input" type="data" format="vcf" label="Input variant list in VCF format"/>\n+        <conditional name="filter_expression">\n+            <param name="type" type="select"\n+            label="Type of filter expression">\n+                <option value="simple">Simple expression</option>\n+                <option value="complex">Expression using value set(s)</option>\n+            </param>\n+            <when value="simple">\n+                <param name="expr" type="text" label="Filter criteria"\n+                help="Need help? See the tool help below for some examples.">\n+                    <sanitizer sanitize="False"/>\n+                </param>\n+            </when>\n+            <when value="complex">\n+                <param name="expr" type="text" label="Filter criteria"\n+                help="Need help? See the tool help below for some examples.">\n+                    <sanitizer sanitize="False"/>\n+                </param>\n+                <param name="set" type="data" format="txt" multiple="true" optional="False"\n+                label="Set value source"\n+                help="Select one or more datasets for construction of value sets. The datasets are supposed to specify one value per line. See also: the help section on Sets below." />\n+            </when>\n+        </conditional>\n+        <param argument="--inverse" type="boolean" truevalue="--inverse" falsevalue="" checked="false" label="Invert filter" help="Select variants that do not match the filter expression." />\n         <conditional name="filtering">\n             <param name="mode" type="select" label="Filter mode">\n-                <option value="entries" selected="true">Retain entries that pass filter, remove other entries</option>\n-                <option value="field">Change the FILTER field, but retain all entries</option>\n+                <option value="entries" selected="true">Retain selected variants, remove others</option>\n+                <option value="set_filter">Add a value to FILTER field of non-selected variants</option>\n+                <option value="remove_filter">Remove a val'..b'4 attribute in the INFO field through zero-based index-access to the multiple values)*::\n+\n+      (DP4[2] + DP4[3] >= 10)\n+\n+----\n+\n+Sets:\n+\n+The tool can construct sets of values for use in expressions from text files listing one value per line. Variants can then be filtered based on whether a given field in the variant record has a value that\'s contained in a set. For example, the expression::\n+\n+      ( ID in SET[2] )\n+\n+would filter variants based on whether their ID field value appears in the set parsed from the third dataset used for set construction (the first set can be addressed with index ``[0]``, the second with index ``[1]``, and so on).\n+\n+----\n+\n+Genotype-based filtering:\n+\n+Genotypes of specific samples can be accessed via zero-based indexing or via sample names.\n+\n+- *I want to keep samples where the genotype for the first sample is homozygous variant and the genotype for the second sample is reference*::\n+\n+      (isHom( GEN[0] ) & isVariant( GEN[0] ) & isRef( GEN[1] ))\n+\n+----\n+\n+Filtering based on SnpEff annotations (``ANN`` or ``EFF`` fields):\n+\n - *I want to filter lines with an ANN annotation EFFECT of \'frameshift_variant\' ( for vcf files using Sequence Ontology terms )*::\n \n       ( ANN[*].EFFECT has \'frameshift_variant\' )\n \n-  **Important** According to the specification, there can be more than one EFFECT separated by & (e.g. \'missense_variant&splice_region_variant\', thus using has operator is better than using equality operator (=). For instance \'missense_variant&splice_region_variant\' = \'missense_variant\' is false, whereas \'missense_variant&splice_region_variant\' has \'missense_variant\' is true.\n+  .. class:: infomark\n+\n+  According to the specification, there can be more than one EFFECT separated by ``&`` (e.g. ``\'missense_variant&splice_region_variant\'``), thus using the ``has`` operator is better than using the equality operator (``=``). For instance, ``\'missense_variant&splice_region_variant\' = \'missense_variant\'`` is false, whereas ``\'missense_variant&splice_region_variant\' has \'missense_variant\'`` is true.\n \n - *I want to filter lines with an EFF of \'FRAME_SHIFT\' ( for vcf files using Classic Effect names )*::\n \n       ( EFF[*].EFFECT = \'FRAME_SHIFT\' )\n \n-- *I want to filter out samples with quality less than 30*::\n \n-      ( QUAL > 30 )\n-\n-- *...but we also want InDels that have quality 20 or more*::\n-\n-      (( exists INDEL ) & (QUAL >= 20)) | (QUAL >= 30 )\n-\n-- *...or any homozygous variant present in more than 3 samples*::\n-\n-      (countHom() > 3) | (( exists INDEL ) & (QUAL >= 20)) | (QUAL >= 30 )\n+.. class:: infomark\n \n-- *...or any heterozygous sample with coverage 25 or more*::\n-\n-      ((countHet() > 0) & (DP >= 25)) | (countHom() > 3) | (( exists INDEL ) & (QUAL >= 20)) | (QUAL >= 30 )\n-\n-- *I want to keep samples where the genotype for the first sample is homozygous variant and the genotype for the second sample is reference*::\n+For information regarding HGVS and Sequence Ontology terms versus classic names:\n \n-      (isHom( GEN[0] ) & isVariant( GEN[0] ) & isRef( GEN[1] ))\n-\n-**For information regarding HGVS and Sequence Ontology terms versus classic names**:\n-\n-- http://snpeff.sourceforge.net/SnpEff_manual.html#cmdline for the options: -classic, -hgvs, and -sequenceOntology\n-- http://snpeff.sourceforge.net/SnpEff_manual.html#input for the table containing the classic name and sequence onology term for each effect\n+- https://pcingola.github.io/SnpEff/se_commandline/ for the options: ``-classic``, ``-hgvs``, and ``-sequenceOntology``\n+- https://pcingola.github.io/SnpEff/se_inputoutput/#effect-prediction-details for the table containing the classic name and sequence onology term for each effect\n \n @EXTERNAL_DOCUMENTATION@\n-- http://snpeff.sourceforge.net/SnpSift.html#filter\n+- https://pcingola.github.io/SnpEff/ss_filter/\n+\n+The second link in particular has further details and more examples about the tool\'s expression syntax.\n     ]]></help>\n     <expand macro="citations" />\n </tool>\n'
b
diff -r 2b3e65a4252f -r 2e497a770bca test-data/test_set1.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test_set1.txt Sun Nov 29 21:14:56 2020 +0000
b
@@ -0,0 +1,3 @@
+7268
+7283
+7335
b
diff -r 2b3e65a4252f -r 2e497a770bca test-data/test_set2.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test_set2.txt Sun Nov 29 21:14:56 2020 +0000
b
@@ -0,0 +1,2 @@
+12474
+12483