{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":87793,"databundleVersionId":12276181,"sourceType":"competition"},{"sourceId":11644010,"sourceType":"datasetVersion","datasetId":7306643},{"sourceId":11969392,"sourceType":"datasetVersion","datasetId":7526656}],"dockerImageVersionId":30918,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import time\n\nimport pandas as pd\nimport numpy as np\n\nimport random\n\nfrom tqdm import tqdm\n\nfrom scipy.spatial.transform import Rotation as R\nfrom sklearn.preprocessing import normalize\nfrom scipy.spatial import distance_matrix\nimport warnings\nwarnings.filterwarnings('ignore')\n\nprint(\"\\nLoading data files...\")\ntrain_seqs = pd.read_csv('/kaggle/input/stanford-rna-3d-folding/train_sequences.csv')\nvalid_seqs = pd.read_csv('/kaggle/input/stanford-rna-3d-folding/validation_sequences.csv')\ntest_seqs = pd.read_csv('/kaggle/input/stanford-rna-3d-folding/test_sequences.csv')\ntrain_labels = pd.read_csv('/kaggle/input/stanford-rna-3d-folding/train_labels.csv')\nvalid_labels = pd.read_csv('/kaggle/input/stanford-rna-3d-folding/validation_labels.csv')\n\nprint(f\"Loaded {len(train_seqs)} training sequences, {len(valid_seqs)} validation sequences, and {len(test_seqs)} test sequences\")","metadata":{"_uuid":"7e2d63ef-4429-4722-95ee-6681af62a6d5","_cell_guid":"0ec49051-b8ac-4f27-b152-0c2fe59d4b5c","trusted":true,"collapsed":false,"execution":{"iopub.status.busy":"2025-05-29T03:42:53.520216Z","iopub.execute_input":"2025-05-29T03:42:53.520565Z","iopub.status.idle":"2025-05-29T03:42:54.932712Z","shell.execute_reply.started":"2025-05-29T03:42:53.520533Z","shell.execute_reply":"2025-05-29T03:42:54.931598Z"},"jupyter":{"outputs_hidden":false}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_seqs.shape","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:42:56.050794Z","iopub.execute_input":"2025-05-29T03:42:56.051460Z","iopub.status.idle":"2025-05-29T03:42:56.062801Z","shell.execute_reply.started":"2025-05-29T03:42:56.051408Z","shell.execute_reply":"2025-05-29T03:42:56.061815Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_seqs.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:42:57.660570Z","iopub.execute_input":"2025-05-29T03:42:57.660933Z","iopub.status.idle":"2025-05-29T03:42:57.689185Z","shell.execute_reply.started":"2025-05-29T03:42:57.660901Z","shell.execute_reply":"2025-05-29T03:42:57.688118Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_seqs_v1 = pd.read_csv('/kaggle/input/extended-rna/train_sequences_v2.csv')\ntrain_labels_v1 = pd.read_csv('/kaggle/input/extended-rna/train_labels_v2.csv')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:42:58.711765Z","iopub.execute_input":"2025-05-29T03:42:58.712135Z","iopub.status.idle":"2025-05-29T03:43:08.769601Z","shell.execute_reply.started":"2025-05-29T03:42:58.712102Z","shell.execute_reply":"2025-05-29T03:43:08.768432Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_seqs_v1.shape","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:43:08.770960Z","iopub.execute_input":"2025-05-29T03:43:08.771235Z","iopub.status.idle":"2025-05-29T03:43:08.776656Z","shell.execute_reply.started":"2025-05-29T03:43:08.771213Z","shell.execute_reply":"2025-05-29T03:43:08.775629Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_seqs_v1.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:43:08.778490Z","iopub.execute_input":"2025-05-29T03:43:08.778815Z","iopub.status.idle":"2025-05-29T03:43:08.815125Z","shell.execute_reply.started":"2025-05-29T03:43:08.778782Z","shell.execute_reply":"2025-05-29T03:43:08.814145Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_seqs_v2 = pd.read_csv('/kaggle/input/rna-cif-to-csv/rna_sequences.csv')\ntrain_labels_v2 = pd.read_csv('/kaggle/input/rna-cif-to-csv/rna_coordinates.csv')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:43:08.816947Z","iopub.execute_input":"2025-05-29T03:43:08.817370Z","iopub.status.idle":"2025-05-29T03:43:22.619638Z","shell.execute_reply.started":"2025-05-29T03:43:08.817331Z","shell.execute_reply":"2025-05-29T03:43:22.618549Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_seqs_v2.shape","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:43:22.620557Z","iopub.execute_input":"2025-05-29T03:43:22.620832Z","iopub.status.idle":"2025-05-29T03:43:22.626423Z","shell.execute_reply.started":"2025-05-29T03:43:22.620808Z","shell.execute_reply":"2025-05-29T03:43:22.625486Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_seqs_v2.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:43:22.627326Z","iopub.execute_input":"2025-05-29T03:43:22.627618Z","iopub.status.idle":"2025-05-29T03:43:22.660845Z","shell.execute_reply.started":"2025-05-29T03:43:22.627594Z","shell.execute_reply":"2025-05-29T03:43:22.659977Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Check target_id relationships between the three datasets\nimport pandas as pd\n\n# Extract unique target_ids from each dataset\ntrain_seqs_ids = set(train_seqs['target_id'].unique())\ntrain_seqs_v1_ids = set(train_seqs_v1['target_id'].unique())\ntrain_seqs_v2_ids = set(train_seqs_v2['target_id'].unique())\n\nprint(\"Dataset sizes:\")\nprint(f\"train_seqs unique target_ids: {len(train_seqs_ids)}\")\nprint(f\"train_seqs_v1 unique target_ids: {len(train_seqs_v1_ids)}\")\nprint(f\"train_seqs_v2 unique target_ids: {len(train_seqs_v2_ids)}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:43:22.661856Z","iopub.execute_input":"2025-05-29T03:43:22.662224Z","iopub.status.idle":"2025-05-29T03:43:22.686242Z","shell.execute_reply.started":"2025-05-29T03:43:22.662190Z","shell.execute_reply":"2025-05-29T03:43:22.685266Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Find target_ids unique to each dataset (not present in the other two)\n\n# Unique to train_seqs only\nunique_to_train_seqs = train_seqs_ids - train_seqs_v1_ids - train_seqs_v2_ids\n\n# Unique to train_seqs_v1 only  \nunique_to_train_seqs_v1 = train_seqs_v1_ids - train_seqs_ids - train_seqs_v2_ids\n\n# Unique to train_seqs_v2 only\nunique_to_train_seqs_v2 = train_seqs_v2_ids - train_seqs_ids - train_seqs_v1_ids\n\nprint(\"Target IDs unique to each dataset:\")\nprint(f\"Unique to train_seqs only: {len(unique_to_train_seqs)}\")\nprint(f\"Unique to train_seqs_v1 only: {len(unique_to_train_seqs_v1)}\")\nprint(f\"Unique to train_seqs_v2 only: {len(unique_to_train_seqs_v2)}\")\n\nprint(f\"\\nTotal unique across all datasets: {len(train_seqs_ids | train_seqs_v1_ids | train_seqs_v2_ids)}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:43:22.688016Z","iopub.execute_input":"2025-05-29T03:43:22.688377Z","iopub.status.idle":"2025-05-29T03:43:22.705020Z","shell.execute_reply.started":"2025-05-29T03:43:22.688340Z","shell.execute_reply":"2025-05-29T03:43:22.704124Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Merge all three datasets into one without duplicates\n# Concatenate all datasets first\nall_datasets = pd.concat([train_seqs, train_seqs_v1, train_seqs_v2], ignore_index=True)\n\n# Remove duplicates based on target_id (keeping first occurrence)\nmerged_train_seqs = all_datasets.drop_duplicates(subset='target_id', keep='first')\n\nprint(f\"Original combined rows: {len(all_datasets)}\")\nprint(f\"After removing duplicates: {len(merged_train_seqs)}\")\nprint(f\"Unique target_ids in merged dataset: {merged_train_seqs['target_id'].nunique()}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:44:48.753891Z","iopub.execute_input":"2025-05-29T03:44:48.754262Z","iopub.status.idle":"2025-05-29T03:44:48.776186Z","shell.execute_reply.started":"2025-05-29T03:44:48.754236Z","shell.execute_reply":"2025-05-29T03:44:48.775132Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"merged_train_seqs.shape","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:45:02.148506Z","iopub.execute_input":"2025-05-29T03:45:02.148843Z","iopub.status.idle":"2025-05-29T03:45:02.154797Z","shell.execute_reply.started":"2025-05-29T03:45:02.148807Z","shell.execute_reply":"2025-05-29T03:45:02.153723Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"merged_train_seqs.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:45:05.377080Z","iopub.execute_input":"2025-05-29T03:45:05.377468Z","iopub.status.idle":"2025-05-29T03:45:05.388390Z","shell.execute_reply.started":"2025-05-29T03:45:05.377439Z","shell.execute_reply":"2025-05-29T03:45:05.387229Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Keep only target_id and sequence columns like the original train_seqs_v2\nmerged_seqs_final = merged_train_seqs[['target_id', 'sequence']].copy()\n\nprint(\"Final merged sequences dataset:\")\nprint(f\"Shape: {merged_seqs_final.shape}\")\nprint(f\"Columns: {list(merged_seqs_final.columns)}\")\nprint(\"\\nFirst few rows:\")\nprint(merged_seqs_final.head())","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:45:33.562055Z","iopub.execute_input":"2025-05-29T03:45:33.562442Z","iopub.status.idle":"2025-05-29T03:45:33.575746Z","shell.execute_reply.started":"2025-05-29T03:45:33.562413Z","shell.execute_reply":"2025-05-29T03:45:33.574807Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Final duplicate check on the merged dataset\nprint(\"Duplicate check on final merged dataset:\")\nprint(f\"Total rows: {len(merged_seqs_final)}\")\nprint(f\"Unique target_ids: {merged_seqs_final['target_id'].nunique()}\")\nprint(f\"Duplicate target_ids: {merged_seqs_final['target_id'].duplicated().sum()}\")\n\n# Check for any duplicate target_ids specifically\nif merged_seqs_final['target_id'].duplicated().any():\n   print(\"\\nDuplicate target_ids found:\")\n   duplicates = merged_seqs_final[merged_seqs_final['target_id'].duplicated(keep=False)]\n   print(duplicates.sort_values('target_id'))\nelse:\n   print(\"\\n✓ No duplicate target_ids found - dataset is clean!\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:46:32.910650Z","iopub.execute_input":"2025-05-29T03:46:32.911008Z","iopub.status.idle":"2025-05-29T03:46:32.924452Z","shell.execute_reply.started":"2025-05-29T03:46:32.910980Z","shell.execute_reply":"2025-05-29T03:46:32.923390Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"valid_seqs.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:47:02.453813Z","iopub.execute_input":"2025-05-29T03:47:02.454188Z","iopub.status.idle":"2025-05-29T03:47:02.464360Z","shell.execute_reply.started":"2025-05-29T03:47:02.454155Z","shell.execute_reply":"2025-05-29T03:47:02.463355Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Check overlap between valid_seqs and merged_seqs_final target_ids\nvalid_seqs_ids = set(valid_seqs['target_id'].unique())\nmerged_seqs_ids = set(merged_seqs_final['target_id'].unique())\n\nprint(\"Target ID overlap analysis:\")\nprint(f\"valid_seqs unique target_ids: {len(valid_seqs_ids)}\")\nprint(f\"merged_seqs_final unique target_ids: {len(merged_seqs_ids)}\")\n\n# Find overlapping target_ids\noverlap_ids = valid_seqs_ids & merged_seqs_ids\nprint(f\"Overlapping target_ids: {len(overlap_ids)}\")\n\n# Find unique to each dataset\nunique_to_valid = valid_seqs_ids - merged_seqs_ids\nunique_to_merged = merged_seqs_ids - valid_seqs_ids\n\nprint(f\"Unique to valid_seqs only: {len(unique_to_valid)}\")\nprint(f\"Unique to merged_seqs_final only: {len(unique_to_merged)}\")\n\nif len(overlap_ids) > 0:\n   print(f\"\\nFirst few overlapping target_ids: {list(overlap_ids)[:5]}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:48:05.416223Z","iopub.execute_input":"2025-05-29T03:48:05.416642Z","iopub.status.idle":"2025-05-29T03:48:05.430263Z","shell.execute_reply.started":"2025-05-29T03:48:05.416611Z","shell.execute_reply":"2025-05-29T03:48:05.429241Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Merge valid_seqs with merged_seqs_final\n# First, select only target_id and sequence columns from valid_seqs to match structure\nvalid_seqs_subset = valid_seqs[['target_id', 'sequence']].copy()\n\n# Concatenate with merged_seqs_final\nfinal_complete_seqs = pd.concat([merged_seqs_final, valid_seqs_subset], ignore_index=True)\n\nprint(\"Final complete dataset after adding valid_seqs:\")\nprint(f\"Total rows: {len(final_complete_seqs)}\")\nprint(f\"Unique target_ids: {final_complete_seqs['target_id'].nunique()}\")\nprint(f\"Shape: {final_complete_seqs.shape}\")\n\n# Verify no duplicates exist\nduplicates = final_complete_seqs['target_id'].duplicated().sum()\nprint(f\"Duplicate target_ids: {duplicates}\")\n\nif duplicates == 0:\n   print(\"✓ All datasets successfully merged without duplicates!\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:48:51.881383Z","iopub.execute_input":"2025-05-29T03:48:51.881707Z","iopub.status.idle":"2025-05-29T03:48:51.896153Z","shell.execute_reply.started":"2025-05-29T03:48:51.881683Z","shell.execute_reply":"2025-05-29T03:48:51.895140Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"### labels  \n---","metadata":{}},{"cell_type":"code","source":"train_labels.shape","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:51:01.144626Z","iopub.execute_input":"2025-05-29T03:51:01.144956Z","iopub.status.idle":"2025-05-29T03:51:01.150838Z","shell.execute_reply.started":"2025-05-29T03:51:01.144930Z","shell.execute_reply":"2025-05-29T03:51:01.149726Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_labels.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:51:11.940449Z","iopub.execute_input":"2025-05-29T03:51:11.940782Z","iopub.status.idle":"2025-05-29T03:51:11.952237Z","shell.execute_reply.started":"2025-05-29T03:51:11.940758Z","shell.execute_reply":"2025-05-29T03:51:11.951314Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_labels_v1.shape","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:49:16.637497Z","iopub.execute_input":"2025-05-29T03:49:16.637838Z","iopub.status.idle":"2025-05-29T03:49:16.643219Z","shell.execute_reply.started":"2025-05-29T03:49:16.637811Z","shell.execute_reply":"2025-05-29T03:49:16.642374Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_labels_v1.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:49:18.857625Z","iopub.execute_input":"2025-05-29T03:49:18.857974Z","iopub.status.idle":"2025-05-29T03:49:18.869521Z","shell.execute_reply.started":"2025-05-29T03:49:18.857941Z","shell.execute_reply":"2025-05-29T03:49:18.868528Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_labels_v2.shape","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:49:59.705035Z","iopub.execute_input":"2025-05-29T03:49:59.705443Z","iopub.status.idle":"2025-05-29T03:49:59.711478Z","shell.execute_reply.started":"2025-05-29T03:49:59.705410Z","shell.execute_reply":"2025-05-29T03:49:59.710352Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_labels_v2.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:50:07.470835Z","iopub.execute_input":"2025-05-29T03:50:07.471211Z","iopub.status.idle":"2025-05-29T03:50:07.482394Z","shell.execute_reply.started":"2025-05-29T03:50:07.471181Z","shell.execute_reply":"2025-05-29T03:50:07.481405Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"valid_labels.shape","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:52:10.463151Z","iopub.execute_input":"2025-05-29T03:52:10.463523Z","iopub.status.idle":"2025-05-29T03:52:10.469080Z","shell.execute_reply.started":"2025-05-29T03:52:10.463495Z","shell.execute_reply":"2025-05-29T03:52:10.468205Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"valid_labels.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:52:25.658970Z","iopub.execute_input":"2025-05-29T03:52:25.659332Z","iopub.status.idle":"2025-05-29T03:52:25.689792Z","shell.execute_reply.started":"2025-05-29T03:52:25.659268Z","shell.execute_reply":"2025-05-29T03:52:25.688798Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# First, standardize valid_labels to match the structure of other label datasets\n# Keep only the first 6 columns: ID, resname, resid, x_1, y_1, z_1\nvalid_labels_subset = valid_labels[['ID', 'resname', 'resid', 'x_1', 'y_1', 'z_1']].copy()\n\nprint(\"Standardized valid_labels:\")\nprint(f\"Shape: {valid_labels_subset.shape}\")\nprint(f\"Columns: {list(valid_labels_subset.columns)}\")\nprint(\"\\nFirst few rows:\")\nprint(valid_labels_subset.head())","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:54:26.274794Z","iopub.execute_input":"2025-05-29T03:54:26.275182Z","iopub.status.idle":"2025-05-29T03:54:26.285592Z","shell.execute_reply.started":"2025-05-29T03:54:26.275152Z","shell.execute_reply":"2025-05-29T03:54:26.284539Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Merge all label datasets into one without duplicates\n# Concatenate all label datasets\nall_labels = pd.concat([train_labels, train_labels_v1, train_labels_v2, valid_labels_subset], ignore_index=True)\n\nprint(f\"Original combined label rows: {len(all_labels)}\")\n\n# Remove duplicates based on ID column (keeping first occurrence)\nmerged_labels_final = all_labels.drop_duplicates(subset='ID', keep='first')\n\nprint(f\"After removing duplicates: {len(merged_labels_final)}\")\nprint(f\"Unique IDs in merged dataset: {merged_labels_final['ID'].nunique()}\")\nprint(f\"Final shape: {merged_labels_final.shape}\")\n\n# Quick duplicate check\nduplicates = merged_labels_final['ID'].duplicated().sum()\nprint(f\"Duplicate IDs: {duplicates}\")\n\nif duplicates == 0:\n   print(\"✓ All label datasets successfully merged without duplicates!\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:54:53.392709Z","iopub.execute_input":"2025-05-29T03:54:53.393063Z","iopub.status.idle":"2025-05-29T03:55:14.565571Z","shell.execute_reply.started":"2025-05-29T03:54:53.393034Z","shell.execute_reply":"2025-05-29T03:55:14.564368Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Export both merged datasets\n# Export the merged sequences dataset\nfinal_complete_seqs.to_csv('merged_sequences_final.csv', index=False)\nprint(f\"✓ Exported merged sequences: {final_complete_seqs.shape}\")\n\n# Export the merged labels dataset\nmerged_labels_final.to_csv('merged_labels_final.csv', index=False)\nprint(f\"✓ Exported merged labels: {merged_labels_final.shape}\")\n\nprint(\"\\nExport summary:\")\nprint(f\"- merged_sequences_final.csv: {final_complete_seqs.shape[0]:,} rows, {final_complete_seqs.shape[1]} columns\")\nprint(f\"- merged_labels_final.csv: {merged_labels_final.shape[0]:,} rows, {merged_labels_final.shape[1]} columns\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-29T03:56:33.719426Z","iopub.execute_input":"2025-05-29T03:56:33.719790Z","iopub.status.idle":"2025-05-29T03:57:16.417866Z","shell.execute_reply.started":"2025-05-29T03:56:33.719759Z","shell.execute_reply":"2025-05-29T03:57:16.416828Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}