view flapjack.py @ 35:414aa590a1de draft

Uploaded
author cropgeeks
date Thu, 02 Mar 2017 05:40:54 -0500
parents 591567e072f1
children 927533e85a6a
line wrap: on
line source

from galaxy.datatypes.data import Text
from galaxy.datatypes.tabular import Tabular
from galaxy.datatypes.binary import SQlite

class FlapjackFormat(SQlite):
    file_ext = "flapjack"
	
	def sniff(self, filename):
        if super(FlapjackFormat, self).sniff(filename):
			fj_table_names = ["objects", "project"]
            try:
                conn = sqlite.connect( filename )
                c = conn.cursor()
                tables_query = "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name"
                result = c.execute(tables_query).fetchall()
                result = [_[0] for _ in result]
                for table_name in fj_table_names:
                    if table_name not in result:
                        return False
                return True
            except Exception as e:
                log.warning( '%s, sniff Exception: %s', self, e )
        return False

class FlapjackMapFormat(Tabular):
    file_ext = "fjmap"

    def sniff( self, filename ):
        h = open(filename)
        line = h.readline()
        if line.rstrip() != "# fjFile = MAP":
            h.close()
            return False
        return True

class FlapjackGenotypeFormat(Tabular):
    file_ext = "fjgenotype"

    def sniff( self, filename ):
        h = open(filename)
        line = h.readline()
        if line.rstrip() != "# fjFile = GENOTYPE":
            h.close()
            return False
        return True

class FlapjackPhenotypeFormat(Tabular):
    file_ext = "fjphenotye"

    def sniff( self, filename ):
        h = open(filename)
        line = h.readline()
        if line.rstrip() != "# fjFile = PHENOTYPE":
            h.close()
            return False
        return True

class FlapjackQtlFormat(Tabular):
    file_ext = "fjqtl"

    def sniff( self, filename ):
        h = open(filename)
        line = h.readline()
        if line.rstrip() != "# fjFile = QTL":
            h.close()
            return False
        return True

class FlapjackGraphFormat(Tabular):
    file_ext = "fjgraph"

    def sniff( self, filename ):
        h = open(filename)
        line = h.readline()
        if line.rstrip() != "# fjFile = GRAPH":
            h.close()
            return False
        return True