changeset 0:75cc3fb4c10f draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mmseqs2_database commit 1400593429eb4e9c6e307df3621825a8b84a6fa7
author iuc
date Thu, 27 Mar 2025 14:37:32 +0000
parents
children 561c4b181bfa
files data_manager/data_manager_mmseqs2_download.xml data_manager_conf.xml test-data/mmseqs2_databases.loc.test tool-data/mmseqs2_databases.loc.sample tool_data_table_conf.xml.sample tool_data_table_conf.xml.test
diffstat 6 files changed, 199 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/data_manager_mmseqs2_download.xml	Thu Mar 27 14:37:32 2025 +0000
@@ -0,0 +1,160 @@
+<tool id="data_manager_mmseqs2_download" name="Download MMseqs2 databases" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" tool_type="manage_data" profile="22.05">
+    <description></description>
+    <macros>
+        <token name="@TOOL_VERSION@">15.6f452</token>
+        <token name="@VERSION_SUFFIX@">0</token>
+    </macros>
+    <requirements>
+        <requirement type="package" version="@TOOL_VERSION@">mmseqs2</requirement>
+    </requirements>
+    <command detect_errors="exit_code"><![CDATA[
+#set $database_name = str($database).split('/')[-1] if '/' in str($database) else str($database)
+
+mkdir -p '$out_file.extra_files_path'/'$database_name' &&
+mmseqs databases 
+        '$database' '$out_file.extra_files_path'/'$database_name'/database
+        'tmp'
+        --threads "\${GALAXY_SLOTS:-1}" &&
+cp '$dmjson' '$out_file'
+    ]]></command>
+     <configfiles>
+        <configfile name="dmjson"><![CDATA[
+#from datetime import date
+#set $database_name = str($database).split('/')[-1] if '/' in str($database) else str($database)
+{
+  "data_tables":{
+    "mmseqs2_databases":[
+      {
+        "value": "${database}-@TOOL_VERSION@-#echo date.today().strftime('%d%m%Y')#",
+        "name": "${database} #echo date.today().strftime('%d%m%Y')#",
+        "type": "${db_type}",
+        "taxonomy": "${db_taxonomy}",
+        "path": "$database_name",
+        "version": "@TOOL_VERSION@"
+      }
+    ]
+  }
+}]]>
+        </configfile>
+    </configfiles>
+    <inputs>
+        <conditional name="db_name">
+            <param argument="type" type="select" label="Type of Databases">
+                <option value="aminoacid">Aminoacid databases</option>
+                <option value="aminoacid_taxonomy">Aminoacid databases that can be used for taxonomy</option>
+                <option value="nucleotide">Nucleotide databases</option>
+                <option value="nucleotide_taxonomy">Nucleotide databases that can be used for taxonomy</option>
+                <option value="profile">Profile databases</option>
+            </param>
+            <when value="aminoacid">
+                <param name="db_type" value="aminoacid" type="hidden"/>
+                <param name="db_taxonomy" value="no" type="hidden"/>
+                <param name="database" type="select" label="MMseqs2 aminoacid databases">
+                    <option value="UniRef100" selected="true">UniRef100</option>
+                    <option value="UniRef90">UniRef90</option>
+                    <option value="UniRef50">UniRef50</option>
+                    <option value="UniProtKB">UniProtKB</option>
+                    <option value="UniProtKB/TrEMBL">TrEMBL (UniProtKB)</option>
+                    <option value="UniProtKB/Swiss-Prot">Swiss-Prot (UniProtKB)</option>
+                    <option value="NR">NR (Non-redundant protein sequences from GenPept, Swissprot, PIR, PDF, PDB, and NCBI RefSeq)</option>
+                    <option value="GTDB">GTDB (Genome Taxonomy Database)</option>
+                    <option value="PDB">PDB (The Protein Data Bank)</option>            
+                </param>
+            </when>
+            <when value="aminoacid_taxonomy">
+                <param name="db_type" value="aminoacid" type="hidden"/>
+                <param name="db_taxonomy" value="yes" type="hidden"/>
+                <param name="database" type="select" label="MMseqs2 aminoacid databases that can be used for taxonomy">
+                    <option value="UniRef100" selected="true">UniRef100</option>
+                    <option value="UniRef90">UniRef90</option>
+                    <option value="UniRef50">UniRef50</option>
+                    <option value="UniProtKB">UniProtKB</option>
+                    <option value="UniProtKB/TrEMBL">TrEMBL (UniProtKB)</option>
+                    <option value="UniProtKB/Swiss-Prot">Swiss-Prot (UniProtKB)</option>
+                    <option value="NR">NR (Non-redundant protein sequences from GenPept, Swissprot, PIR, PDF, PDB, and NCBI RefSeq)</option>
+                    <option value="GTDB">GTDB (Genome Taxonomy Database)</option>
+                </param>
+            </when>
+            <when value="nucleotide">
+                <param name="db_type" value="nucleotide" type="hidden"/>
+                <param name="db_taxonomy" value="no" type="hidden"/>
+                <param name="database" type="select" label="MMseqs2 nucleotide databases">
+                    <option value="SILVA">SILVA</option>
+                    <option value="Kalamari">Kalamari</option>
+                    <option value="NT">NT (Partially non-redundant nucleotide sequences from all traditional divisions of GenBank, EMBL, and DDBJ excluding GSS, STS, PAT, EST, HTG, and WGS)</option>
+                    <option value="Resfinder">Resfinder</option>
+                </param>
+            </when>
+            <when value="nucleotide_taxonomy">
+                <param name="db_type" value="nucleotide" type="hidden"/>
+                <param name="db_taxonomy" value="yes" type="hidden"/>
+                <param name="database" type="select" label="MMseqs2 nucleotide databases that can be used for taxonomy">
+                    <option value="SILVA">SILVA</option>
+                    <option value="Kalamari">Kalamari</option>
+                </param>
+            </when>
+            <when value="profile">
+                <param name="db_type" value="profile" type="hidden"/>
+                <param name="db_taxonomy" value="no" type="hidden"/>
+                <param name="database" type="select" label="MMseqs2 profile databases">
+                    <option value="PDB70">PDB70 (PDB clustered to 70% sequence identity)</option>
+                    <option value="Pfam-A.full">Pfam-A.full</option>
+                    <option value="Pfam-A.seed">Pfam-A.seed</option>
+                    <option value="Pfam-B">Pfam-B</option>
+                    <option value="CDD">CDD (Conserved Domain Database)</option>
+                    <option value="VOGDB">VOGDB (Virus Orthologous Groups)</option>
+                    <option value="dbCAN2">dbCAN2 (database of carbohydrate-active enzymes)</option>
+                </param>
+            </when>
+        </conditional>
+    </inputs>
+    <outputs>
+        <data name="out_file" format="data_manager_json" label="${tool.name}"/>
+    </outputs>
+    <tests>
+        <test expect_num_outputs="1">
+            <conditional name="db_name">
+                <param name="type" value="nucleotide_taxonomy" />
+                <param name="db_type" value="nucleotide" />
+                <param name="db_taxonomy" value="yes" />
+                <param name="database" value="SILVA" />
+            </conditional>
+            <output name="out_file">
+                <assert_contents>
+                    <has_text text='"mmseqs2_databases":'/>
+                    <has_text text='"version": "15.6f452"'/>
+                    <has_text_matching expression='"value": "SILVA-15.6f452-[0-9]{8}"'/>
+                    <has_text_matching expression='"name": "SILVA [0-9]{8}"'/>
+                    <has_text text='"type": "nucleotide"'/>
+                    <has_text text='"taxonomy": "yes"'/>
+                    <has_text text='"path": "SILVA"'/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <conditional name="db_name">
+                <param name="type" value="aminoacid_taxonomy" />
+                <param name="db_type" value="aminoacid" />
+                <param name="db_taxonomy" value="yes" />
+                <param name="database" value="UniProtKB/Swiss-Prot" />
+            </conditional>
+            <output name="out_file">
+                <assert_contents>
+                    <has_text text='"mmseqs2_databases":'/>
+                    <has_text text='"version": "15.6f452"'/>
+                    <has_text_matching expression='"value": "UniProtKB/Swiss-Prot-15.6f452-[0-9]{8}"'/>
+                    <has_text_matching expression='"name": "UniProtKB/Swiss-Prot [0-9]{8}"'/>
+                    <has_text text='"type": "aminoacid"'/>
+                    <has_text text='"taxonomy": "yes"'/>
+                    <has_text text='"path": "Swiss-Prot"'/>
+                </assert_contents>
+            </output>
+        </test>
+    </tests>
+    <help><![CDATA[
+This tool downloads databases that can be used with MMseqs2.
+    ]]></help>
+    <citations>
+        <citation type="doi">10.1038/nbt.3988</citation>
+    </citations>
+</tool>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager_conf.xml	Thu Mar 27 14:37:32 2025 +0000
@@ -0,0 +1,21 @@
+<data_managers>
+    <data_manager tool_file="data_manager/data_manager_mmseqs2_download.xml" id="mmseqs2_download_databases">
+        <data_table name="mmseqs2_databases">
+            <output>
+                <column name="value"/>
+                <column name="name"/>
+                <column name="type"/>
+                <column name="taxonomy"/>
+                <column name="path" output_ref="out_file">
+                    <move type="directory">
+                        <source>${path}</source>
+                        <target base="${GALAXY_DATA_MANAGER_DATA_PATH}">mmseqs2/${path}</target>
+                    </move>
+                    <value_translation>${GALAXY_DATA_MANAGER_DATA_PATH}/mmseqs2/${path}</value_translation>
+                    <value_translation type="function">abspath</value_translation>
+                </column>
+                <column name="version"/>
+            </output>
+        </data_table>
+    </data_manager>
+</data_managers>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/mmseqs2_databases.loc.test	Thu Mar 27 14:37:32 2025 +0000
@@ -0,0 +1,2 @@
+SILVA-15.6f452-10022025	SILVA 10022025	nucleotide	yes	/tmp/tmpepbr4_rb/galaxy-dev/tool-data/mmseqs2/SILVA	15.6f452
+UniProtKB/Swiss-Prot-15.6f452-10022025	UniProtKB/Swiss-Prot 10022025	aminoacid	yes	/tmp/tmpepbr4_rb/galaxy-dev/tool-data/mmseqs2/Swiss-Prot	15.6f452
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/mmseqs2_databases.loc.sample	Thu Mar 27 14:37:32 2025 +0000
@@ -0,0 +1,4 @@
+#This is a sample file distributed with Galaxy that enables tools
+#to use a directory of metagenomics files.  
+#file has this format (white space characters are TAB characters)
+#UniRef100-16102024	UniRef100 (MMseqs2)	UniRef100.15.6f452	/path/to/data   15.6f452	
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_data_table_conf.xml.sample	Thu Mar 27 14:37:32 2025 +0000
@@ -0,0 +1,6 @@
+<tables>
+    <table name="mmseqs2_databases" comment_char="#">
+        <columns>value, name, type, taxonomy, path, version</columns>
+        <file path="tool-data/mmseqs2_databases.loc"/>
+    </table>
+</tables>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_data_table_conf.xml.test	Thu Mar 27 14:37:32 2025 +0000
@@ -0,0 +1,6 @@
+<tables>
+    <table name="mmseqs2_databases" comment_char="#">
+        <columns>value, name, type, taxonomy, path, version</columns>
+        <file path="${__HERE__}/test-data/mmseqs2_databases.loc.test"/>
+    </table>
+</tables>
\ No newline at end of file