Ejemplo n.º 1
0
def delete_database(args):
    from elaspic import elaspic_database

    db = elaspic_database.MyDatabase()
    if db.engine == "sqlite":
        os.remove(db.engine.database)
    else:
        db.delete_database_tables(drop_schema=True, drop_uniprot_sequence=True)
    logger.info("Done!")
Ejemplo n.º 2
0
def load_data_to_database(args, tables):
    if not args.url:
        raise Exception("URL argument was not provided; don't know where to load the data from!")
    from elaspic import elaspic_database

    db = elaspic_database.MyDatabase()

    for table_name in tables:
        load_table_to_database(table_name, args.url, db.engine)
Ejemplo n.º 3
0
    def __init__(
        self,
        uniprot_id,
        mutations,
        configurations=None,
        run_type="5",
        number_of_tries=[],
        uniprot_domain_pair_ids=[],
    ):
        """Run the main function of the program and parse errors.

        Parameters
        ----------
        uniprot_domain_pair_ids : list of integers
            List of uniprot_domain_pair_ids specifying which uniprot domain pairs to analyse.
        run_type : str
            1 / sequence: Calculate provean supporting set.
            2 / model: Calculate all homology models.
            3 / mutations: Calculate mutations using precalculated provean and models
                (not working)
            4 : Calculate mutations using precalculated provean (calculating mutations on the fly)
                (not working)
            5 : Calculate mutations, calculating provean and homology models as required.
        """
        super().__init__(configurations)

        if isinstance(run_type, (int, float)):
            run_type = str(int(run_type))
        self.uniprot_id = uniprot_id
        self.mutations = self._split_mutations(mutations)
        self.calculated_mutations = []
        self.run_type = self._validate_run_type(run_type)
        self.number_of_tries = number_of_tries
        self.uniprot_domain_pair_ids = uniprot_domain_pair_ids

        logger.info("=" * 80)
        logger.info("## Input parameters")
        logger.info("uniprot_id: {}".format(uniprot_id))
        logger.info("mutations: {}".format(mutations))
        logger.info("run_type: {}".format(run_type))
        logger.info(
            "uniprot_domain_pair_ids: {}".format(uniprot_domain_pair_ids))
        logger.info("unique_temp_dir: {}".format(
            conf.CONFIGS["unique_temp_dir"]))
        logger.info("db_schema: {}".format(conf.CONFIGS.get("db_schema")))
        logger.info("temp_dir: {temp_dir}".format(**conf.CONFIGS))
        logger.info("=" * 80)
        logger.info("")

        # Switch to the root of the unique tmp directory
        os.chdir(conf.CONFIGS["unique_temp_dir"])

        # Initialise the sql database for accessing all information
        self.db = elaspic_database.MyDatabase()

        # Obtain all domains and interactions for a given uniprot
        logger.info("Obtaining protein domain information...")
        self.uniprot_domains = self.db.get_uniprot_domain(
            self.uniprot_id, True)
        self._update_path_to_data(self.uniprot_domains)
        logger.info("Found {} domains.".format(len(self.uniprot_domains)))

        # Mutations results
        self.uniprot_mutations = []
Ejemplo n.º 4
0
def create_database(args):
    from elaspic import elaspic_database

    db = elaspic_database.MyDatabase()
    db.create_database_tables(drop_schema=True)
    logger.info("Done!")
Ejemplo n.º 5
0
if hasattr(pytest, "config"):
    QUICK = pytest.config.getoption("--quick")
    CONFIG_FILE = pytest.config.getoption("--config-file") or CONFIG_FILE

conf.read_configuration_file(CONFIG_FILE)
assert conf.CONFIGS["db_type"]

logger.debug("Running quick: {}".format(QUICK))
logger.debug("Config file: {}".format(CONFIG_FILE))

# Imports that require a parsed config file
import helper_fns  # noqa

from elaspic import elaspic_database  # noqa

db = elaspic_database.MyDatabase()
conf.CONFIGS["engine"] = db.get_engine()
conf.CONFIGS["engine"].execute("SET sql_mode = ''")

test_cases = []


def append_test_cases(df, num=3, num_mutations=3):
    """.

    Parameters
    ----------
    df : DataFrame
        Contains the following columns:
          - `uniprot_id`
          - `uniprot_sequence`