From fe5a172f523bdaeb16534a40f42979882f54cf82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Tubiana?= Date: Sun, 26 Dec 2021 12:21:34 +0200 Subject: [PATCH] Fixed (?) bug with nan due to numba x multiprocessing instability --- ...cal filters disordered binding sites.ipynb | 280 ++++++++++++++++++ Visualize spatio-chemical filters.ipynb | 2 +- network/scannet.py | 4 +- preprocessing/protein_frames.py | 9 + visualizations/show_3d_filters.py | 4 +- 5 files changed, 293 insertions(+), 6 deletions(-) create mode 100644 Spatio-chemical filters disordered binding sites.ipynb diff --git a/Spatio-chemical filters disordered binding sites.ipynb b/Spatio-chemical filters disordered binding sites.ipynb new file mode 100644 index 0000000..26894b4 --- /dev/null +++ b/Spatio-chemical filters disordered binding sites.ipynb @@ -0,0 +1,280 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "os.chdir('/Users/jerometubiana/Documents/GitHub/ScanNet/')\n", + "\n", + "import pickle\n", + "\n", + "\n", + "filter_specificites_transfer = pickle.load(open('/Users/jerometubiana/Downloads/filter_specificites/filter_specificities_ScanNet_PIDPI_0.data','rb') )\n", + "filter_specificites_scratch = pickle.load(open('/Users/jerometubiana/Downloads/filter_specificites/filter_specificities_ScanNet_PIDPI_scratch_0.data','rb') )\n", + "filter_specificites_nomsa = pickle.load(open('/Users/jerometubiana/Downloads/filter_specificites/filter_specificities_ScanNet_PIDPI_noMSA_0.data','rb') )" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "from visualizations import show_3d_filters,weight_logo_3d\n", + "\n", + "sg = weight_logo_3d.make_sphere_geometry(30)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "cb9b75a133ef432dad90887378201e85", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Renderer(camera=PerspectiveCamera(position=(8.0, 5.0, 8.0), projectionMatrix=(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "renderer = show_3d_filters.plot_atomic_filter(\n", + " filter_specificites_transfer,30,sg=sg);\n", + "display(renderer)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "00b2921aa8144d34adb2f565ff40d48d", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Renderer(camera=PerspectiveCamera(position=(19.200000000000003, 12.0, 19.200000000000003), projectionMatrix=(1…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "renderer = show_3d_filters.plot_aminoacid_filter(\n", + " filter_specificites_scratch,81,sg=sg);\n", + "display(renderer)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "plt.matshow(filter_specificites_scratch['aa_specificity']['value'])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "table = pd.read_csv('/Users/jerometubiana/Downloads/1rxz_rec_ScanNet_PIDP_big_idp_one_hot_5_contact_Pairwise1_fold0/contact_map_IDP.csv',\n", + " index_col='Unnamed: 0')" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "table_num = np.array(table[:245])\n", + "index_flat = np.argsort(table_num.flatten())[::-1][:10]\n", + "index = (index_flat//11, index_flat % 11 )" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.A:24 1\n", + "0.A:43 10\n", + "0.A:46 10\n", + "0.A:43 9\n", + "0.A:124 1\n", + "0.A:43 5\n", + "0.A:44 10\n", + "0.A:178 1\n", + "0.A:43 7\n", + "0.A:237 10\n" + ] + } + ], + "source": [ + "for i,j in zip(table.index[index[0]], index[1]):\n", + " print(i,j+1 )" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.33 , 0.299, 0.274, 0.272, 0.263, 0.258, 0.257, 0.246, 0.237,\n", + " 0.236])" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table_num[index]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "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.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Visualize spatio-chemical filters.ipynb b/Visualize spatio-chemical filters.ipynb index 87e2f99..14f8555 100644 --- a/Visualize spatio-chemical filters.ipynb +++ b/Visualize spatio-chemical filters.ipynb @@ -430,7 +430,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.12" + "version": "3.8.5" } }, "nbformat": 4, diff --git a/network/scannet.py b/network/scannet.py index 79cef5a..4bb4b7e 100644 --- a/network/scannet.py +++ b/network/scannet.py @@ -773,9 +773,8 @@ if __name__ == '__main__': import matplotlib matplotlib.use('module://backend_interagg') import matplotlib.pyplot as plt - import PDB_utils2 import Bio.PDB - import pipelines + from preprocessing import PDBio,pipelines import numpy as np with_atom = True @@ -896,7 +895,6 @@ if __name__ == '__main__': nrotations=nrotations, dropout=dropout, optimizer=optimizer, batch_size=1, - initial_values_folder='/specific/netapp5_2/iscb/wolfson/jeromet/Data/InterfacePrediction/initial_values/', fresh_initial_values=True, save_initial_values=False, n_init=1 ) diff --git a/preprocessing/protein_frames.py b/preprocessing/protein_frames.py index c0c9bc4..06b7c5f 100644 --- a/preprocessing/protein_frames.py +++ b/preprocessing/protein_frames.py @@ -305,6 +305,15 @@ def _get_aa_frameCloud_quadruplet(atom_coordinates, atom_ids, verbose=True): def add_virtual_atoms(atom_clouds, atom_triplets, verbose=True): virtual_atom_clouds, atom_triplets = _add_virtual_atoms(atom_clouds, atom_triplets, verbose=verbose) + if np.abs(virtual_atom_clouds).max() >1e8: + print('The weird numba bug happened again at add_virtual_atoms, rerunning once') + virtual_atom_clouds, atom_triplets = _add_virtual_atoms(atom_clouds, atom_triplets, verbose=verbose) + if np.abs(virtual_atom_clouds).max() > 1e8: + print('The weird numba bug persists...') + else: + print('The weird numba bug was fixed by rerunning') + + if len(virtual_atom_clouds) > 0: atom_clouds = np.concatenate([atom_clouds, np.array(virtual_atom_clouds)], axis=0) return atom_clouds, atom_triplets diff --git a/visualizations/show_3d_filters.py b/visualizations/show_3d_filters.py index f1217ce..6060db9 100644 --- a/visualizations/show_3d_filters.py +++ b/visualizations/show_3d_filters.py @@ -167,10 +167,10 @@ def calculate_filter_specificities(model_name, top_neg_handcrafted_features = handcrafted_features_flat[top_neg] value_pos = np.array( - [[gaussian_network_features_flat[top_pos[:, u, v], u, v].mean() for u in range(Ngaussians)] for v in + [[ np.nanmean(gaussian_network_features_flat[top_pos[:, u, v], u, v]) for u in range(Ngaussians)] for v in range(nfilters)]) # nfilters X ngaussians value_neg = np.array( - [[gaussian_network_features_flat[top_neg[:, u, v], u, v].mean() for u in range(Ngaussians)] for v in + [[ np.nanmean(gaussian_network_features_flat[top_neg[:, u, v], u, v]) for u in range(Ngaussians)] for v in range(nfilters)]) # nfilters X ngaussians