|
16 | 16 | { |
17 | 17 | "data": { |
18 | 18 | "application/vnd.jupyter.widget-view+json": { |
19 | | - "model_id": "4e25adfecfbc4102b206c79c6f171915", |
| 19 | + "model_id": "318d91b0cf4f43c2b2216efa73a2d99f", |
20 | 20 | "version_major": 2, |
21 | 21 | "version_minor": 0 |
22 | 22 | }, |
|
29 | 29 | "source": [ |
30 | 30 | "import procaliper as pc\n", |
31 | 31 | "import procaliper.view as pcv\n", |
32 | | - "from nglview.color import ColormakerRegistry" |
| 32 | + "from nglview.color import ColormakerRegistry\n", |
| 33 | + "import matplotlib as plt" |
33 | 34 | ] |
34 | 35 | }, |
35 | 36 | { |
|
69 | 70 | } |
70 | 71 | ], |
71 | 72 | "source": [ |
72 | | - "protein = pc.Protein.from_uniprot_id(\"A0A0B4J2F0\")\n", |
| 73 | + "protein = pc.Protein.from_uniprot_id(\"P07900\")\n", |
73 | 74 | "protein.fetch_pdb(save_path=\"scratch.pdb\")" |
74 | 75 | ] |
75 | 76 | }, |
76 | 77 | { |
77 | 78 | "cell_type": "markdown", |
78 | 79 | "metadata": {}, |
79 | 80 | "source": [ |
80 | | - "## Visualize SASA\n", |
81 | | - "First we compute the sasa data and assert that it was properly created. Then, we use the sasa values to create a color scheme and nglview widget using the `view` module of `procaliper`. We remove the default representation, register our created color scheme, and add the new representation with our color scheme." |
| 81 | + "## Visualize pLDDT\n", |
| 82 | + "First, we examine the pLDDT score for the AlphaFold structure we have fetched. We extract this using the `protein.get_confidence` method. These values fall between 0 and 100, and we rescale them to fall in the interval [0,1] for coloring. Since we have manually scaled these, we set `rescale=False`. Green and yellow regions indicate a lower confidence in local structure prediction. We can view the chosen color scale using `plt.colormaps.get_cmap(\"viridis_r\")`." |
82 | 83 | ] |
83 | 84 | }, |
84 | 85 | { |
|
89 | 90 | { |
90 | 91 | "data": { |
91 | 92 | "application/vnd.jupyter.widget-view+json": { |
92 | | - "model_id": "b1fe72f9609f436d90e99a1f47932183", |
| 93 | + "model_id": "d40e3b436a6f48a68bd9cd1fb17a235e", |
| 94 | + "version_major": 2, |
| 95 | + "version_minor": 0 |
| 96 | + }, |
| 97 | + "text/plain": [ |
| 98 | + "NGLWidget()" |
| 99 | + ] |
| 100 | + }, |
| 101 | + "metadata": {}, |
| 102 | + "output_type": "display_data" |
| 103 | + } |
| 104 | + ], |
| 105 | + "source": [ |
| 106 | + "_ = protein.get_confidence() # extract pLDDT values from the PDB\n", |
| 107 | + "assert protein.confidence_data is not None\n", |
| 108 | + "\n", |
| 109 | + "pLDDT_scheme = pcv.ngl_scheme(\n", |
| 110 | + " [x / 100 for x in protein.confidence_data],\n", |
| 111 | + " color_mapper=\"viridis_r\",\n", |
| 112 | + " rescale=False,\n", |
| 113 | + ") # create a color scheme from the pLDDT values\n", |
| 114 | + "\n", |
| 115 | + "view = pcv.protein_to_nglview(protein) # generate an nglview widget\n", |
| 116 | + "view._remove_representation() # remove the default representation\n", |
| 117 | + "\n", |
| 118 | + "cm.add_selection_scheme(\n", |
| 119 | + " \"all_pLDDT_value\", pLDDT_scheme\n", |
| 120 | + ") # add our color scheme to nglview\n", |
| 121 | + "view.add_representation(\n", |
| 122 | + " \"ribbon\", color=\"all_pLDDT_value\"\n", |
| 123 | + ") # render the protein using our color scheme\n", |
| 124 | + "\n", |
| 125 | + "view" |
| 126 | + ] |
| 127 | + }, |
| 128 | + { |
| 129 | + "cell_type": "code", |
| 130 | + "execution_count": 5, |
| 131 | + "metadata": {}, |
| 132 | + "outputs": [ |
| 133 | + { |
| 134 | + "data": { |
| 135 | + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAABACAYAAABsv8+/AAAAGHRFWHRUaXRsZQB2aXJpZGlzX3IgY29sb3JtYXA0MKMeAAAAHnRFWHREZXNjcmlwdGlvbgB2aXJpZGlzX3IgY29sb3JtYXB2q0WVAAAAMHRFWHRBdXRob3IATWF0cGxvdGxpYiB2My44LjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmefc/hPAAAAMnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHYzLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZ7HVZ2gAAAIqSURBVHic7dZRbqMwGIVRk7V0/9vqKrCrJhCEiUPSqE/3nIdE/jGGGbUz3zR/f7VSSplb/f0qtVyXpZbbem7der2+zO/r6+e2f17W27xbl2mZ377rul6+6zKfD/NLN788ni/rWk7m3X3bOZfu/fr963Ofv8dwfX+P6fn6cP50Mu/P6eb93/fJ9f55o+eM9rWT8+7X+/n1c7xvW5fdug3O6a8vP6YvzNcDun2ln6/r/f3bCzw+b7v+4vz+3P33NLxvf/80uD69u3/4Hmfzd99jMC+P56/e//m+9i/nTx8+Z1u3v51fn18/fc7yC3n+5+j+Qzi872j/aN/+vO15715vj+fr+51cH95f627dDvv31w/z2t/X769Pz22D59z+FQcAoggAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAg0A9PlIAn408tHAAAAABJRU5ErkJggg==", |
| 136 | + "text/html": [ |
| 137 | + "<div style=\"vertical-align: middle;\"><strong>viridis_r</strong> </div><div class=\"cmap\"><img alt=\"viridis_r colormap\" title=\"viridis_r\" style=\"border: 1px solid #555;\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAABACAYAAABsv8+/AAAAGHRFWHRUaXRsZQB2aXJpZGlzX3IgY29sb3JtYXA0MKMeAAAAHnRFWHREZXNjcmlwdGlvbgB2aXJpZGlzX3IgY29sb3JtYXB2q0WVAAAAMHRFWHRBdXRob3IATWF0cGxvdGxpYiB2My44LjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmefc/hPAAAAMnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHYzLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZ7HVZ2gAAAIqSURBVHic7dZRbqMwGIVRk7V0/9vqKrCrJhCEiUPSqE/3nIdE/jGGGbUz3zR/f7VSSplb/f0qtVyXpZbbem7der2+zO/r6+e2f17W27xbl2mZ377rul6+6zKfD/NLN788ni/rWk7m3X3bOZfu/fr963Ofv8dwfX+P6fn6cP50Mu/P6eb93/fJ9f55o+eM9rWT8+7X+/n1c7xvW5fdug3O6a8vP6YvzNcDun2ln6/r/f3bCzw+b7v+4vz+3P33NLxvf/80uD69u3/4Hmfzd99jMC+P56/e//m+9i/nTx8+Z1u3v51fn18/fc7yC3n+5+j+Qzi872j/aN/+vO15715vj+fr+51cH95f627dDvv31w/z2t/X769Pz22D59z+FQcAoggAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAgkAAAgEACAAACCQAACCQAACCQAACAQAIAAAIJAAAIJAAAIJAAAIBAAgAAAgkAAAgkAAAg0A9PlIAn408tHAAAAABJRU5ErkJggg==\"></div><div style=\"vertical-align: middle; max-width: 514px; display: flex; justify-content: space-between;\"><div style=\"float: left;\"><div title=\"#fde725ff\" style=\"display: inline-block; width: 1em; height: 1em; margin: 0; vertical-align: middle; border: 1px solid #555; background-color: #fde725ff;\"></div> under</div><div style=\"margin: 0 auto; display: inline-block;\">bad <div title=\"#00000000\" style=\"display: inline-block; width: 1em; height: 1em; margin: 0; vertical-align: middle; border: 1px solid #555; background-color: #00000000;\"></div></div><div style=\"float: right;\">over <div title=\"#440154ff\" style=\"display: inline-block; width: 1em; height: 1em; margin: 0; vertical-align: middle; border: 1px solid #555; background-color: #440154ff;\"></div></div>" |
| 138 | + ], |
| 139 | + "text/plain": [ |
| 140 | + "<matplotlib.colors.ListedColormap at 0x204323a2660>" |
| 141 | + ] |
| 142 | + }, |
| 143 | + "execution_count": 5, |
| 144 | + "metadata": {}, |
| 145 | + "output_type": "execute_result" |
| 146 | + } |
| 147 | + ], |
| 148 | + "source": [ |
| 149 | + "plt.colormaps.get_cmap(\"viridis_r\")" |
| 150 | + ] |
| 151 | + }, |
| 152 | + { |
| 153 | + "cell_type": "markdown", |
| 154 | + "metadata": {}, |
| 155 | + "source": [ |
| 156 | + "## Visualize SASA\n", |
| 157 | + "We compute the sasa data and assert that it was properly created. Then, we use the sasa values to create a color scheme and nglview widget using the `view` module of `procaliper`. We remove the default representation, register our created color scheme, and add the new representation with our color scheme." |
| 158 | + ] |
| 159 | + }, |
| 160 | + { |
| 161 | + "cell_type": "code", |
| 162 | + "execution_count": 6, |
| 163 | + "metadata": {}, |
| 164 | + "outputs": [ |
| 165 | + { |
| 166 | + "data": { |
| 167 | + "application/vnd.jupyter.widget-view+json": { |
| 168 | + "model_id": "fa8aef4ce31541a58d5cdf6c3c65151a", |
93 | 169 | "version_major": 2, |
94 | 170 | "version_minor": 0 |
95 | 171 | }, |
|
132 | 208 | }, |
133 | 209 | { |
134 | 210 | "cell_type": "code", |
135 | | - "execution_count": 5, |
| 211 | + "execution_count": 7, |
136 | 212 | "metadata": {}, |
137 | 213 | "outputs": [ |
138 | 214 | { |
139 | 215 | "data": { |
140 | 216 | "application/vnd.jupyter.widget-view+json": { |
141 | | - "model_id": "8188a2d779884abda606020394d14616", |
| 217 | + "model_id": "57e8921c32824989bf0dc3249ce3bcbd", |
142 | 218 | "version_major": 2, |
143 | 219 | "version_minor": 0 |
144 | 220 | }, |
|
165 | 241 | "view.add_representation(\"surface\", color=\"all_charge_value\")\n", |
166 | 242 | "view" |
167 | 243 | ] |
| 244 | + }, |
| 245 | + { |
| 246 | + "cell_type": "code", |
| 247 | + "execution_count": null, |
| 248 | + "metadata": {}, |
| 249 | + "outputs": [], |
| 250 | + "source": [] |
168 | 251 | } |
169 | 252 | ], |
170 | 253 | "metadata": { |
171 | 254 | "kernelspec": { |
172 | | - "display_name": ".venv", |
| 255 | + "display_name": "alphameter-py3.12", |
173 | 256 | "language": "python", |
174 | 257 | "name": "python3" |
175 | 258 | }, |
|
0 commit comments