Example #1
0
    def __init__(self, app, session):
        """init

        Parameters
        ----------
        app : Flask
            Flask app
        session :
            AskOmics session
        """
        Params.__init__(self, app, session)
        self.namespace_data = self.settings.get('triplestore',
                                                'namespace_data')
        self.namespace_internal = self.settings.get('triplestore',
                                                    'namespace_internal')

        self.prefix = {
            ':': self.settings.get('triplestore', 'namespace_data'),
            'askomics:': self.settings.get('triplestore',
                                           'namespace_internal'),
            'prov:': 'http://www.w3.org/ns/prov#',
            'dc:': 'http://purl.org/dc/elements/1.1/',
            'faldo:': "http://biohackathon.org/resource/faldo/",
            'rdf:': str(rdflib.RDF),
            'rdfs:': str(rdflib.RDFS),
            'owl:': str(rdflib.OWL),
            'xsd:': str(rdflib.XSD)
        }
Example #2
0
    def __init__(self, app, session):
        """init

        Parameters
        ----------
        app : Flask
            Flask app
        session :
            AskOmics session
        """
        Params.__init__(self, app, session)

        self.graphs = []
        self.endpoints = []
        self.selects = []
        self.federated = False

        # local endpoint (for federated query engine)
        self.local_endpoint_f = self.settings.get('triplestore', 'endpoint')
        try:
            self.local_endpoint_f = self.settings.get('federation',
                                                      'local_endpoint')
        except Exception:
            pass

        self.set_graphs_and_endpoints()
Example #3
0
    def __init__(self, app, session, dataset_info={}):
        """init

        Parameters
        ----------
        app : Flask
            Flask app
        session :
            AskOmics session
        dataset_info : dict, optional
            Dataset info
        """
        Params.__init__(self, app, session)

        self.id = dataset_info["id"] if "id" in dataset_info else None
        self.celery_id = dataset_info[
            "celery_id"] if "celery_id" in dataset_info else None
        self.file_id = dataset_info[
            "file_id"] if "file_id" in dataset_info else None
        self.name = dataset_info["name"] if "name" in dataset_info else None
        self.graph_name = dataset_info[
            "graph_name"] if "graph_name" in dataset_info else None
        self.public = dataset_info[
            "public"] if "public" in dataset_info else False
        self.start = dataset_info["start"] if "start" in dataset_info else None
        self.end = dataset_info["end"] if "end" in dataset_info else None
Example #4
0
    def __init__(self, app, session):
        """init

        Parameters
        ----------
        app : Flask
            Flask app
        session
            AskOmics session
        """
        Params.__init__(self, app, session)

        self.namespace_data = Namespace(
            self.settings.get('triplestore', 'namespace_data'))
        self.namespace_internal = Namespace(
            self.settings.get('triplestore', 'namespace_internal'))

        self.graph = rdflib.Graph()
        self.graph.bind('', self.namespace_data)
        self.graph.bind('askomics', self.namespace_internal)
        self.graph.bind('faldo', "http://biohackathon.org/resource/faldo/")
        self.graph.bind('dc', 'http://purl.org/dc/elements/1.1/')
        self.graph.bind('prov', 'http://www.w3.org/ns/prov#')
        self.ntriple = 0
        self.percent = None
Example #5
0
    def __init__(self, app, session):
        """Get ldap config

        Parameters
        ----------
        app : Flask
            flask app
        session
            AskOmics session, contain the user
        """
        Params.__init__(self, app, session)

        self.ldap = self.app.iniconfig.getboolean("askomics", "ldap_auth")

        if self.ldap:
            self.host = self.app.iniconfig.get("askomics", "ldap_host")
            self.port = self.app.iniconfig.get("askomics", "ldap_port")
            self.bind_dn = self.app.iniconfig.get("askomics", "ldap_bind_dn")
            self.bind_password = self.app.iniconfig.get(
                "askomics", "ldap_bind_password")
            self.search_base = self.app.iniconfig.get("askomics",
                                                      "ldap_search_base")
            self.user_filter = self.app.iniconfig.get("askomics",
                                                      "ldap_user_filter")
            self.username_attribute = self.app.iniconfig.get(
                "askomics", "ldap_username_attribute")
            self.first_name_attribute = self.app.iniconfig.get(
                "askomics", "ldap_first_name_attribute")
            self.surname_attribute = self.app.iniconfig.get(
                "askomics", "ldap_surname_attribute")
            self.mail_attribute = self.app.iniconfig.get(
                "askomics", "ldap_mail_attribute")
Example #6
0
    def __init__(self, app, session, url=None, apikey=None):
        """init

        Parameters
        ----------
        app : Flask
            flask app
        session :
            AskOmics session, contain the user
        url : string
            Galaxy url
        apikey : string
            Galaxy API key
        """
        Params.__init__(self, app, session)

        if not url and not apikey:
            self.url = self.session["user"]["galaxy"]["url"]
            self.apikey = self.session["user"]["galaxy"]["apikey"]
        else:
            self.url = url
            self.apikey = apikey

        self.upload_path = "{}/{}_{}/upload".format(
            self.settings.get("askomics", "data_directory"),
            self.session['user']['id'], self.session['user']['username'])
Example #7
0
    def __init__(self,
                 app,
                 session,
                 get_result_query=False,
                 federated=False,
                 endpoints=None):
        """init

        Parameters
        ----------
        app : Flask
            Flask app
        session :
            AskOmics session
        """
        Params.__init__(self, app, session)

        self.query_time = None

        # local endpoint (for federated query engine)
        self.local_endpoint_f = self.settings.get('triplestore', 'endpoint')
        try:
            self.local_endpoint_f = self.settings.get('federation',
                                                      'local_endpoint')
        except Exception:
            pass

        # Use the federated query engine
        if federated:
            self.federated = True
            self.local_query = False
            self.url_endpoint = self.settings.get('federation', 'endpoint')
            self.url_updatepoint = self.settings.get('federation', 'endpoint')
            self.triplestore = self.settings.get('federation', 'query_engine')
        # use the external endpoint
        elif endpoints is not None and endpoints != [self.local_endpoint_f]:
            self.federated = False
            self.local_query = False
            self.triplestore = "unknown"
            self.url_endpoint = endpoints[0]
            self.url_updatepoint = endpoints[0]
        # use the local endpoint
        else:
            self.federated = False
            self.local_query = True
            self.triplestore = self.settings.get('triplestore', 'triplestore')
            self.url_endpoint = self.settings.get('triplestore', 'endpoint')
            self.url_updatepoint = self.settings.get('triplestore',
                                                     'updatepoint')
            try:
                self.endpoint.setCredentials(
                    self.settings.get('triplestore', 'username'),
                    self.settings.get('triplestore', 'password'))
            except Exception:
                pass

        self.endpoint = SPARQLWrapper(self.url_endpoint, self.url_updatepoint)
Example #8
0
    def __init__(self, app, session):
        """init

        Parameters
        ----------
        app : Flask
            flask app
        session :
            AskOmics session, contain the user
        """
        Params.__init__(self, app, session)
Example #9
0
    def __init__(self, app, session):
        """Store the database path

        Parameters
        ----------
        app :
            flask app
        session :
            flask session
        """
        Params.__init__(self, app, session)

        self.database_path = self.settings.get('askomics', 'database_path')
Example #10
0
    def __init__(self, app, session, datasets_info=[]):
        """init

        Parameters
        ----------
        app : Flask
            Flask app
        session :
            AskOmics session
        datasets_info : list, optional
            Dataset info
        """
        Params.__init__(self, app, session)
        self.datasets_info = datasets_info
        self.datasets = []
Example #11
0
    def __init__(self, app, session, result_info, force_no_db=False):
        """init object

        Parameters
        ----------
        app : Flask
            flask app
        session :
            AskOmics session, contain the user
        result_info : dict
            Result file info
        """
        Params.__init__(self, app, session)

        if "user" in self.session:
            self.result_path = "{}/{}_{}/results".format(
                self.settings.get("askomics", "data_directory"),
                self.session['user']['id'], self.session['user']['username'])

        if "id" in result_info and not force_no_db:
            self.id = result_info["id"]
            if not self.set_info_from_db_with_id():
                return None
        else:
            self.id = result_info["id"] if "id" in result_info else None
            self.graph_state = result_info[
                "graph_state"] if "graph_state" in result_info else None
            self.graphs = result_info[
                "graphs"] if "graphs" in result_info else []
            self.endpoints = result_info[
                "endpoints"] if "endpoints" in result_info else []
            self.sparql_query = result_info[
                "sparql_query"] if "sparql_query" in result_info else None
            self.celery_id = result_info[
                "celery_id"] if "celery_id" in result_info else None
            self.file_name = result_info[
                "file_name"] if "file_name" in result_info else Utils.get_random_string(
                    10)
            self.file_path = "{}/{}".format(self.result_path, self.file_name)
            self.start = None
            self.end = None
            self.nrows = 0
            self.has_form_attr = False
            self.template = False
            self.form = False
Example #12
0
    def __init__(self,
                 app,
                 session,
                 file_info,
                 host_url=None,
                 external_endpoint=None,
                 custom_uri=None):
        """init

        Parameters
        ----------
        app : Flask
            Flask app
        session :
            AskOmics session
        file_info : dict
            File info
        host_url : None, optional
            AskOmics url
        """
        Params.__init__(self, app, session)

        self.host_url = host_url

        self.human_name = file_info["name"]
        self.name = self.format_uri(file_info['name'], remove_space=True)
        self.path = file_info['path']
        self.type = file_info['type']
        self.size = file_info['size']
        self.id = file_info['id']
        self.public = False
        self.ntriples = 0
        self.timestamp = int(time.time())
        self.external_endpoint = external_endpoint

        self.default_graph = "{}".format(
            self.settings.get('triplestore', 'default_graph'))
        self.user_graph = "{}:{}_{}".format(
            self.settings.get('triplestore', 'default_graph'),
            self.session['user']['id'], self.session['user']['username'])
        if "graph_name" not in file_info:
            self.file_graph = "{}:{}_{}:{}_{}".format(
                self.settings.get('triplestore',
                                  'default_graph'), self.session['user']['id'],
                self.session['user']['username'], self.name, self.timestamp)
        else:
            self.file_graph = file_info["graph_name"]

        self.ttl_dir = '{}/{}_{}/ttl'.format(
            self.settings.get('askomics', 'data_directory'),
            self.session['user']['id'], self.session['user']['username'])

        self.now = datetime.datetime.now().isoformat()

        self.askomics_namespace = Namespace(
            self.settings.get('triplestore', 'namespace'))
        self.askomics_prefix = Namespace(
            self.settings.get('triplestore', 'prefix'))
        self.entity_prefix = Namespace(
            custom_uri) if custom_uri else self.askomics_prefix

        self.faldo = Namespace('http://biohackathon.org/resource/faldo/')
        self.prov = Namespace('http://www.w3.org/ns/prov#')
        self.dc = Namespace('http://purl.org/dc/elements/1.1/')

        self.faldo_entity = False
        self.faldo_abstraction = {
            "start": None,
            "end": None,
            "strand": None,
            "reference": None
        }
        self.faldo_abstraction_eq = {
            "start": self.askomics_namespace["faldoStart"],
            "end": self.askomics_namespace["faldoEnd"],
            "strand": self.askomics_namespace["faldoStrand"],
            "reference": self.askomics_namespace["faldoReference"]
        }

        self.method = self.settings.get('triplestore', 'upload_method')
        self.max_chunk_size = self.settings.getint('triplestore', 'chunk_size')
        self.serialization_format = self.settings.get('triplestore',
                                                      'serialization_format')
        self.rdf_extention = 'ttl' if self.serialization_format == 'turtle' else self.serialization_format

        self.graph_chunk = RdfGraph(self.app, self.session)
        self.graph_abstraction_dk = RdfGraph(self.app, self.session)

        self.error = False
        self.error_message = ""