{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":67356,"databundleVersionId":8006601,"sourceType":"competition"},{"sourceId":162314401,"sourceType":"kernelVersion"},{"sourceId":162317063,"sourceType":"kernelVersion"}],"dockerImageVersionId":30673,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"!python -m pip install --no-index --find-links=/kaggle/input/autogluon-pkgs autogluon > /dev/null\n!python -m pip install --no-index --find-links=/kaggle/input/ray-pkgs --upgrade --force-reinstall -q ray==2.6.3\n# tips: https://github.com/autogluon/autogluon/issues/3365\n\nfrom autogluon.tabular import TabularDataset, TabularPredictor\nimport gc","metadata":{"_kg_hide-output":true,"execution":{"iopub.status.busy":"2024-04-11T14:26:53.112452Z","iopub.execute_input":"2024-04-11T14:26:53.112838Z","iopub.status.idle":"2024-04-11T14:31:55.573304Z","shell.execute_reply.started":"2024-04-11T14:26:53.112780Z","shell.execute_reply":"2024-04-11T14:31:55.571870Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"!pip install rdkit","metadata":{"execution":{"iopub.status.busy":"2024-04-11T14:31:55.575626Z","iopub.execute_input":"2024-04-11T14:31:55.576221Z","iopub.status.idle":"2024-04-11T14:32:15.653060Z","shell.execute_reply.started":"2024-04-11T14:31:55.576187Z","shell.execute_reply":"2024-04-11T14:32:15.652044Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"!pip install duckdb","metadata":{"execution":{"iopub.status.busy":"2024-04-11T14:32:15.655756Z","iopub.execute_input":"2024-04-11T14:32:15.656234Z","iopub.status.idle":"2024-04-11T14:32:33.598289Z","shell.execute_reply.started":"2024-04-11T14:32:15.656192Z","shell.execute_reply":"2024-04-11T14:32:33.596604Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport rdkit\nfrom rdkit import Chem\nimport duckdb\n\nfrom rdkit import Chem\nfrom rdkit.Chem import AllChem\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import average_precision_score\nfrom sklearn.preprocessing import OneHotEncoder\n\nfrom tqdm import tqdm\nimport pickle","metadata":{"execution":{"iopub.status.busy":"2024-04-11T14:32:33.602232Z","iopub.execute_input":"2024-04-11T14:32:33.602848Z","iopub.status.idle":"2024-04-11T14:32:34.004475Z","shell.execute_reply.started":"2024-04-11T14:32:33.602794Z","shell.execute_reply":"2024-04-11T14:32:34.003146Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_path = '/kaggle/input/leash-predict-chemical-bindings/train.parquet'\ntest_path = '/kaggle/input/leash-predict-chemical-bindings/test.parquet'\n\nCHUNK_SIZE = 100000\n\ncon = duckdb.connect()\ndf = con.query(f\"\"\"(SELECT *\n                    FROM parquet_scan('{train_path}')\n                    WHERE binds = 0\n                    ORDER BY random()\n                    LIMIT {CHUNK_SIZE})\n                    UNION ALL\n                    (SELECT *\n                    FROM parquet_scan('{train_path}')\n                    WHERE binds = 1\n                    ORDER BY random()\n                    LIMIT {CHUNK_SIZE})\"\"\").df()\noutput = f\"train_sample.csv\"\ndf.to_csv(output, index=False)\n!du -s -k {output}\n\n# One-hot encode the protein_name\nonehot_encoder = OneHotEncoder(sparse_output=False)\nprotein_onehot = onehot_encoder.fit_transform(df['protein_name'].values.reshape(-1, 1))\n\nwith open('protein_name_encoder.pkl', 'wb') as f:\n    pickle.dump(onehot_encoder, f)\n\ncon.close()","metadata":{"execution":{"iopub.status.busy":"2024-04-11T14:32:34.006218Z","iopub.execute_input":"2024-04-11T14:32:34.007409Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}