|  | """ | 
					
						
						|  | Constants for the Antibody Developability Benchmark | 
					
						
						|  | """ | 
					
						
						|  |  | 
					
						
						|  | import os | 
					
						
						|  | from huggingface_hub import HfApi | 
					
						
						|  | import pandas as pd | 
					
						
						|  |  | 
					
						
						|  | 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": "π§ͺ", | 
					
						
						|  | } | 
					
						
						|  |  | 
					
						
						|  | 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" | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | REQUIRED_COLUMNS: list[str] = [ | 
					
						
						|  | "antibody_name", | 
					
						
						|  | "vh_protein_sequence", | 
					
						
						|  | "vl_protein_sequence", | 
					
						
						|  | ] | 
					
						
						|  |  | 
					
						
						|  | CV_COLUMN = "hierarchical_cluster_IgG_isotype_stratified_fold" | 
					
						
						|  |  | 
					
						
						|  | EXAMPLE_FILE_DICT = { | 
					
						
						|  | "GDPa1": "data/example-predictions.csv", | 
					
						
						|  | "GDPa1_cross_validation": "data/example-predictions-cv.csv", | 
					
						
						|  | "Heldout Test Set": "data/example-predictions-heldout.csv", | 
					
						
						|  | } | 
					
						
						|  | ANTIBODY_NAMES_DICT = { | 
					
						
						|  | "GDPa1": pd.read_csv(EXAMPLE_FILE_DICT["GDPa1"])["antibody_name"].tolist(), | 
					
						
						|  | "GDPa1_cross_validation": pd.read_csv(EXAMPLE_FILE_DICT["GDPa1_cross_validation"])[ | 
					
						
						|  | "antibody_name" | 
					
						
						|  | ].tolist(), | 
					
						
						|  | "Heldout Test Set": pd.read_csv(EXAMPLE_FILE_DICT["Heldout Test Set"])[ | 
					
						
						|  | "antibody_name" | 
					
						
						|  | ].tolist(), | 
					
						
						|  | } | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | 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 = [ | 
					
						
						|  | "model", | 
					
						
						|  | "assay", | 
					
						
						|  | "spearman", | 
					
						
						|  | "dataset", | 
					
						
						|  | "user", | 
					
						
						|  | "submission_time", | 
					
						
						|  | ] | 
					
						
						|  | LEADERBOARD_DISPLAY_COLUMNS = [ | 
					
						
						|  | "model", | 
					
						
						|  | "property", | 
					
						
						|  | "spearman", | 
					
						
						|  | "dataset", | 
					
						
						|  | "user", | 
					
						
						|  | "submission_time", | 
					
						
						|  | ] | 
					
						
						|  | LEADERBOARD_COLUMNS_RENAME = { | 
					
						
						|  | "spearman": "Spearman Correlation", | 
					
						
						|  | "dataset": "Dataset", | 
					
						
						|  | "user": "User", | 
					
						
						|  | "submission_time": "Submission Time", | 
					
						
						|  | "model": "Model Name", | 
					
						
						|  | "property": "Property", | 
					
						
						|  | } | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | def LEADERBOARD_COLUMNS_RENAME_LIST(columns: list[str]) -> list[str]: | 
					
						
						|  | return list(map(lambda x: LEADERBOARD_COLUMNS_RENAME.get(x, x), columns)) | 
					
						
						|  |  |