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> |