def load_analysis_from_dirs(ctx, alignment_dir, hmmcopy_dir, annotation_dir, id, projects, reload): #is this for msk? for isabl or tantalus, i guess it was igo aka isabl #andrew's function, going to keep it here for when he sends over one-off data sets es_host = ctx.obj['host'] es_port = ctx.obj["port"] assert reload or not _is_loaded( id, es_host, es_port ), f'Dashboard with ID {id} already loaded. To reload, add --reload to command' nonexistant_projects = [ project for project in projects if not _is_project_exist(project, es_host, es_port) ] assert len(nonexistant_projects ) == 0, f'Projects do not exist: {nonexistant_projects} ' if reload: _clean_analysis(id, host=es_host, port=es_port) alhena.alhena_loader.load_analysis_from_dirs(id, projects, es_host, es_port, alignment_dir, hmmcopy_dir, annotation_dir)
def load_analysis(ctx, data_directory, id, projects, reload): es_host = ctx.obj['host'] es_port = ctx.obj["port"] assert reload or not _is_loaded( id, es_host, es_port ), f'Dashboard with ID {id} already loaded. To reload, add --reload to command' nonexistant_projects = [ project for project in projects if not _is_project_exist(project, es_host, es_port) ] assert len(nonexistant_projects ) == 0, f'Projects do not exist: {nonexistant_projects} ' if reload: _clean_analysis(id, host=es_host, port=es_port) hmmcopy_data = _get_scgenome_colossus_tantalus_data(data_directory) analysis_record = _get_colossus_tantalus_analysis_object( data_directory, dashboard_id) _load_analysis(id, hmmcopy_data, analysis_record, projects, data_directory, es_host, es_port)
def load_merged_analysis_bccrc(ctx, data_directory, id, projects, reload): es_host = ctx.obj['host'] es_port = ctx.obj["port"] # get metadata.json ,sc-test.json, id.json located in the data directory # check to see if those libraries exist # oneline new function called bccrc_verify_libraries() assert reload or not _is_loaded( id, es_host, es_port ), f'Dashboard with ID {id} already loaded. To reload, add --reload to command' nonexistant_projects = [ project for project in projects if not _is_project_exist(project, es_host, es_port) ] assert len(nonexistant_projects ) == 0, f'Projects do not exist: {nonexistant_projects} ' if reload: _clean_analysis(id, host=es_host, port=es_port) _download_libraries_for_merged(id, data_directory) _load_merged_analysis(id, projects, data_directory, es_host, es_port)
def load_analysis_msk(ctx, id, projects, reload): es_host = ctx.obj['host'] es_port = ctx.obj["port"] annotation_pk = _get_scgenome_isabl_annotation_pk(id) #hmmcopy_data = None hmmcopy_data = _get_scgenome_isabl_data(id) print(f'{id} is now {str(annotation_pk)}') id = str(annotation_pk) assert reload or not _is_loaded( id, es_host, es_port ), f'Dashboard with ID {id} already loaded. To reload, add --reload to command' nonexistent_projects = [ project for project in projects if not _is_project_exist(project, es_host, es_port) ] assert len(nonexistent_projects ) == 0, f'Projects do not exist: {nonexistent_projects} ' if reload: _clean_analysis(id, host=es_host, port=es_port) analysis_record = _get_isabl_analysis_object(id) _load_analysis(dashboard_id, hmmcopy_data, analysis_record, projects, host, port)
def load_analysis(ctx, data_directory, id, projects, reload): es_host = ctx.obj['host'] es_port = ctx.obj["port"] assert reload or not _is_loaded( id, es_host, es_port ), f'Dashboard with ID {id} already loaded. To reload, add --reload to command' nonexistant_projects = [ project for project in projects if not _is_project_exist(project, es_host, es_port) ] assert len(nonexistant_projects ) == 0, f'Projects do not exist: {nonexistant_projects} ' if reload: _clean_analysis(id, host=es_host, port=es_port) _load_analysis(id, projects, data_directory, es_host, es_port)
def add_project(ctx, project_name, dashboards): es_host = ctx.obj['host'] es_port = ctx.obj["port"] assert not _is_project_exist( project_name, es_host, es_port), f'Project with name {project_name} already exists' if dashboards[0] == "": dashboards = [] unloaded_dashboards = [ dashboard_id for dashboard_id in dashboards if not _is_loaded(dashboard_id, es_host, es_port) ] assert len(unloaded_dashboards ) == 0, f'Dashboards do not exist: {unloaded_dashboards}' _add_project(project_name, list(dashboards), es_host, es_port)
def verify_projects(ctx, projects): es_host = ctx.obj['host'] es_port = ctx.obj["port"] logger = ctx.obj["logger"] good_projects = [] bad_projects = [] for project in projects: if _is_project_exist(project, es_host, es_port): good_projects.append(project) else: bad_projects.append(project) logger.info(f'==== Verified project names: {len(good_projects)}') for project in good_projects: logger.info(project) logger.info( f'==== Incorrect / Missing project names: {len(bad_projects)} ') for project in bad_projects: logger.info(project)
def load_dashboard(ctx, data_directory, id, projects, download, reload): es_host = ctx.obj['host'] es_port = ctx.obj["port"] nonexistant_projects = [ project for project in projects if not _is_project_exist(project, es_host, es_port) ] assert len(nonexistant_projects ) == 0, f'Projects do not exist: {nonexistant_projects} ' download_type = "merged" if os.path.exists( os.path.join(data_directory, constants.MERGED_DIRECTORYNAME, f"{id}.json")) else "single" if download: if download_type == "merged": _download_libraries_for_merged(id, data_directory) elif download_type == "single": data_directory = _download_analysis(id, data_directory) if reload: _clean_analysis(id, host=es_host, port=es_port, projects=projects) if _is_loaded(id, es_host, es_port): _add_dashboard_to_projects(id, projects, es_host, es_port) else: if download_type == "merged": _load_merged_analysis(id, projects, data_directory, es_host, es_port) elif download_type == "single": hmmcopy_data = _get_scgenome_colossus_tantalus_data(data_directory) analysis_record = __get_colossus_tantalus_analysis_object( directory, dashboard_id) _load_analysis(id, hmmcopy_data, analysis_record, projects, data_directory, es_host, es_port)