-
Notifications
You must be signed in to change notification settings - Fork 39
Open
Description
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 dfMetadata
Metadata
Assignees
Labels
No labels