Mercurial > repos > iuc > data_manager_pangolin_data
diff data_manager/pangolin_data_dm.xml @ 0:40c380ea283f draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_pangolin_data commit 902cce06e30ffe8ccba5dc0c3b704eb39fb4c611
| author | iuc |
|---|---|
| date | Wed, 20 Jul 2022 21:02:02 +0000 |
| parents | |
| children | f0214079e0c7 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_manager/pangolin_data_dm.xml Wed Jul 20 21:02:02 2022 +0000 @@ -0,0 +1,141 @@ +<tool id="data_manager_pangolin_data" name="pangolin-data data manager" version="0.0.1+galaxy0" tool_type="manage_data" profile="20.01"> + <requirements> + <requirement type="package">python</requirement> + <requirement type="package" version="22.1.2">pip</requirement> + <requirement type="package" version="2.28.1">requests</requirement> + <requirement type="package" version="2.37.1">git</requirement> + <requirement type="package" version="3.2.0">git-lfs</requirement> + <requirement type="package" version="3.1.27">gitpython</requirement> + </requirements> + <macros> + <import>macros.xml</import> + </macros> + <command detect_errors="exit_code"><![CDATA[ + #set $dt_names = [] + #if str($pangolin_data.enable) == "latest" or str($pangolin_data.enable) == "versions" + #set $dt_names = $dt_names + ["pangolin_data"] + #end if + #if str($pangolin_constellations.enable) == "latest" or str($pangolin_constellations.enable) == "versions" + #set $dt_names = $dt_names + ["pangolin_constellations"] + #end if + #if str($pangolin_assignment.enable) == "latest" or str($pangolin_assignment.enable) == "versions" + #set $dt_names = $dt_names + ["pangolin_assignment"] + #end if + #for $dt_name in $dt_names + #set $data_table = $__app__.tool_data_tables.get($dt_name) + #if $data_table is not None and len($data_table.get_fields()) != 0 + #set $known_revisions = '--known_revisions=' + ','.join([row[0] for row in $data_table.get_fields()]) + #else + #set $known_revisions = '' + #end if + python '$__tool_directory__/pangolin_data_dm.py' + $known_revisions + #if $getVar($dt_name).enable == "latest" + --latest + #else if $getVar($dt_name).enable == "versions" + --version_compatibility_file '$getVar($dt_name).compatibility_file' + --versions=$getVar($dt_name).versions + #end if + '$dt_name' + datatable_cache.json + '${output_file}' && + #end for + cp datatable_cache.json '${output_file}' + ]]></command> + <inputs> + <expand macro="download_conditional" dt_name="pangolin_data" database_name="pangolin-data" software_name="pangolin" /> + <expand macro="download_conditional" dt_name="pangolin_constellations" database_name="constellations" software_name="scorpio" /> + <expand macro="download_conditional" dt_name="pangolin_assignment" database_name="pangolin-assignment" software_name="pangolin" /> + </inputs> + <outputs> + <data name="output_file" format="data_manager_json"/> + </outputs> + <tests> + <test expect_num_outputs="1"> + <conditional name="pangolin_data"> + <param name="enable" value="versions" /> + <param name="compatibility_file" ftype="csv" value="data_compatibility.csv" /> + <param name="versions" value="1.12" /> + </conditional> + <conditional name="pangolin_constellations"> + <param name="enable" value="versions" /> + <param name="compatibility_file" ftype="csv" value="data_compatibility.csv" /> + <param name="versions" value="0.1.10" /> + </conditional> + <conditional name="pangolin_assignment"> + <param name="enable" value="no" /> + </conditional> + <output name="output_file"> + <assert_contents> + <has_text text="pangolin-data v1.12" /> + <has_text text='"description": "constellations release v0.1.10"' /> + <has_text text='"min_scorpio_version": "0.3.17"' /> + <not_has_text text='"description": "pangolin-assignment' /> + </assert_contents> + </output> + </test> + <test expect_num_outputs="1"> + <conditional name="pangolin_data"> + <param name="enable" value="no" /> + </conditional> + <conditional name="pangolin_constellations"> + <param name="enable" value="no" /> + </conditional> + <conditional name="pangolin_assignment"> + <param name="enable" value="versions" /> + <param name="compatibility_file" ftype="csv" value="data_compatibility.csv" /> + <param name="versions" value="1.12" /> + </conditional> + <output name="output_file"> + <assert_contents> + <has_text text='"value": "v1.12"' /> + <has_text text='"min_pangolin_version": "4"' /> + <not_has_text text='"description": "constellations' /> + <not_has_text text='"description": "pangolin-data' /> + </assert_contents> + </output> + </test> + <test expect_failure="true"> + <conditional name="pangolin_data"> + <param name="enable" value="no" /> + </conditional> + <conditional name="pangolin_constellations"> + <param name="enable" value="no" /> + <param name="compatibility_file" ftype="csv" value="data_compatibility.csv" /> + <param name="versions" value="0.0.40" /> + </conditional> + <conditional name="pangolin_assignment"> + <param name="enable" value="no" /> + </conditional> + </test> + </tests> + <help><![CDATA[ + This data managers fetches models (from the pangolin-data_, + pangolin-assignment_ and constellations_ repositories) for the + pangolin_ SARS-CoV-2 lineage typing tool and updates the pangolin_data, + pangolin_assignment and pangolin_constellations data tables. + + The default is to fetch the latest version of the databases. If specific versions of databases + need to be installed, a version compatibility matrix needs to be provided to help choose + the versions available. This matrix is stored in a CSV file in the pangolin repository + and can be downloaded at this link_. When loading this file into Galaxy, the csv datatype + needs to be selected, because the automatic format detection code detects this file as type txt. + + **Note** that this data manager will only download database versions mentioned in the above + mentioned file. While effort is taken to ensure that this file is updated with each pangolin + database release, if that has not happened, the user of this data manager will need to provide + their own version compatibility matrix file in order to load the latest database release into Galaxy. + + The data manager will read the existing data tables and not re-download or replace databases + that are already present in those data tables. + + .. _pangolin-data: https://github.com/cov-lineages/pangolin-data + .. _pangolin-assignment: https://github.com/cov-lineages/pangolin-assignment + .. _constellations: https://github.com/cov-lineages/constellations + .. _pangolin: https://github.com/cov-lineages/pangolin + .. _link: https://raw.githubusercontent.com/cov-lineages/pangolin/master/pangolin/data/data_compatibility.csv + ]]></help> + <citations> + <citation type="doi">10.1093/ve/veab064</citation> + </citations> +</tool>
