| """ |
| Constants for the Antibody Developability Benchmark |
| """ |
|
|
| import os |
| from huggingface_hub import HfApi |
|
|
| ASSAY_LIST = ["AC-SINS_pH7.4", "PR_CHO", "HIC", "Tm2", "Titer"] |
| ASSAY_RENAME = { |
| "AC-SINS_pH7.4": "Self-association", |
| "PR_CHO": "Polyreactivity", |
| "HIC": "Hydrophobicity", |
| "Tm2": "Thermostability", |
| "Titer": "Titer", |
| } |
| ASSAY_DESCRIPTION = { |
| "AC-SINS_pH7.4": "Self association by AC-SINS at pH 7.4", |
| "PR_CHO": "Polyreactivity by bead-based method against CHO SMP", |
| "HIC": "Hydrophobicity by HIC", |
| "Tm2": "Thermostability by nanoDSF", |
| "Titer": "Titer by Valita", |
| } |
| ASSAY_EMOJIS = { |
| "AC-SINS_pH7.4": "π§²", |
| "PR_CHO": "π―", |
| "HIC": "π§", |
| "Tm2": "π‘οΈ", |
| "Titer": "π§ͺ", |
| } |
| ASSAY_HIGHER_IS_BETTER = { |
| "HIC": False, |
| "Tm2": True, |
| "Titer": True, |
| "PR_CHO": False, |
| "AC-SINS_pH7.4": False, |
| } |
| |
| ABOUT_TAB_NAME = "π About / Rules" |
| FAQ_TAB_NAME = "β FAQs" |
| SUBMIT_TAB_NAME = "βοΈ Submit" |
|
|
| REGISTRATION_CODE = os.environ.get("REGISTRATION_CODE") |
| TERMS_URL = "https://euphsfcyogalqiqsawbo.supabase.co/storage/v1/object/public/gdpweb/pdfs/2025%20Ginkgo%20Antibody%20Developability%20Prediction%20Competition%202025-08-28-v2.pdf" |
| SLACK_URL = "https://join.slack.com/t/bitsinbio/shared_invite/zt-3dqigle2b-e0dEkfPPzzWL055j_8N_eQ" |
| TUTORIAL_URL = "https://huggingface.co/blog/ginkgo-datapoints/making-antibody-embeddings-and-predictions" |
|
|
| |
| REQUIRED_COLUMNS: list[str] = [ |
| "antibody_name", |
| ] |
| |
| CV_COLUMN = "hierarchical_cluster_IgG_isotype_stratified_fold" |
| |
| SEQUENCES_FILE_DICT = { |
| "GDPa1": "data/GDPa1_v1.2_sequences.csv", |
| "GDPa1_cross_validation": "data/GDPa1_v1.2_sequences.csv", |
| "Heldout Test Set": "data/heldout-set-sequences.csv", |
| } |
| |
| GDPa1_path = "hf://datasets/ginkgo-datapoints/GDPa1/GDPa1_v1.2_20250814.csv" |
|
|
| |
| TOKEN = os.environ.get("HF_TOKEN") |
| CACHE_PATH = os.getenv("HF_HOME", ".") |
| API = HfApi(token=TOKEN) |
|
|
| |
| ORGANIZATION = "ginkgo-datapoints" |
| SUBMISSIONS_REPO = f"{ORGANIZATION}/abdev-bench-submissions" |
| RESULTS_REPO = f"{ORGANIZATION}/abdev-bench-results" |
|
|
| |
| LEADERBOARD_RESULTS_COLUMNS = [ |
| "user", |
| "assay", |
| "spearman", |
| "dataset", |
| "model", |
| "submission_time", |
| ] |
| LEADERBOARD_DISPLAY_COLUMNS = [ |
| "user", |
| "property", |
| "spearman", |
| "dataset", |
| "model", |
| "submission_time", |
| ] |
| LEADERBOARD_COLUMNS_RENAME = { |
| "spearman": "Spearman Correlation", |
| "dataset": "Dataset", |
| "user": "User", |
| "submission_time": "Submission Time", |
| "model": "Model Name", |
| "property": "Property", |
| } |
| BASELINE_USERNAMES = ["loodvanniekerkginkgo"] |
|
|
|
|
| def LEADERBOARD_COLUMNS_RENAME_LIST(columns: list[str]) -> list[str]: |
| return list(map(lambda x: LEADERBOARD_COLUMNS_RENAME.get(x, x), columns)) |
|
|