Mercurial > repos > earlhaminst > gafa
changeset 10:c22276db4025 draft default tip
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/main/tools/GAFA/ commit a0d7ab86b86bb764e457767bf8e8bc29868d0cbb
author | earlhaminst |
---|---|
date | Mon, 10 Mar 2025 23:27:17 +0000 |
parents | ab5611663f32 |
children | |
files | GAFA.xml datatypes_conf.xml gafa_datatypes.py |
diffstat | 3 files changed, 1 insertions(+), 69 deletions(-) [+] |
line wrap: on
line diff
--- a/GAFA.xml Mon Mar 03 17:47:53 2025 +0000 +++ b/GAFA.xml Mon Mar 10 23:27:17 2025 +0000 @@ -1,4 +1,4 @@ -<tool id="gafa" name="Gene Align and Family Aggregator" version="0.4.0"> +<tool id="gafa" name="Gene Align and Family Aggregator" version="0.4.1" profile="18.09"> <description>generates an SQLite database that can be visualised with Aequatus</description> <requirements> <requirement type="package" version="3.13">python</requirement>
--- a/datatypes_conf.xml Mon Mar 03 17:47:53 2025 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -<?xml version="1.0"?> -<datatypes> - <datatype_files> - <datatype_file name="gafa_datatypes.py"/> - </datatype_files> - <registration> - <datatype extension="gafa.sqlite" type="galaxy.datatypes.gafa_datatypes:GAFASQLite" mimetype="application/octet-stream" display_in_upload="True" /> - </registration> - <sniffers> - <sniffer type="galaxy.datatypes.gafa_datatypes:GAFASQLite"/> - </sniffers> -</datatypes>
--- a/gafa_datatypes.py Mon Mar 03 17:47:53 2025 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -import logging - -from galaxy.datatypes.binary import Binary, SQlite -from galaxy.datatypes.metadata import MetadataElement, MetadataParameter -from galaxy.util import sqlite - -log = logging.getLogger(__name__) - - -class GAFASQLite(SQlite): - """Class describing a GAFA SQLite database""" - MetadataElement(name='gafa_schema_version', default='0.1.0', param=MetadataParameter, desc='GAFA schema version', - readonly=True, visible=True, no_value='0.1.0') - file_ext = 'gafa.sqlite' - - def set_meta(self, dataset, overwrite=True, **kwd): - super(GAFASQLite, self).set_meta(dataset, overwrite=overwrite, **kwd) - try: - conn = sqlite.connect(dataset.file_name) - c = conn.cursor() - version_query = 'SELECT version FROM meta' - results = c.execute(version_query).fetchall() - if len(results) == 0: - raise Exception('version not found in meta table') - elif len(results) > 1: - raise Exception('Multiple versions found in meta table') - dataset.metadata.gafa_schema_version = results[0][0] - except Exception as e: - log.warn("%s, set_meta Exception: %s", self, e) - - def sniff(self, filename): - if super(GAFASQLite, self).sniff(filename): - gafa_table_names = frozenset(['gene', 'gene_family', 'gene_family_member', 'meta', 'transcript']) - conn = sqlite.connect(filename) - c = conn.cursor() - tables_query = "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name" - results = c.execute(tables_query).fetchall() - found_table_names = frozenset(_[0] for _ in results) - return gafa_table_names <= found_table_names - return False - - -# Since in Galaxy < 18.01 Binary.register_sniffable_binary_format() ignores the -# sniff order declared in datatypes_conf.xml and put TS datatypes at the end, -# instead of simply doing: -# Binary.register_sniffable_binary_format("sqlite", "sqlite", SQlite) -# we need to register specialized SQLite datatypes before SQlite -try: - for i, format_dict in enumerate(Binary.sniffable_binary_formats): - if format_dict['class'] == SQlite: - break - else: - i += 1 - Binary.sniffable_binary_formats.insert(i, {'type': 'gafa.sqlite', 'ext': 'gafa.sqlite', 'class': GAFASQLite}) -except AttributeError: - pass