Ejemplo n.º 1
0
def cli(ctx, conn_host, database, username, password, port, host, verbose):
    """loqusdb: manage a local variant count database."""
    # configure root logger to print to STDERR
    loglevel = LEVELS.get(max(verbose, 1), "INFO")
    coloredlogs.install(level=loglevel)

    # mongo uri looks like:
    #mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
    uri = None
    if username and password:
        uri = "{0}{1}:{2}@{3}:{4}/{5}".format(conn_host, username, password,
                                              host, port, database)
        if password:
            pwd = '******'
        else:
            pwd = None
        logger.info('uri={0}{1}:{2}@{3}:{4}/{5}'.format(
            conn_host, username, pwd, host, port, database))

    adapter = MongoAdapter()
    adapter.connect(host=host, port=port, database=database, uri=uri)

    ctx.obj = {}
    ctx.obj['db'] = database
    ctx.obj['user'] = username
    ctx.obj['password'] = password
    ctx.obj['port'] = port
    ctx.obj['host'] = host
    ctx.obj['adapter'] = adapter
Ejemplo n.º 2
0
def cli(ctx, conn_host, database, username, password, port, host, verbose, 
        logfile, backend):
    """loqusdb: manage a local variant count database."""
    # configure root logger to print to STDERR
    loglevel = LEVELS.get(min(verbose,1), "INFO")
    init_log(
        logger = logger, 
        filename = logfile, 
        loglevel = loglevel
    )
    
    # mongo uri looks like:
    #mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
    uri = None
    if username and password:
        uri = "{0}{1}:{2}@{3}:{4}/{5}".format(
              conn_host, username, password, host, port, database
              )
        logger.info('uri={0}'.format(uri))
    
    adapter = MongoAdapter()
    adapter.connect(
        host=host, 
        port=port, 
        database=database,
        uri=uri
    )
    
    ctx.obj = {}
    ctx.obj['db'] = database
    ctx.obj['user'] = username
    ctx.obj['password'] = password
    ctx.obj['port'] = port
    ctx.obj['host'] = host
    ctx.obj['adapter'] = adapter
Ejemplo n.º 3
0
def frequency(context, bulk, remove):
    """Upload or remove variants to/from frequency database."""
    loqusdb_auth = context.obj.get("loqusdb", {})
    adapter = LoqusdbAdapter()
    adapter.connect(**loqusdb_auth)

    mip_case = context.obj["case"]
    if mip_case.is_old:
        logger.warn("unsupported MIP version for frequency: %s", mip_case.version)
    else:
        vcf_path = mip_case.research_vcf
        case_group_id = group_id(mip_case)
        # we only care about "rare" variants
        ped_path = mip_case.configs.pedigree

        try:
            affected_inds = affected_individuals(ped_path)
        except FrequencyError as error:
            logger.warn("LOQUSDB: {}".format(error.message))

        if "affected_inds" in locals():
            with open(vcf_path, "r") as vcf_stream:
                try:
                    if remove:
                        count = delete_variants(adapter, vcf_stream, case_group_id, affected_inds)
                        logger.info("removed {} variants".format(count))
                    else:
                        load_variants(
                            adapter, case_group_id, affected_inds, vcf_stream, bulk_insert=bulk, vcf_path=vcf_path
                        )
                except CaseError as error:
                    logger.warn("LOQUSDB: {}".format(error.message))
Ejemplo n.º 4
0
def parse_payload(db, payload, config, force=False):
    """Upload frequency to the database."""
    loqusdb_auth = config['LOQUSDB_AUTH']
    adapter = LoqusdbAdapter()
    adapter.connect(**loqusdb_auth)
    case_id = payload['case_id']
    mip_analysis = load_analysis(payload['family_dir'])

    if mip_analysis.is_old:
        logger.warn("unsupported MIP version for frequency: %s",
                    mip_analysis.version)
    else:
        vcf_path, affected = parse_mip(mip_analysis)
        if affected:
            upload(adapter, vcf_path, affected, case_id, force=force)
Ejemplo n.º 5
0
def mongo_adapter(request, mongo_client):
    """Return a mongo adapter"""
    adapter = MongoAdapter()
    adapter.connect(database='test', client=mongo_client)
    return adapter
Ejemplo n.º 6
0
def loqusdb_adapter(mongo_client):
    adapter = MongoAdapter()
    adapter.connect(database='test', client=mongo_client)
    return adapter
Ejemplo n.º 7
0
def mongo_adapter(request, mongo_client):
    """Return a mongo adapter"""
    adapter = MongoAdapter()
    adapter.connect(database='test', client=mongo_client)
    return adapter
Ejemplo n.º 8
0
def test_connect_uri(mongo_client):
    adapter = MongoAdapter()
    uri = "{0}".format("mongodb://localhost")
    adapter.connect(uri=uri)
    assert True
Ejemplo n.º 9
0
def test_connect(mongo_client):
    adapter = MongoAdapter()
    db_name = 'test'
    adapter.connect(database=db_name, client=mongo_client)
    assert True
Ejemplo n.º 10
0
def test_connect(mongo_client):
    adapter = MongoAdapter()
    db_name = 'test'
    adapter.connect(database=db_name, client=mongo_client)
    assert True
Ejemplo n.º 11
0
def test_connect_uri(mongo_client):
    adapter = MongoAdapter()
    uri = "{0}".format("mongodb://localhost")
    adapter.connect(uri=uri)
    assert True