{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# What is about ?\n\nExample to work with huge h5 files - data is backed on disk, but one can work with it\n**as if it is loaded into memory**. \n\n(That is one of the key features for h5 files https://en.wikipedia.org/wiki/Hierarchical_Data_Format). \n\nUse \"import h5py\"  (and additional \"import hdf5plugin\" - which resolved  some unexpected error appeared using just h5py for that particular data file). \n\nOther examples for (mostly) single cell RNA sequencing data - see ARCHS4 collection of datasets from GEO database: \nhttps://www.kaggle.com/code/alexandervc/archs4-extractsave-datasets-by-gse-and-keyword\n\nPS \n\n    For h5ad files which are typical in scRNA-seq analysis by scanpy one can also do similar trick,\n    adata = sc.read(fn, backed='r' )\n    see example: \nhttps://www.kaggle.com/code/alexandervc/scanpy-process-huge-files-backing-them-on-disk\n\n\n(c) Alexander Chervov, for kaggle competition: \"Open Problems - Multimodal Single-Cell Integration\"\n\nPSPS\n\nOne might find 50+ single cell RNA sequencing datasets on kaggle:\nhttps://www.kaggle.com/search?q=scRNA-seq+in%3Adatasets\n\nAnd hundreds notebooks  to analyse the cell cycle for them. \nThat analysis is summarized in our recent paper: https://arxiv.org/abs/2208.05229\n\n    Computational challenges of cell cycle analysis using single cell transcriptomics\n    Alexander Chervov, Andrei Zinovyev\n\nIt might be of some interest for the competition also. \nFor cell cycle information see: https://en.wikipedia.org/wiki/Cell_cycle\n\nPSPSPS\n\nPlease consider/support the idea to create \"Bionformatics community\" on Kaggle:\nhttps://www.kaggle.com/general/203136\n\n","metadata":{}},{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2022-10-26T12:53:20.496517Z","iopub.execute_input":"2022-10-26T12:53:20.496918Z","iopub.status.idle":"2022-10-26T12:53:20.504639Z","shell.execute_reply.started":"2022-10-26T12:53:20.496887Z","shell.execute_reply":"2022-10-26T12:53:20.503802Z"},"collapsed":true,"jupyter":{"outputs_hidden":true},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Briefly - one needs only that:\n\n","metadata":{}},{"cell_type":"code","source":"import h5py\n!pip install hdf5plugin~=2.0 # https://forum.hdfgroup.org/t/cant-open-directory-usr-local-hdf5-lib-plugin/9738/4\nimport hdf5plugin\n\nprint('Look on Features: ')\nfilename = '/kaggle/input/open-problems-multimodal/train_multi_inputs.h5'\nf2 = h5py.File(filename,'r')#, mode)\n\n\nprint(f2.keys() )\nprint(f2['train_multi_inputs'].keys())\nprint('Values of feature matrix:')\nprint( f2['train_multi_inputs']['block0_values'][:100,:100] )\nprint('fragment of a DNA ids:')\nprint( f2['train_multi_inputs']['axis0'][:5] )\nprint('Cell Ids (seems to me):')\nprint( f2['train_multi_inputs']['axis1'][:5] )\n\nprint()\nprint('Look on TARGETs: ')\nfilename = '/kaggle/input/open-problems-multimodal/train_multi_targets.h5'\nf = h5py.File(filename,'r')#, mode)\nprint('Values matrix to predict:')\nprint( f['train_multi_targets']['block0_values'][:100,:100] )\nprint('fragment of a DNA Ids:')\nprint( f['train_multi_targets']['axis0'][:5] )\nprint('Cell Ids (seems to me):')\nprint( f['train_multi_targets']['axis1'][:5] )\n","metadata":{"execution":{"iopub.status.busy":"2022-10-20T09:32:53.562743Z","iopub.status.idle":"2022-10-20T09:32:53.563146Z","shell.execute_reply.started":"2022-10-20T09:32:53.562957Z","shell.execute_reply":"2022-10-20T09:32:53.562975Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Long tutorial way","metadata":{}},{"cell_type":"code","source":"import h5py","metadata":{"execution":{"iopub.status.busy":"2022-10-26T12:53:30.861596Z","iopub.execute_input":"2022-10-26T12:53:30.862779Z","iopub.status.idle":"2022-10-26T12:53:30.867867Z","shell.execute_reply.started":"2022-10-26T12:53:30.862734Z","shell.execute_reply":"2022-10-26T12:53:30.866509Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"filename = '../input/open-problems-multimodal/train_multi_targets.h5'\nf = h5py.File(filename,'r')#, mode)\n#filename = '../input/open-problems-multimodal/test_multi_inputs.h5'\n#f = h5py.File(filename,'r')#, mode)","metadata":{"execution":{"iopub.status.busy":"2022-10-26T12:27:59.898732Z","iopub.execute_input":"2022-10-26T12:27:59.899203Z","iopub.status.idle":"2022-10-26T12:27:59.915656Z","shell.execute_reply.started":"2022-10-26T12:27:59.899165Z","shell.execute_reply":"2022-10-26T12:27:59.914347Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"f.keys()","metadata":{"execution":{"iopub.status.busy":"2022-10-26T12:28:02.417935Z","iopub.execute_input":"2022-10-26T12:28:02.419600Z","iopub.status.idle":"2022-10-26T12:28:02.434597Z","shell.execute_reply.started":"2022-10-26T12:28:02.419546Z","shell.execute_reply":"2022-10-26T12:28:02.432966Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"f['train_multi_targets']\n#f['test_multi_inputs']","metadata":{"execution":{"iopub.status.busy":"2022-10-26T12:28:11.436063Z","iopub.execute_input":"2022-10-26T12:28:11.437377Z","iopub.status.idle":"2022-10-26T12:28:11.449372Z","shell.execute_reply.started":"2022-10-26T12:28:11.437332Z","shell.execute_reply":"2022-10-26T12:28:11.447819Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"f['train_multi_targets'].keys()\n#f['test_multi_inputs'].keys()","metadata":{"execution":{"iopub.status.busy":"2022-10-26T12:28:19.104818Z","iopub.execute_input":"2022-10-26T12:28:19.105344Z","iopub.status.idle":"2022-10-26T12:28:19.126548Z","shell.execute_reply.started":"2022-10-26T12:28:19.105299Z","shell.execute_reply":"2022-10-26T12:28:19.125052Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for k in list(f['train_multi_targets'].keys()):\n    print(k)\n    print(f['train_multi_targets'][k])\n    print()","metadata":{"execution":{"iopub.status.busy":"2022-10-26T12:28:28.954624Z","iopub.execute_input":"2022-10-26T12:28:28.955085Z","iopub.status.idle":"2022-10-26T12:28:28.973480Z","shell.execute_reply.started":"2022-10-26T12:28:28.955050Z","shell.execute_reply":"2022-10-26T12:28:28.972210Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for k in list(f['train_multi_targets'].keys()):\n    print(k)\n    #for k2 in list(f['train_multi_targets'][k].keys() ):\n    print(type(f['train_multi_targets'][k]))\n    print('shape:', (f['train_multi_targets'][k].shape))\n    print('Dir:', dir(f['train_multi_targets'][k]))\n    \n    print()","metadata":{"execution":{"iopub.status.busy":"2022-10-21T07:50:54.737847Z","iopub.execute_input":"2022-10-21T07:50:54.738631Z","iopub.status.idle":"2022-10-21T07:50:54.752163Z","shell.execute_reply.started":"2022-10-21T07:50:54.738573Z","shell.execute_reply":"2022-10-21T07:50:54.750908Z"},"collapsed":true,"jupyter":{"outputs_hidden":true},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"f['train_multi_targets']['block0_items'][0]","metadata":{"execution":{"iopub.status.busy":"2022-10-19T15:54:23.905176Z","iopub.execute_input":"2022-10-19T15:54:23.905599Z","iopub.status.idle":"2022-10-19T15:54:23.919443Z","shell.execute_reply.started":"2022-10-19T15:54:23.905565Z","shell.execute_reply":"2022-10-19T15:54:23.918250Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"!pip install hdf5plugin~=2.0 # https://forum.hdfgroup.org/t/cant-open-directory-usr-local-hdf5-lib-plugin/9738/4","metadata":{"execution":{"iopub.status.busy":"2022-10-26T12:53:36.385552Z","iopub.execute_input":"2022-10-26T12:53:36.386956Z","iopub.status.idle":"2022-10-26T12:53:47.845722Z","shell.execute_reply.started":"2022-10-26T12:53:36.386895Z","shell.execute_reply":"2022-10-26T12:53:47.844340Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#!pip install hdf5plugin~=2.0 # https://forum.hdfgroup.org/t/cant-open-directory-usr-local-hdf5-lib-plugin/9738/4\nimport h5py\nimport hdf5plugin\n","metadata":{"execution":{"iopub.status.busy":"2022-10-26T12:53:47.857620Z","iopub.execute_input":"2022-10-26T12:53:47.858175Z","iopub.status.idle":"2022-10-26T12:53:47.870500Z","shell.execute_reply.started":"2022-10-26T12:53:47.858126Z","shell.execute_reply":"2022-10-26T12:53:47.869075Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"f['train_multi_targets']['block0_items'][0]","metadata":{"execution":{"iopub.status.busy":"2022-10-19T15:55:06.829791Z","iopub.execute_input":"2022-10-19T15:55:06.830242Z","iopub.status.idle":"2022-10-19T15:55:06.841581Z","shell.execute_reply.started":"2022-10-19T15:55:06.830204Z","shell.execute_reply":"2022-10-19T15:55:06.840652Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for i in range(5):\n    print('i=',i, f['train_multi_targets']['axis0'][i],  f['train_multi_targets']['axis1'][i],  f['train_multi_targets']['block0_items'][i] )\n#for i in range(5):\n#    print('i=',i, f['test_multi_inputs']['axis0'][i],  f['test_multi_inputs']['axis1'][i],  f['test_multi_inputs']['block0_items'][i] )","metadata":{"execution":{"iopub.status.busy":"2022-10-26T12:29:13.619896Z","iopub.execute_input":"2022-10-26T12:29:13.620339Z","iopub.status.idle":"2022-10-26T12:29:13.653882Z","shell.execute_reply.started":"2022-10-26T12:29:13.620307Z","shell.execute_reply":"2022-10-26T12:29:13.652455Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"f['train_multi_targets']['axis0'][:5]","metadata":{"execution":{"iopub.status.busy":"2022-08-18T18:51:37.742229Z","iopub.execute_input":"2022-08-18T18:51:37.742625Z","iopub.status.idle":"2022-08-18T18:51:37.751056Z","shell.execute_reply.started":"2022-08-18T18:51:37.742593Z","shell.execute_reply":"2022-08-18T18:51:37.749892Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"f['train_multi_targets']['axis1'][:5]\n#f['test_multi_inputs']['axis1'][:5]","metadata":{"execution":{"iopub.status.busy":"2022-10-26T12:29:21.039188Z","iopub.execute_input":"2022-10-26T12:29:21.039631Z","iopub.status.idle":"2022-10-26T12:29:21.050878Z","shell.execute_reply.started":"2022-10-26T12:29:21.039600Z","shell.execute_reply":"2022-10-26T12:29:21.049290Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"f['train_multi_targets']['block0_values'][:3,:3]","metadata":{"execution":{"iopub.status.busy":"2022-08-18T18:52:27.857225Z","iopub.execute_input":"2022-08-18T18:52:27.857614Z","iopub.status.idle":"2022-08-18T18:52:27.887709Z","shell.execute_reply.started":"2022-08-18T18:52:27.857584Z","shell.execute_reply":"2022-08-18T18:52:27.886425Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"f['train_multi_targets']['block0_values'][:100,:100]","metadata":{"execution":{"iopub.status.busy":"2022-08-18T18:52:42.158322Z","iopub.execute_input":"2022-08-18T18:52:42.158727Z","iopub.status.idle":"2022-08-18T18:52:42.250697Z","shell.execute_reply.started":"2022-08-18T18:52:42.15869Z","shell.execute_reply":"2022-08-18T18:52:42.249609Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"_multiome_cell_ids_only_train = pd.Series(f['train_multi_targets']['axis1'])\n_multiome_cell_ids_only_train\n#_multiome_cell_ids_only_test = pd.Series(f['test_multi_inputs']['axis1'])\n#_multiome_cell_ids_only_test","metadata":{"execution":{"iopub.status.busy":"2022-10-26T12:29:58.567274Z","iopub.execute_input":"2022-10-26T12:29:58.567708Z","iopub.status.idle":"2022-10-26T12:29:58.625014Z","shell.execute_reply.started":"2022-10-26T12:29:58.567678Z","shell.execute_reply":"2022-10-26T12:29:58.624172Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"str_arr = []\nfor i in _multiome_cell_ids_only_train:\n    str_arr.append(i.decode('ascii'))\n\n#str_arr = []\n#for i in _multiome_cell_ids_only_test:\n    #str_arr.append(i.decode('ascii'))\nstr_arr","metadata":{"execution":{"iopub.status.busy":"2022-10-21T20:12:24.915565Z","iopub.execute_input":"2022-10-21T20:12:24.915945Z","iopub.status.idle":"2022-10-21T20:12:24.983734Z","shell.execute_reply.started":"2022-10-21T20:12:24.915915Z","shell.execute_reply":"2022-10-21T20:12:24.982497Z"},"collapsed":true,"jupyter":{"outputs_hidden":true},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"_multiome_cell_ids_only_train = pd.Series(str_arr)\n_multiome_cell_ids_only_train\n#_multiome_cell_ids_only_test = pd.Series(str_arr)\n#_multiome_cell_ids_only_test","metadata":{"execution":{"iopub.status.busy":"2022-10-21T20:12:34.005090Z","iopub.execute_input":"2022-10-21T20:12:34.005684Z","iopub.status.idle":"2022-10-21T20:12:34.023187Z","shell.execute_reply.started":"2022-10-21T20:12:34.005644Z","shell.execute_reply":"2022-10-21T20:12:34.022272Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df = pd.Series([0 for x in range(len(_multiome_cell_ids_only_train))])\n\n#df = pd.Series([1 for x in range(len(_multiome_cell_ids_only_test))])\ndf","metadata":{"execution":{"iopub.status.busy":"2022-10-21T20:12:49.870270Z","iopub.execute_input":"2022-10-21T20:12:49.870677Z","iopub.status.idle":"2022-10-21T20:12:49.913763Z","shell.execute_reply.started":"2022-10-21T20:12:49.870646Z","shell.execute_reply":"2022-10-21T20:12:49.912682Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"_multiome_cell_ids_only_tr = pd.DataFrame({'cell_id': _multiome_cell_ids_only_train,\n                            'Train0_Test1': df})\n_multiome_cell_ids_only_tr\n#_multiome_cell_ids_only_te = pd.DataFrame({'cell_id': _multiome_cell_ids_only_test,\n                            #'Train0_Test1': df})\n_multiome_cell_ids_only_tr= _multiome_cell_ids_only_tr.set_index('cell_id' )\n_multiome_cell_ids_only_tr","metadata":{"execution":{"iopub.status.busy":"2022-10-21T20:14:21.089721Z","iopub.execute_input":"2022-10-21T20:14:21.090153Z","iopub.status.idle":"2022-10-21T20:14:21.108727Z","shell.execute_reply.started":"2022-10-21T20:14:21.090118Z","shell.execute_reply":"2022-10-21T20:14:21.107255Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"_multiome_cell_ids_only_tr.to_csv('_multiome_cell_ids_only_train.csv')\n#_multiome_cell_ids_only_te.to_csv('_multiome_cell_ids_only_test.csv')","metadata":{"execution":{"iopub.status.busy":"2022-10-21T20:14:25.864025Z","iopub.execute_input":"2022-10-21T20:14:25.864439Z","iopub.status.idle":"2022-10-21T20:14:25.943051Z","shell.execute_reply.started":"2022-10-21T20:14:25.864379Z","shell.execute_reply":"2022-10-21T20:14:25.941769Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"_multiome_cell_ids_only = pd.concat([_multiome_cell_ids_only_tr, _multiome_cell_ids_only_te])\n#_multiome_cell_ids_only.to_csv('_multiome_cell_ids_only.csv')\n_multiome_cell_ids_only","metadata":{"execution":{"iopub.status.busy":"2022-10-21T20:17:26.637951Z","iopub.execute_input":"2022-10-21T20:17:26.638361Z","iopub.status.idle":"2022-10-21T20:17:26.654606Z","shell.execute_reply.started":"2022-10-21T20:17:26.638324Z","shell.execute_reply":"2022-10-21T20:17:26.653380Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df = pd.read_csv('../input/open-problems-multimodal/metadata.csv')\ndf","metadata":{"execution":{"iopub.status.busy":"2022-10-26T12:53:52.085465Z","iopub.execute_input":"2022-10-26T12:53:52.086935Z","iopub.status.idle":"2022-10-26T12:53:52.492827Z","shell.execute_reply.started":"2022-10-26T12:53:52.086864Z","shell.execute_reply":"2022-10-26T12:53:52.491036Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"_multiome_meta_all_text_also = pd.read_csv('../input/open-problems-multimodal/metadata.csv', index_col = 0)\n_multiome_meta_all_text_also\n#multiome_only_all = _multiome_meta_all_text_also[['day', 'donor', 'cell_type', 'technology']].values\n#mask = _multiome_meta_all_text_also[:, 3] == 'multiome'\n#_multiome_meta_all_text_also = _multiome_meta_all_text_also[mask]\n#_multiome_meta_all_text_also = pd.DataFrame(_multiome_meta_all_text_also)\n#_multiome_meta_all_text_also\n#_multiome_meta_all_text_also.loc[_multiome_meta_all_text_also['cell_id'] == '56390cf1b95e']\n","metadata":{"execution":{"iopub.status.busy":"2022-10-26T13:59:44.349480Z","iopub.execute_input":"2022-10-26T13:59:44.349918Z","iopub.status.idle":"2022-10-26T13:59:44.659738Z","shell.execute_reply.started":"2022-10-26T13:59:44.349885Z","shell.execute_reply":"2022-10-26T13:59:44.658834Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"multiome_only = df[['cell_id', 'day', 'technology']].values\nmask = multiome_only[:, 2] == 'multiome'\n\nmultiome_only = multiome_only[mask]\n\nmultiome_only = pd.DataFrame(multiome_only, columns=['cell_id', 'day', 'technology'])\n\nmultiome_only\n","metadata":{"execution":{"iopub.status.busy":"2022-10-26T13:59:46.622793Z","iopub.execute_input":"2022-10-26T13:59:46.624248Z","iopub.status.idle":"2022-10-26T13:59:46.694841Z","shell.execute_reply.started":"2022-10-26T13:59:46.624177Z","shell.execute_reply":"2022-10-26T13:59:46.694040Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"multiome_only_all = df[['cell_id', 'day', 'donor', 'cell_type', 'technology']].values\nmask = multiome_only_all[:, 4] == 'multiome'\n\nmultiome_only_all = multiome_only_all[mask]\n\nmultiome_only_all = pd.DataFrame(multiome_only_all, columns=['cell_id', 'day', 'donor', 'cell_type', 'technology'])\n\nmultiome_only_all = multiome_only_all.drop(columns=['cell_type','technology'])\nmultiome_only_all = multiome_only_all.set_index('cell_id')\nmultiome_only_all\n#multiome_only_all.to_csv('_multiome_meta_all_text_also.csv')","metadata":{"execution":{"iopub.status.busy":"2022-10-26T13:59:48.655303Z","iopub.execute_input":"2022-10-26T13:59:48.656040Z","iopub.status.idle":"2022-10-26T13:59:48.771204Z","shell.execute_reply.started":"2022-10-26T13:59:48.655990Z","shell.execute_reply":"2022-10-26T13:59:48.770078Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"_multiome_cell_ids_only_train0_test1 = pd.read_csv('../input/eblan-kaggle/_multiome_cell_ids_only_train0_test1.csv', index_col='cell_id')\ndf2 = _multiome_cell_ids_only_train0_test1.join(multiome_only_all.set_index('cell_id'), how = 'left')\ndf2.shape,df.shape\ndf3 =df2.drop(columns=['cell_type','technology'])\ndf2\n#df3.to_csv('_multiome_meta_all_text_also.csv')","metadata":{"execution":{"iopub.status.busy":"2022-10-26T14:00:10.263787Z","iopub.execute_input":"2022-10-26T14:00:10.264191Z","iopub.status.idle":"2022-10-26T14:00:10.400985Z","shell.execute_reply.started":"2022-10-26T14:00:10.264158Z","shell.execute_reply":"2022-10-26T14:00:10.399485Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pdpd  = pd.read_csv('./_multiome_meta_all_text_also.csv')\npdpd","metadata":{"execution":{"iopub.status.busy":"2022-10-26T13:59:54.975386Z","iopub.execute_input":"2022-10-26T13:59:54.975785Z","iopub.status.idle":"2022-10-26T13:59:55.088983Z","shell.execute_reply.started":"2022-10-26T13:59:54.975757Z","shell.execute_reply":"2022-10-26T13:59:55.087848Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}