{
  "id": 544895,
  "title": "Some issues need to be clarified",
  "url": "/competitions/czii-cryo-et-object-identification/discussion/544895",
  "author_name": "Zhuoqun Li",
  "post_date": "2024-11-07T13:34:22.723000",
  "votes": 26,
  "comment_count": 39,
  "views": 0,
  "content": "<ol>\n<li>What is the unit of the x, y, and z values for location in the JSON file, and how can Particle locations be converted to different resolution 3D arrays?</li>\n<li>I noticed that in the Evaluation section, you mention scoring based on the radius of the particle of interest. The radius for each particle needs clarification.</li>\n</ol>",
  "messages": [
    {
      "id": 3038876,
      "postDate": "2024-11-07T13:34:22.723Z",
      "content": "<ol>\n<li>What is the unit of the x, y, and z values for location in the JSON file, and how can Particle locations be converted to different resolution 3D arrays?</li>\n<li>I noticed that in the Evaluation section, you mention scoring based on the radius of the particle of interest. The radius for each particle needs clarification.</li>\n</ol>",
      "rawMarkdown": "1. What is the unit of the x, y, and z values for location in the JSON file, and how can Particle locations be converted to different resolution 3D arrays?\n2. I noticed that in the Evaluation section, you mention scoring based on the radius of the particle of interest. The radius for each particle needs clarification.",
      "votes": 26
    },
    {
      "id": 3038897,
      "postDate": "2024-11-07T13:57:17.430Z",
      "content": "<ol>\n<li><p>The units for locations are 1 Angstrom. The tomograms are in 10A resolution. This blob detector example finds coordinates in the tomogram's coordinate system (10A), converts them to the resolution for the particles (1A), and generates a submission.csv: <a href=\"https://github.com/czimaginginstitute/2024_czii_mlchallenge_notebooks/blob/main/blob_detector_inference.ipynb\" target=\"_blank\">https://github.com/czimaginginstitute/2024_czii_mlchallenge_notebooks/blob/main/blob_detector_inference.ipynb</a></p></li>\n<li><p>Thanks for bringing this up. The radius of each particle is specified in the json config file in the example notebook: <a href=\"https://github.com/czimaginginstitute/2024_czii_mlchallenge_notebooks/blob/main/blob_detector_inference.ipynb\" target=\"_blank\">https://github.com/czimaginginstitute/2024_czii_mlchallenge_notebooks/blob/main/blob_detector_inference.ipynb</a> Here is a table:</p></li>\n</ol>\n<table>\n<thead>\n<tr>\n<th>Particle</th>\n<th>Radius (A)</th>\n<th>Weight for scoring</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>apo-ferritin</td>\n<td>60</td>\n<td>1</td>\n</tr>\n<tr>\n<td>beta-amylase</td>\n<td>65</td>\n<td>0</td>\n</tr>\n<tr>\n<td>beta-galactosidase</td>\n<td>90</td>\n<td>2</td>\n</tr>\n<tr>\n<td>ribosome</td>\n<td>150</td>\n<td>1</td>\n</tr>\n<tr>\n<td>thyroglobulin</td>\n<td>130</td>\n<td>2</td>\n</tr>\n<tr>\n<td>virus-like-particle</td>\n<td>135</td>\n<td>1</td>\n</tr>\n</tbody>\n</table>",
      "rawMarkdown": "1. The units for locations are 1 Angstrom. The tomograms are in 10A resolution. This blob detector example finds coordinates in the tomogram's coordinate system (10A), converts them to the resolution for the particles (1A), and generates a submission.csv: https://github.com/czimaginginstitute/2024_czii_mlchallenge_notebooks/blob/main/blob_detector_inference.ipynb\n\n2. Thanks for bringing this up. The radius of each particle is specified in the json config file in the example notebook: https://github.com/czimaginginstitute/2024_czii_mlchallenge_notebooks/blob/main/blob_detector_inference.ipynb Here is a table:\n\n| Particle | Radius (A) | Weight for scoring |\n| --- | --- | --- |\n| apo-ferritin | 60 | 1 |\n| beta-amylase | 65 | 0 |\n| beta-galactosidase | 90 | 2 |\n| ribosome | 150 | 1 |\n| thyroglobulin | 130 | 2 |\n| virus-like-particle | 135 | 1 |\n",
      "votes": 12,
      "replies": [
        {
          "id": 3038926,
          "postDate": "2024-11-07T14:12:19.113Z",
          "content": "<p><a href=\"https://www.kaggle.com/kharrington\" target=\"_blank\">@kharrington</a> Thank you for your prompt response; it was very helpful. However, there is still a point that needs clarification regarding the first question. I noticed that in your reply, you mentioned that <code>The tomograms are in 10 A resolution</code>, but you provided three different resolution tomograms. Could you please clarify the specific resolutions for each of them? Thank you.</p>",
          "rawMarkdown": "@kharrington Thank you for your prompt response; it was very helpful. However, there is still a point that needs clarification regarding the first question. I noticed that in your reply, you mentioned that `The tomograms are in 10 A resolution`, but you provided three different resolution tomograms. Could you please clarify the specific resolutions for each of them? Thank you.",
          "replies": [
            {
              "id": 3038947,
              "postDate": "2024-11-07T14:25:35.967Z",
              "content": "<p>Hi <a href=\"https://www.kaggle.com/ucas0v0zhuoqunli\" target=\"_blank\">@ucas0v0zhuoqunli</a>, the tomograms are provided as a multiscale pyramid. </p>\n<p>Layout in the OME-Zarr directories: </p>\n<ul>\n<li>Subdirectory \"0\": 10 A resolution, no binning.</li>\n<li>Subdirectory \"1\": 20 A resolution, \"0\" binned by factor 2</li>\n<li>Subdirectory \"2\": 40 A resolution, \"0\" binned by factor 4</li>\n</ul>\n<p>Information about the image resolution is stored under key <code>'multiscales'</code> in a json-file called <code>.zattrs</code> in each directory ending with <code>.zarr</code> and follows the <a href=\"https://ngff.openmicroscopy.org/0.4/index.html\" target=\"_blank\">OME-NGFF v0.4 specification</a>.</p>",
              "rawMarkdown": "Hi @ucas0v0zhuoqunli, the tomograms are provided as a multiscale pyramid. \n\nLayout in the OME-Zarr directories: \n- Subdirectory \"0\": 10 A resolution, no binning.\n- Subdirectory \"1\": 20 A resolution, \"0\" binned by factor 2\n- Subdirectory \"2\": 40 A resolution, \"0\" binned by factor 4\n\nInformation about the image resolution is stored under key `'multiscales'` in a json-file called `.zattrs` in each directory ending with `.zarr` and follows the [OME-NGFF v0.4 specification](https://ngff.openmicroscopy.org/0.4/index.html).",
              "votes": 6
            },
            {
              "id": 3038975,
              "postDate": "2024-11-07T14:44:30.970Z",
              "content": "<p><a href=\"https://www.kaggle.com/uermel\" target=\"_blank\">@uermel</a> Thanks, that helps!</p>",
              "rawMarkdown": "@uermel Thanks, that helps!"
            }
          ]
        },
        {
          "id": 3038927,
          "postDate": "2024-11-07T14:12:43.127Z",
          "content": "<p>On the highest resolution, assuming dimensions of (184, 630, 630) in 10A, it results in (1840, 6300, 6300) in 1A, correct?<br>\nThe blob detector example finds particles and returns coordinates in the 1A resolution. </p>\n<p>In the competition overview, it is stated that:</p>\n<blockquote>\n  <p>a particle is considered \"true\" if it lies within a factor of 0.5 of the particle of interest's radius</p>\n</blockquote>\n<p>Does this mean for a ground-truth location of (1000, 3000, 3000) for an apo-ferritin, assuming that the 0.5 factor of the radius would be 30, an apo-ferritin predicted within (970-1030, 2970-3030, 2970-3030) would be considered true?</p>",
          "rawMarkdown": "On the highest resolution, assuming dimensions of (184, 630, 630) in 10A, it results in (1840, 6300, 6300) in 1A, correct?\nThe blob detector example finds particles and returns coordinates in the 1A resolution. \n\nIn the competition overview, it is stated that:\n>a particle is considered \"true\" if it lies within a factor of 0.5 of the particle of interest's radius\n\nDoes this mean for a ground-truth location of (1000, 3000, 3000) for an apo-ferritin, assuming that the 0.5 factor of the radius would be 30, an apo-ferritin predicted within (970-1030, 2970-3030, 2970-3030) would be considered true?",
          "replies": [
            {
              "id": 3039029,
              "postDate": "2024-11-07T15:30:28.403Z",
              "content": "<p>The distance check uses <code>KDTree.query_ball_tree</code> which will result in a bounding sphere, instead of a bounding box. So in your example, points within a distance of 30 from the reference apo-ferritin would be matched.</p>\n<p>We've made the metric public: <a href=\"https://www.kaggle.com/code/metric/czi-cryoet-84969\" target=\"_blank\">https://www.kaggle.com/code/metric/czi-cryoet-84969</a></p>",
              "rawMarkdown": "The distance check uses `KDTree.query_ball_tree` which will result in a bounding sphere, instead of a bounding box. So in your example, points within a distance of 30 from the reference apo-ferritin would be matched.\n\nWe've made the metric public: https://www.kaggle.com/code/metric/czi-cryoet-84969",
              "votes": 3
            }
          ]
        },
        {
          "id": 3039060,
          "postDate": "2024-11-07T15:50:24.507Z",
          "content": "<p><a href=\"https://www.kaggle.com/kharrington\" target=\"_blank\">@kharrington</a> A quick question: you didn't specify what the three dimensions of the 3D array represent in the data description. Is it <code>z, y, x</code>, <code>z, x, y</code>, or some other order? This needs clarification. Thank you.</p>",
          "rawMarkdown": "@kharrington A quick question: you didn't specify what the three dimensions of the 3D array represent in the data description. Is it `z, y, x`, `z, x, y`, or some other order? This needs clarification. Thank you.",
          "replies": [
            {
              "id": 3039116,
              "postDate": "2024-11-07T16:59:48.537Z",
              "content": "<p>Thanks for this one too! It isn't intuitive but these zarr files actually specify the axis ordering. Each <code>image.zarr</code> directory has a <code>.zattrs</code> in the root. For our files this contains:</p>\n<p><code>{\"axes\": [{\"name\": \"z\", \"type\": \"space\", \"unit\": \"angstrom\"}, {\"name\": \"y\", \"type\": \"space\", \"unit\": \"angstrom\"}, {\"name\": \"x\", \"type\": \"space\", \"unit\": \"angstrom\"}]</code></p>\n<p>So the short answer is the arrays are in <code>z, y, x</code> order 😅</p>",
              "rawMarkdown": "Thanks for this one too! It isn't intuitive but these zarr files actually specify the axis ordering. Each `image.zarr` directory has a `.zattrs` in the root. For our files this contains:\n\n`{\"axes\": [{\"name\": \"z\", \"type\": \"space\", \"unit\": \"angstrom\"}, {\"name\": \"y\", \"type\": \"space\", \"unit\": \"angstrom\"}, {\"name\": \"x\", \"type\": \"space\", \"unit\": \"angstrom\"}]`\n\nSo the short answer is the arrays are in `z, y, x` order 😅\n\n",
              "votes": 2
            }
          ]
        },
        {
          "id": 3041522,
          "postDate": "2024-11-10T13:31:25.140Z",
          "content": "<p>Thanks <a href=\"https://www.kaggle.com/kharrington\" target=\"_blank\">@kharrington</a> !</p>\n<p>How consistent are these sizes? I could see that we could bias ourselves by \"hard-coding\" these into the training labels. </p>\n<p>Are they always spherical? Could you maybe point us at some reference for these values? </p>",
          "rawMarkdown": "Thanks @kharrington !\n\nHow consistent are these sizes? I could see that we could bias ourselves by \"hard-coding\" these into the training labels. \n\nAre they always spherical? Could you maybe point us at some reference for these values? ",
          "votes": 1,
          "replies": [
            {
              "id": 3041702,
              "postDate": "2024-11-10T18:06:51.717Z",
              "content": "<p><a href=\"https://www.kaggle.com/fnands\" target=\"_blank\">@fnands</a> there is definitely some risk of bias but the size should generally be pretty consistent. There are some questions that arise about heterogeneous particle shape, and we don't believe that particles are spherical but generating masks of the right shape isn't trivial. One way to improve model performance can definitely be to use other mask generation strategies like it sounds like you are considering.</p>",
              "rawMarkdown": "@fnands there is definitely some risk of bias but the size should generally be pretty consistent. There are some questions that arise about heterogeneous particle shape, and we don't believe that particles are spherical but generating masks of the right shape isn't trivial. One way to improve model performance can definitely be to use other mask generation strategies like it sounds like you are considering.",
              "votes": 2
            }
          ]
        }
      ]
    },
    {
      "id": 3039843,
      "postDate": "2024-11-08T12:40:46.687Z",
      "content": "<p>i have a question about the zarr files in the hidden public and private test set.<br>\nthe train zarr files have similar levels, can we assume the same for the test too?</p>\n<ol>\n<li>all zarr files have 3 levels: 0,1,2</li>\n<li>sizes are: (184, 630, 630), (92, 315, 315), (46, 158, 158)?</li>\n<li>voxel spacing is 10</li>\n</ol>",
      "rawMarkdown": "i have a question about the zarr files in the hidden public and private test set.\nthe train zarr files have similar levels, can we assume the same for the test too?\n1.  all zarr files have 3 levels: 0,1,2\n2. sizes are: (184, 630, 630), (92, 315, 315), (46, 158, 158)?\n3. voxel spacing is 10",
      "votes": 3,
      "replies": [
        {
          "id": 3039972,
          "postDate": "2024-11-08T14:50:15.470Z",
          "content": "<p>Yes, this is true for the training set and both public/private test.</p>",
          "rawMarkdown": "Yes, this is true for the training set and both public/private test.",
          "votes": 10,
          "replies": [
            {
              "id": 3048977,
              "postDate": "2024-11-18T15:18:55.397Z",
              "content": "<p>Hi all, very new to this stuff. <a href=\"https://www.kaggle.com/uermel\" target=\"_blank\">@uermel</a> and <a href=\"https://www.kaggle.com/kharrington\" target=\"_blank\">@kharrington</a>, if I am passing this data into my model, would I just pass the main (184, 630, 630) data into my model? I am just confused what is the relevance of the other “pyramidal” resolutions and if I should worry about them or not. Thank you!</p>",
              "rawMarkdown": "Hi all, very new to this stuff. @uermel and @kharrington, if I am passing this data into my model, would I just pass the main (184, 630, 630) data into my model? I am just confused what is the relevance of the other “pyramidal” resolutions and if I should worry about them or not. Thank you!"
            },
            {
              "id": 3049830,
              "postDate": "2024-11-19T14:51:40.170Z",
              "content": "<p><a href=\"https://www.kaggle.com/circuitguru\" target=\"_blank\">@circuitguru</a> most people will just want to use the highest resolution data (e.g. the (183, 630, 630) array). The other resolutions of the data are generally used for: visualization <em>or</em> quick scanning of the image (e.g. scan the low resolution image to exclude some regions, then run a high resolution model in the remaining locations)</p>",
              "rawMarkdown": "@circuitguru most people will just want to use the highest resolution data (e.g. the (183, 630, 630) array). The other resolutions of the data are generally used for: visualization *or* quick scanning of the image (e.g. scan the low resolution image to exclude some regions, then run a high resolution model in the remaining locations)",
              "votes": 2
            },
            {
              "id": 3049852,
              "postDate": "2024-11-19T15:14:31.987Z",
              "content": "<p>Okay thanks for the clarification</p>",
              "rawMarkdown": "Okay thanks for the clarification"
            }
          ]
        }
      ]
    },
    {
      "id": 3039201,
      "postDate": "2024-11-07T19:28:46.007Z",
      "content": "<p>This is a very basic question, but provided I know nothing about this domain, bear with me. </p>\n<p>What's the physical meaning of Z-axis? So y and x axis refer to spatial resolution (height and width of a single sample, simply put), but what does Z represent for a single sample?</p>",
      "rawMarkdown": "This is a very basic question, but provided I know nothing about this domain, bear with me. \n\nWhat's the physical meaning of Z-axis? So y and x axis refer to spatial resolution (height and width of a single sample, simply put), but what does Z represent for a single sample?",
      "votes": 3,
      "replies": [
        {
          "id": 3039212,
          "postDate": "2024-11-07T19:39:12.653Z",
          "content": "<p>Good question <a href=\"https://www.kaggle.com/ivanpan\" target=\"_blank\">@ivanpan</a>. Here Z is actually spatial resolution as well. The images in this competition are tomographic reconstructions already, but as you are alluding, the images were acquired as a series of 2D images at different tilt angles which were used to create these reconstructions. <a href=\"https://www.kaggle.com/rezaparaan\" target=\"_blank\">@rezaparaan</a> and <a href=\"https://www.kaggle.com/uermel\" target=\"_blank\">@uermel</a> might have some additional resources, or we have a more academic description of the data and reconstruction methods here: <a href=\"https://www.biorxiv.org/content/10.1101/2024.11.04.621686v1\" target=\"_blank\">https://www.biorxiv.org/content/10.1101/2024.11.04.621686v1</a>.</p>",
          "rawMarkdown": "Good question @ivanpan. Here Z is actually spatial resolution as well. The images in this competition are tomographic reconstructions already, but as you are alluding, the images were acquired as a series of 2D images at different tilt angles which were used to create these reconstructions. @rezaparaan and @uermel might have some additional resources, or we have a more academic description of the data and reconstruction methods here: https://www.biorxiv.org/content/10.1101/2024.11.04.621686v1.",
          "votes": 3
        },
        {
          "id": 3039213,
          "postDate": "2024-11-07T19:39:48.213Z",
          "content": "<blockquote>\n  <p>This is a very basic question, but provided I know nothing about this domain, bear with me. </p>\n  <p>What's the physical meaning of Z-axis? So y and x axis refer to spatial resolution (height and width of a single sample, simply put), but what does Z represent for a single sample?</p>\n</blockquote>\n<p>Great question, and welcome to the CryoET field! </p>\n<p>The z axis is the direction of the electron beam during data acquisition. Tomograms are 3D data with their spatial extent covering x, y, and z. For more information on CryoET basics, check out the <a href=\"https://chanzuckerberg.github.io/cryoet-data-portal/about.html\" target=\"_blank\">CryoET Data Portal documentation site</a> and in particular <a href=\"https://chanzuckerberg.github.io/cryoet-data-portal/intro_cryoet.html#cryoet-intro\" target=\"_blank\">this article on CryoET basics</a> and <a href=\"https://chanzuckerberg.github.io/cryoet-data-portal/cryoet_workflow.html#cryoet-workflow\" target=\"_blank\">this article on data acquisition to analysis</a>.</p>",
          "rawMarkdown": "> This is a very basic question, but provided I know nothing about this domain, bear with me. \n> \n> What's the physical meaning of Z-axis? So y and x axis refer to spatial resolution (height and width of a single sample, simply put), but what does Z represent for a single sample?\n\nGreat question, and welcome to the CryoET field! \n\nThe z axis is the direction of the electron beam during data acquisition. Tomograms are 3D data with their spatial extent covering x, y, and z. For more information on CryoET basics, check out the [CryoET Data Portal documentation site](https://chanzuckerberg.github.io/cryoet-data-portal/about.html) and in particular [this article on CryoET basics](https://chanzuckerberg.github.io/cryoet-data-portal/intro_cryoet.html#cryoet-intro) and [this article on data acquisition to analysis](https://chanzuckerberg.github.io/cryoet-data-portal/cryoet_workflow.html#cryoet-workflow).",
          "votes": 4,
          "replies": [
            {
              "id": 3039218,
              "postDate": "2024-11-07T19:44:03.293Z",
              "content": "<p>Hm, I see. </p>\n<p>Is there a correlation between slices across Z-axis? For example, suppose I predict a location of ribosome at (50, Y, X). Does it help determine the position of ribosome (or other particles) at slices besides number 50? </p>\n<p>In more ML terms, based on your experience, is it profitable to treat this as a 3D problem or no real benefit compared to 2D approach where we treat all Z-slices individually? </p>",
              "rawMarkdown": "Hm, I see. \n\nIs there a correlation between slices across Z-axis? For example, suppose I predict a location of ribosome at (50, Y, X). Does it help determine the position of ribosome (or other particles) at slices besides number 50? \n\nIn more ML terms, based on your experience, is it profitable to treat this as a 3D problem or no real benefit compared to 2D approach where we treat all Z-slices individually? ",
              "votes": 2
            },
            {
              "id": 3039226,
              "postDate": "2024-11-07T19:55:17.033Z",
              "content": "<p>There is typically a significant degree of correlation between adjacent Z-slices, especially within continuous structures like large macromolecular complexes or organelles. Since CryoET captures a 3D volume of the specimen, particles such as ribosomes can span multiple slices along the Z-axis. As such, the position of a particle in one slice (e.g., at slice 50) often provides useful spatial context for predicting its position or continuity across neighboring slices. However, whether a 3D approach is more effective than a 2D approach depends on the complexity and size of the structures you're detecting and on your model architecture.</p>",
              "rawMarkdown": "There is typically a significant degree of correlation between adjacent Z-slices, especially within continuous structures like large macromolecular complexes or organelles. Since CryoET captures a 3D volume of the specimen, particles such as ribosomes can span multiple slices along the Z-axis. As such, the position of a particle in one slice (e.g., at slice 50) often provides useful spatial context for predicting its position or continuity across neighboring slices. However, whether a 3D approach is more effective than a 2D approach depends on the complexity and size of the structures you're detecting and on your model architecture.",
              "votes": 5
            },
            {
              "id": 3039227,
              "postDate": "2024-11-07T19:55:36.057Z",
              "content": "<p>Hi <a href=\"https://www.kaggle.com/ivanpan\" target=\"_blank\">@ivanpan</a>, cryo-electron tomography (cryoET) is a method that allows to reconstruct actual 3D volumes (tomograms), much like medical computed tomography (CT). You can consider each x-y plane to be a section through a 3D volume. The z-axis is the true depth axis of the specimen. Signal in neighboring Z-slices will be correlated, and you can treat this as a true 3D problem. </p>",
              "rawMarkdown": "Hi @ivanpan, cryo-electron tomography (cryoET) is a method that allows to reconstruct actual 3D volumes (tomograms), much like medical computed tomography (CT). You can consider each x-y plane to be a section through a 3D volume. The z-axis is the true depth axis of the specimen. Signal in neighboring Z-slices will be correlated, and you can treat this as a true 3D problem. ",
              "votes": 5
            },
            {
              "id": 3039235,
              "postDate": "2024-11-07T20:11:52.027Z",
              "content": "<p>Got it, thank you. </p>\n<p>Btw, I really appreciate you taking the time to answer questions, let alone this fast. </p>",
              "rawMarkdown": "Got it, thank you. \n\nBtw, I really appreciate you taking the time to answer questions, let alone this fast. ",
              "votes": 1
            },
            {
              "id": 3039306,
              "postDate": "2024-11-07T22:16:31.540Z",
              "content": "<p>All right, new question :) </p>\n<p>Suppose I see the following annotation: <code>{'x': 4632.091, 'y': 2990.234, 'z': 244.138}</code>. What's the reason behind using z=244 for this annotation, why not 243 or 245? </p>\n<p>Is it because that annotation would absolutely not make sense for z=243/245 or simply because annotator decided it's the most visible at 244? </p>\n<p>I suspect it's the 2nd option, since adjacent z-slices are very similar </p>",
              "rawMarkdown": "All right, new question :) \n\nSuppose I see the following annotation: `{'x': 4632.091, 'y': 2990.234, 'z': 244.138}`. What's the reason behind using z=244 for this annotation, why not 243 or 245? \n\nIs it because that annotation would absolutely not make sense for z=243/245 or simply because annotator decided it's the most visible at 244? \n\nI suspect it's the 2nd option, since adjacent z-slices are very similar ",
              "votes": 2
            },
            {
              "id": 3039311,
              "postDate": "2024-11-07T22:38:04.280Z",
              "content": "<p>Hi Ivan, we absolutely love the community's participation and we are enjoying engaging with you. That's why I'm gonna take this question. You have a great question. The punishment for the 1 Å error could be nothing for most cases. A good picking is considered as coordinates that are at the center of mass of the particle for most cases. Sometimes interesting geometries make this assumption not relevant, for example for viruses and VLPs. But for this competition we are interested in centers of mass. The errors in x,y,z are always thought about in terms of the particle dimensions. So the same error for a smaller particle is more consequential. Locating smaller things needs more accuracy. That's the problem at the heart of this challenge.</p>",
              "rawMarkdown": "Hi Ivan, we absolutely love the community's participation and we are enjoying engaging with you. That's why I'm gonna take this question. You have a great question. The punishment for the 1 Å error could be nothing for most cases. A good picking is considered as coordinates that are at the center of mass of the particle for most cases. Sometimes interesting geometries make this assumption not relevant, for example for viruses and VLPs. But for this competition we are interested in centers of mass. The errors in x,y,z are always thought about in terms of the particle dimensions. So the same error for a smaller particle is more consequential. Locating smaller things needs more accuracy. That's the problem at the heart of this challenge.",
              "votes": 3
            },
            {
              "id": 3039870,
              "postDate": "2024-11-08T13:09:39.057Z",
              "content": "<p>I see, I see. </p>\n<p>All right, so considering we're predicting the center of a particle in 3D space, we need to take a look at the 3D image with some context. Could you provide a rough guidance how much context we need for 5 particles?</p>\n<p>I guess those context windows would be correlated with radius. In other words, apo-ferritin requires a smaller context than ribosome, but perhaps I'm wrong. </p>\n<p>Just to elaborate: by context I mean the 3D image crop size around the center of particle. Maybe it's like (40, 40, 40) or maybe closer to (200, 200, 200) </p>",
              "rawMarkdown": "I see, I see. \n\nAll right, so considering we're predicting the center of a particle in 3D space, we need to take a look at the 3D image with some context. Could you provide a rough guidance how much context we need for 5 particles?\n\nI guess those context windows would be correlated with radius. In other words, apo-ferritin requires a smaller context than ribosome, but perhaps I'm wrong. \n\nJust to elaborate: by context I mean the 3D image crop size around the center of particle. Maybe it's like (40, 40, 40) or maybe closer to (200, 200, 200) "
            },
            {
              "id": 3039949,
              "postDate": "2024-11-08T14:28:50.510Z",
              "content": "<p>Hey Ivan,</p>\n<p>This is something you may want to explore, but some guidance:</p>\n<p>Check out one of the tomograms <a href=\"https://neuroglancer-demo.appspot.com/#!%7B%22dimensions%22:%7B%22x%22:%5B1.0012e-9%2C%22m%22%5D%2C%22y%22:%5B1.0012e-9%2C%22m%22%5D%2C%22z%22:%5B1.0012e-9%2C%22m%22%5D%7D%2C%22position%22:%5B242.50360107421875%2C354.9693603515625%2C87%5D%2C%22crossSectionScale%22:0.5931368588889502%2C%22projectionOrientation%22:%5B0.3826834261417389%2C0%2C0%2C0.9238795042037964%5D%2C%22projectionScale%22:693%2C%22layers%22:%5B%7B%22type%22:%22image%22%2C%22source%22:%22zarr://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/Tomograms/100/TS_5_4.zarr%22%2C%22tab%22:%22rendering%22%2C%22opacity%22:0.51%2C%22shader%22:%22#uicontrol%20invlerp%20contrast%5Cn#uicontrol%20bool%20invert_contrast%20checkbox%5Cn%5Cnfloat%20get_contrast%28%29%20%7B%5Cn%20%20return%20invert_contrast%20?%201.0%20-%20contrast%28%29%20:%20contrast%28%29%3B%5Cn%7D%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20float%20outputValue%3B%5Cn%20%20outputValue%20=%20get_contrast%28%29%3B%5Cn%20%20emitGrayscale%28outputValue%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22contrast%22:%7B%22range%22:%5B-0.00002210820881032305%2C0.000022521212798665147%5D%2C%22window%22:%5B-0.00002657115097122187%2C0.000026984154959563967%5D%7D%7D%2C%22name%22:%22TS_5_4%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/100-ferritin_complex-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#4d0c19%22%7D%2C%22name%22:%22100%20ferritin%20complex%20point%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/101-beta_amylase-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#00ff00%22%7D%2C%22name%22:%22101%20Beta-amylase%20point%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/102-beta_galactosidase-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#0080ff%22%7D%2C%22name%22:%22102%20Beta-galactosidase%20point%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/103-cytosolic_ribosome-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#ff00ff%22%7D%2C%22name%22:%22103%20cytosolic%20ribosome%20point%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/104-thyroglobulin-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#e79f0a%22%7D%2C%22name%22:%22104%20Thyroglobulin%20point%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/105-pp7_vlp-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#ff0000%22%7D%2C%22name%22:%22105%20virus-like%20capsid%20point%22%7D%5D%2C%22selectedLayer%22:%7B%22visible%22:true%2C%22layer%22:%22TS_5_4%22%7D%2C%22crossSectionBackgroundColor%22:%22#000000%22%2C%22layout%22:%224panel%22%7D\" target=\"_blank\">here</a></p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F245049%2F3695064cb58318c3df5b19d70490140b%2FScreenshot%202024-11-08%20at%209.24.16AM.png?generation=1731075885016471&amp;alt=media\" alt=\"Screenshot of tomogram showing a VLP particle\"></p>\n<p>Here I am showing a VLP particle. When I measure coordinates by mousing over the particle, a tight box around the VLP looks like it would be ~32^3, but I've been using 48^3 or sometimes even 96^3 to get extra context.</p>\n<p>You are right that the radius of the particle should affect this choice, where presumably the simplest thing is just to use a box size that works for the largest particle.</p>",
              "rawMarkdown": "Hey Ivan,\n\nThis is something you may want to explore, but some guidance:\n\nCheck out one of the tomograms [here](https://neuroglancer-demo.appspot.com/#!%7B%22dimensions%22:%7B%22x%22:%5B1.0012e-9%2C%22m%22%5D%2C%22y%22:%5B1.0012e-9%2C%22m%22%5D%2C%22z%22:%5B1.0012e-9%2C%22m%22%5D%7D%2C%22position%22:%5B242.50360107421875%2C354.9693603515625%2C87%5D%2C%22crossSectionScale%22:0.5931368588889502%2C%22projectionOrientation%22:%5B0.3826834261417389%2C0%2C0%2C0.9238795042037964%5D%2C%22projectionScale%22:693%2C%22layers%22:%5B%7B%22type%22:%22image%22%2C%22source%22:%22zarr://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/Tomograms/100/TS_5_4.zarr%22%2C%22tab%22:%22rendering%22%2C%22opacity%22:0.51%2C%22shader%22:%22#uicontrol%20invlerp%20contrast%5Cn#uicontrol%20bool%20invert_contrast%20checkbox%5Cn%5Cnfloat%20get_contrast%28%29%20%7B%5Cn%20%20return%20invert_contrast%20?%201.0%20-%20contrast%28%29%20:%20contrast%28%29%3B%5Cn%7D%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20float%20outputValue%3B%5Cn%20%20outputValue%20=%20get_contrast%28%29%3B%5Cn%20%20emitGrayscale%28outputValue%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22contrast%22:%7B%22range%22:%5B-0.00002210820881032305%2C0.000022521212798665147%5D%2C%22window%22:%5B-0.00002657115097122187%2C0.000026984154959563967%5D%7D%7D%2C%22name%22:%22TS_5_4%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/100-ferritin_complex-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#4d0c19%22%7D%2C%22name%22:%22100%20ferritin%20complex%20point%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/101-beta_amylase-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#00ff00%22%7D%2C%22name%22:%22101%20Beta-amylase%20point%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/102-beta_galactosidase-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#0080ff%22%7D%2C%22name%22:%22102%20Beta-galactosidase%20point%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/103-cytosolic_ribosome-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#ff00ff%22%7D%2C%22name%22:%22103%20cytosolic%20ribosome%20point%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/104-thyroglobulin-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#e79f0a%22%7D%2C%22name%22:%22104%20Thyroglobulin%20point%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/105-pp7_vlp-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#ff0000%22%7D%2C%22name%22:%22105%20virus-like%20capsid%20point%22%7D%5D%2C%22selectedLayer%22:%7B%22visible%22:true%2C%22layer%22:%22TS_5_4%22%7D%2C%22crossSectionBackgroundColor%22:%22#000000%22%2C%22layout%22:%224panel%22%7D)\n\n![Screenshot of tomogram showing a VLP particle](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F245049%2F3695064cb58318c3df5b19d70490140b%2FScreenshot%202024-11-08%20at%209.24.16AM.png?generation=1731075885016471&alt=media)\n\nHere I am showing a VLP particle. When I measure coordinates by mousing over the particle, a tight box around the VLP looks like it would be ~32^3, but I've been using 48^3 or sometimes even 96^3 to get extra context.\n\nYou are right that the radius of the particle should affect this choice, where presumably the simplest thing is just to use a box size that works for the largest particle.",
              "votes": 3
            },
            {
              "id": 3039970,
              "postDate": "2024-11-08T14:48:11.997Z",
              "content": "<p>That's a very cool visualization. </p>\n<p>Btw, why does this visualization not take into consideration the radius? Shouldn't ribosome be bigger than AF?</p>",
              "rawMarkdown": "That's a very cool visualization. \n\nBtw, why does this visualization not take into consideration the radius? Shouldn't ribosome be bigger than AF?",
              "votes": 3
            },
            {
              "id": 3039974,
              "postDate": "2024-11-08T14:54:43.207Z",
              "content": "<p>They are being visualized as points in that case. If you check out the <a href=\"https://neuroglancer-demo.appspot.com/#!%7B%22dimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22position%22:%5B336.7430114746094%2C328.4139709472656%2C130.5%5D%2C%22crossSectionScale%22:0.5848595999545737%2C%22projectionOrientation%22:%5B0.3826834261417389%2C0%2C0%2C0.9238795042037964%5D%2C%22projectionScale%22:693%2C%22layers%22:%5B%7B%22type%22:%22image%22%2C%22source%22:%22zarr://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/Tomograms/100/TS_11.zarr%22%2C%22tab%22:%22rendering%22%2C%22opacity%22:0.51%2C%22shader%22:%22#uicontrol%20invlerp%20contrast%5Cn#uicontrol%20bool%20invert_contrast%20checkbox%5Cn%5Cnfloat%20get_contrast%28%29%20%7B%5Cn%20%20return%20invert_contrast%20?%201.0%20-%20contrast%28%29%20:%20contrast%28%29%3B%5Cn%7D%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20float%20outputValue%3B%5Cn%20%20outputValue%20=%20get_contrast%28%29%3B%5Cn%20%20emitGrayscale%28outputValue%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22contrast%22:%7B%22range%22:%5B-2.472108374349773%2C2.4591089384630322%5D%2C%22window%22:%5B-2.9652301056310533%2C2.9522306697443126%5D%7D%7D%2C%22name%22:%22TS_11%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/100-membrane-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#0f714d%22%2C%22name%22:%22100%20membrane%20segmentation%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/101-ferritin_complex-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#ff00ff%22%2C%22name%22:%22101%20ferritin%20complex%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/101-ferritin_complex-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#00ffff%22%7D%2C%22name%22:%22101%20ferritin%20complex%20point%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/102-beta_amylase-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#ffff00%22%2C%22name%22:%22102%20Beta-amylase%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/102-beta_amylase-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#0000ff%22%7D%2C%22name%22:%22102%20Beta-amylase%20point%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/103-beta_galactosidase-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#d80402%22%2C%22name%22:%22103%20Beta-galactosidase%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/103-beta_galactosidase-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#eebef1%22%7D%2C%22name%22:%22103%20Beta-galactosidase%20point%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/104-cytosolic_ribosome-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#00ff00%22%2C%22name%22:%22104%20cytosolic%20ribosome%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/104-cytosolic_ribosome-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#80ff80%22%7D%2C%22name%22:%22104%20cytosolic%20ribosome%20point%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/105-thyroglobulin-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#5e78e5%22%2C%22name%22:%22105%20Thyroglobulin%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/105-thyroglobulin-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#c88449%22%7D%2C%22name%22:%22105%20Thyroglobulin%20point%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/106-pp7_vlp-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#6a178b%22%2C%22name%22:%22106%20virus-like%20capsid%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/106-pp7_vlp-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#f75dc4%22%7D%2C%22name%22:%22106%20virus-like%20capsid%20point%22%7D%5D%2C%22selectedLayer%22:%7B%22visible%22:true%2C%22layer%22:%22TS_11%22%7D%2C%22crossSectionBackgroundColor%22:%22#000000%22%2C%22layout%22:%224panel%22%7D\" target=\"_blank\">visualizations of the synthetic data</a> you can get some more intuition about the particle shape:</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F245049%2F126c99d37e91ff45ec4f4d2f02b84380%2FScreenshot%202024-11-08%20at%209.53.23AM.png?generation=1731077616113129&amp;alt=media\" alt=\"Screenshot of synthetic data mentioned, showing size difference between apo and ribosome\"></p>\n<p>So you are absolutely correct, ribosome (in green) should be larger than apo-ferritin (in magenta). Here you can see segmentation masks that clearly show the size/shape difference between the particle types.</p>",
              "rawMarkdown": "They are being visualized as points in that case. If you check out the [visualizations of the synthetic data](https://neuroglancer-demo.appspot.com/#!%7B%22dimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22position%22:%5B336.7430114746094%2C328.4139709472656%2C130.5%5D%2C%22crossSectionScale%22:0.5848595999545737%2C%22projectionOrientation%22:%5B0.3826834261417389%2C0%2C0%2C0.9238795042037964%5D%2C%22projectionScale%22:693%2C%22layers%22:%5B%7B%22type%22:%22image%22%2C%22source%22:%22zarr://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/Tomograms/100/TS_11.zarr%22%2C%22tab%22:%22rendering%22%2C%22opacity%22:0.51%2C%22shader%22:%22#uicontrol%20invlerp%20contrast%5Cn#uicontrol%20bool%20invert_contrast%20checkbox%5Cn%5Cnfloat%20get_contrast%28%29%20%7B%5Cn%20%20return%20invert_contrast%20?%201.0%20-%20contrast%28%29%20:%20contrast%28%29%3B%5Cn%7D%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20float%20outputValue%3B%5Cn%20%20outputValue%20=%20get_contrast%28%29%3B%5Cn%20%20emitGrayscale%28outputValue%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22contrast%22:%7B%22range%22:%5B-2.472108374349773%2C2.4591089384630322%5D%2C%22window%22:%5B-2.9652301056310533%2C2.9522306697443126%5D%7D%7D%2C%22name%22:%22TS_11%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/100-membrane-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#0f714d%22%2C%22name%22:%22100%20membrane%20segmentation%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/101-ferritin_complex-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#ff00ff%22%2C%22name%22:%22101%20ferritin%20complex%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/101-ferritin_complex-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#00ffff%22%7D%2C%22name%22:%22101%20ferritin%20complex%20point%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/102-beta_amylase-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#ffff00%22%2C%22name%22:%22102%20Beta-amylase%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/102-beta_amylase-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#0000ff%22%7D%2C%22name%22:%22102%20Beta-amylase%20point%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/103-beta_galactosidase-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#d80402%22%2C%22name%22:%22103%20Beta-galactosidase%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/103-beta_galactosidase-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#eebef1%22%7D%2C%22name%22:%22103%20Beta-galactosidase%20point%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/104-cytosolic_ribosome-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#00ff00%22%2C%22name%22:%22104%20cytosolic%20ribosome%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/104-cytosolic_ribosome-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#80ff80%22%7D%2C%22name%22:%22104%20cytosolic%20ribosome%20point%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/105-thyroglobulin-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#5e78e5%22%2C%22name%22:%22105%20Thyroglobulin%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/105-thyroglobulin-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#c88449%22%7D%2C%22name%22:%22105%20Thyroglobulin%20point%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/106-pp7_vlp-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#6a178b%22%2C%22name%22:%22106%20virus-like%20capsid%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/106-pp7_vlp-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#f75dc4%22%7D%2C%22name%22:%22106%20virus-like%20capsid%20point%22%7D%5D%2C%22selectedLayer%22:%7B%22visible%22:true%2C%22layer%22:%22TS_11%22%7D%2C%22crossSectionBackgroundColor%22:%22#000000%22%2C%22layout%22:%224panel%22%7D) you can get some more intuition about the particle shape:\n\n![Screenshot of synthetic data mentioned, showing size difference between apo and ribosome](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F245049%2F126c99d37e91ff45ec4f4d2f02b84380%2FScreenshot%202024-11-08%20at%209.53.23AM.png?generation=1731077616113129&alt=media)\n\nSo you are absolutely correct, ribosome (in green) should be larger than apo-ferritin (in magenta). Here you can see segmentation masks that clearly show the size/shape difference between the particle types.",
              "votes": 1
            },
            {
              "id": 3040001,
              "postDate": "2024-11-08T15:20:31.983Z",
              "content": "<p>Got it! </p>\n<p>Back to the beginning. We know that images and annotations are in different resolutions. Suppose image is in 10A, annotation is in 1A, and example of annotation is (200, 300, 400). Does it mean that in order to map annotations to image resolution I simply have to divide coordinates by 10 and get (20, 30, 40)?</p>\n<p>Or is it not linear or I'm missing something very basic? </p>",
              "rawMarkdown": "Got it! \n\nBack to the beginning. We know that images and annotations are in different resolutions. Suppose image is in 10A, annotation is in 1A, and example of annotation is (200, 300, 400). Does it mean that in order to map annotations to image resolution I simply have to divide coordinates by 10 and get (20, 30, 40)?\n\nOr is it not linear or I'm missing something very basic? ",
              "votes": 3
            },
            {
              "id": 3040071,
              "postDate": "2024-11-08T16:50:42.020Z",
              "content": "<p>You've got it. The scaling here is pretty straight forward. Divide by the voxel spacing to convert annotations into the same coordinates as the arrays.</p>\n<p>The only nuance I would point out is that if you look at the .zattrs files for the tomogram zarrs you'll see that it is slightly different than just <code>10</code>:</p>\n<p><code>\"scale\": [10.012444196428572, 10.012444196428572, 10.012444537618887]</code></p>",
              "rawMarkdown": "You've got it. The scaling here is pretty straight forward. Divide by the voxel spacing to convert annotations into the same coordinates as the arrays.\n\nThe only nuance I would point out is that if you look at the .zattrs files for the tomogram zarrs you'll see that it is slightly different than just `10`:\n\n`\"scale\": [10.012444196428572, 10.012444196428572, 10.012444537618887]`",
              "votes": 11
            },
            {
              "id": 3077995,
              "postDate": "2024-12-21T16:45:36.407Z",
              "content": "<p>Hi <a href=\"https://www.kaggle.com/kharrington\" target=\"_blank\">@kharrington</a>, thanks for hosting nice competition.<br>\nI would like to confirm one thing – is the given 3D array reconstructed from tomography?</p>",
              "rawMarkdown": "Hi @kharrington, thanks for hosting nice competition.\nI would like to confirm one thing – is the given 3D array reconstructed from tomography?"
            }
          ]
        }
      ]
    },
    {
      "id": 3039093,
      "postDate": "2024-11-07T16:44:46.017Z",
      "content": "<p>For the units of the x, y, and z values in the JSON file, refer to the dataset's documentation, as these coordinates may represent different units such as meters or pixels depending on the source. To convert particle locations to different resolution 3D arrays, scale each coordinate according to the target array’s resolution. For example, if reducing by half, divide each coordinate by two; if upscaling, multiply by the appropriate scaling factor. The Evaluation section mentions scoring based on the particle radius, but it’s essential to confirm if a specific radius is provided per particle. If not, clarify with the dataset provider, as this radius might affect how particles are identified or analyzed within a set proximity. Reviewing the JSON schema can also reveal more about units, scaling, or radius attributes specific to each particle.</p>",
      "rawMarkdown": "For the units of the x, y, and z values in the JSON file, refer to the dataset's documentation, as these coordinates may represent different units such as meters or pixels depending on the source. To convert particle locations to different resolution 3D arrays, scale each coordinate according to the target array’s resolution. For example, if reducing by half, divide each coordinate by two; if upscaling, multiply by the appropriate scaling factor. The Evaluation section mentions scoring based on the particle radius, but it’s essential to confirm if a specific radius is provided per particle. If not, clarify with the dataset provider, as this radius might affect how particles are identified or analyzed within a set proximity. Reviewing the JSON schema can also reveal more about units, scaling, or radius attributes specific to each particle.\n\n\n\n\n\n\n",
      "votes": -6
    },
    {
      "id": 3049123,
      "postDate": "2024-11-18T18:20:53.983Z",
      "content": "<p>Hello <a href=\"https://www.kaggle.com/kharrington\" target=\"_blank\">@kharrington</a> Sorry for asking basic question .</p>\n<p>Lets say I am working with High Resolution data in zarrs file for <strong>TS_5_4 related to apo_ferritin particle</strong> . For 1 of the location present in JSON file is <strong>{'x': 5748.253, 'y': 5115.846, 'z': 108.033} became --&gt; {'x': 574.8253, 'y': 511.5846, 'z': 10.8033}</strong> after scaling (dividing with 10.02) . According to my understanding I need to go slide Number 10 and plot 60 A radius sphere at coordinate <strong>'x': 574.8253, 'y': 511.5846</strong> . If above one is correct how I am sure that 'z': 10.8033 is tile number 10 not tile Number 11 ? <br>\nAlso My understanding with coordinate z is correct as it is used to tell us about Tile Number ?</p>\n<p>Hope I elaborate my question</p>",
      "rawMarkdown": "Hello @kharrington Sorry for asking basic question .\n\nLets say I am working with High Resolution data in zarrs file for **TS_5_4 related to apo_ferritin particle** . For 1 of the location present in JSON file is **{'x': 5748.253, 'y': 5115.846, 'z': 108.033} became --> {'x': 574.8253, 'y': 511.5846, 'z': 10.8033}** after scaling (dividing with 10.02) . According to my understanding I need to go slide Number 10 and plot 60 A radius sphere at coordinate **'x': 574.8253, 'y': 511.5846** . If above one is correct how I am sure that 'z': 10.8033 is tile number 10 not tile Number 11 ? \nAlso My understanding with coordinate z is correct as it is used to tell us about Tile Number ?\n\nHope I elaborate my question",
      "votes": 2,
      "isDeleted": true,
      "replies": [
        {
          "id": 3049370,
          "postDate": "2024-11-19T03:05:17.413Z",
          "content": "<p><a href=\"https://www.kaggle.com/asteyagaur\" target=\"_blank\">@asteyagaur</a> The images are 3D in this competition (in contrast to things like histopathology slides). You can treat the Z-axis the same way as the x and y axes.</p>",
          "rawMarkdown": "@asteyagaur The images are 3D in this competition (in contrast to things like histopathology slides). You can treat the Z-axis the same way as the x and y axes.",
          "replies": [
            {
              "id": 3049429,
              "postDate": "2024-11-19T05:44:29.130Z",
              "content": "<p>Thanks somewhat clear <a href=\"https://www.kaggle.com/kharrington\" target=\"_blank\">@kharrington</a> Is my above understanding with data is correct or am I missing something ?</p>",
              "rawMarkdown": "Thanks somewhat clear @kharrington Is my above understanding with data is correct or am I missing something ?",
              "isDeleted": true
            },
            {
              "id": 3049896,
              "postDate": "2024-11-19T15:40:07.520Z",
              "content": "<p>I'm having trouble understanding what you're asking clarification on now. There are no slides, and the images are 3D. </p>\n<ul>\n<li>Submissions are lists of points corresponding to each identified particle</li>\n<li>The radius values of particles describe their size, but particles are not perfect spheres and they may not be solid.</li>\n<li>If you are using a segmentation based method, then one approach you can take is to draw spheres around each point in the training data based upon the particle's radius but that is not the only approach.</li>\n</ul>",
              "rawMarkdown": "I'm having trouble understanding what you're asking clarification on now. There are no slides, and the images are 3D. \n\n- Submissions are lists of points corresponding to each identified particle\n- The radius values of particles describe their size, but particles are not perfect spheres and they may not be solid.\n- If you are using a segmentation based method, then one approach you can take is to draw spheres around each point in the training data based upon the particle's radius but that is not the only approach."
            },
            {
              "id": 3050757,
              "postDate": "2024-11-20T14:08:40.213Z",
              "content": "<p><a href=\"https://www.kaggle.com/kharrington\" target=\"_blank\">@kharrington</a> Sorry for not making my question clear and wasting your Time . Let me Try again.</p>\n<p>Example : For <strong>TS_5_4 related to apo_ferritin particle</strong> High resolution consists of shape **(184, 630, 630) --&gt; ('z',y','x') **coordinate . Now what I am trying to understand is if I look into JSON file and fetch any single Location point let say <strong>{'x': 5748.253, 'y': 5115.846, 'z': 108.033} --&gt; {'x': 574.8253, 'y': 511.5846, 'z': 10.8033} after scaling (dividing with 10.02)</strong> does it means I need to look into 10th slide and at coordinate<strong>(x:574.8253, y:511.5846)</strong> need to draw sphere of 60A radius (According to host apo-ferritin having 60A radius) ?? </p>\n<p>I understand data is in 3d what I mean to say that ( The shape is (184, 630, 630), meaning it’s a 3D image with 184 layers, each of size 630x630 pixels ) .<br>\nSo {'x': 574.8253, 'y': 511.5846, 'z': 10.8033} means pick layer 10 and at 'x': 574.8253, 'y': 511.5846 you will find apo_ferritin particle .</p>",
              "rawMarkdown": "@kharrington Sorry for not making my question clear and wasting your Time . Let me Try again.\n\nExample : For **TS_5_4 related to apo_ferritin particle** High resolution consists of shape **(184, 630, 630) --> ('z',y','x') **coordinate . Now what I am trying to understand is if I look into JSON file and fetch any single Location point let say **{'x': 5748.253, 'y': 5115.846, 'z': 108.033} --> {'x': 574.8253, 'y': 511.5846, 'z': 10.8033} after scaling (dividing with 10.02)** does it means I need to look into 10th slide and at coordinate**(x:574.8253, y:511.5846)** need to draw sphere of 60A radius (According to host apo-ferritin having 60A radius) ?? \n\nI understand data is in 3d what I mean to say that ( The shape is (184, 630, 630), meaning it’s a 3D image with 184 layers, each of size 630x630 pixels ) .\nSo {'x': 574.8253, 'y': 511.5846, 'z': 10.8033} means pick layer 10 and at 'x': 574.8253, 'y': 511.5846 you will find apo_ferritin particle .\n\n",
              "isDeleted": true
            },
            {
              "id": 3064362,
              "postDate": "2024-12-05T14:41:25.297Z",
              "content": "<p>When annotating particles in a 3D image, the particle coordinates are continuous. However, when slicing along the xy-plane, the coordinates along the z-axis become discrete (integers). This means that slicing inherently introduces ambiguity in the z-axis position. If the particle has a size, for instance, in the case of {'x': 574.8253, 'y': 511.5846, 'z': 10.8033}, the particle may span across slices 9, 10, and 11. The range of slices it spans will depend on the size of the particle.</p>",
              "rawMarkdown": "When annotating particles in a 3D image, the particle coordinates are continuous. However, when slicing along the xy-plane, the coordinates along the z-axis become discrete (integers). This means that slicing inherently introduces ambiguity in the z-axis position. If the particle has a size, for instance, in the case of {'x': 574.8253, 'y': 511.5846, 'z': 10.8033}, the particle may span across slices 9, 10, and 11. The range of slices it spans will depend on the size of the particle.",
              "votes": 3
            },
            {
              "id": 3076089,
              "postDate": "2024-12-19T16:20:10.133Z",
              "content": "<p>I guess the situation looks like this.<br>\nThe annotation point is in a <strong>sub-pixel</strong>.</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F4250230%2F7ed082eefb3dec141657804009aa0e92%2Fsubpixcel.png?generation=1734624968817120&amp;alt=media\" alt=\"\"></p>",
              "rawMarkdown": "I guess the situation looks like this.\nThe annotation point is in a **sub-pixel**.\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F4250230%2F7ed082eefb3dec141657804009aa0e92%2Fsubpixcel.png?generation=1734624968817120&alt=media)",
              "votes": 1
            }
          ]
        }
      ]
    }
  ],
  "comments": [
    {
      "id": 3038897,
      "author_name": "Kyle Harrington",
      "author_url": "",
      "post_date": "2024-11-07T13:57:17.430000",
      "content": "<ol>\n<li><p>The units for locations are 1 Angstrom. The tomograms are in 10A resolution. This blob detector example finds coordinates in the tomogram's coordinate system (10A), converts them to the resolution for the particles (1A), and generates a submission.csv: <a href=\"https://github.com/czimaginginstitute/2024_czii_mlchallenge_notebooks/blob/main/blob_detector_inference.ipynb\" target=\"_blank\">https://github.com/czimaginginstitute/2024_czii_mlchallenge_notebooks/blob/main/blob_detector_inference.ipynb</a></p></li>\n<li><p>Thanks for bringing this up. The radius of each particle is specified in the json config file in the example notebook: <a href=\"https://github.com/czimaginginstitute/2024_czii_mlchallenge_notebooks/blob/main/blob_detector_inference.ipynb\" target=\"_blank\">https://github.com/czimaginginstitute/2024_czii_mlchallenge_notebooks/blob/main/blob_detector_inference.ipynb</a> Here is a table:</p></li>\n</ol>\n<table>\n<thead>\n<tr>\n<th>Particle</th>\n<th>Radius (A)</th>\n<th>Weight for scoring</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>apo-ferritin</td>\n<td>60</td>\n<td>1</td>\n</tr>\n<tr>\n<td>beta-amylase</td>\n<td>65</td>\n<td>0</td>\n</tr>\n<tr>\n<td>beta-galactosidase</td>\n<td>90</td>\n<td>2</td>\n</tr>\n<tr>\n<td>ribosome</td>\n<td>150</td>\n<td>1</td>\n</tr>\n<tr>\n<td>thyroglobulin</td>\n<td>130</td>\n<td>2</td>\n</tr>\n<tr>\n<td>virus-like-particle</td>\n<td>135</td>\n<td>1</td>\n</tr>\n</tbody>\n</table>",
      "votes": 12,
      "replies": [
        {
          "id": 3038926,
          "author_name": "Zhuoqun Li",
          "author_url": "",
          "post_date": "2024-11-07T14:12:19.113000",
          "content": "<p><a href=\"https://www.kaggle.com/kharrington\" target=\"_blank\">@kharrington</a> Thank you for your prompt response; it was very helpful. However, there is still a point that needs clarification regarding the first question. I noticed that in your reply, you mentioned that <code>The tomograms are in 10 A resolution</code>, but you provided three different resolution tomograms. Could you please clarify the specific resolutions for each of them? Thank you.</p>",
          "votes": 0,
          "replies": [
            {
              "id": 3038947,
              "author_name": "Utz Ermel",
              "author_url": "",
              "post_date": "2024-11-07T14:25:35.967000",
              "content": "<p>Hi <a href=\"https://www.kaggle.com/ucas0v0zhuoqunli\" target=\"_blank\">@ucas0v0zhuoqunli</a>, the tomograms are provided as a multiscale pyramid. </p>\n<p>Layout in the OME-Zarr directories: </p>\n<ul>\n<li>Subdirectory \"0\": 10 A resolution, no binning.</li>\n<li>Subdirectory \"1\": 20 A resolution, \"0\" binned by factor 2</li>\n<li>Subdirectory \"2\": 40 A resolution, \"0\" binned by factor 4</li>\n</ul>\n<p>Information about the image resolution is stored under key <code>'multiscales'</code> in a json-file called <code>.zattrs</code> in each directory ending with <code>.zarr</code> and follows the <a href=\"https://ngff.openmicroscopy.org/0.4/index.html\" target=\"_blank\">OME-NGFF v0.4 specification</a>.</p>",
              "votes": 6,
              "replies": []
            },
            {
              "id": 3038975,
              "author_name": "Zhuoqun Li",
              "author_url": "",
              "post_date": "2024-11-07T14:44:30.970000",
              "content": "<p><a href=\"https://www.kaggle.com/uermel\" target=\"_blank\">@uermel</a> Thanks, that helps!</p>",
              "votes": 0,
              "replies": []
            }
          ]
        },
        {
          "id": 3038927,
          "author_name": "Andrei Zamfir",
          "author_url": "",
          "post_date": "2024-11-07T14:12:43.127000",
          "content": "<p>On the highest resolution, assuming dimensions of (184, 630, 630) in 10A, it results in (1840, 6300, 6300) in 1A, correct?<br>\nThe blob detector example finds particles and returns coordinates in the 1A resolution. </p>\n<p>In the competition overview, it is stated that:</p>\n<blockquote>\n  <p>a particle is considered \"true\" if it lies within a factor of 0.5 of the particle of interest's radius</p>\n</blockquote>\n<p>Does this mean for a ground-truth location of (1000, 3000, 3000) for an apo-ferritin, assuming that the 0.5 factor of the radius would be 30, an apo-ferritin predicted within (970-1030, 2970-3030, 2970-3030) would be considered true?</p>",
          "votes": 0,
          "replies": [
            {
              "id": 3039029,
              "author_name": "Kyle Harrington",
              "author_url": "",
              "post_date": "2024-11-07T15:30:28.403000",
              "content": "<p>The distance check uses <code>KDTree.query_ball_tree</code> which will result in a bounding sphere, instead of a bounding box. So in your example, points within a distance of 30 from the reference apo-ferritin would be matched.</p>\n<p>We've made the metric public: <a href=\"https://www.kaggle.com/code/metric/czi-cryoet-84969\" target=\"_blank\">https://www.kaggle.com/code/metric/czi-cryoet-84969</a></p>",
              "votes": 3,
              "replies": []
            }
          ]
        },
        {
          "id": 3039060,
          "author_name": "Zhuoqun Li",
          "author_url": "",
          "post_date": "2024-11-07T15:50:24.507000",
          "content": "<p><a href=\"https://www.kaggle.com/kharrington\" target=\"_blank\">@kharrington</a> A quick question: you didn't specify what the three dimensions of the 3D array represent in the data description. Is it <code>z, y, x</code>, <code>z, x, y</code>, or some other order? This needs clarification. Thank you.</p>",
          "votes": 0,
          "replies": [
            {
              "id": 3039116,
              "author_name": "Kyle Harrington",
              "author_url": "",
              "post_date": "2024-11-07T16:59:48.537000",
              "content": "<p>Thanks for this one too! It isn't intuitive but these zarr files actually specify the axis ordering. Each <code>image.zarr</code> directory has a <code>.zattrs</code> in the root. For our files this contains:</p>\n<p><code>{\"axes\": [{\"name\": \"z\", \"type\": \"space\", \"unit\": \"angstrom\"}, {\"name\": \"y\", \"type\": \"space\", \"unit\": \"angstrom\"}, {\"name\": \"x\", \"type\": \"space\", \"unit\": \"angstrom\"}]</code></p>\n<p>So the short answer is the arrays are in <code>z, y, x</code> order 😅</p>",
              "votes": 2,
              "replies": []
            }
          ]
        },
        {
          "id": 3041522,
          "author_name": "fnands",
          "author_url": "",
          "post_date": "2024-11-10T13:31:25.140000",
          "content": "<p>Thanks <a href=\"https://www.kaggle.com/kharrington\" target=\"_blank\">@kharrington</a> !</p>\n<p>How consistent are these sizes? I could see that we could bias ourselves by \"hard-coding\" these into the training labels. </p>\n<p>Are they always spherical? Could you maybe point us at some reference for these values? </p>",
          "votes": 1,
          "replies": [
            {
              "id": 3041702,
              "author_name": "Kyle Harrington",
              "author_url": "",
              "post_date": "2024-11-10T18:06:51.717000",
              "content": "<p><a href=\"https://www.kaggle.com/fnands\" target=\"_blank\">@fnands</a> there is definitely some risk of bias but the size should generally be pretty consistent. There are some questions that arise about heterogeneous particle shape, and we don't believe that particles are spherical but generating masks of the right shape isn't trivial. One way to improve model performance can definitely be to use other mask generation strategies like it sounds like you are considering.</p>",
              "votes": 2,
              "replies": []
            }
          ]
        }
      ]
    },
    {
      "id": 3039843,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2024-11-08T12:40:46.687000",
      "content": "<p>i have a question about the zarr files in the hidden public and private test set.<br>\nthe train zarr files have similar levels, can we assume the same for the test too?</p>\n<ol>\n<li>all zarr files have 3 levels: 0,1,2</li>\n<li>sizes are: (184, 630, 630), (92, 315, 315), (46, 158, 158)?</li>\n<li>voxel spacing is 10</li>\n</ol>",
      "votes": 3,
      "replies": [
        {
          "id": 3039972,
          "author_name": "Kyle Harrington",
          "author_url": "",
          "post_date": "2024-11-08T14:50:15.470000",
          "content": "<p>Yes, this is true for the training set and both public/private test.</p>",
          "votes": 10,
          "replies": [
            {
              "id": 3048977,
              "author_name": "CircuitGuru",
              "author_url": "",
              "post_date": "2024-11-18T15:18:55.397000",
              "content": "<p>Hi all, very new to this stuff. <a href=\"https://www.kaggle.com/uermel\" target=\"_blank\">@uermel</a> and <a href=\"https://www.kaggle.com/kharrington\" target=\"_blank\">@kharrington</a>, if I am passing this data into my model, would I just pass the main (184, 630, 630) data into my model? I am just confused what is the relevance of the other “pyramidal” resolutions and if I should worry about them or not. Thank you!</p>",
              "votes": 0,
              "replies": []
            },
            {
              "id": 3049830,
              "author_name": "Kyle Harrington",
              "author_url": "",
              "post_date": "2024-11-19T14:51:40.170000",
              "content": "<p><a href=\"https://www.kaggle.com/circuitguru\" target=\"_blank\">@circuitguru</a> most people will just want to use the highest resolution data (e.g. the (183, 630, 630) array). The other resolutions of the data are generally used for: visualization <em>or</em> quick scanning of the image (e.g. scan the low resolution image to exclude some regions, then run a high resolution model in the remaining locations)</p>",
              "votes": 2,
              "replies": []
            },
            {
              "id": 3049852,
              "author_name": "CircuitGuru",
              "author_url": "",
              "post_date": "2024-11-19T15:14:31.987000",
              "content": "<p>Okay thanks for the clarification</p>",
              "votes": 0,
              "replies": []
            }
          ]
        }
      ]
    },
    {
      "id": 3039201,
      "author_name": "Ivan Panshin",
      "author_url": "",
      "post_date": "2024-11-07T19:28:46.007000",
      "content": "<p>This is a very basic question, but provided I know nothing about this domain, bear with me. </p>\n<p>What's the physical meaning of Z-axis? So y and x axis refer to spatial resolution (height and width of a single sample, simply put), but what does Z represent for a single sample?</p>",
      "votes": 3,
      "replies": [
        {
          "id": 3039212,
          "author_name": "Kyle Harrington",
          "author_url": "",
          "post_date": "2024-11-07T19:39:12.653000",
          "content": "<p>Good question <a href=\"https://www.kaggle.com/ivanpan\" target=\"_blank\">@ivanpan</a>. Here Z is actually spatial resolution as well. The images in this competition are tomographic reconstructions already, but as you are alluding, the images were acquired as a series of 2D images at different tilt angles which were used to create these reconstructions. <a href=\"https://www.kaggle.com/rezaparaan\" target=\"_blank\">@rezaparaan</a> and <a href=\"https://www.kaggle.com/uermel\" target=\"_blank\">@uermel</a> might have some additional resources, or we have a more academic description of the data and reconstruction methods here: <a href=\"https://www.biorxiv.org/content/10.1101/2024.11.04.621686v1\" target=\"_blank\">https://www.biorxiv.org/content/10.1101/2024.11.04.621686v1</a>.</p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 3039213,
          "author_name": "Dannielle McCarthy",
          "author_url": "",
          "post_date": "2024-11-07T19:39:48.213000",
          "content": "<blockquote>\n  <p>This is a very basic question, but provided I know nothing about this domain, bear with me. </p>\n  <p>What's the physical meaning of Z-axis? So y and x axis refer to spatial resolution (height and width of a single sample, simply put), but what does Z represent for a single sample?</p>\n</blockquote>\n<p>Great question, and welcome to the CryoET field! </p>\n<p>The z axis is the direction of the electron beam during data acquisition. Tomograms are 3D data with their spatial extent covering x, y, and z. For more information on CryoET basics, check out the <a href=\"https://chanzuckerberg.github.io/cryoet-data-portal/about.html\" target=\"_blank\">CryoET Data Portal documentation site</a> and in particular <a href=\"https://chanzuckerberg.github.io/cryoet-data-portal/intro_cryoet.html#cryoet-intro\" target=\"_blank\">this article on CryoET basics</a> and <a href=\"https://chanzuckerberg.github.io/cryoet-data-portal/cryoet_workflow.html#cryoet-workflow\" target=\"_blank\">this article on data acquisition to analysis</a>.</p>",
          "votes": 4,
          "replies": [
            {
              "id": 3039218,
              "author_name": "Ivan Panshin",
              "author_url": "",
              "post_date": "2024-11-07T19:44:03.293000",
              "content": "<p>Hm, I see. </p>\n<p>Is there a correlation between slices across Z-axis? For example, suppose I predict a location of ribosome at (50, Y, X). Does it help determine the position of ribosome (or other particles) at slices besides number 50? </p>\n<p>In more ML terms, based on your experience, is it profitable to treat this as a 3D problem or no real benefit compared to 2D approach where we treat all Z-slices individually? </p>",
              "votes": 2,
              "replies": []
            },
            {
              "id": 3039226,
              "author_name": "Dannielle McCarthy",
              "author_url": "",
              "post_date": "2024-11-07T19:55:17.033000",
              "content": "<p>There is typically a significant degree of correlation between adjacent Z-slices, especially within continuous structures like large macromolecular complexes or organelles. Since CryoET captures a 3D volume of the specimen, particles such as ribosomes can span multiple slices along the Z-axis. As such, the position of a particle in one slice (e.g., at slice 50) often provides useful spatial context for predicting its position or continuity across neighboring slices. However, whether a 3D approach is more effective than a 2D approach depends on the complexity and size of the structures you're detecting and on your model architecture.</p>",
              "votes": 5,
              "replies": []
            },
            {
              "id": 3039227,
              "author_name": "Utz Ermel",
              "author_url": "",
              "post_date": "2024-11-07T19:55:36.057000",
              "content": "<p>Hi <a href=\"https://www.kaggle.com/ivanpan\" target=\"_blank\">@ivanpan</a>, cryo-electron tomography (cryoET) is a method that allows to reconstruct actual 3D volumes (tomograms), much like medical computed tomography (CT). You can consider each x-y plane to be a section through a 3D volume. The z-axis is the true depth axis of the specimen. Signal in neighboring Z-slices will be correlated, and you can treat this as a true 3D problem. </p>",
              "votes": 5,
              "replies": []
            },
            {
              "id": 3039235,
              "author_name": "Ivan Panshin",
              "author_url": "",
              "post_date": "2024-11-07T20:11:52.027000",
              "content": "<p>Got it, thank you. </p>\n<p>Btw, I really appreciate you taking the time to answer questions, let alone this fast. </p>",
              "votes": 1,
              "replies": []
            },
            {
              "id": 3039306,
              "author_name": "Ivan Panshin",
              "author_url": "",
              "post_date": "2024-11-07T22:16:31.540000",
              "content": "<p>All right, new question :) </p>\n<p>Suppose I see the following annotation: <code>{'x': 4632.091, 'y': 2990.234, 'z': 244.138}</code>. What's the reason behind using z=244 for this annotation, why not 243 or 245? </p>\n<p>Is it because that annotation would absolutely not make sense for z=243/245 or simply because annotator decided it's the most visible at 244? </p>\n<p>I suspect it's the 2nd option, since adjacent z-slices are very similar </p>",
              "votes": 2,
              "replies": []
            },
            {
              "id": 3039311,
              "author_name": "Reza Paraan",
              "author_url": "",
              "post_date": "2024-11-07T22:38:04.280000",
              "content": "<p>Hi Ivan, we absolutely love the community's participation and we are enjoying engaging with you. That's why I'm gonna take this question. You have a great question. The punishment for the 1 Å error could be nothing for most cases. A good picking is considered as coordinates that are at the center of mass of the particle for most cases. Sometimes interesting geometries make this assumption not relevant, for example for viruses and VLPs. But for this competition we are interested in centers of mass. The errors in x,y,z are always thought about in terms of the particle dimensions. So the same error for a smaller particle is more consequential. Locating smaller things needs more accuracy. That's the problem at the heart of this challenge.</p>",
              "votes": 3,
              "replies": []
            },
            {
              "id": 3039870,
              "author_name": "Ivan Panshin",
              "author_url": "",
              "post_date": "2024-11-08T13:09:39.057000",
              "content": "<p>I see, I see. </p>\n<p>All right, so considering we're predicting the center of a particle in 3D space, we need to take a look at the 3D image with some context. Could you provide a rough guidance how much context we need for 5 particles?</p>\n<p>I guess those context windows would be correlated with radius. In other words, apo-ferritin requires a smaller context than ribosome, but perhaps I'm wrong. </p>\n<p>Just to elaborate: by context I mean the 3D image crop size around the center of particle. Maybe it's like (40, 40, 40) or maybe closer to (200, 200, 200) </p>",
              "votes": 0,
              "replies": []
            },
            {
              "id": 3039949,
              "author_name": "Kyle Harrington",
              "author_url": "",
              "post_date": "2024-11-08T14:28:50.510000",
              "content": "<p>Hey Ivan,</p>\n<p>This is something you may want to explore, but some guidance:</p>\n<p>Check out one of the tomograms <a href=\"https://neuroglancer-demo.appspot.com/#!%7B%22dimensions%22:%7B%22x%22:%5B1.0012e-9%2C%22m%22%5D%2C%22y%22:%5B1.0012e-9%2C%22m%22%5D%2C%22z%22:%5B1.0012e-9%2C%22m%22%5D%7D%2C%22position%22:%5B242.50360107421875%2C354.9693603515625%2C87%5D%2C%22crossSectionScale%22:0.5931368588889502%2C%22projectionOrientation%22:%5B0.3826834261417389%2C0%2C0%2C0.9238795042037964%5D%2C%22projectionScale%22:693%2C%22layers%22:%5B%7B%22type%22:%22image%22%2C%22source%22:%22zarr://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/Tomograms/100/TS_5_4.zarr%22%2C%22tab%22:%22rendering%22%2C%22opacity%22:0.51%2C%22shader%22:%22#uicontrol%20invlerp%20contrast%5Cn#uicontrol%20bool%20invert_contrast%20checkbox%5Cn%5Cnfloat%20get_contrast%28%29%20%7B%5Cn%20%20return%20invert_contrast%20?%201.0%20-%20contrast%28%29%20:%20contrast%28%29%3B%5Cn%7D%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20float%20outputValue%3B%5Cn%20%20outputValue%20=%20get_contrast%28%29%3B%5Cn%20%20emitGrayscale%28outputValue%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22contrast%22:%7B%22range%22:%5B-0.00002210820881032305%2C0.000022521212798665147%5D%2C%22window%22:%5B-0.00002657115097122187%2C0.000026984154959563967%5D%7D%7D%2C%22name%22:%22TS_5_4%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/100-ferritin_complex-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#4d0c19%22%7D%2C%22name%22:%22100%20ferritin%20complex%20point%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/101-beta_amylase-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#00ff00%22%7D%2C%22name%22:%22101%20Beta-amylase%20point%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/102-beta_galactosidase-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#0080ff%22%7D%2C%22name%22:%22102%20Beta-galactosidase%20point%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/103-cytosolic_ribosome-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#ff00ff%22%7D%2C%22name%22:%22103%20cytosolic%20ribosome%20point%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/104-thyroglobulin-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#e79f0a%22%7D%2C%22name%22:%22104%20Thyroglobulin%20point%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10440/TS_5_4/Reconstructions/VoxelSpacing10.012/NeuroglancerPrecompute/105-pp7_vlp-1.0_point%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#ff0000%22%7D%2C%22name%22:%22105%20virus-like%20capsid%20point%22%7D%5D%2C%22selectedLayer%22:%7B%22visible%22:true%2C%22layer%22:%22TS_5_4%22%7D%2C%22crossSectionBackgroundColor%22:%22#000000%22%2C%22layout%22:%224panel%22%7D\" target=\"_blank\">here</a></p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F245049%2F3695064cb58318c3df5b19d70490140b%2FScreenshot%202024-11-08%20at%209.24.16AM.png?generation=1731075885016471&amp;alt=media\" alt=\"Screenshot of tomogram showing a VLP particle\"></p>\n<p>Here I am showing a VLP particle. When I measure coordinates by mousing over the particle, a tight box around the VLP looks like it would be ~32^3, but I've been using 48^3 or sometimes even 96^3 to get extra context.</p>\n<p>You are right that the radius of the particle should affect this choice, where presumably the simplest thing is just to use a box size that works for the largest particle.</p>",
              "votes": 3,
              "replies": []
            },
            {
              "id": 3039970,
              "author_name": "Ivan Panshin",
              "author_url": "",
              "post_date": "2024-11-08T14:48:11.997000",
              "content": "<p>That's a very cool visualization. </p>\n<p>Btw, why does this visualization not take into consideration the radius? Shouldn't ribosome be bigger than AF?</p>",
              "votes": 3,
              "replies": []
            },
            {
              "id": 3039974,
              "author_name": "Kyle Harrington",
              "author_url": "",
              "post_date": "2024-11-08T14:54:43.207000",
              "content": "<p>They are being visualized as points in that case. If you check out the <a href=\"https://neuroglancer-demo.appspot.com/#!%7B%22dimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22position%22:%5B336.7430114746094%2C328.4139709472656%2C130.5%5D%2C%22crossSectionScale%22:0.5848595999545737%2C%22projectionOrientation%22:%5B0.3826834261417389%2C0%2C0%2C0.9238795042037964%5D%2C%22projectionScale%22:693%2C%22layers%22:%5B%7B%22type%22:%22image%22%2C%22source%22:%22zarr://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/Tomograms/100/TS_11.zarr%22%2C%22tab%22:%22rendering%22%2C%22opacity%22:0.51%2C%22shader%22:%22#uicontrol%20invlerp%20contrast%5Cn#uicontrol%20bool%20invert_contrast%20checkbox%5Cn%5Cnfloat%20get_contrast%28%29%20%7B%5Cn%20%20return%20invert_contrast%20?%201.0%20-%20contrast%28%29%20:%20contrast%28%29%3B%5Cn%7D%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20float%20outputValue%3B%5Cn%20%20outputValue%20=%20get_contrast%28%29%3B%5Cn%20%20emitGrayscale%28outputValue%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22contrast%22:%7B%22range%22:%5B-2.472108374349773%2C2.4591089384630322%5D%2C%22window%22:%5B-2.9652301056310533%2C2.9522306697443126%5D%7D%7D%2C%22name%22:%22TS_11%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/100-membrane-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#0f714d%22%2C%22name%22:%22100%20membrane%20segmentation%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/101-ferritin_complex-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#ff00ff%22%2C%22name%22:%22101%20ferritin%20complex%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/101-ferritin_complex-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#00ffff%22%7D%2C%22name%22:%22101%20ferritin%20complex%20point%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/102-beta_amylase-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#ffff00%22%2C%22name%22:%22102%20Beta-amylase%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/102-beta_amylase-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#0000ff%22%7D%2C%22name%22:%22102%20Beta-amylase%20point%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/103-beta_galactosidase-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#d80402%22%2C%22name%22:%22103%20Beta-galactosidase%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/103-beta_galactosidase-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#eebef1%22%7D%2C%22name%22:%22103%20Beta-galactosidase%20point%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/104-cytosolic_ribosome-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#00ff00%22%2C%22name%22:%22104%20cytosolic%20ribosome%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/104-cytosolic_ribosome-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#80ff80%22%7D%2C%22name%22:%22104%20cytosolic%20ribosome%20point%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/105-thyroglobulin-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#5e78e5%22%2C%22name%22:%22105%20Thyroglobulin%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/105-thyroglobulin-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#c88449%22%7D%2C%22name%22:%22105%20Thyroglobulin%20point%22%7D%2C%7B%22type%22:%22segmentation%22%2C%22source%22:%7B%22url%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/106-pp7_vlp-1.0_segmentationmask%22%2C%22transform%22:%7B%22outputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%2C%22inputDimensions%22:%7B%22x%22:%5B1e-9%2C%22m%22%5D%2C%22y%22:%5B1e-9%2C%22m%22%5D%2C%22z%22:%5B1e-9%2C%22m%22%5D%7D%7D%7D%2C%22tab%22:%22rendering%22%2C%22selectedAlpha%22:1%2C%22hoverHighlight%22:false%2C%22segments%22:%5B%221%22%5D%2C%22segmentDefaultColor%22:%22#6a178b%22%2C%22name%22:%22106%20virus-like%20capsid%20segmentation%22%7D%2C%7B%22type%22:%22annotation%22%2C%22source%22:%22precomputed://https://files.cryoetdataportal.cziscience.com/10441/TS_11/Reconstructions/VoxelSpacing10.000/NeuroglancerPrecompute/106-pp7_vlp-1.0_orientedpoint%22%2C%22tab%22:%22rendering%22%2C%22shader%22:%22#uicontrol%20float%20pointScale%20slider%28min=0.01%2C%20max=2.0%2C%20step=0.01%29%5Cn#uicontrol%20float%20opacity%20slider%28min=0.0%2C%20max=1.0%2C%20step=0.01%29%5Cn#uicontrol%20vec3%20color%20color%5Cn%5Cnvoid%20main%28%29%20%7B%5Cn%20%20if%20%28opacity%20==%200.0%29%20discard%3B%5Cn%20%20setColor%28vec4%28color%2C%20opacity%29%29%3B%5Cn%20%20setPointMarkerSize%28pointScale%20%2A%20prop_diameter%28%29%29%3B%5Cn%20%20setPointMarkerBorderWidth%280.1%29%3B%5Cn%20%20setPointMarkerBorderColor%28vec4%280.0%2C%200.0%2C%200.0%2C%20opacity%29%29%3B%5Cn%7D%22%2C%22shaderControls%22:%7B%22pointScale%22:1%2C%22opacity%22:1%2C%22color%22:%22#f75dc4%22%7D%2C%22name%22:%22106%20virus-like%20capsid%20point%22%7D%5D%2C%22selectedLayer%22:%7B%22visible%22:true%2C%22layer%22:%22TS_11%22%7D%2C%22crossSectionBackgroundColor%22:%22#000000%22%2C%22layout%22:%224panel%22%7D\" target=\"_blank\">visualizations of the synthetic data</a> you can get some more intuition about the particle shape:</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F245049%2F126c99d37e91ff45ec4f4d2f02b84380%2FScreenshot%202024-11-08%20at%209.53.23AM.png?generation=1731077616113129&amp;alt=media\" alt=\"Screenshot of synthetic data mentioned, showing size difference between apo and ribosome\"></p>\n<p>So you are absolutely correct, ribosome (in green) should be larger than apo-ferritin (in magenta). Here you can see segmentation masks that clearly show the size/shape difference between the particle types.</p>",
              "votes": 1,
              "replies": []
            },
            {
              "id": 3040001,
              "author_name": "Ivan Panshin",
              "author_url": "",
              "post_date": "2024-11-08T15:20:31.983000",
              "content": "<p>Got it! </p>\n<p>Back to the beginning. We know that images and annotations are in different resolutions. Suppose image is in 10A, annotation is in 1A, and example of annotation is (200, 300, 400). Does it mean that in order to map annotations to image resolution I simply have to divide coordinates by 10 and get (20, 30, 40)?</p>\n<p>Or is it not linear or I'm missing something very basic? </p>",
              "votes": 3,
              "replies": []
            },
            {
              "id": 3040071,
              "author_name": "Kyle Harrington",
              "author_url": "",
              "post_date": "2024-11-08T16:50:42.020000",
              "content": "<p>You've got it. The scaling here is pretty straight forward. Divide by the voxel spacing to convert annotations into the same coordinates as the arrays.</p>\n<p>The only nuance I would point out is that if you look at the .zattrs files for the tomogram zarrs you'll see that it is slightly different than just <code>10</code>:</p>\n<p><code>\"scale\": [10.012444196428572, 10.012444196428572, 10.012444537618887]</code></p>",
              "votes": 11,
              "replies": []
            },
            {
              "id": 3077995,
              "author_name": "Aurora_blue",
              "author_url": "",
              "post_date": "2024-12-21T16:45:36.407000",
              "content": "<p>Hi <a href=\"https://www.kaggle.com/kharrington\" target=\"_blank\">@kharrington</a>, thanks for hosting nice competition.<br>\nI would like to confirm one thing – is the given 3D array reconstructed from tomography?</p>",
              "votes": 0,
              "replies": []
            }
          ]
        }
      ]
    },
    {
      "id": 3039093,
      "author_name": "",
      "author_url": "",
      "post_date": "2024-11-07T16:44:46.017000",
      "content": "<p>For the units of the x, y, and z values in the JSON file, refer to the dataset's documentation, as these coordinates may represent different units such as meters or pixels depending on the source. To convert particle locations to different resolution 3D arrays, scale each coordinate according to the target array’s resolution. For example, if reducing by half, divide each coordinate by two; if upscaling, multiply by the appropriate scaling factor. The Evaluation section mentions scoring based on the particle radius, but it’s essential to confirm if a specific radius is provided per particle. If not, clarify with the dataset provider, as this radius might affect how particles are identified or analyzed within a set proximity. Reviewing the JSON schema can also reveal more about units, scaling, or radius attributes specific to each particle.</p>",
      "votes": -6,
      "replies": []
    },
    {
      "id": 3049123,
      "author_name": "",
      "author_url": "",
      "post_date": "2024-11-18T18:20:53.983000",
      "content": "<p>Hello <a href=\"https://www.kaggle.com/kharrington\" target=\"_blank\">@kharrington</a> Sorry for asking basic question .</p>\n<p>Lets say I am working with High Resolution data in zarrs file for <strong>TS_5_4 related to apo_ferritin particle</strong> . For 1 of the location present in JSON file is <strong>{'x': 5748.253, 'y': 5115.846, 'z': 108.033} became --&gt; {'x': 574.8253, 'y': 511.5846, 'z': 10.8033}</strong> after scaling (dividing with 10.02) . According to my understanding I need to go slide Number 10 and plot 60 A radius sphere at coordinate <strong>'x': 574.8253, 'y': 511.5846</strong> . If above one is correct how I am sure that 'z': 10.8033 is tile number 10 not tile Number 11 ? <br>\nAlso My understanding with coordinate z is correct as it is used to tell us about Tile Number ?</p>\n<p>Hope I elaborate my question</p>",
      "votes": 2,
      "replies": [
        {
          "id": 3049370,
          "author_name": "Kyle Harrington",
          "author_url": "",
          "post_date": "2024-11-19T03:05:17.413000",
          "content": "<p><a href=\"https://www.kaggle.com/asteyagaur\" target=\"_blank\">@asteyagaur</a> The images are 3D in this competition (in contrast to things like histopathology slides). You can treat the Z-axis the same way as the x and y axes.</p>",
          "votes": 0,
          "replies": [
            {
              "id": 3049429,
              "author_name": "",
              "author_url": "",
              "post_date": "2024-11-19T05:44:29.130000",
              "content": "<p>Thanks somewhat clear <a href=\"https://www.kaggle.com/kharrington\" target=\"_blank\">@kharrington</a> Is my above understanding with data is correct or am I missing something ?</p>",
              "votes": 0,
              "replies": []
            },
            {
              "id": 3049896,
              "author_name": "Kyle Harrington",
              "author_url": "",
              "post_date": "2024-11-19T15:40:07.520000",
              "content": "<p>I'm having trouble understanding what you're asking clarification on now. There are no slides, and the images are 3D. </p>\n<ul>\n<li>Submissions are lists of points corresponding to each identified particle</li>\n<li>The radius values of particles describe their size, but particles are not perfect spheres and they may not be solid.</li>\n<li>If you are using a segmentation based method, then one approach you can take is to draw spheres around each point in the training data based upon the particle's radius but that is not the only approach.</li>\n</ul>",
              "votes": 0,
              "replies": []
            },
            {
              "id": 3050757,
              "author_name": "",
              "author_url": "",
              "post_date": "2024-11-20T14:08:40.213000",
              "content": "<p><a href=\"https://www.kaggle.com/kharrington\" target=\"_blank\">@kharrington</a> Sorry for not making my question clear and wasting your Time . Let me Try again.</p>\n<p>Example : For <strong>TS_5_4 related to apo_ferritin particle</strong> High resolution consists of shape **(184, 630, 630) --&gt; ('z',y','x') **coordinate . Now what I am trying to understand is if I look into JSON file and fetch any single Location point let say <strong>{'x': 5748.253, 'y': 5115.846, 'z': 108.033} --&gt; {'x': 574.8253, 'y': 511.5846, 'z': 10.8033} after scaling (dividing with 10.02)</strong> does it means I need to look into 10th slide and at coordinate<strong>(x:574.8253, y:511.5846)</strong> need to draw sphere of 60A radius (According to host apo-ferritin having 60A radius) ?? </p>\n<p>I understand data is in 3d what I mean to say that ( The shape is (184, 630, 630), meaning it’s a 3D image with 184 layers, each of size 630x630 pixels ) .<br>\nSo {'x': 574.8253, 'y': 511.5846, 'z': 10.8033} means pick layer 10 and at 'x': 574.8253, 'y': 511.5846 you will find apo_ferritin particle .</p>",
              "votes": 0,
              "replies": []
            },
            {
              "id": 3064362,
              "author_name": "yoshio13",
              "author_url": "",
              "post_date": "2024-12-05T14:41:25.297000",
              "content": "<p>When annotating particles in a 3D image, the particle coordinates are continuous. However, when slicing along the xy-plane, the coordinates along the z-axis become discrete (integers). This means that slicing inherently introduces ambiguity in the z-axis position. If the particle has a size, for instance, in the case of {'x': 574.8253, 'y': 511.5846, 'z': 10.8033}, the particle may span across slices 9, 10, and 11. The range of slices it spans will depend on the size of the particle.</p>",
              "votes": 3,
              "replies": []
            },
            {
              "id": 3076089,
              "author_name": "Aurora_blue",
              "author_url": "",
              "post_date": "2024-12-19T16:20:10.133000",
              "content": "<p>I guess the situation looks like this.<br>\nThe annotation point is in a <strong>sub-pixel</strong>.</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F4250230%2F7ed082eefb3dec141657804009aa0e92%2Fsubpixcel.png?generation=1734624968817120&amp;alt=media\" alt=\"\"></p>",
              "votes": 1,
              "replies": []
            }
          ]
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "3038876": "1. What is the unit of the x, y, and z values for location in the JSON file, and how can Particle locations be converted to different resolution 3D arrays?\n2. I noticed that in the Evaluation section, you mention scoring based on the radius of the particle of interest. The radius for each particle needs clarification.",
    "3038897": "1. The units for locations are 1 Angstrom. The tomograms are in 10A resolution. This blob detector example finds coordinates in the tomogram's coordinate system (10A), converts them to the resolution for the particles (1A), and generates a submission.csv: https://github.com/czimaginginstitute/2024_czii_mlchallenge_notebooks/blob/main/blob_detector_inference.ipynb\n\n2. Thanks for bringing this up. The radius of each particle is specified in the json config file in the example notebook: https://github.com/czimaginginstitute/2024_czii_mlchallenge_notebooks/blob/main/blob_detector_inference.ipynb Here is a table:\n\n| Particle | Radius (A) | Weight for scoring |\n| --- | --- | --- |\n| apo-ferritin | 60 | 1 |\n| beta-amylase | 65 | 0 |\n| beta-galactosidase | 90 | 2 |\n| ribosome | 150 | 1 |\n| thyroglobulin | 130 | 2 |\n| virus-like-particle | 135 | 1 |\n",
    "3039843": "i have a question about the zarr files in the hidden public and private test set.\nthe train zarr files have similar levels, can we assume the same for the test too?\n1.  all zarr files have 3 levels: 0,1,2\n2. sizes are: (184, 630, 630), (92, 315, 315), (46, 158, 158)?\n3. voxel spacing is 10",
    "3039201": "This is a very basic question, but provided I know nothing about this domain, bear with me. \n\nWhat's the physical meaning of Z-axis? So y and x axis refer to spatial resolution (height and width of a single sample, simply put), but what does Z represent for a single sample?",
    "3039093": "For the units of the x, y, and z values in the JSON file, refer to the dataset's documentation, as these coordinates may represent different units such as meters or pixels depending on the source. To convert particle locations to different resolution 3D arrays, scale each coordinate according to the target array’s resolution. For example, if reducing by half, divide each coordinate by two; if upscaling, multiply by the appropriate scaling factor. The Evaluation section mentions scoring based on the particle radius, but it’s essential to confirm if a specific radius is provided per particle. If not, clarify with the dataset provider, as this radius might affect how particles are identified or analyzed within a set proximity. Reviewing the JSON schema can also reveal more about units, scaling, or radius attributes specific to each particle.\n\n\n\n\n\n\n",
    "3049123": "Hello @kharrington Sorry for asking basic question .\n\nLets say I am working with High Resolution data in zarrs file for **TS_5_4 related to apo_ferritin particle** . For 1 of the location present in JSON file is **{'x': 5748.253, 'y': 5115.846, 'z': 108.033} became --> {'x': 574.8253, 'y': 511.5846, 'z': 10.8033}** after scaling (dividing with 10.02) . According to my understanding I need to go slide Number 10 and plot 60 A radius sphere at coordinate **'x': 574.8253, 'y': 511.5846** . If above one is correct how I am sure that 'z': 10.8033 is tile number 10 not tile Number 11 ? \nAlso My understanding with coordinate z is correct as it is used to tell us about Tile Number ?\n\nHope I elaborate my question"
  }
}