예제 #1
0
def setup_config(data_type="databases"):
    """
    Reads YAML configuration file and converts it into a Python dictionary.

    :param data_type: configuration type ('databases', 'ontologies', 'experiments' or 'builder').
    :return: Dictionary.

    .. note:: This function should be used to obtain the configuration for databases_controller.py, \
                ontologies_controller.py, experiments_controller.py and builder.py.
    """
    try:
        dirname = os.path.abspath(os.path.dirname(__file__))
        if data_type == 'databases':
            config = ckg_utils.get_configuration(
                os.path.join(dirname, ckg_config.databases_config_file))
        elif data_type == 'ontologies':
            config = ckg_utils.get_configuration(
                os.path.join(dirname, ckg_config.ontologies_config_file))
        elif data_type == "experiments":
            config = ckg_utils.get_configuration(
                os.path.join(dirname, ckg_config.experiments_config_file))
        elif data_type == 'builder':
            config = ckg_utils.get_configuration(
                os.path.join(dirname, ckg_config.builder_config_file))
        elif data_type == 'users':
            config = ckg_utils.get_configuration(
                os.path.join(dirname, ckg_config.users_config_file))

    except Exception as err:
        raise Exception(
            "builder_utils - Reading configuration > {}.".format(err))

    return config
예제 #2
0
파일: dataset.py 프로젝트: hhefzi/CKG
 def set_configuration_from_file(self, configuration_file):
     try:
         cwd = os.path.abspath(os.path.dirname(__file__))
         config_path = os.path.join("config/", configuration_file)
         self.configuration = ckg_utils.get_configuration(os.path.join(cwd, config_path))
     except Exception as err:
         logger.error("Error: {} reading configuration file: {}.".format(err, config_path))
예제 #3
0
def get_config(config_name, data_type='databases'):
    """
    Reads YAML configuration file and converts it into a Python dictionary.

    :param str config_name: name of the configuration YAML file.
    :param str data_type: configuration type ('databases' or 'ontologies').
    :return: Dictionary.

    .. note:: Use this function to obtain configuration for individual database/ontology parsers.
    """
    cwd = os.path.abspath(os.path.dirname(__file__))
    config = ckg_utils.get_configuration(
        os.path.join(cwd, '{}/config/{}'.format(data_type, config_name)))

    return config
예제 #4
0
def get_full_path_directories():
    """
    Reads Builder YAML configuration file and returns the full path of all directories.
    :return: Dictionary.
    """
    directories = {}
    try:
        dirname = os.path.abspath(os.path.dirname(__file__))
        config = ckg_utils.get_configuration(
            os.path.join(dirname, ckg_config.builder_config_file))
        if 'directories' in config:
            for directory in config['directories']:
                directories[directory] = os.path.join(
                    dirname, config['directories'][directory])

    except Exception as err:
        raise Exception(
            "Error {}: builder_utils - Reading directories from configuration > {}."
            .format(err, ckg_config.builder_config_file))

    return directories
예제 #5
0
import sys
import os
import json
import neo4j
import pandas as pd
import ckg_utils
from config import ckg_config
from graphdb_builder import builder_utils

log_config = ckg_config.graphdb_connector_log
logger = builder_utils.setup_logging(log_config, key="connector")

try:
    cwd = os.path.abspath(os.path.dirname(__file__))
    path = os.path.join(cwd, ckg_config.connector_config_file)
    config = ckg_utils.get_configuration(path)
except Exception as err:
    logger.error("Reading configuration > {}.".format(err))


def getGraphDatabaseConnectionConfiguration(configuration=None, database=None):
    if configuration is None:
        configuration = config
    host = configuration['db_url']
    port = configuration['db_port']
    user = configuration['db_user']
    password = configuration['db_password']

    if database is not None:
        host = host + '/' + database
예제 #6
0
    def build_project(self, force=False):
        if self.check_report_exists() and not force:
            self.load_project_report()
        elif force:
            self.report = {}
            self.datasets = {}

        if len(self.report) == 0 or len(self.datasets) == 0:
            project_info = self.query_data()
            if len(project_info) > 0:
                self.set_attributes(project_info)
                self.get_similar_projects(project_info)
                self.get_projects_overlap(project_info)
                for data_type in self.data_types:
                    dataset = None
                    configuration = None
                    if data_type == "proteomics":
                        if "proteomics" in self.configuration_files:
                            configuration = ckg_utils.get_configuration(
                                self.configuration_files["proteomics"])
                        dataset = ProteomicsDataset(
                            self.identifier,
                            data={},
                            configuration=configuration,
                            analyses={},
                            analysis_queries={},
                            report=None)
                    elif data_type == "clinical":
                        if "clinical" in self.configuration_files:
                            configuration = ckg_utils.get_configuration(
                                self.configuration_files["clinical"])
                        dataset = ClinicalDataset(self.identifier,
                                                  data={},
                                                  configuration=configuration,
                                                  analyses={},
                                                  analysis_queries={},
                                                  report=None)
                    elif data_type == "wes" or data_type == "wgs":
                        if "wes" in self.configuration_files:
                            configuration = ckg_utils.get_configuration(
                                self.configuration_files["wes"])
                        elif "wgs" in self.configuration_files:
                            configuration = ckg_utils.get_configuration(
                                self.configuration_files["wgs"])
                        dataset = DNAseqDataset(self.identifier,
                                                dataset_type=data_type,
                                                data={},
                                                configuration=configuration,
                                                analyses={},
                                                analysis_queries={},
                                                report=None)
                    elif data_type == "interactomics":
                        if "interactomics" in self.configuration_files:
                            configuration = ckg_utils.get_configuration(
                                self.configuration_files["interactomics"])
                        dataset = InteractomicsDataset(
                            self.identifier,
                            data={},
                            configuration=configuration,
                            analyses={},
                            analysis_queries={},
                            report=None)
                    elif data_type == "phosphoproteomics":
                        if "phosphoproteomics" in self.configuration_files:
                            configuration = ckg_utils.get_configuration(
                                self.configuration_files["phosphoproteomics"])
                        dataset = PhosphoproteomicsDataset(
                            self.identifier,
                            data={},
                            configuration=configuration,
                            analyses={},
                            analysis_queries={},
                            report=None)
                    elif data_type == "longitudinal_proteomics":
                        if "longitudinal_proteomics" in self.configuration_files:
                            configuration = ckg_utils.get_configuration(
                                self.
                                configuration_files["longitudinal_proteomics"])
                        dataset = LongitudinalProteomicsDataset(
                            self.identifier,
                            data={},
                            configuration=configuration,
                            analyses={},
                            analysis_queries={},
                            report=None)

                    if dataset is not None:
                        dataset.generate_dataset()
                        self.update_dataset({data_type: dataset})

                if len(self.datasets) > 1:
                    if "multiomics" in self.configuration_files:
                        configuration = ckg_utils.get_configuration(
                            self.configuration_files["multiomics"])
                    dataset = MultiOmicsDataset(self.identifier,
                                                data=self.datasets,
                                                configuration=configuration,
                                                analyses={},
                                                report=None)
                    self.update_dataset({'multiomics': dataset})
                    self.append_data_type('multiomics')
            else:
                logger.error(
                    "Project {} could not be built. Error retrieving information for this project or no information associated to this project"
                    .format(self.identifier))
                print(
                    "Project {} could not be built. Error retrieving information for this project or no information associated to this project"
                    .format(self.identifier))