Repository 'data_manager_eggnog_mapper_abspath'
hg clone https://toolshed.g2.bx.psu.edu/repos/galaxyp/data_manager_eggnog_mapper_abspath

Changeset 0:9d5f039c637f (2019-11-11)
Next changeset 1:269f0970d762 (2020-09-05)
Commit message:
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
added:
data_manager/data_manager_eggnog.py
data_manager/data_manager_eggnog.xml
data_manager/eggnog_macros.xml
data_manager_conf.xml
test-data/cached_locally/eggnog.db
test-data/cached_locally/eggnog_mapper_db.loc
test-data/cached_locally/eggnog_mapper_hmm_dbs.loc
tool-data/eggnog_mapper_db.loc.sample
tool-data/eggnog_mapper_hmm_dbs.loc.sample
tool_data_table_conf.xml.sample
tool_data_table_conf.xml.test
b
diff -r 000000000000 -r 9d5f039c637f data_manager/data_manager_eggnog.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/data_manager_eggnog.py Mon Nov 11 11:49:47 2019 -0500
[
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+
+from __future__ import print_function
+
+import argparse
+import json
+import os.path
+import sqlite3
+import sys
+from sqlite3 import OperationalError
+
+
+def _get_db_version(sqlitedb_path):
+    version = '4.5'
+    try:
+        query = 'select version from version'
+        conn = sqlite3.connect(sqlitedb_path)
+        cur = conn.cursor()
+        cur.execute(query)
+        version = cur.fetchone()[0]
+    except OperationalError as e:
+        print('Assuming eggnog version %s because %s   %s' %
+              (version, sqlitedb_path, e), file=sys.stderr)
+    return version
+
+
+def main():
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--config_file')
+    parser.add_argument('--install_path')
+    parser.add_argument('--dbs', default='')
+    args = parser.parse_args()
+
+    eggnog_db_path = os.path.join(args.install_path, 'eggnog.db')
+    if not os.path.exists(eggnog_db_path):
+        print('Can not open: %s' % eggnog_db_path, file=sys.stderr)
+        exit(1)
+    db_version = _get_db_version(eggnog_db_path)
+
+    # params = json.loads(open(args.config_file).read())
+    dm_dict = {}
+    dm_dict['data_tables'] = dm_dict.get('data_tables', {})
+    data_table = 'eggnog_mapper_db'
+    dm_dict['data_tables'][data_table]\
+        = dm_dict['data_tables'].get(data_table, [])
+    data_table_entry = dict(value=db_version, name=db_version,
+                            path=args.install_path)
+    dm_dict['data_tables'][data_table].append(data_table_entry)
+    data_table = 'eggnog_mapper_hmm_dbs'
+    dm_dict['data_tables'][data_table]\
+        = dm_dict['data_tables'].get(data_table, [])
+    if args.dbs:
+        dbs = [x.strip() for x in args.dbs.split(',')]
+        for db in dbs:
+            key = '%s_%s' % (db_version, db)
+            data_table_entry = dict(key=key, db_version=db_version,
+                                    value=db, name=db, path=db)
+            dm_dict['data_tables'][data_table].append(data_table_entry)
+
+    # save info to json file
+    open(args.config_file, 'wb').write(json.dumps(dm_dict))
+
+
+if __name__ == "__main__":
+    main()
b
diff -r 000000000000 -r 9d5f039c637f data_manager/data_manager_eggnog.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/data_manager_eggnog.xml Mon Nov 11 11:49:47 2019 -0500
[
@@ -0,0 +1,34 @@
+<tool id="data_manager_eggnog_abspath" name="EggNOG DB Download" version="@VERSION@.1" tool_type="manage_data">
+    <description>eggnog data to a specified directory</description>
+    <macros>
+        <import>eggnog_macros.xml</import>
+    </macros>
+    <expand macro="requirements"/>
+    <expand macro="version_command"/>
+    <command detect_errors="exit_code"><![CDATA[
+#set $install_path = $target_path
+@DOWNLOAD_CMD@
+    ]]></command>
+    <inputs>
+        <param name="target_path" type="text" value="" label="Download Destination" 
+            help="Full path to where the eggnod data should be installed.">
+            <validator type="regex" message="Must be an absolute path">^/.*$</validator>
+        </param>
+        <expand macro="data_manager_params"/>
+    </inputs>
+    <expand macro="data_manager_outputs"/>
+    <tests>
+        <expand macro="data_manager_test"/>
+    </tests>
+    <help><![CDATA[
+This tool downloads eggnog data using download_eggnog_data.py 
+and populates the data tables: eggnog_mapper_db and eggnog_mapper_hmm_dbs.
+The data is located at: http://eggnogdb.embl.de/download/emapperdb-4.5.1/
+The optional eggNOG HMM databases: http://eggnogdb.embl.de/download/emapperdb-4.5.1/hmmdb_levels/ 
+can vary from 1G to 80G in size.
+
+The data will be downloaded to the specified directory.  This allows adding hmmdb_levels to an existing download.  
+You should not mix eggnog data versions in the same directory.
+    ]]></help>
+    <expand macro="citations"/>
+</tool>
b
diff -r 000000000000 -r 9d5f039c637f data_manager/eggnog_macros.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/eggnog_macros.xml Mon Nov 11 11:49:47 2019 -0500
[
b'@@ -0,0 +1,173 @@\n+<?xml version="1.0"?>\n+<macros>\n+   <token name="@VERSION@">1.0.3</token>\n+   <xml name="citations">\n+        <citations>\n+            <citation type="doi">10.1093/nar/gkv1248</citation>\n+        </citations>\n+    </xml>\n+    <xml name="requirements">\n+        <requirements>\n+            <requirement type="package" version="@VERSION@">eggnog-mapper</requirement>\n+        </requirements>\n+    </xml>\n+    <xml name="version_command">\n+        <version_command>emapper.py --version</version_command>\n+    </xml>\n+    <xml name="data_manager_params">\n+        <param name="test" type="hidden" value="false" />\n+        <param name="diamond_database" type="boolean" truevalue="" falsevalue="-D" checked="true" label="Install the diamond database"/>\n+        <param argument="dbs" type="select" multiple="true" label="eggNOG HMM databases to download. If none are selected only diamond can be used\'">\n+            <option value="arch" selected="true">Archea  arch_1 (arch)</option>\n+            <option value="bact" selected="true">Bacteria bact_50 (bact)</option>\n+            <option value="euk" selected="true">Eukaryote euk_500 (euk)</option>\n+            <option value="NOG" selected="true">All organisms (NOG)</option>\n+            <option value="aciNOG">Acidobacteria (aciNOG)</option>\n+            <option value="acidNOG">Acidobacteriia (acidNOG)</option>\n+            <option value="acoNOG">Aconoidasida (acoNOG)</option>\n+            <option value="actNOG">Actinobacteria (actNOG)</option>\n+            <option value="agaNOG">Agaricales (agaNOG)</option>\n+            <option value="agarNOG">Agaricomycetes (agarNOG)</option>\n+            <option value="apiNOG">Apicomplexa (apiNOG)</option>\n+            <option value="aproNOG">Proteobacteria_alpha (aproNOG)</option>\n+            <option value="aquNOG">Aquificae (aquNOG)</option>\n+            <option value="arNOG">Archaea (arNOG)</option>\n+            <option value="arcNOG">Archaeoglobi (arcNOG)</option>\n+            <option value="artNOG">Arthropoda (artNOG)</option>\n+            <option value="arthNOG">Arthrodermataceae (arthNOG)</option>\n+            <option value="ascNOG">Ascomycota (ascNOG)</option>\n+            <option value="aveNOG">Aves (aveNOG)</option>\n+            <option value="bacNOG">Bacilli (bacNOG)</option>\n+            <option value="bactNOG">Bacteria (bactNOG)</option>\n+            <option value="bacteNOG">Bacteroidia (bacteNOG)</option>\n+            <option value="basNOG">Basidiomycota (basNOG)</option>\n+            <option value="bctoNOG">Bacteroidetes (bctoNOG)</option>\n+            <option value="biNOG">Bilateria (biNOG)</option>\n+            <option value="bproNOG">Proteobacteria_beta (bproNOG)</option>\n+            <option value="braNOG">Brassicales (braNOG)</option>\n+            <option value="carNOG">Carnivora (carNOG)</option>\n+            <option value="chaNOG">Chaetomiaceae (chaNOG)</option>\n+            <option value="chlNOG">Chlorobi (chlNOG)</option>\n+            <option value="chlaNOG">Chlamydiae (chlaNOG)</option>\n+            <option value="chloNOG">Chloroflexi (chloNOG)</option>\n+            <option value="chlorNOG">Chloroflexi (chlorNOG)</option>\n+            <option value="chloroNOG">Chlorophyta (chloroNOG)</option>\n+            <option value="chorNOG">Chordata (chorNOG)</option>\n+            <option value="chrNOG">Chromadorea (chrNOG)</option>\n+            <option value="cloNOG">Clostridia (cloNOG)</option>\n+            <option value="cocNOG">Coccidia (cocNOG)</option>\n+            <option value="creNOG">Crenarchaeota (creNOG)</option>\n+            <option value="cryNOG">Cryptosporidiidae (cryNOG)</option>\n+            <option value="cyaNOG">Cyanobacteria (cyaNOG)</option>\n+            <option value="cytNOG">Cytophagia (cytNOG)</option>\n+            <option value="debNOG">Debaryomycetaceae (debNOG)</option>\n+            <option value="defNOG">Deferribacteres (defNOG)</option>\n+            <option value="dehNOG">Dehalococcoidetes (dehNOG)</'..b'         <option value="lepNOG">Lepidoptera (lepNOG)</option>\n+            <option value="lilNOG">Liliopsida (lilNOG)</option>\n+            <option value="maNOG">Mammals (maNOG)</option>\n+            <option value="magNOG">Magnaporthales (magNOG)</option>\n+            <option value="meNOG">Animals (meNOG)</option>\n+            <option value="metNOG">Methanobacteria (metNOG)</option>\n+            <option value="methNOG">Methanococci (methNOG)</option>\n+            <option value="methaNOG">Methanomicrobia (methaNOG)</option>\n+            <option value="necNOG">Nectriaceae (necNOG)</option>\n+            <option value="negNOG">Negativicutes (negNOG)</option>\n+            <option value="nemNOG">Nematodes (nemNOG)</option>\n+            <option value="onyNOG">Onygenales (onyNOG)</option>\n+            <option value="opiNOG">Opisthokonts (opiNOG)</option>\n+            <option value="perNOG">Peronosporales (perNOG)</option>\n+            <option value="plaNOG">Planctomycetes (plaNOG)</option>\n+            <option value="pleNOG">Pleosporales (pleNOG)</option>\n+            <option value="poaNOG">Poales (poaNOG)</option>\n+            <option value="prNOG">Primates (prNOG)</option>\n+            <option value="proNOG">Proteobacteria (proNOG)</option>\n+            <option value="rhaNOG">Rhabditida (rhaNOG)</option>\n+            <option value="roNOG">Rodents (roNOG)</option>\n+            <option value="sacNOG">Saccharomycetaceae (sacNOG)</option>\n+            <option value="saccNOG">Saccharomycetes (saccNOG)</option>\n+            <option value="sorNOG">Sordariales (sorNOG)</option>\n+            <option value="sordNOG">Sordariomycetes (sordNOG)</option>\n+            <option value="sphNOG">Sphingobacteriia (sphNOG)</option>\n+            <option value="spiNOG">Spirochaetes (spiNOG)</option>\n+            <option value="spriNOG">Supraprimates (spriNOG)</option>\n+            <option value="strNOG">Streptophyta (strNOG)</option>\n+            <option value="synNOG">Synergistetes (synNOG)</option>\n+            <option value="tenNOG">Tenericutes (tenNOG)</option>\n+            <option value="thaNOG">Thaumarchaeota (thaNOG)</option>\n+            <option value="theNOG">Thermoplasmata (theNOG)</option>\n+            <option value="therNOG">Thermotogae (therNOG)</option>\n+            <option value="thermNOG">Thermococci (thermNOG)</option>\n+            <option value="treNOG">Tremellales (treNOG)</option>\n+            <option value="veNOG">Vertebrates (veNOG)</option>\n+            <option value="verNOG">Verrucomicrobia (verNOG)</option>\n+            <option value="verrNOG">Verrucomicrobiae (verrNOG)</option>\n+            <option value="virNOG">Viridiplantae (virNOG)</option>\n+        </param>\n+    </xml>\n+    <xml name="data_manager_outputs">\n+        <outputs>\n+            <data name="out_file" format="data_manager_json" label="${tool.name}"/>\n+        </outputs>\n+    </xml>\n+    <token name="@DOWNLOAD_CMD@"><![CDATA[\n+## tool should set install_path\n+#if $test == \'true\'\n+#import os.path\n+#set $install_path = $os.path.join($os.path.dirname($__tool_directory__), \'test-data/cached_locally\')\n+#end if\n+#if $dbs:\n+#set $eggnogdbs = \' \'.join(str($dbs).split(\',\'))\n+#else\n+#set $eggnogdbs = \'none\'\n+#end if\n+mkdir -p \'${install_path}\' &&\n+download_eggnog_data.py \n+  $diamond_database -y -q \n+#if $test == \'true\'\n+  -s\n+#end if\n+  --data_dir \'$install_path\' \n+  $eggnogdbs &&\n+python \'${__tool_directory__}/data_manager_eggnog.py\' --config_file \'$out_file\' --install_path \'$install_path\' --dbs \'$dbs\'\n+    ]]></token>\n+    <xml name="data_manager_test">\n+        <!--\n+        <test>\n+            <param name="test" value="true"/>\n+            <param name="diamond_database" value="false"/>\n+            <param name="dbs" value="thaNOG"/>\n+            <output name="out_file">\n+                <assert_contents>\n+                    <has_text text="eggnog_mapper_db" />\n+                </assert_contents>\n+            </output>\n+        </test>\n+        -->\n+    </xml>\n+</macros>\n'
b
diff -r 000000000000 -r 9d5f039c637f data_manager_conf.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager_conf.xml Mon Nov 11 11:49:47 2019 -0500
b
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<data_managers>
+  <data_manager tool_file="data_manager/data_manager_eggnog.xml" id="data_manager_eggnog" >
+    <data_table name="eggnog_mapper_db">  <!-- Defines a Data Table to be modified. -->
+      <output> <!-- Handle the output of the Data Manager Tool -->
+        <column name="value" /> <!-- columns that are going to be specified by the Data Manager Tool -->
+        <column name="name" />  <!-- columns that are going to be specified by the Data Manager Tool -->
+        <column name="path" />  <!-- Absolute path specified by the Data Manager Tool -->
+      </output>
+    </data_table>
+    <data_table name="eggnog_mapper_hmm_dbs">  <!-- Defines a Data Table to be modified. -->
+      <output> <!-- Handle the output of the Data Manager Tool -->
+        <column name="key" /> <!-- columns that are going to be specified by the Data Manager Tool -->
+        <column name="db_version" /> <!-- columns that are going to be specified by the Data Manager Tool -->
+        <column name="value" /> <!-- columns that are going to be specified by the Data Manager Tool -->
+        <column name="name" />  <!-- columns that are going to be specified by the Data Manager Tool -->
+        <column name="path" /> <!-- columns that are going to be specified by the Data Manager Tool -->
+      </output>
+    </data_table>
+  </data_manager>
+</data_managers>
b
diff -r 000000000000 -r 9d5f039c637f test-data/cached_locally/eggnog.db
b
Binary file test-data/cached_locally/eggnog.db has changed
b
diff -r 000000000000 -r 9d5f039c637f test-data/cached_locally/eggnog_mapper_db.loc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/cached_locally/eggnog_mapper_db.loc Mon Nov 11 11:49:47 2019 -0500
b
@@ -0,0 +1,2 @@
+#value name path
+4.5 eggNOG_4.5 ${__HERE__}
b
diff -r 000000000000 -r 9d5f039c637f test-data/cached_locally/eggnog_mapper_hmm_dbs.loc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/cached_locally/eggnog_mapper_hmm_dbs.loc Mon Nov 11 11:49:47 2019 -0500
b
@@ -0,0 +1,2 @@
+#key db_version value name path
+4.5_ENOG411CB2I 4.5 ENOG411CB2I ENOG411CB2I ${__HERE__}/hmmdb_levels/ENOG411CB2I/ENOG411CB2I
b
diff -r 000000000000 -r 9d5f039c637f tool-data/eggnog_mapper_db.loc.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/eggnog_mapper_db.loc.sample Mon Nov 11 11:49:47 2019 -0500
b
@@ -0,0 +1,25 @@
+#This is a sample file distributed with Galaxy that enables tools
+#to use a directory of eggnog_mapper data files. 
+#
+# eggnog-mapper requires the following files to be installed in the data directory:
+#  https://github.com/jhcepas/eggnog-mapper/blob/master/data/og2level.tsv.gz
+#  http://eggnogdb.embl.de/download/eggnog_4.5/eggnog-mapper-data/eggnog.db.gz
+#  http://eggnogdb.embl.de/download/eggnog_4.5/eggnog-mapper-data/OG_fasta.tar.gz
+# In addition individual HMM DBs can be installed from:
+#  http://eggnogdb.embl.de/download/eggnog_4.5/eggnog-mapper-data/hmmdb_levels/
+# A complete diamond database is available from:
+#  http://eggnogdb.embl.de/download/eggnog_4.5/eggnog-mapper-data/eggnog_proteins.dmnd.gz
+#
+# The python script download_eggnog_data.py, 
+# included with eggnog_mapper, can be used to download the files to the correct directory
+#
+# The near-equivalence of columns "value" and "db" is needed for the tests to work,
+# and for the setting of --data_dir to the parent directory of eggnog.db
+# The complicated eggNOG database structure makes passing custom HMM databases somewhat tricky. 
+# See test-data/cached_locally/eggnog_mapper.loc for how this was done with the included test databases
+# In all other cases, when the appropriate HMM database (for example, "thaNOG") was downloaded from eggnogdb.embl.de, 
+# value and db should be the same (in the example, both should be "thaNOG")
+#
+#
+#db_version name path
+#4.5.1 eggnog_4.5.1 /path/to/directory/that/contains/eggnog.db
b
diff -r 000000000000 -r 9d5f039c637f tool-data/eggnog_mapper_hmm_dbs.loc.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/eggnog_mapper_hmm_dbs.loc.sample Mon Nov 11 11:49:47 2019 -0500
b
@@ -0,0 +1,28 @@
+#This is a sample file distributed with Galaxy that enables tools
+#to use a directory of eggnog_mapper data files. 
+#
+# eggnog-mapper requires the following files to be installed in the data directory:
+#  https://github.com/jhcepas/eggnog-mapper/blob/master/data/og2level.tsv.gz
+#  http://eggnogdb.embl.de/download/eggnog_4.5/eggnog-mapper-data/eggnog.db.gz
+#  http://eggnogdb.embl.de/download/eggnog_4.5/eggnog-mapper-data/OG_fasta.tar.gz
+# In addition individual HMM DBs can be installed from:
+#  http://eggnogdb.embl.de/download/eggnog_4.5/eggnog-mapper-data/hmmdb_levels/
+# A complete diamond database is available from:
+#  http://eggnogdb.embl.de/download/eggnog_4.5/eggnog-mapper-data/eggnog_proteins.dmnd.gz
+#
+# The python script download_eggnog_data.py, 
+# included with eggnog_mapper, can be used to download the files to the correct directory
+#
+# The near-equivalence of columns "value" and "db" is needed for the tests to work,
+# and for the setting of --data_dir to the parent directory of eggnog.db
+# The complicated eggNOG database structure makes passing custom HMM databases somewhat tricky. 
+# See test-data/cached_locally/eggnog_mapper.loc for how this was done with the included test databases
+# In all other cases, when the appropriate HMM database (for example, "thaNOG") was downloaded from eggnogdb.embl.de, 
+# value and db should be the same (in the example, both should be "thaNOG")
+#
+#
+#key db_version value name path
+#4.5.1_NOG 4.5.1 NOG Full eggNOG database (NOG)
+#4.5.1_euk 4.5.1 euk Eukaryotes (euk)
+#4.5.1_aproNOG 4.5.1 aproNOG Proteobacteria_alpha (aproNOG)
+#4.5.1_aproNOG 4.5.1 ENOG411CB2I ENOG411CB2I (custom) /path/to/custom/hmmdb/ENOG411CB2I
b
diff -r 000000000000 -r 9d5f039c637f tool_data_table_conf.xml.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_data_table_conf.xml.sample Mon Nov 11 11:49:47 2019 -0500
b
@@ -0,0 +1,11 @@
+<tables>
+    <!-- Locations of all eggnog_mapper data -->
+    <table name="eggnog_mapper_db" comment_char="#" allow_duplicate_entries="False">
+        <columns>value,name,path</columns>
+        <file path="tool-data/eggnog_mapper_db.loc" />
+    </table>
+    <table name="eggnog_mapper_hmm_dbs" comment_char="#" allow_duplicate_entries="False">
+        <columns>key,db_version,value,name,path</columns>
+        <file path="tool-data/eggnog_mapper_hmm_dbs.loc" />
+    </table>
+</tables>
b
diff -r 000000000000 -r 9d5f039c637f tool_data_table_conf.xml.test
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_data_table_conf.xml.test Mon Nov 11 11:49:47 2019 -0500
b
@@ -0,0 +1,11 @@
+<tables>
+    <!-- Locations of all eggnog_mapper data -->
+    <table name="eggnog_mapper_db" comment_char="#">
+        <columns>value,name,path</columns>
+        <file path="${__HERE__}/test-data/cached_locally/eggnog_mapper_db.loc" />
+    </table>
+    <table name="eggnog_mapper_hmm_dbs" comment_char="#">
+        <columns>key,db_version,value,name,path</columns>
+        <file path="${__HERE__}/test-data/cached_locally/eggnog_mapper_hmm_dbs.loc" />
+    </table>
+</tables>