예제 #1
0
def plot_beta_alt_mpl(dataset,
                      beta_metric,
                      named_sample_set,
                      sample_id=None,
                      category=None):
    pcoa_repo = _get_pcoa_repo(dataset)
    metadata_repo = _get_metadata_repo(dataset, get_resources)

    if not pcoa_repo.has_pcoa(named_sample_set, beta_metric):
        raise UnknownResource(f"No PCoA for named_sample_set="
                              f"'{named_sample_set}',beta_metric="
                              f"'{beta_metric}'")
    # check metadata repo for the requested categories
    has_category = metadata_repo.has_category([category])
    missing_categories = [
        cat for i, cat in enumerate([
            category,
        ]) if not has_category[i]
    ]
    if len(missing_categories) > 0:
        raise UnknownResource(f"Missing specified metadata categories: "
                              f"{missing_categories}")
    pcoa = pcoa_repo.get_pcoa(named_sample_set, beta_metric)
    metadata = metadata_repo.get_metadata(category)

    x = pcoa.samples[0]
    y = pcoa.samples[1]
    response = _make_mpl_fig(metadata, x, y, sample_id)

    return send_file(response,
                     mimetype='image/png',
                     as_attachment=True,
                     attachment_filename='pcoa.png',
                     conditional=True)
예제 #2
0
def plot_alpha_filtered_json_query_alt(dataset,
                                       body,
                                       alpha_metric=None,
                                       percentiles=None,
                                       sample_id=None):
    repo = _get_metadata_repo(dataset, get_resources)
    alpha_repo_getter = _alpha_repo_getter_alt(dataset)
    return _plot_alpha_percentiles_querybuilder(
        alpha_metric,
        percentiles,
        body,
        repo,
        sample_id,
        alpha_repo_getter,
    )
예제 #3
0
def plot_alpha_filtered_alt(dataset,
                            alpha_metric=None,
                            percentiles=None,
                            sample_id=None,
                            **kwargs):

    repo = _get_metadata_repo(dataset, get_resources)
    query = _format_query(kwargs)
    is_invalid = _validate_query(kwargs, repo)
    if is_invalid:
        return is_invalid

    alpha_repo_getter = _alpha_repo_getter_alt(dataset)
    return _plot_alpha_percentiles_querybuilder(
        alpha_metric,
        percentiles,
        query,
        repo,
        sample_id,
        alpha_repo_getter,
    )
예제 #4
0
def dataset_sample_exists(dataset, sample_id):
    metadata = _get_metadata_repo(dataset)
    return metadata.has_sample_id(sample_id)