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