Skip to content

Commit

Permalink
Update hamronization wraper (galaxyproject#5814)
Browse files Browse the repository at this point in the history
- Update to new version
- Add missing supported tools
- Use tool-based conditions in inputs
- Use input metadata for tools available in Galaxy
- Use change_format for output instead of filter and tests
  • Loading branch information
bebatut authored Mar 5, 2024
1 parent 61d055a commit b49fc15
Show file tree
Hide file tree
Showing 4 changed files with 593 additions and 159 deletions.
107 changes: 58 additions & 49 deletions tools/hamronization/hamronize_summarize.xml
Original file line number Diff line number Diff line change
@@ -1,82 +1,91 @@
<tool id="hamronize_summarize" name="hamronize: summarize" version="@TOOL_VERSION@+galaxy2" profile="@PROFILE@">
<description> harmorization reports</description>
<tool id="hamronize_summarize" name="hamronize summarize:" version="@TOOL_VERSION@+galaxy0" profile="@PROFILE@">
<description>Concatenate and summarize AMR detection reports</description>
<macros>
<import>macros.xml</import>
</macros>
<expand macro="bio_tools"/>
<expand macro="requirements" />
<expand macro="version_command" />
<command detect_errors="exit_code"><![CDATA[
#for $counter, $report in enumerate($reports):
#if $report.is_of_type('tsv', 'tabular'):
#set $ext = 'tsv'
#elif $report.is_of_type('json'):
#set $ext = 'json'
#end if
ln -s '$report' ./report_${counter}.${ext} &&
#end for
hamronize summarize
--summary_type $summary_type
#if $summary_type == "tsv"
--output output.tsv
#elif $summary_type == "json"
--output output.json
#else
--output output.html
#end if
./report_*
]]> </command>
#for $counter, $report in enumerate($reports):
#if $report.is_of_type('tsv', 'tabular'):
#set $ext = 'tsv'
#elif $report.is_of_type('json'):
#set $ext = 'json'
#end if
ln -s '$report' 'report_${counter}.${ext}' &&
#end for
hamronize
summarize
--summary_type '$summary_type'
--output '$output'
report_*
]]></command>
<inputs>
<param name="reports" type="data" multiple="true" format="tabular,json" label="Report files"/>
<param name="summary_type" type="select" label="Output format" multiple="false">
<option value="tsv">tsv</option>
<option value="json">json</option>
<option value="interactive">interactive</option>
<param argument="--summary_type" type="select" label="Output format" multiple="false">
<option value="tsv">Tabular</option>
<option value="json">JSON</option>
<option value="interactive">Interactive HTML</option>
</param>
</inputs>

<outputs>
<data format="tabular" name="output_tsv" label="${tool.name} on ${on_string}: Table" from_work_dir="output.tsv">
<filter>summary_type == "tsv"</filter>
</data>
<data format="json" name="output_json" label="${tool.name} on ${on_string}: JSON" from_work_dir="output.json">
<filter>summary_type == "json"</filter>
</data>
<data format="html" name="output_html" label="${tool.name} on ${on_string}: Interactive" from_work_dir="output.html">
<filter>summary_type == "interactive"</filter>
<data name="output" format="tabular" label="${tool.name} on ${on_string}: Concatenated and summarized reports" from_work_dir="output.tsv">
<change_format>
<when input="summary_type" value="json" format="json"/>
<when input="summary_type" value="interactive" format="html"/>
</change_format>
</data>
</outputs>
<tests>
<!-- tsv output -->
<test expect_num_outputs="1">
<param name="reports" value="hamronized_abricate.tsv,hamronized_abricate.json,hamronized_ariba.tsv,hamronized_ariba.json,hamronized_rgi.tsv,hamronized_rgi.json" />
<param name="summary_type" value="tsv" />
<output name="output_tsv" ftype="tabular" file="summary.tsv" />
<output name="output" ftype="tabular">
<assert_contents>
<has_n_lines n="155"/>
<has_n_columns n="37"/>
<has_text text="GCF_010120755.1_ASM1012075v1_genomic" />
<has_text text="ariba_report" />
<has_text text="rgi_report" />
</assert_contents>
</output>
</test>
<!-- json output -->
<test expect_num_outputs="1">
<param name="reports" value="hamronized_abricate.tsv,hamronized_abricate.json,hamronized_ariba.tsv,hamronized_ariba.json,hamronized_rgi.tsv,hamronized_rgi.json" />
<param name="summary_type" value="json" />
<output name="output_json" ftype="json">
<output name="output" ftype="json">
<assert_contents>
<has_text text="GCF_010120755.1_ASM1012075v1_genomic" />
<has_text text="H_NS.3000676.BA000007.3.1737690_1738104.5476" />
<has_text text="NODE_9_length_203843_cov_42.4911_20" />
<has_text text="ariba_report" />
<has_text text="rgi_report" />
</assert_contents>
</output>
</test>
<!-- html output -->
<test expect_num_outputs="1">
<param name="reports" value="hamronized_abricate.tsv,hamronized_abricate.json,hamronized_ariba.tsv,hamronized_ariba.json,hamronized_rgi.tsv,hamronized_rgi.json" />
<param name="summary_type" value="interactive" />
<output name="output" ftype="html">
<assert_contents>
<has_text text="GCF_010120755.1_ASM1012075v1_genomic" />
<has_text text="ariba_report" />
<has_text text="rgi_report" />
</assert_contents>
</output>
</test>
</tests>
<help>
<![CDATA[
**What it does**
This tool will take a list of report and create single sorted report in the specified format
just containing the unique entries across input reports. It can handle mixed json and tsv hamronized report formats
**Inputs**
A list of hamronize reports
]]>
</help>
<help><![CDATA[
**What it does**
This tool will take a list of report and create single sorted report in the specified format
just containing the unique entries across input reports. It can handle mixed json and tsv hamronized report formats
**Inputs**
A list of hamronize reports
]]></help>
<expand macro="citations"/>
</tool>
Loading

0 comments on commit b49fc15

Please sign in to comment.