{"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":84969,"databundleVersionId":10033515,"sourceType":"competition"}],"dockerImageVersionId":30822,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"!pip install zarr","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"execution":{"iopub.status.busy":"2025-01-15T05:32:15.929759Z","iopub.execute_input":"2025-01-15T05:32:15.930021Z","iopub.status.idle":"2025-01-15T05:32:19.725297Z","shell.execute_reply.started":"2025-01-15T05:32:15.929999Z","shell.execute_reply":"2025-01-15T05:32:19.724049Z"},"_kg_hide-input":true,"_kg_hide-output":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import warnings\nwarnings.filterwarnings('ignore')\n\nimport json\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport pickle\nimport plotly.express as px\nimport plotly.io as pio\nimport seaborn as sns\nimport zarr\n\nfrom glob import glob\nfrom scipy import ndimage\n\npio.renderers.default = 'iframe'\n\nENABLE_3D = False","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-01-15T05:32:19.726520Z","iopub.execute_input":"2025-01-15T05:32:19.726888Z","iopub.status.idle":"2025-01-15T05:32:19.732962Z","shell.execute_reply.started":"2025-01-15T05:32:19.726853Z","shell.execute_reply":"2025-01-15T05:32:19.731993Z"},"_kg_hide-input":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"TRAIN_BASE = '/kaggle/input/czii-cryo-et-object-identification/train/static/ExperimentRuns'\nTEST_BASE = '/kaggle/input/czii-cryo-et-object-identification/test/static/ExperimentRuns'\nOVERLAY_BASE = '/kaggle/input/czii-cryo-et-object-identification/train/overlay/ExperimentRuns'\nTRAINING_SETS = ['TS_86_3', 'TS_6_6', 'TS_73_6', 'TS_99_9', 'TS_69_2', 'TS_6_4', 'TS_5_4']\nPARTICLE_RADIUS = {\n    'apo-ferritin': 60.0,\n    'beta-amylase': 65.0,\n    'beta-galactosidase': 90.0,\n    'ribosome': 150.0,\n    'thyroglobulin': 130.0,\n    'virus-like-particle': 135.0,\n}\n\ndef get_training_experiments():\n    return os.listdir(TRAIN_BASE)\n    \ndef get_test_experiments():\n    return os.listdir(TEST_BASE)\n\ndef get_experiment_path(experiment, type='denoised', test=False):\n    base = TEST_BASE if test else TRAIN_BASE\n    return base + '/' + experiment + '/VoxelSpacing10.000/' + type + '.zarr'\n\ndef open_experiment(experiment, test=False):\n    return zarr.open(get_experiment_path(experiment, test=test), mode='r')\n\ndef load_points(experiment, particle='ribosome'):\n    results = []\n    path = OVERLAY_BASE + '/' + experiment + '/Picks/' + particle + '.json'\n    with open(path) as f:\n        points = json.loads(f.read())['points']\n        for p in points:\n            x = float(p['location']['x'])\n            y = float(p['location']['y'])\n            z = float(p['location']['z'])\n            results.append((x, y, z))\n    return results\n\ndef normalize(dataset):\n    return (dataset - np.mean(dataset))/np.std(dataset)\n\ndef plot_particles(experiment, particle):\n    dataset = normalize(open_experiment(experiment)[0])\n    particles = sorted(load_points(experiment, particle=particle), key=lambda p: p[2])\n    \n    plt.figure(figsize=(12, 4*(len(particles)//3 + 1)))\n    for idx in range(len(particles)):\n        i = int(np.rint(particles[idx][0]/10.012))\n        j = int(np.rint(particles[idx][1]/10.012))\n        k = int(np.rint(particles[idx][2]/10.012))\n\n        # Fix display problem near the edges.\n        i_min = i - 24 if i - 24 > 0 else 0\n        j_min = j - 24 if j - 24 > 0 else 0\n        \n        plt.subplot(len(particles)//3 + 1, 3, idx + 1)\n        plt.xticks([])\n        plt.yticks([])\n        plt.title(str(idx) + ': ' + str((k,j,i,)))\n        plt.imshow(dataset[k, (j_min):(j+25), (i_min):(i+25)], cmap='gray')\n\ndef plot_particles_3d(experiment, particle):\n    if ENABLE_3D:\n        particles = load_points(experiment, particle=particle)\n        particle_list = []\n        for p in particles:\n            particle_list.append({'x':np.rint(p[0]/10.012), 'y':np.rint(p[1]/10.012),\n                                  'z':np.rint(p[2]/10.012), 'size': 1})\n            \n        fig = px.scatter_3d(particle_list, x='x', y='y', z='z', size='size',\n                            range_x=[630,0], range_y=[0,630], range_z=[184,0],\n                            title=experiment + ': ' + particle,\n                            template='seaborn')\n        fig.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-01-15T05:32:15.913003Z","iopub.execute_input":"2025-01-15T05:32:15.913497Z","iopub.status.idle":"2025-01-15T05:32:15.928507Z","shell.execute_reply.started":"2025-01-15T05:32:15.913469Z","shell.execute_reply":"2025-01-15T05:32:15.927257Z"},"_kg_hide-input":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Introduction\n\nFor those interested in taking a deeper dive into the data, this notebook is a catalog of every particle from the training data.  At the top of each image is the particle's index in the picks list when sorted by the z coordinate as well as its coordinates in (layer, row, column) format.  Note that if an image is not square it means the particle is too close to the edge of the tomograms along the x or y axis.  Enjoy!\n\n**3D View:** There is also a 3D view of the particles at the beginning of each section, but it takes about 5-10 minutes to load, probably because there are 42 sections, so it is disabled by default.  If you would like to take a look, set ENABLE_3D = True in the 2nd cell, and re-run the notebook.  The particles should be in order moving down through the image, and the perspective is as though you are doing so from above right (so you would be looking down and to the left.)","metadata":{}},{"cell_type":"markdown","source":"# Apo-Ferritin\n![](https://www.ebi.ac.uk/pdbe/emdb-empiar/entryIcons//10263-l.gif)\n\nImage from the following source:  \n[https://www.ebi.ac.uk/empiar/EMPIAR-10263/](https://www.ebi.ac.uk/empiar/EMPIAR-10263/)  \nThis is the actual particle for the competition:  \n[https://www.rcsb.org/structure/4V1W](https://www.rcsb.org/structure/4V1W)\n","metadata":{}},{"cell_type":"markdown","source":"## TS_5_4","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_5_4', 'apo-ferritin')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-01-15T05:32:32.871417Z","iopub.execute_input":"2025-01-15T05:32:32.871734Z","iopub.status.idle":"2025-01-15T05:32:32.875894Z","shell.execute_reply.started":"2025-01-15T05:32:32.871709Z","shell.execute_reply":"2025-01-15T05:32:32.874830Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_5_4', 'apo-ferritin')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-01-15T05:32:36.851808Z","iopub.execute_input":"2025-01-15T05:32:36.852148Z","iopub.status.idle":"2025-01-15T05:32:45.245961Z","shell.execute_reply.started":"2025-01-15T05:32:36.852099Z","shell.execute_reply":"2025-01-15T05:32:45.244874Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_69_2","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_69_2', 'apo-ferritin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.252Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_69_2', 'apo-ferritin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.253Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_6_4","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_6_4', 'apo-ferritin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.254Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_6_4', 'apo-ferritin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.255Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_6_6","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_6_6', 'apo-ferritin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.255Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_6_6', 'apo-ferritin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.255Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_73_6","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_73_6', 'apo-ferritin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.256Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_73_6', 'apo-ferritin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.256Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_86_3","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_86_3', 'apo-ferritin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.257Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_86_3', 'apo-ferritin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.257Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_99_9","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_99_9', 'apo-ferritin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.257Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_99_9', 'apo-ferritin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.259Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Beta-Amylase\n\n![](https://cdn.rcsb.org/images/structures/1fa2_assembly-1.jpeg)  \n\nImage from the following source:  \n[https://www.rcsb.org/structure/1fa2](https://www.rcsb.org/structure/1fa2)","metadata":{}},{"cell_type":"markdown","source":"## TS_5_4\n","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_5_4', 'beta-amylase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.264Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_5_4', 'beta-amylase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.264Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_69_2","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_69_2', 'beta-amylase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.265Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_69_2', 'beta-amylase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.266Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_6_4","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_6_4', 'beta-amylase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.266Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_6_4', 'beta-amylase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.266Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_6_6","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_6_6', 'beta-amylase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.268Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_6_6', 'beta-amylase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.268Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_73_6","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_73_6', 'beta-amylase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.268Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_73_6', 'beta-amylase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.270Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_86_3","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_86_3', 'beta-amylase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.270Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_86_3', 'beta-amylase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.270Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_99_9","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_99_9', 'beta-amylase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.270Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_99_9', 'beta-amylase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.271Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Beta-Galactosidase\n\n![](https://cdn.rcsb.org/images/structures/6x1q_assembly-1.jpeg)\n\nImage from this source:  \n[https://www.rcsb.org/structure/6X1Q](https://www.rcsb.org/structure/6X1Q)","metadata":{}},{"cell_type":"markdown","source":"## TS_5_4","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_5_4', 'beta-galactosidase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.271Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_5_4', 'beta-galactosidase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.271Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_69_2","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_69_2', 'beta-galactosidase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.272Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_69_2', 'beta-galactosidase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.272Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_6_4","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_6_4', 'beta-galactosidase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.273Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_6_4', 'beta-galactosidase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.274Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# TS_6_6","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_6_6', 'beta-galactosidase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.274Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_6_6', 'beta-galactosidase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.274Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_73_6","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_73_6', 'beta-galactosidase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.275Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_73_6', 'beta-galactosidase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.275Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_86_3","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_86_3', 'beta-galactosidase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.276Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_86_3', 'beta-galactosidase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.277Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_99_9","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_99_9', 'beta-galactosidase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.277Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_99_9', 'beta-galactosidase')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.277Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Ribosome\n\n![](https://cdn.rcsb.org/images/structures/6qzp_assembly-1.jpeg)  \n\nImage from this source:  \n[https://www.rcsb.org/structure/6QZP](https://www.rcsb.org/structure/6QZP)  \n","metadata":{}},{"cell_type":"markdown","source":"## TS_5_4","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_5_4', 'ribosome')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.278Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_5_4', 'ribosome')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.278Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_69_2","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_69_2', 'ribosome')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.279Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_69_2', 'ribosome')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.280Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_6_4","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_6_4', 'ribosome')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.281Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_6_4', 'ribosome')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.282Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_6_6","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_6_6', 'ribosome')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.282Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_6_6', 'ribosome')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.283Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_73_6","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_73_6', 'ribosome')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.284Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_73_6', 'ribosome')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.284Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_86_3","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_86_3', 'ribosome')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.285Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_86_3', 'ribosome')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.285Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_99_9","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_99_9', 'ribosome')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.286Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_99_9', 'ribosome')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.286Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Thyroglobulin\n\n![](https://cdn.rcsb.org/images/structures/6scj_assembly-1.jpeg)\n\nImage from this source:  \n[https://www.rcsb.org/structure/6scj](https://www.rcsb.org/structure/6scj)","metadata":{}},{"cell_type":"markdown","source":"## TS_5_4","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_5_4', 'thyroglobulin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.286Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_5_4', 'thyroglobulin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.288Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_69_2","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_69_2', 'thyroglobulin')","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_69_2', 'thyroglobulin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.288Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_6_4","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_6_4', 'thyroglobulin')","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_6_4', 'thyroglobulin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.291Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_6_6","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_6_6', 'thyroglobulin')","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_6_6', 'thyroglobulin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.293Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_73_6","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_73_6', 'thyroglobulin')","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_73_6', 'thyroglobulin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.293Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_86_3","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_86_3', 'thyroglobulin')","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_86_3', 'thyroglobulin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.293Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_99_9","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_99_9', 'thyroglobulin')","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_99_9', 'thyroglobulin')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.294Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Virus-Like-Particle\n\n![](https://cdn.rcsb.org/images/structures/6n4v_assembly-1.jpeg)\n\nImage from this source:  \n[https://www.rcsb.org/structure/6N4V](https://www.rcsb.org/structure/6N4V)","metadata":{"execution":{"iopub.status.busy":"2025-01-14T06:10:44.111105Z","iopub.execute_input":"2025-01-14T06:10:44.111604Z","iopub.status.idle":"2025-01-14T06:10:44.116977Z","shell.execute_reply.started":"2025-01-14T06:10:44.111570Z","shell.execute_reply":"2025-01-14T06:10:44.115440Z"}}},{"cell_type":"markdown","source":"## TS_5_4","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_5_4', 'virus-like-particle')","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_5_4', 'virus-like-particle')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.294Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_69_2","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_69_2', 'virus-like-particle')","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_69_2', 'virus-like-particle')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.294Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_6_4","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_6_4', 'virus-like-particle')","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_6_4', 'virus-like-particle')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.295Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_6_6","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_6_6', 'virus-like-particle')","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_6_6', 'virus-like-particle')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.296Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_73_6","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_73_6', 'virus-like-particle')","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_73_6', 'virus-like-particle')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.296Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_86_3","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_86_3', 'virus-like-particle')","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_86_3', 'virus-like-particle')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.296Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## TS_99_9","metadata":{}},{"cell_type":"code","source":"plot_particles_3d('TS_99_9', 'virus-like-particle')","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plot_particles('TS_99_9', 'virus-like-particle')","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-15T01:40:37.296Z"}},"outputs":[],"execution_count":null}]}