Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save PlethoraChutney/6b62d86b337c96bd74dfcc59d706da93 to your computer and use it in GitHub Desktop.
Save PlethoraChutney/6b62d86b337c96bd74dfcc59d706da93 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 160,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Connection succeeded to CryoSPARC command_core at http://localhost:62002\n",
"Connection succeeded to CryoSPARC command_vis at http://localhost:62003\n",
"Connection succeeded to CryoSPARC command_rtp at http://localhost:62005\n"
]
},
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 160,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from cryosparc.tools import CryoSPARC\n",
"import json\n",
"import numpy as np\n",
"import pandas as pd\n",
"import plotnine\n",
"from plotnine import ggplot, aes\n",
"\n",
"with open('/u/rposert/prod-info.json', 'r') as f:\n",
" instance_info = json.load(f)\n",
"\n",
"# this project is in prod\n",
"instance_info['base_port'] = 62000\n",
"\n",
"cs = CryoSPARC(**instance_info)\n",
"cs.test_connection()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Concept\n",
"\n",
"We'd like to count and separate particles based on whether their symmetry expanded particles by whether both of their pseudoparticles end up in symmetric classes or not. This is an additional way to attach pseudosymmetry beyond symmetry relaxation and hetero refinement.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 161,
"metadata": {},
"outputs": [],
"source": [
"# load particles...and hopefully don't get the project nuked this time\n",
"proj_id = 'P156'\n",
"job_id = 'J166'\n",
"\n",
"project = cs.find_project(proj_id)\n",
"job = project.find_job(job_id)\n",
"particles_all = job.load_output('particles_all_classes')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There are a few decisions we need to make --- at what posterior probability (or, alternately, ESS) do we say that a particle definitively \"belongs\" to a class? In this case, a posterior around .33 means that we have no idea whether it really has a left, right, or both lobe."
]
},
{
"cell_type": "code",
"execution_count": 162,
"metadata": {},
"outputs": [],
"source": [
"df = pd.DataFrame(particles_all.rows())"
]
},
{
"cell_type": "code",
"execution_count": 163,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/u/rposert/miniconda3/envs/cryosparc-tools/lib/python3.10/site-packages/plotnine/stats/stat_bin.py:109: PlotnineWarning: 'stat_bin()' using 'bins = 31'. Pick better value with 'binwidth'.\n",
"/u/rposert/miniconda3/envs/cryosparc-tools/lib/python3.10/site-packages/plotnine/stats/stat_bin.py:109: PlotnineWarning: 'stat_bin()' using 'bins = 31'. Pick better value with 'binwidth'.\n",
"/u/rposert/miniconda3/envs/cryosparc-tools/lib/python3.10/site-packages/plotnine/stats/stat_bin.py:109: PlotnineWarning: 'stat_bin()' using 'bins = 39'. Pick better value with 'binwidth'.\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {
"image/png": {
"height": 480,
"width": 640
},
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure Size: (640 x 480)>"
]
},
"execution_count": 163,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(\n",
"ggplot(df)\n",
"+ plotnine.geom_histogram(aes(x = 'alignments_class3D_0/class_posterior'), fill = 'blue', alpha = 0.3)\n",
"+ plotnine.geom_histogram(aes(x = 'alignments_class3D_1/class_posterior'), fill = 'green', alpha = 0.3)\n",
"+ plotnine.geom_histogram(aes(x = 'alignments_class3D_2/class_posterior'), fill = 'red', alpha = 0.3)\n",
"+ plotnine.labs(x = 'Class posterior', y = 'Particles')\n",
"+ plotnine.theme_minimal()\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The distribution of class posterior is approximately equal, which makes sense I guess. An uncertain particle will probably be equally uncertain in all three classes, while a certain particle will be near 1.0 in one class and near 0 in the other two. Ideally we'd look at a ternary plot and figure out good thresholds to group or maybe try k-means but for this I'm just going to follow the following procedure:\n",
"\n",
" * If none of the three class posteriors is higher than 0.5, discard the particle\n",
" * Otherwise, assign the particle as belonging entirely to its highest posterior class\n",
"\n",
"I expect this to largely recapitulate the observed *ratio between the classes* in the job, but we will obviously be discarding a decent number of particles, since the mean per-particle class ESS is 1.516 for this job."
]
},
{
"cell_type": "code",
"execution_count": 164,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" sym_expand/idx sym_expand/src_uid posterior\n",
"uid \n",
"381586490485186 1 9695386291100055864 0.992432\n",
"556233085599168 1 10703918094150506654 0.956559\n",
"601531231936042 0 601531231936042 0.577942\n",
"1055557913069383 0 1055557913069383 0.746614\n",
"1540350113794536 0 1540350113794536 0.910150\n",
"... ... ... ...\n",
"18444854533095555829 0 18444854533095555829 0.977601\n",
"18445320755963031008 1 6155922775141081249 0.964389\n",
"18445664599858340224 0 18445664599858340224 0.964448\n",
"18446005814518429734 1 12918130305981625717 0.676585\n",
"18446329593182935746 0 18446329593182935746 0.559907\n",
"\n",
"[74846 rows x 3 columns]\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/u/rposert/miniconda3/envs/cryosparc-tools/lib/python3.10/site-packages/plotnine/stats/stat_bin.py:109: PlotnineWarning: 'stat_bin()' using 'bins = 48'. Pick better value with 'binwidth'.\n"
]
},
{
"data": {
"image/png": "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ANoPALuu25IhIHtMkhuSPLrW+p7V1K21fiXJWePTZ3Zdd+a4enC6rrtHkndmWIjj00n+YJEmXpXks2OZd4510nXd4V3XnZnkjLHc82ute2Z8bgAAAABI6ft+o/swV13X3S/J341Pv5LkCytUOb3WerP7I3Rd93tJfnx8emOS65IcMz7/fJIH1lovWuL8d88wu++48aWrMqzsO7n8+hW11jMWq7vec++PcUnsydd9sumxzMOePXsuTXJikssOPfTQppZhZ2MZw5g34xfzZAxj3oxh7Nixo+1f/GEF55xzzn6vmtua5mcA5uZf422S3HGFx5aFDdRafyLDDMJzMwR4h2WYeffbSe6+XABXa/1YhsU6XjLWOWxs49wkj1ku/FvvuQEAAACg+UVAxnv9rTvprbW+Nclb11j380meNT4O6LkBAAAA2Nw2wwxAAAAAANi0BIAAAAAA0DABIAAAAAA0rPl7AAIAAMCtgdV6gXkxAxAAAAAAGiYABAAAAICGCQABAAAAoGECQAAAAABomAAQAAAAABomAAQAAACAhgkAAQAAAKBhAkAAAAAAaJgAEAAAAAAaJgAEAAAAgIYJAAEAAACgYQJAAAAAAGiYABAAAAAAGiYABAAAAICGCQABAAAAoGECQAAAAABomAAQAAAAABomAAQAAACAhgkAAQAAAKBhWze6AwAAADAvO3bs6De6DwAbzQxAAAAAAGiYABAAAAAAGuYSYAAAADacS3UB5scMQAAAAABomAAQAAAAABrmEmAAAAD2i8t1AW5dzAAEAAAAgIYJAAEAAACgYQJAAAAAAGiYABAAAAAAGiYABAAAAICGCQABAAAAoGECQAAAAABomAAQAAAAABomAAQAAACAhgkAAQAAAKBhAkAAAAAAaJgAEAAAAAAatnWjOwAAAMB87Nixo596emKSfqmyALTLDEAAAAAAaJgAEAAAAAAaJgAEAAAAgIa5ByAAAMBBYMH9+gBgZswABAAAAICGCQABAAAAoGECQAAAAABomAAQAAAAABpmERAAAGDDzWsBjHPOOafMo10AuDURAAIAAM2ysi4AuAQYAAAAAJomAAQAAACAhgkAAQAAAKBhAkAAAAAAaJgAEAAAAAAaJgAEAAAAgIYJAAEAAACgYVs3ugMAAEDynOc8J0kumWWb55xzTpllewDArZMAEACAJu3YsaPf6D4A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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {
"image/png": {
"height": 480,
"width": 640
},
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure Size: (640 x 480)>"
]
},
"execution_count": 164,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# god I do not know how to use pandas\n",
"long_df = pd.melt(\n",
" df,\n",
" id_vars = ['uid', 'sym_expand/idx', 'sym_expand/src_uid'],\n",
" value_vars = [f\"alignments_class3D_{x}/class_posterior\" for x in [0,1,2]],\n",
" var_name = 'class',\n",
" value_name = 'posterior'\n",
")\n",
"\n",
"max_posterior = long_df.groupby('uid').max(numeric_only=True)\n",
"print(max_posterior)\n",
"\n",
"(\n",
" ggplot(max_posterior)\n",
" + plotnine.theme_minimal()\n",
" + plotnine.geom_histogram(aes(x = 'posterior'))\n",
" + plotnine.labs(x = 'max posterior over all classes')\n",
")\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Interesting! This is more confident than I expected, which is good I guess. So we should only lose a couple thousand particles."
]
},
{
"cell_type": "code",
"execution_count": 165,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>uid</th>\n",
" <th>sym_expand/idx</th>\n",
" <th>sym_expand/src_uid</th>\n",
" <th>class</th>\n",
" <th>posterior</th>\n",
" <th>sym_expand/idx_max</th>\n",
" <th>sym_expand/src_uid_max</th>\n",
" <th>posterior_max</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>18238409812693964896</td>\n",
" <td>1</td>\n",
" <td>16283158601248152275</td>\n",
" <td>alignments_class3D_0/class_posterior</td>\n",
" <td>0.822130</td>\n",
" <td>1</td>\n",
" <td>16283158601248152275</td>\n",
" <td>0.822130</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>15879751386763411489</td>\n",
" <td>1</td>\n",
" <td>16678885078591385354</td>\n",
" <td>alignments_class3D_0/class_posterior</td>\n",
" <td>0.576027</td>\n",
" <td>1</td>\n",
" <td>16678885078591385354</td>\n",
" <td>0.576027</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>12920257826129044892</td>\n",
" <td>1</td>\n",
" <td>1241375040004936692</td>\n",
" <td>alignments_class3D_0/class_posterior</td>\n",
" <td>0.531906</td>\n",
" <td>1</td>\n",
" <td>1241375040004936692</td>\n",
" <td>0.531906</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>11291443213140123334</td>\n",
" <td>1</td>\n",
" <td>7769098663857834432</td>\n",
" <td>alignments_class3D_0/class_posterior</td>\n",
" <td>0.655786</td>\n",
" <td>1</td>\n",
" <td>7769098663857834432</td>\n",
" <td>0.655786</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>13027641915996691874</td>\n",
" <td>0</td>\n",
" <td>13027641915996691874</td>\n",
" <td>alignments_class3D_0/class_posterior</td>\n",
" <td>0.977530</td>\n",
" <td>0</td>\n",
" <td>13027641915996691874</td>\n",
" <td>0.977530</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>224501</th>\n",
" <td>10815480769803282581</td>\n",
" <td>1</td>\n",
" <td>12164151422588484564</td>\n",
" <td>alignments_class3D_2/class_posterior</td>\n",
" <td>0.876612</td>\n",
" <td>1</td>\n",
" <td>12164151422588484564</td>\n",
" <td>0.876612</td>\n",
" </tr>\n",
" <tr>\n",
" <th>224514</th>\n",
" <td>17732737341429470426</td>\n",
" <td>0</td>\n",
" <td>17732737341429470426</td>\n",
" <td>alignments_class3D_2/class_posterior</td>\n",
" <td>0.943676</td>\n",
" <td>0</td>\n",
" <td>17732737341429470426</td>\n",
" <td>0.943676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>224515</th>\n",
" <td>13100399110949093856</td>\n",
" <td>1</td>\n",
" <td>17732737341429470426</td>\n",
" <td>alignments_class3D_2/class_posterior</td>\n",
" <td>0.867969</td>\n",
" <td>1</td>\n",
" <td>17732737341429470426</td>\n",
" <td>0.867969</td>\n",
" </tr>\n",
" <tr>\n",
" <th>224520</th>\n",
" <td>11445772866576434088</td>\n",
" <td>0</td>\n",
" <td>11445772866576434088</td>\n",
" <td>alignments_class3D_2/class_posterior</td>\n",
" <td>0.819574</td>\n",
" <td>0</td>\n",
" <td>11445772866576434088</td>\n",
" <td>0.819574</td>\n",
" </tr>\n",
" <tr>\n",
" <th>224521</th>\n",
" <td>18225290572369927403</td>\n",
" <td>1</td>\n",
" <td>11445772866576434088</td>\n",
" <td>alignments_class3D_2/class_posterior</td>\n",
" <td>0.840414</td>\n",
" <td>1</td>\n",
" <td>11445772866576434088</td>\n",
" <td>0.840414</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>70072 rows × 8 columns</p>\n",
"</div>"
],
"text/plain": [
" uid sym_expand/idx sym_expand/src_uid \\\n",
"5 18238409812693964896 1 16283158601248152275 \n",
"7 15879751386763411489 1 16678885078591385354 \n",
"11 12920257826129044892 1 1241375040004936692 \n",
"15 11291443213140123334 1 7769098663857834432 \n",
"22 13027641915996691874 0 13027641915996691874 \n",
"... ... ... ... \n",
"224501 10815480769803282581 1 12164151422588484564 \n",
"224514 17732737341429470426 0 17732737341429470426 \n",
"224515 13100399110949093856 1 17732737341429470426 \n",
"224520 11445772866576434088 0 11445772866576434088 \n",
"224521 18225290572369927403 1 11445772866576434088 \n",
"\n",
" class posterior sym_expand/idx_max \\\n",
"5 alignments_class3D_0/class_posterior 0.822130 1 \n",
"7 alignments_class3D_0/class_posterior 0.576027 1 \n",
"11 alignments_class3D_0/class_posterior 0.531906 1 \n",
"15 alignments_class3D_0/class_posterior 0.655786 1 \n",
"22 alignments_class3D_0/class_posterior 0.977530 0 \n",
"... ... ... ... \n",
"224501 alignments_class3D_2/class_posterior 0.876612 1 \n",
"224514 alignments_class3D_2/class_posterior 0.943676 0 \n",
"224515 alignments_class3D_2/class_posterior 0.867969 1 \n",
"224520 alignments_class3D_2/class_posterior 0.819574 0 \n",
"224521 alignments_class3D_2/class_posterior 0.840414 1 \n",
"\n",
" sym_expand/src_uid_max posterior_max \n",
"5 16283158601248152275 0.822130 \n",
"7 16678885078591385354 0.576027 \n",
"11 1241375040004936692 0.531906 \n",
"15 7769098663857834432 0.655786 \n",
"22 13027641915996691874 0.977530 \n",
"... ... ... \n",
"224501 12164151422588484564 0.876612 \n",
"224514 17732737341429470426 0.943676 \n",
"224515 17732737341429470426 0.867969 \n",
"224520 11445772866576434088 0.819574 \n",
"224521 11445772866576434088 0.840414 \n",
"\n",
"[70072 rows x 8 columns]"
]
},
"execution_count": 165,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_with_max = long_df.merge(\n",
" max_posterior,\n",
" how = 'left',\n",
" on = 'uid',\n",
" suffixes = ['', '_max']\n",
")\n",
"\n",
"df_with_max = df_with_max.loc[\n",
" df_with_max['posterior_max'] == df_with_max['posterior']\n",
" ].loc[\n",
" df_with_max['posterior_max'] > 0.5\n",
" ]\n",
"df_with_max"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So this dataframe gives us the particles in only their best class, and only when that class has a posterior probability better than 0.5. Now we can test a few assumptions.\n",
"\n",
"First, if a particle gets assigned to class 0 its symmetry mate should assign to class 1 and vice-versa. However, both symmetry mates of a particle which goes to class 2 should go to class 2."
]
},
{
"cell_type": "code",
"execution_count": 166,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {
"image/png": {
"height": 480,
"width": 640
},
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure Size: (640 x 480)>"
]
},
"execution_count": 166,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ZERO = 'alignments_class3D_0/class_posterior'\n",
"ONE = 'alignments_class3D_1/class_posterior'\n",
"TWO = 'alignments_class3D_2/class_posterior'\n",
"\n",
"def get_expectation(x):\n",
" return (\n",
" (x[0] == ZERO and x[1] == ONE)\n",
" or (x[0] == ONE and x[1] == ZERO)\n",
" or (x[0] == TWO and x[1] == TWO)\n",
" )\n",
"\n",
"# it is simply unbelievable to me that it takes this much work to pivot a\n",
"# dataframe in pandas.\n",
"\n",
"max_long = df_with_max.pivot(\n",
" index = 'sym_expand/src_uid',\n",
" columns = 'sym_expand/idx',\n",
" values = 'class'\n",
").reset_index(\n",
" names = 'sym_expand/src_uid'\n",
")\n",
"\n",
"max_long['obeys_expectation'] = max_long.apply(get_expectation, axis = 1)\n",
"\n",
"(\n",
" ggplot(max_long, aes(x = 'obeys_expectation'))\n",
" + plotnine.theme_minimal()\n",
" + plotnine.geom_bar(aes(fill = 'obeys_expectation'))\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Great! Most of the particles obey our expectations for the two symmetry mates. All that's left to do is create two particle datasets, one with all of the 0/1 class particles and one with the 2/2 class particles.\n",
"\n",
"Moving forward, we most likely want to go back to the unexpanded particles, so I will load in the job we expanded from, then filter based on `sym_expand/src_uid`. I have a feeling this will be very slow."
]
},
{
"cell_type": "code",
"execution_count": 167,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0/1 count: 24196\n",
"2/2 count: 10255\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_1155261/4055479796.py:9: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
"/tmp/ipykernel_1155261/4055479796.py:10: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n"
]
}
],
"source": [
"# get a set of src_uids for 0/1 and 2/2 particles\n",
"def zero_one(x):\n",
" return (\n",
" (x[0] == ZERO and x[1] == ONE)\n",
" or (x[0] == ONE and x[1] == ZERO)\n",
" )\n",
"\n",
"max_long = max_long[max_long['obeys_expectation']]\n",
"max_long['zero_one'] = max_long.apply(zero_one, axis = 1)\n",
"max_long['two_two'] = max_long.apply(lambda x: not x['zero_one'], axis = 1)\n",
"\n",
"zero_one_src_uids = set(max_long[max_long['zero_one']]['sym_expand/src_uid'])\n",
"two_two_src_uids = set(max_long[max_long['two_two']]['sym_expand/src_uid'])\n",
"\n",
"print('0/1 count:', len(zero_one_src_uids))\n",
"print('2/2 count:', len(two_two_src_uids))\n"
]
},
{
"cell_type": "code",
"execution_count": 168,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"These should be equal: 24196 24196\n",
"These should be equal: 10255 10255\n"
]
}
],
"source": [
"pre_expansion_job_id = 'J151'\n",
"pre_expansion_particles = project.find_job(pre_expansion_job_id).load_output('particles')\n",
"\n",
"zero_one_mask = [x in zero_one_src_uids for x in pre_expansion_particles['uid']]\n",
"print('These should be equal:', len(zero_one_src_uids), len([x for x in zero_one_mask if x]))\n",
"\n",
"two_two_mask = [x in two_two_src_uids for x in pre_expansion_particles['uid']]\n",
"print('These should be equal:', len(two_two_src_uids), len([x for x in two_two_mask if x]))\n",
"\n",
"zero_one_particles = pre_expansion_particles.mask(zero_one_mask)\n",
"two_two_particles = pre_expansion_particles.mask(two_two_mask)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Conclusion\n",
"It was pretty unweildy having to consider several classes for each presence/absence, and I think my original idea would be a bit easier.\n",
"For instance, in this case, if we had only two classes created with a mask around **only one blob**, we could (for each particle), count the number of its symmetry-related positions belonged to the \"with blob\" class vs. which belonged to the \"without blob\" class.\n",
"\n",
"Unlike this example, this would generalize very nicely to higher symmetries. Indeed, it could even be used as a post-hoc classification. For instance, all particles from a C6 pseudosymmetric construct which have expansion indeces 1, 2, and 5 belonging to the \"with blob\" class could be placed in their own bin."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "cryosparc-tools",
"language": "python",
"name": "cryosparc-tools"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.13"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment