{"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.12.12"},"kaggle":{"accelerator":"gpu","dataSources":[{"sourceType":"competition","sourceId":118765,"databundleVersionId":16320058},{"sourceType":"datasetVersion","sourceId":11118830,"datasetId":6933267,"databundleVersionId":11511771},{"sourceType":"datasetVersion","sourceId":14519720,"datasetId":9271415,"databundleVersionId":15347344},{"sourceType":"modelInstanceVersion","sourceId":311741,"databundleVersionId":11641144,"modelInstanceId":264400,"modelId":285488},{"sourceType":"kernelVersion","sourceId":292115284}],"dockerImageVersionId":31260,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true},"papermill":{"default_parameters":{},"duration":3061.935344,"end_time":"2026-01-15T23:04:47.93547","environment_variables":{},"exception":null,"input_path":"__notebook__.ipynb","output_path":"__notebook__.ipynb","parameters":{},"start_time":"2026-01-15T22:13:46.000126","version":"2.6.0"}},"nbformat_minor":4,"nbformat":4,"cells":[{"id":"2c59d922","cell_type":"markdown","source":"# 🧬RNAPro: An accurate RNA structure prediction model by Kaggle synthesis\n\n**About:**\nThis notebooks shows how to use RNAPro for inference\n\n⭐ The code is available on GitHub ⭐\n> https://github.com/NVIDIA-Digital-Bio/RNAPro\n\n\n**Latest changes:**\n- Fix template path issue which made the kernel fail :(\n- Use the Kaggle [RNAPro dataset](https://www.kaggle.com/datasets/theoviel/rnapro-src)\n- This notebook scores 0.42 on the 2026 Private Leaderboard !\n\n##### For offline use, refer to this notebook:\n> https://www.kaggle.com/code/theoviel/rna-3d-folding-pt2-rnapro-offline-inference","metadata":{"papermill":{"duration":0.006278,"end_time":"2026-01-15T22:13:48.680723","exception":false,"start_time":"2026-01-15T22:13:48.674445","status":"completed"},"tags":[]}},{"id":"24a03f82","cell_type":"markdown","source":"## Download everything\n\n> This requires internet\n\nFor offline use, your notebook can use the output of the following cells as an external source, and proceed to the installation section.\n\nThe output is made available in the [RNAPro src dataset](https://www.kaggle.com/datasets/theoviel/rnapro-src).","metadata":{"papermill":{"duration":0.004739,"end_time":"2026-01-15T22:13:48.690693","exception":false,"start_time":"2026-01-15T22:13:48.685954","status":"completed"},"tags":[]}},{"id":"e7a1ed4f","cell_type":"markdown","source":"### Weights","metadata":{"papermill":{"duration":0.004687,"end_time":"2026-01-15T22:13:48.700197","exception":false,"start_time":"2026-01-15T22:13:48.69551","status":"completed"},"tags":[]}},{"id":"3160ad28-f931-4c40-a397-0f3bbdbcf407","cell_type":"code","source":"# !wget https://huggingface.co/nvidia/RNAPro-Private-Best-500M/resolve/main/rnapro-private-best-500m.ckpt","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-04-02T09:34:06.355602Z","iopub.execute_input":"2026-04-02T09:34:06.355885Z","iopub.status.idle":"2026-04-02T09:34:06.359861Z","shell.execute_reply.started":"2026-04-02T09:34:06.355859Z","shell.execute_reply":"2026-04-02T09:34:06.358848Z"}},"outputs":[],"execution_count":null},{"id":"e2987cc7","cell_type":"code","source":"!cp /kaggle/input/datasets/theoviel/rnapro-src/rnapro-private-best-500m.ckpt ./","metadata":{"_kg_hide-output":true,"execution":{"iopub.status.busy":"2026-04-02T09:34:06.553443Z","iopub.execute_input":"2026-04-02T09:34:06.55374Z","iopub.status.idle":"2026-04-02T09:34:38.816979Z","shell.execute_reply.started":"2026-04-02T09:34:06.553713Z","shell.execute_reply":"2026-04-02T09:34:38.816191Z"},"papermill":{"duration":1975.401231,"end_time":"2026-01-15T22:46:44.106287","exception":false,"start_time":"2026-01-15T22:13:48.705056","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"50006cec","cell_type":"markdown","source":"### Code","metadata":{"papermill":{"duration":0.167493,"end_time":"2026-01-15T22:46:44.436316","exception":false,"start_time":"2026-01-15T22:46:44.268823","status":"completed"},"tags":[]}},{"id":"e30d623f-e580-4702-be46-01356f407b64","cell_type":"code","source":"# !git clone https://github.com/NVIDIA-Digital-Bio/RNAPro.git","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-04-02T09:34:38.818726Z","iopub.execute_input":"2026-04-02T09:34:38.819197Z","iopub.status.idle":"2026-04-02T09:34:38.822757Z","shell.execute_reply.started":"2026-04-02T09:34:38.819152Z","shell.execute_reply":"2026-04-02T09:34:38.822062Z"}},"outputs":[],"execution_count":null},{"id":"e25c206f","cell_type":"code","source":"!cp -r /kaggle/input/datasets/theoviel/rnapro-src/RNAPro ./","metadata":{"execution":{"iopub.status.busy":"2026-04-02T09:34:38.823684Z","iopub.execute_input":"2026-04-02T09:34:38.824211Z","iopub.status.idle":"2026-04-02T09:34:39.986538Z","shell.execute_reply.started":"2026-04-02T09:34:38.824189Z","shell.execute_reply":"2026-04-02T09:34:39.985768Z"},"papermill":{"duration":1.070913,"end_time":"2026-01-15T22:46:45.672274","exception":false,"start_time":"2026-01-15T22:46:44.601361","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"fe7fbffa","cell_type":"markdown","source":"### Package Wheels","metadata":{"papermill":{"duration":0.161265,"end_time":"2026-01-15T22:46:46.000871","exception":false,"start_time":"2026-01-15T22:46:45.839606","status":"completed"},"tags":[]}},{"id":"e2084ae3","cell_type":"code","source":"!mkdir wheels","metadata":{"execution":{"iopub.status.busy":"2026-04-02T09:34:42.374236Z","iopub.execute_input":"2026-04-02T09:34:42.374999Z","iopub.status.idle":"2026-04-02T09:34:42.490045Z","shell.execute_reply.started":"2026-04-02T09:34:42.374948Z","shell.execute_reply":"2026-04-02T09:34:42.489312Z"},"papermill":{"duration":0.284767,"end_time":"2026-01-15T22:46:46.44955","exception":false,"start_time":"2026-01-15T22:46:46.164783","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"db223a72","cell_type":"code","source":"cd wheels","metadata":{"execution":{"iopub.status.busy":"2026-04-02T09:34:42.610299Z","iopub.execute_input":"2026-04-02T09:34:42.61082Z","iopub.status.idle":"2026-04-02T09:34:42.616034Z","shell.execute_reply.started":"2026-04-02T09:34:42.610789Z","shell.execute_reply":"2026-04-02T09:34:42.615518Z"},"papermill":{"duration":0.178695,"end_time":"2026-01-15T22:46:46.880764","exception":false,"start_time":"2026-01-15T22:46:46.702069","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"a73a8793","cell_type":"code","source":"pip download -r ../RNAPro/requirements.txt","metadata":{"_kg_hide-output":true,"execution":{"iopub.status.busy":"2026-04-02T09:34:43.597864Z","iopub.execute_input":"2026-04-02T09:34:43.59874Z","iopub.status.idle":"2026-04-02T09:37:05.542875Z","shell.execute_reply.started":"2026-04-02T09:34:43.598706Z","shell.execute_reply":"2026-04-02T09:37:05.542029Z"},"papermill":{"duration":120.501337,"end_time":"2026-01-15T22:48:47.554536","exception":false,"start_time":"2026-01-15T22:46:47.053199","status":"completed"},"scrolled":true,"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"8ce55267","cell_type":"markdown","source":"## Installation\n\nIf you are using an offline version, copy the RNAPro folder to `/kaggle/working/` first.\nYou will also need to update the `--find-links=./wheels/` argument.","metadata":{"papermill":{"duration":0.216564,"end_time":"2026-01-15T22:48:47.98686","exception":false,"start_time":"2026-01-15T22:48:47.770296","status":"completed"},"tags":[]}},{"id":"c6532194","cell_type":"code","source":"cd /kaggle/working/","metadata":{"execution":{"iopub.status.busy":"2026-04-02T09:37:05.544752Z","iopub.execute_input":"2026-04-02T09:37:05.544975Z","iopub.status.idle":"2026-04-02T09:37:05.550704Z","shell.execute_reply.started":"2026-04-02T09:37:05.544949Z","shell.execute_reply":"2026-04-02T09:37:05.550039Z"},"papermill":{"duration":0.239616,"end_time":"2026-01-15T22:48:48.537648","exception":false,"start_time":"2026-01-15T22:48:48.298032","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"8d21e9b3","cell_type":"code","source":"pip install -r RNAPro/requirements.txt --find-links=./wheels/ --no-index --no-build-isolation","metadata":{"_kg_hide-output":true,"execution":{"iopub.status.busy":"2026-04-02T09:37:05.551573Z","iopub.execute_input":"2026-04-02T09:37:05.55182Z","iopub.status.idle":"2026-04-02T09:40:23.027366Z","shell.execute_reply.started":"2026-04-02T09:37:05.551793Z","shell.execute_reply":"2026-04-02T09:40:23.026556Z"},"papermill":{"duration":206.03569,"end_time":"2026-01-15T22:52:14.805078","exception":false,"start_time":"2026-01-15T22:48:48.769388","status":"completed"},"scrolled":true,"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"05423c33","cell_type":"code","source":"cd RNAPro","metadata":{"execution":{"iopub.status.busy":"2026-04-02T09:40:23.029321Z","iopub.execute_input":"2026-04-02T09:40:23.030033Z","iopub.status.idle":"2026-04-02T09:40:23.036282Z","shell.execute_reply.started":"2026-04-02T09:40:23.029973Z","shell.execute_reply":"2026-04-02T09:40:23.034683Z"},"papermill":{"duration":0.225636,"end_time":"2026-01-15T22:52:15.328151","exception":false,"start_time":"2026-01-15T22:52:15.102515","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"07f7778f","cell_type":"code","source":"pip install -e . --no-deps","metadata":{"execution":{"iopub.status.busy":"2026-04-02T09:40:23.038627Z","iopub.execute_input":"2026-04-02T09:40:23.039096Z","iopub.status.idle":"2026-04-02T09:40:27.740288Z","shell.execute_reply.started":"2026-04-02T09:40:23.039072Z","shell.execute_reply":"2026-04-02T09:40:27.739318Z"},"papermill":{"duration":5.048747,"end_time":"2026-01-15T22:52:20.595672","exception":false,"start_time":"2026-01-15T22:52:15.546925","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"31812bd4","cell_type":"markdown","source":"## Templates\n\nFor simplicity, I use precomputed templates. When submitting, you will need to compute templates as part of your inference notebook.\n\nThe code to compute templates is available here :\n> https://www.kaggle.com/code/theoviel/stanford-rna-3d-folding-part-2-templates/\n\nWe simply call the utility script to convert them to the expected format.","metadata":{"papermill":{"duration":0.217386,"end_time":"2026-01-15T22:52:21.051653","exception":false,"start_time":"2026-01-15T22:52:20.834267","status":"completed"},"tags":[]}},{"id":"8b4a8d9c","cell_type":"code","source":"!python preprocess/convert_templates_to_pt_files.py --input_csv /kaggle/input/stanford-rna-3d-folding-pt2-templates/templates_tbm.csv --output_name templates.pt","metadata":{"execution":{"iopub.status.busy":"2026-04-02T09:40:57.84289Z","iopub.execute_input":"2026-04-02T09:40:57.84358Z","iopub.status.idle":"2026-04-02T09:41:01.348045Z","shell.execute_reply.started":"2026-04-02T09:40:57.843547Z","shell.execute_reply":"2026-04-02T09:41:01.347286Z"},"papermill":{"duration":3.887097,"end_time":"2026-01-15T22:52:25.157531","exception":false,"start_time":"2026-01-15T22:52:21.270434","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"f36b2fa6","cell_type":"markdown","source":"## cdd cache\n\nYou can either \n- Recompute the cdd cache using `python preprocess/gen_ccd_cache.py`\n- Use the precomputed files from the proteinix external dataset.\n\nRunning the script might be better since the resulting file will include the latest information, but requires some time.","metadata":{"papermill":{"duration":0.214123,"end_time":"2026-01-15T22:52:25.673436","exception":false,"start_time":"2026-01-15T22:52:25.459313","status":"completed"},"tags":[]}},{"id":"52c719fc","cell_type":"code","source":"DIST = \"/kaggle/working/RNAPro/release_data/ccd_cache/\"\n!mkdir -p $DIST","metadata":{"execution":{"iopub.status.busy":"2026-04-02T09:41:03.811404Z","iopub.execute_input":"2026-04-02T09:41:03.812277Z","iopub.status.idle":"2026-04-02T09:41:03.928744Z","shell.execute_reply.started":"2026-04-02T09:41:03.812232Z","shell.execute_reply":"2026-04-02T09:41:03.927936Z"},"papermill":{"duration":0.336228,"end_time":"2026-01-15T22:52:26.226391","exception":false,"start_time":"2026-01-15T22:52:25.890163","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"39bed9e5","cell_type":"code","source":"# !python preprocess/gen_ccd_cache.py -c $DIST","metadata":{"execution":{"iopub.status.busy":"2026-04-02T09:41:04.573646Z","iopub.execute_input":"2026-04-02T09:41:04.574178Z","iopub.status.idle":"2026-04-02T09:41:04.577599Z","shell.execute_reply.started":"2026-04-02T09:41:04.574142Z","shell.execute_reply":"2026-04-02T09:41:04.576811Z"},"papermill":{"duration":0.223126,"end_time":"2026-01-15T22:52:26.665028","exception":false,"start_time":"2026-01-15T22:52:26.441902","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"38285b0b","cell_type":"code","source":"!cp /kaggle/input/protenix-checkpoints/components.v20240608.cif $DIST\n!cp /kaggle/input/protenix-checkpoints/components.v20240608.cif.rdkit_mol.pkl $DIST","metadata":{"execution":{"iopub.status.busy":"2026-04-02T09:41:08.34109Z","iopub.execute_input":"2026-04-02T09:41:08.341658Z","iopub.status.idle":"2026-04-02T09:41:11.334148Z","shell.execute_reply.started":"2026-04-02T09:41:08.341628Z","shell.execute_reply":"2026-04-02T09:41:11.333295Z"},"papermill":{"duration":5.839296,"end_time":"2026-01-15T22:52:32.72341","exception":false,"start_time":"2026-01-15T22:52:26.884114","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"d5f7ed6e","cell_type":"markdown","source":"## Inference\n","metadata":{"papermill":{"duration":0.308629,"end_time":"2026-01-15T22:52:33.251757","exception":false,"start_time":"2026-01-15T22:52:32.943128","status":"completed"},"tags":[]}},{"id":"8f47c2f2","cell_type":"code","source":"cd /kaggle/working/RNAPro","metadata":{"execution":{"iopub.status.busy":"2026-04-02T09:41:13.004157Z","iopub.execute_input":"2026-04-02T09:41:13.004845Z","iopub.status.idle":"2026-04-02T09:41:13.00931Z","shell.execute_reply.started":"2026-04-02T09:41:13.00481Z","shell.execute_reply":"2026-04-02T09:41:13.008663Z"},"papermill":{"duration":0.224458,"end_time":"2026-01-15T22:52:33.695085","exception":false,"start_time":"2026-01-15T22:52:33.470627","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"8ce0efa0","cell_type":"markdown","source":"### Subsample of the data for inference example","metadata":{"papermill":{"duration":0.216091,"end_time":"2026-01-15T22:52:34.127422","exception":false,"start_time":"2026-01-15T22:52:33.911331","status":"completed"},"tags":[]}},{"id":"141fd9bf","cell_type":"code","source":"%%python\nimport pandas as pd\ndf = pd.read_csv(\"/kaggle/input/stanford-rna-3d-folding-2/test_sequences.csv\")\ndf = df.head(5)\ndf.to_csv('/kaggle/working/sample_sequences.csv', index=False)","metadata":{"execution":{"iopub.status.busy":"2026-04-02T09:41:13.852762Z","iopub.execute_input":"2026-04-02T09:41:13.853487Z","iopub.status.idle":"2026-04-02T09:41:14.460723Z","shell.execute_reply.started":"2026-04-02T09:41:13.85344Z","shell.execute_reply":"2026-04-02T09:41:14.460137Z"},"papermill":{"duration":0.824995,"end_time":"2026-01-15T22:52:35.171136","exception":false,"start_time":"2026-01-15T22:52:34.346141","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"3cfb1419","cell_type":"markdown","source":"### Inference script\n- Where the parameters are specified","metadata":{"papermill":{"duration":0.223898,"end_time":"2026-01-15T22:52:36.592426","exception":false,"start_time":"2026-01-15T22:52:36.368528","status":"completed"},"tags":[]}},{"id":"4d436121","cell_type":"code","source":"%%writefile rnapro_inference_kaggle.sh\n\nexport LAYERNORM_TYPE=torch # fast_layernorm, torch\n\n# Inference parameters (RNAPro)\nSEED=42\nN_SAMPLE=1\nN_STEP=200\nN_CYCLE=10\n\n# Save folder\nDUMP_DIR=\"../output\"\n\n# Set a valid checkpoint file path below\nCHECKPOINT_PATH=\"../rnapro-private-best-500m.ckpt\"\n\n# Template/MSA settings\nTEMPLATE_DATA=\"./release_data/kaggle/templates.pt\"\n# Note: template_idx supports 5 choices and maps to top-k:\n# 0->top1, 1->top2, 2->top3, 3->top4, 4->top5\nTEMPLATE_IDX=0\n\nRNA_MSA_DIR=\"/kaggle/input/stanford-rna-3d-folding-2/MSA\"\n\n# SEQUENCES_CSV=\"/kaggle/input/stanford-rna-3d-folding-2/test_sequences.csv\"  # use this for submission !\nSEQUENCES_CSV=\"/kaggle/working/sample_sequences.csv\"\n\n# RibonanzaNet2 path (keep as-is per request)\nRIBONANZA_PATH=\"/kaggle/input/ribonanzanet2/pytorch/alpha/1/\"\n\n# Model selection: keep to an existing key to align defaults (N_step=200, N_cycle=10)\nMODEL_NAME=\"rnapro_base\"\nmkdir -p \"${DUMP_DIR}\"\n\npython3 runner/inference.py \\\n    --model_name \"${MODEL_NAME}\" \\\n    --seeds ${SEED} \\\n    --dump_dir \"${DUMP_DIR}\" \\\n    --load_checkpoint_path \"${CHECKPOINT_PATH}\" \\\n    --use_msa true \\\n    --use_template \"ca_precomputed\" \\\n    --model.use_template \"ca_precomputed\" \\\n    --model.use_RibonanzaNet2 true \\\n    --model.template_embedder.n_blocks 2 \\\n    --model.ribonanza_net_path \"${RIBONANZA_PATH}\" \\\n    --template_data \"${TEMPLATE_DATA}\" \\\n    --template_idx ${TEMPLATE_IDX} \\\n    --rna_msa_dir \"${RNA_MSA_DIR}\" \\\n    --model.N_cycle ${N_CYCLE} \\\n    --sample_diffusion.N_sample ${N_SAMPLE} \\\n    --sample_diffusion.N_step ${N_STEP} \\\n    --load_strict true \\\n    --num_workers 0 \\\n    --triangle_attention \"torch\" \\\n    --triangle_multiplicative \"torch\" \\\n    --sequences_csv \"${SEQUENCES_CSV}\" \\\n    --max_len 1000 \\\n    --logger \"print\" \\\n    --n_templates_inf 5\n\n\n# --triangle_attention supports 'triattention', 'cuequivariance', 'deepspeed', 'torch'\n# --triangle_multiplicative supports 'cuequivariance', 'torch'\n# --max_len 1000: Sequences longer than max_len will be skipped to avoid oom","metadata":{"execution":{"iopub.status.busy":"2026-04-02T09:41:52.679089Z","iopub.execute_input":"2026-04-02T09:41:52.679404Z","iopub.status.idle":"2026-04-02T09:41:52.685498Z","shell.execute_reply.started":"2026-04-02T09:41:52.679373Z","shell.execute_reply":"2026-04-02T09:41:52.684868Z"},"papermill":{"duration":0.225419,"end_time":"2026-01-15T22:52:37.032055","exception":false,"start_time":"2026-01-15T22:52:36.806636","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"ce100628","cell_type":"markdown","source":"### Run !","metadata":{"papermill":{"duration":0.304625,"end_time":"2026-01-15T22:52:37.573143","exception":false,"start_time":"2026-01-15T22:52:37.268518","status":"completed"},"tags":[]}},{"id":"e4c23b38","cell_type":"code","source":"!bash ./rnapro_inference_kaggle.sh","metadata":{"_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","execution":{"iopub.status.busy":"2026-04-02T09:41:56.187082Z","iopub.execute_input":"2026-04-02T09:41:56.187374Z","iopub.status.idle":"2026-04-02T09:53:55.337165Z","shell.execute_reply.started":"2026-04-02T09:41:56.18735Z","shell.execute_reply":"2026-04-02T09:53:55.336464Z"},"papermill":{"duration":727.648981,"end_time":"2026-01-15T23:04:45.440608","exception":false,"start_time":"2026-01-15T22:52:37.791627","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"16fa56eb","cell_type":"code","source":"!mv submission.csv ..","metadata":{"execution":{"iopub.status.busy":"2026-04-02T09:53:55.338735Z","iopub.execute_input":"2026-04-02T09:53:55.338951Z","iopub.status.idle":"2026-04-02T09:53:55.459839Z","shell.execute_reply.started":"2026-04-02T09:53:55.338925Z","shell.execute_reply":"2026-04-02T09:53:55.459073Z"},"papermill":{"duration":0.339126,"end_time":"2026-01-15T23:04:45.996398","exception":false,"start_time":"2026-01-15T23:04:45.657272","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"f038d432","cell_type":"code","source":"cd ..","metadata":{"execution":{"iopub.status.busy":"2026-04-02T09:53:55.460939Z","iopub.execute_input":"2026-04-02T09:53:55.461241Z","iopub.status.idle":"2026-04-02T09:53:55.466335Z","shell.execute_reply.started":"2026-04-02T09:53:55.4612Z","shell.execute_reply":"2026-04-02T09:53:55.465714Z"},"papermill":{"duration":0.223984,"end_time":"2026-01-15T23:04:46.43761","exception":false,"start_time":"2026-01-15T23:04:46.213626","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"c42e4d50","cell_type":"code","source":"!head submission.csv","metadata":{"execution":{"iopub.status.busy":"2026-04-02T09:53:55.467717Z","iopub.execute_input":"2026-04-02T09:53:55.467981Z","iopub.status.idle":"2026-04-02T09:53:55.590953Z","shell.execute_reply.started":"2026-04-02T09:53:55.467961Z","shell.execute_reply":"2026-04-02T09:53:55.590322Z"},"papermill":{"duration":0.415157,"end_time":"2026-01-15T23:04:47.071737","exception":false,"start_time":"2026-01-15T23:04:46.65658","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"id":"96354966","cell_type":"markdown","source":"Done !","metadata":{"papermill":{"duration":0.215086,"end_time":"2026-01-15T23:04:47.501983","exception":false,"start_time":"2026-01-15T23:04:47.286897","status":"completed"},"tags":[]}}]}