Skip to content

How to get base_input and score? #185

@linxinqiao

Description

@linxinqiao

Dear author, thank you for your outstanding work! To evaluate my model locally, I plan to use the code I have placed at the end of the text. When doing so, how can I obtain the "base_input"? Is my current code correct, or could you please provide an example specifically for VCC 2025 (https://virtualcellchallenge.org/evaluation)?

In addition, if I train and run inference using the preprocess_train output data and obtain an .h5ad file, can I directly use it here for evaluation?

def get_metrics_pred(adata_real_path, adata_pred_path):

    adata_real = ad.read_h5ad(adata_real_path)
    adata_pred = ad.read_h5ad(adata_pred_path)

    evaluator = MetricsEvaluator(
        adata_pred=adata_pred,
        adata_real=adata_real,
        pert_col="target_gene",         
        control_pert="non-targeting",   
        num_threads=16
    )

    results, agg_results = evaluator.compute()

    print(results)
    print(agg_results)

    old_dir = "./cell-eval-outdir"
    new_dir = "./cell-eval-user"
    os.rename(old_dir, new_dir)



def get_metrics_base():

    adata_real = build_random_anndata()
    adata_pred = downsample_cells(adata_real, fraction=0.5)
    evaluator = MetricsEvaluator(
        adata_pred=adata_pred,
        adata_real=adata_real,
        control_pert="control",
        pert_col="perturbation",
        num_threads=16,
    )
    (results, agg_results) = evaluator.compute()

    print(results)
    print(agg_results)

    old_dir = "./cell-eval-outdir"
    new_dir = "./cell-eval-base"
    os.rename(old_dir, new_dir)



def get_score():

    user_df = pd.read_csv("./cell-eval-user/agg_results.csv")
    base_df = pd.read_csv("./cell-eval-base/agg_results.csv")

    deleted_columns = [col for col in user_df.columns if col not in base_df.columns]

    print("The col to be deleted:")
    for col in deleted_columns:
        print(col)

    user_df = user_df[base_df.columns]

    user_df.to_csv("./cell-eval-user/agg_results_fixed.csv", index=False)

    user_input = "./cell-eval-user/agg_results_fixed.csv"
    base_input = "./cell-eval-base/agg_results.csv"
    output_path = "./score.csv"

    score_agg_metrics(
        results_user=user_input,
        results_base=base_input,
        output=output_path,
    )

    output_path = "./score.csv"
    df = pd.read_csv(output_path)

    print(df) 

    return df

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions