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
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
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))
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)
def mongo_adapter(request, mongo_client): """Return a mongo adapter""" adapter = MongoAdapter() adapter.connect(database='test', client=mongo_client) return adapter
def loqusdb_adapter(mongo_client): adapter = MongoAdapter() adapter.connect(database='test', client=mongo_client) return adapter
def test_connect_uri(mongo_client): adapter = MongoAdapter() uri = "{0}".format("mongodb://localhost") adapter.connect(uri=uri) assert True
def test_connect(mongo_client): adapter = MongoAdapter() db_name = 'test' adapter.connect(database=db_name, client=mongo_client) assert True