Commit
·
fb66aff
1
Parent(s):
359ec84
Deadline extension and formatting
Browse files
about.py
CHANGED
|
@@ -16,7 +16,7 @@ WEBSITE_HEADER = f"""
|
|
| 16 |
You can **predict any or all of the 5 properties**, and you can filter the main leaderboard by property.
|
| 17 |
See more details in the "{ABOUT_TAB_NAME}" tab.
|
| 18 |
|
| 19 |
-
Use these results to refine your models before the final submission deadline on **1 November 2025
|
| 20 |
"""
|
| 21 |
|
| 22 |
ABOUT_INTRO = f"""
|
|
@@ -65,7 +65,7 @@ ABOUT_TEXT = f"""
|
|
| 65 |
|
| 66 |
Check out our introductory tutorial on training an antibody developability prediction model with cross-validation [here]({TUTORIAL_URL}).
|
| 67 |
|
| 68 |
-
⏰ Submissions close on **
|
| 69 |
|
| 70 |
---
|
| 71 |
|
|
@@ -204,7 +204,5 @@ The leaderboard will show the average Spearman rank correlation across the 5 fol
|
|
| 204 |
|
| 205 |
## Test set
|
| 206 |
|
| 207 |
-
The **private test set submissions will not be scored automatically**, to avoid test set hacking.
|
| 208 |
-
|
| 209 |
-
Submissions close on **1 November 2025**.
|
| 210 |
"""
|
|
|
|
| 16 |
You can **predict any or all of the 5 properties**, and you can filter the main leaderboard by property.
|
| 17 |
See more details in the "{ABOUT_TAB_NAME}" tab.
|
| 18 |
|
| 19 |
+
Use these results to refine your models before the final submission deadline on **Monday 17 November 2025** AOE (anywhere on earth). *This is an extension from the original deadline of 1 November 2025.*
|
| 20 |
"""
|
| 21 |
|
| 22 |
ABOUT_INTRO = f"""
|
|
|
|
| 65 |
|
| 66 |
Check out our introductory tutorial on training an antibody developability prediction model with cross-validation [here]({TUTORIAL_URL}).
|
| 67 |
|
| 68 |
+
⏰ Submissions close on **Monday 17 November 2025** AOE (anywhere on earth), and submissions will be scored on the private test set. You can update your model and resubmit as often as you like until the final submission deadline. Remember that the cross-validation results are not important - the private test set results are what matter at the end.
|
| 69 |
|
| 70 |
---
|
| 71 |
|
|
|
|
| 204 |
|
| 205 |
## Test set
|
| 206 |
|
| 207 |
+
The **private test set submissions will not be scored automatically**, to avoid test set hacking. There was a one-time evaluation on October 13th, and the next evaluation will be after submissions close on Monday 17 November 2025 AOE (anywhere on earth) to determine winners.
|
|
|
|
|
|
|
| 208 |
"""
|
app.py
CHANGED
|
@@ -265,5 +265,6 @@ with gr.Blocks(theme=gr.themes.Default(text_size=sizes.text_lg)) as demo:
|
|
| 265 |
|
| 266 |
if __name__ == "__main__":
|
| 267 |
demo.launch(
|
| 268 |
-
ssr_mode=False,
|
|
|
|
| 269 |
)
|
|
|
|
| 265 |
|
| 266 |
if __name__ == "__main__":
|
| 267 |
demo.launch(
|
| 268 |
+
ssr_mode=False,
|
| 269 |
+
app_kwargs={"lifespan": periodic_data_fetch},
|
| 270 |
)
|
submit.py
CHANGED
|
@@ -147,7 +147,7 @@ def make_submission(
|
|
| 147 |
anonymous=anonymous,
|
| 148 |
)
|
| 149 |
messages.append(
|
| 150 |
-
f"✅ {display_name}: Your submission has been received! Your results should appear on the leaderboard within a minute."
|
| 151 |
)
|
| 152 |
|
| 153 |
return "\n\n".join(messages)
|
|
|
|
| 147 |
anonymous=anonymous,
|
| 148 |
)
|
| 149 |
messages.append(
|
| 150 |
+
f"✅ {display_name}: Your submission has been received! Your results should appear on the leaderboard within a minute. If they don't, please reach out to antibodycompetition@ginkgobioworks.com."
|
| 151 |
)
|
| 152 |
|
| 153 |
return "\n\n".join(messages)
|
validation.py
CHANGED
|
@@ -195,11 +195,13 @@ def validate_dataframe(df: pd.DataFrame, submission_type: str = "GDPa1") -> None
|
|
| 195 |
missing_count = df[col].isnull().sum()
|
| 196 |
if missing_count > 0:
|
| 197 |
raise gr.Error(f"❌ Column '{col}' contains {missing_count} missing values")
|
| 198 |
-
|
| 199 |
# No constant values in assay columns
|
| 200 |
for col in assay_columns:
|
| 201 |
if df[col].nunique() == 1:
|
| 202 |
-
raise gr.Error(
|
|
|
|
|
|
|
| 203 |
|
| 204 |
# All names should be unique
|
| 205 |
n_duplicates = df["antibody_name"].duplicated().sum()
|
|
|
|
| 195 |
missing_count = df[col].isnull().sum()
|
| 196 |
if missing_count > 0:
|
| 197 |
raise gr.Error(f"❌ Column '{col}' contains {missing_count} missing values")
|
| 198 |
+
|
| 199 |
# No constant values in assay columns
|
| 200 |
for col in assay_columns:
|
| 201 |
if df[col].nunique() == 1:
|
| 202 |
+
raise gr.Error(
|
| 203 |
+
f"❌ Column '{col}' contains a constant value ({df[col].iloc[0]}), and therefore the Spearman correlation is undefined."
|
| 204 |
+
)
|
| 205 |
|
| 206 |
# All names should be unique
|
| 207 |
n_duplicates = df["antibody_name"].duplicated().sum()
|