--- license: mit tags: - leak-curber - kcat - km - leaderboard --- # Leak CURBER kcat–Km model starter This is a starter model for the joint kcat–Km task. You train a model on your computer and upload it to a public Hugging Face (HF) model repository. Then you submit that repository to the Leak CURBER leaderboard. A free HF account is enough. ## Task The input is a Parquet file with the columns `id`, `smiles`, and `sequence`. The output is a CSV file: ```csv id,log10_kcat,log10_km v_000001,0.5,-1.2 ``` Predict both base-10 logged values. Do not exponentiate them. The public data are `train.parquet` (with labels) and `val_inputs.parquet` (inputs only). Validation labels and test data are private. We compute the Spearman rank correlation (SCC) and RMSE for each target. The leaderboard ranks by mean SCC, the average of the two SCCs. A higher value ranks higher. Equal scores favor the earlier submission. ## Baseline The baseline fits a ridge regression with two outputs, one for each target. Its features are the sequence length, the SMILES length, the amino acid frequencies, and the SMILES character frequencies. It uses only the training split. ## Run the baseline ```bash python -m pip install huggingface-hub==2.2.0 hf download starkAhmed43/leak-curber-kcat-km-starter --local-dir model hf download starkAhmed43/leak-curber-kcat-km train.parquet val_inputs.parquet --repo-type dataset --local-dir data cd model python -m pip install -r requirements.txt python predict.py --input example_inputs.parquet --output predictions.csv ``` `example_predictions.csv` shows the output format. To retrain the baseline: ```bash python train.py --train ../data/train.parquet --output weights/baseline.json ``` ## Check with Docker Run these commands in the `model` directory: ```bash mkdir -p output && chmod 777 output docker build --platform linux/amd64 -t my-kcat-km-model . docker run --rm --platform linux/amd64 --user 1000:1000 --network none --cpus 2 --memory 16g \ -v "$PWD/../data:/input:ro" -v "$PWD/output:/output" \ my-kcat-km-model python /app/predict.py \ --input /input/val_inputs.parquet --output /output/predictions.csv ``` `output/predictions.csv` must contain every input ID exactly once. ## Replace the baseline Use any model or library. Train wherever you like, but the model runs on CPU only. The evaluator gives it 2 vCPUs, 16 GB RAM, and 15 minutes for all inputs. This is the maximum and will not be raised. It covers image pull, model load and inference. It has no GPU and no network. Change `Dockerfile`, `requirements.txt`, and `predict.py`. Put the weights in your repository, with all other files that inference needs. Do not add the downloaded data or the `output` directory. We build the image from your `Dockerfile`. The image must meet these limits: - Linux x86-64, with Python at `/usr/local/bin/python` and working directory `/app`. - The command is `python /app/predict.py --input INPUT --output OUTPUT`. - The build must finish in 30 minutes. The repository must be 4 GiB or less. - No file that `predict.py` writes may exceed 16 MiB. We start Python directly. Docker entrypoints and shell startup hooks do not run. Use `/tmp` for temporary files. An evaluation fails in these cases: - The columns are not exactly `id,log10_kcat,log10_km`. - An ID is missing, duplicated, or added. - A value is not finite, or its absolute value is more than 1,000,000. - Inference needs more than 15 minutes, or needs the network. Row order does not matter. ## Submit Choose the task assigned to you in [this sheet](https://docs.google.com/spreadsheets/d/12c2PaYcNDpa6bA0JPmKi6tHsdV-EdFe2IYQ70RqpGRI/edit?usp=sharing). 1. Sign in: `hf auth login`. 2. Upload the `model` directory to a public model repository: ```bash hf upload YOUR_USERNAME/YOUR_MODEL . --repo-type model --no-private --exclude ".cache/**" "output/**" "predictions.csv" ``` For an existing repository, make sure it is public. The `--no-private` flag does not change an existing repository. The repository must contain `Dockerfile`, `predict.py`, and `README.md`. 3. Open the [leaderboard](https://huggingface.co/spaces/starkAhmed43/leak-curber-leaderboard), select the kcat–Km tab, and sign in with your registered account. 4. Under Submit model, enter the repository ID, the revision (default `main`), and a model name. Select Submit for validation. 5. Watch the progress under My submissions. A submission records a fixed commit. Later changes to the repository do not change it. The validation score appears when the evaluation ends. ## Limits and deadline - Each team has 2 submissions per day and 20 in total for each task. - Failed model runs count against these limits. - Only one of your evaluations can be active at a time. - Under My submissions, nominate one completed submission for the test evaluation. Each task has its own nomination. If you do not nominate, we use your best validation score. - Your best and your nominated submissions stay protected. Other successful archives expire after 7 days. - Submit and nominate before November 7, 2026, 23:59 IST. We will publish test scores after that. ## Help - If the leaderboard says your account is not approved, post your HF username in the Moodle course discussion forum. - If the leaderboard says the evaluator is unavailable, refresh shortly. Post in the Moodle course discussion forum if the error persists. - Post any other question in the Moodle course discussion forum.