diff drhip.xml @ 0:dd2d60b55e0d draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/drhip commit 15c654c3d27df68a47483031961ace7f5b8d998d
author iuc
date Thu, 04 Dec 2025 15:05:26 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/drhip.xml	Thu Dec 04 15:05:26 2025 +0000
@@ -0,0 +1,265 @@
+<tool id="drhip" name="DRHIP" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@">
+    <description>Data Reduction for HyPhy with Inference Processing</description>
+    <macros>
+        <token name="@TOOL_VERSION@">0.1.4</token>
+        <token name="@VERSION_SUFFIX@">0</token>
+        <token name="@PROFILE@">25.0</token>
+    </macros>
+    <requirements>
+        <requirement type="package" version="@TOOL_VERSION@">drhip</requirement>
+    </requirements>
+    <version_command>drhip --version</version_command>
+    <command detect_errors="exit_code"><![CDATA[
+        mkdir -p hyphy_input
+
+        ## For each method, create directory + link files with pattern: gene.METHOD.json
+        #if $busted_files
+            && mkdir -p hyphy_input/BUSTED
+            #for $file in $busted_files
+                && ln -s '${file}' 'hyphy_input/BUSTED/${file.element_identifier}.BUSTED.json'
+            #end for
+        #end if
+
+        #if $fel_files
+            && mkdir -p hyphy_input/FEL
+            #for $file in $fel_files
+                && ln -s '${file}' 'hyphy_input/FEL/${file.element_identifier}.FEL.json'
+            #end for
+        #end if
+
+        #if $meme_files
+            && mkdir -p hyphy_input/MEME
+            #for $file in $meme_files
+                && ln -s '${file}' 'hyphy_input/MEME/${file.element_identifier}.MEME.json'
+            #end for
+        #end if
+
+        #if $prime_files
+            && mkdir -p hyphy_input/PRIME
+            #for $file in $prime_files
+                && ln -s '${file}' 'hyphy_input/PRIME/${file.element_identifier}.PRIME.json'
+            #end for
+        #end if
+
+        #if $relax_files
+            && mkdir -p hyphy_input/RELAX
+            #for $file in $relax_files
+                && ln -s '${file}' 'hyphy_input/RELAX/${file.element_identifier}.RELAX.json'
+            #end for
+        #end if
+
+        #if $contrastfel_files
+            && mkdir -p hyphy_input/CONTRASTFEL
+            #for $file in $contrastfel_files
+                && ln -s '${file}' 'hyphy_input/CONTRASTFEL/${file.element_identifier}.CONTRASTFEL.json'
+            #end for
+        #end if
+
+        ## Run DRHIP with tabular output
+        && drhip
+            --input hyphy_input
+            --output output_dir
+            --tabular
+    ]]></command>
+    <inputs>
+        <param name="busted_files" type="data" format="hyphy_results.json" multiple="true" optional="true" 
+               label="BUSTED results" 
+               help="HyPhy BUSTED JSON result(s). Element identifier is used as gene name."/>
+        <param name="fel_files" type="data" format="hyphy_results.json" multiple="true" optional="true" 
+               label="FEL results" 
+               help="HyPhy FEL JSON result(s). Element identifier is used as gene name."/>
+        <param name="meme_files" type="data" format="hyphy_results.json" multiple="true" optional="true" 
+               label="MEME results" 
+               help="HyPhy MEME JSON result(s). Element identifier is used as gene name."/>
+        <param name="prime_files" type="data" format="hyphy_results.json" multiple="true" optional="true" 
+               label="PRIME results" 
+               help="HyPhy PRIME JSON result(s). Element identifier is used as gene name."/>
+        <param name="relax_files" type="data" format="hyphy_results.json" multiple="true" optional="true" 
+               label="RELAX results" 
+               help="HyPhy RELAX JSON result(s). Required for comparison group analyses. Element identifier is used as gene name."/>
+        <param name="contrastfel_files" type="data" format="hyphy_results.json" multiple="true" optional="true" 
+               label="Contrast-FEL results" 
+               help="HyPhy Contrast-FEL result(s). Required for comparison group analyses. Element identifier is used as gene name."/>
+    </inputs>
+    <outputs>
+        <data name="combined_summary" format="tabular" from_work_dir="output_dir/combined_summary.tab" 
+              label="${tool.name} on ${on_string}: Combined Summary"/>
+        <data name="combined_sites" format="tabular" from_work_dir="output_dir/combined_sites.tab" 
+              label="${tool.name} on ${on_string}: Combined Sites"/>
+        <data name="combined_comparison_summary" format="tabular" from_work_dir="output_dir/combined_comparison_summary.tab" 
+              label="${tool.name} on ${on_string}: Combined Comparison Summary">
+            <filter>relax_files or contrastfel_files</filter>
+        </data>
+        <data name="combined_comparison_site" format="tabular" from_work_dir="output_dir/combined_comparison_site.tab" 
+              label="${tool.name} on ${on_string}: Combined Comparison Site">
+            <filter>relax_files or contrastfel_files</filter>
+        </data>
+    </outputs>
+    <tests>
+        <test expect_num_outputs="2">
+            <param name="busted_files" value="BUSTED/gene1.json" ftype="hyphy_results.json"/>
+            <param name="fel_files" value="FEL/gene1.json" ftype="hyphy_results.json"/>
+            <param name="meme_files" value="MEME/gene1.json" ftype="hyphy_results.json"/>
+            <param name="prime_files" value="PRIME/gene1.json" ftype="hyphy_results.json"/>
+            <output name="combined_summary" ftype="tabular">
+                <assert_contents>
+                    <has_text text="gene" />
+                    <has_text text="BUSTED" />
+                    <has_text text="gene1.json" />
+                    <has_text text="pval" />
+                    <has_text text="omega" />
+                    <has_n_lines n="2" />
+                    <has_n_columns n="9"/>
+                </assert_contents>
+            </output>
+            <output name="combined_sites" ftype="tabular">
+                <assert_contents>
+                    <has_text text="gene" />
+                    <has_text text="site" />
+                    <has_text text="gene1.json" />
+                    <has_text text="fel_selection" />
+                    <has_text text="meme_marker" />
+                    <has_text text="prime_marker" />
+                    <has_n_lines n="101" />
+                    <has_n_columns n="8"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="4">
+            <param name="busted_files" value="BUSTED/gene2.json" ftype="hyphy_results.json"/>
+            <param name="fel_files" value="FEL/gene2.json" ftype="hyphy_results.json"/>
+            <param name="meme_files" value="MEME/gene2.json" ftype="hyphy_results.json"/>
+            <param name="prime_files" value="PRIME/gene2.json" ftype="hyphy_results.json"/>
+            <param name="relax_files" value="RELAX/gene2.json" ftype="hyphy_results.json"/>
+            <param name="contrastfel_files" value="CONTRASTFEL/gene2.json" ftype="hyphy_results.json"/>
+            <output name="combined_summary" ftype="tabular">
+                <assert_contents>
+                    <has_text text="gene" />
+                    <has_text text="BUSTED" />
+                    <has_text text="RELAX" />
+                    <has_text text="gene2.json" />
+                    <has_text text="pval" />
+                    <has_text text="omega" />
+                    <has_n_lines n="2" />
+                    <has_n_columns n="12"/>
+                </assert_contents>
+            </output>
+            <output name="combined_sites" ftype="tabular">
+                <assert_contents>
+                    <has_text text="gene" />
+                    <has_text text="site" />
+                    <has_text text="gene2.json" />
+                    <has_text text="fel_selection" />
+                    <has_text text="meme_marker" />
+                    <has_text text="prime_marker" />
+                    <has_n_lines n="101" />
+                    <has_n_columns n="8"/>
+                </assert_contents>
+            </output>
+            <output name="combined_comparison_summary" ftype="tabular">
+                <assert_contents>
+                    <has_text text="gene" />
+                    <has_text text="comparison_group" />
+                    <has_text text="gene2.json" />
+                    <has_text text="Foreground" />
+                    <has_text text="Reference" />
+                    <has_text text="background" />
+                    <has_n_lines n="4" />
+                    <has_n_columns n="6"/>
+                </assert_contents>
+            </output>
+            <output name="combined_comparison_site" ftype="tabular">
+                <assert_contents>
+                    <has_text text="gene" />
+                    <has_text text="site" />
+                    <has_text text="comparison_group" />
+                    <has_text text="gene2.json" />
+                    <has_text text="cfel_beta" />
+                    <has_text text="Foreground" />
+                    <has_text text="Reference" />
+                    <has_n_lines n="301" />
+                    <has_n_columns n="8"/>
+                </assert_contents>
+            </output>
+        </test>
+    </tests>
+    <help><![CDATA[
+**DRHIP: Data Reduction for HyPhy with Inference Processing**
+
+Combines results from multiple HyPhy selection analysis methods into unified tabular files.
+
+-----
+
+**What it does**
+
+DRHIP takes JSON outputs from HyPhy selection analysis tools and creates summary tables that combine results across multiple genes and analysis methods.
+
+-----
+
+**Inputs**
+
+DRHIP expects HyPhy JSON result files from one or more of these methods:
+
+- **BUSTED** – Branch-site test for episodic diversifying selection
+- **FEL** – Fixed effects likelihood test for selection
+- **MEME** – Mixed effects model of evolution
+- **PRIME** – Property-informed models of evolution
+- **RELAX** (optional) – Test for relaxation/intensification of selection
+- **Contrast-FEL** (optional) – Compare selection between groups
+
+At least **one method must have at least one JSON input**. Individual method inputs are marked optional so that:
+
+- You can run DRHIP with any subset of methods (for example, only BUSTED+FEL), and
+- If a method fails for some genes but succeeds for others, you can still pass the successful results and DRHIP will report what it can from the available methods.
+
+You can provide:
+- Single datasets
+- Multiple datasets selected at once
+- Dataset collections (for workflow use); element identifiers are used as gene names.
+
+-----
+
+**Outputs**
+
+**Always generated (if corresponding inputs are provided):**
+- **Combined Summary** (`tabular`) – Gene-level statistics across all supplied methods
+- **Combined Sites** (`tabular`) – Site-level analysis results across all supplied methods
+
+**Generated when RELAX or Contrast-FEL results are provided:**
+- **Combined Comparison Summary** (`tabular`) – Group-specific statistics
+- **Combined Comparison Site** (`tabular`) – Group-specific site analysis
+
+-----
+
+**Typical usage patterns**
+
+- **Per-gene summary without branch-group comparisons:** provide any subset of BUSTED, FEL, MEME, PRIME results.
+- **Branch-group comparisons:** provide the main methods plus RELAX and/or Contrast-FEL to obtain comparison summary and site tables.
+
+-----
+
+**Workflow tips**
+
+- Connect HyPhy tool outputs directly to DRHIP inputs.
+- Gene names come from collection element names.
+- Rename collection elements to control gene names (for example, remove file extensions).
+- Works best with dataset mapping over collections.
+
+-----
+
+**More information**
+
+https://github.com/veg/DRHIP
+    ]]></help>
+    <citations>
+        <citation type="bibtex">
+@software{drhip2024,
+  author = {Callan, Danielle and Verdonk, Hannah and Kosakovsky Pond, Sergei L},
+  title = {DRHIP: Data Reduction for HyPhy with Inference Processing},
+  year = {2024},
+  url = {https://github.com/veg/DRHIP},
+  version = {@TOOL_VERSION@}
+}
+        </citation>
+    </citations>
+</tool>
\ No newline at end of file