{"cells": [{"cell_type": "markdown", "metadata": {}, "source": "# CAFA6 Frequency Baseline\nGenerate a simple term-frequency prior submission."}, {"cell_type": "code", "metadata": {}, "execution_count": null, "outputs": [], "source": "from pathlib import Path\nimport pandas as pd\n\ndata_root = Path('/kaggle/input/cafa-6-protein-function-prediction')\nterms_path = data_root / 'Train' / 'train_terms.tsv'\nsample_path = data_root / 'sample_submission.tsv'\n\nterms_df = pd.read_csv(terms_path, sep='\t')\nterm_counts = terms_df['term'].value_counts()\nmax_count = max(term_counts.max(), 1)\n\nrows = []\nwith open(sample_path, 'r') as f:\n    for line in f:\n        parts = line.rstrip(\"\\n\").split(\"\\t\")\n        if len(parts) == 3:\n            entry_id, term, _score = parts\n            freq = term_counts.get(term, 0) / max_count\n            rows.append([entry_id, term, f'{freq:.6f}'])\n        elif len(parts) == 4:\n            entry_id, term, _score, text = parts\n            rows.append([entry_id, term, '0.000000', text])\n\nout_path = Path('/kaggle/working/submission.csv')\nwith open(out_path, 'w') as f:\n    for row in rows:\n        f.write(\"\\t\".join(row) + \"\\n\")\n\nprint({'rows': len(rows), 'out': str(out_path)})\n"}], "metadata": {"kernelspec": {"display_name": "Python 3", "language": "python", "name": "python3"}, "language_info": {"name": "python", "version": "3.10"}, "kaggle": {"accelerator": "none"}}, "nbformat": 4, "nbformat_minor": 5}