diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 5e6e9a63..c547f50b 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,6 +6,10 @@ All notable changes to this project will be documented in this file. The format is based on `Keep a Changelog `_. +6.10 +---- +- In ``lineplot_and_heatmap``, mutations that are hidden are by one slider filtered even if they fail other sliders. Addresses `this issue `_ + 6.9 --- - Added ``rename_std`` option to ``lineplot_and_heatmaps``, which fixes a quasi-bug introduced in the ``rename_stat_col`` option by the changes in version 6.8. diff --git a/notebooks/real_LyCoV1404.ipynb b/notebooks/real_LyCoV1404.ipynb index d9fd8603..6c7461c6 100644 --- a/notebooks/real_LyCoV1404.ipynb +++ b/notebooks/real_LyCoV1404.ipynb @@ -17,13 +17,6 @@ "execution_count": 1, "id": "0b46edd2", "metadata": { - "execution": { - "iopub.execute_input": "2023-08-18T19:33:25.819279Z", - "iopub.status.busy": "2023-08-18T19:33:25.818688Z", - "iopub.status.idle": "2023-08-18T19:33:29.522502Z", - "shell.execute_reply": "2023-08-18T19:33:29.521326Z", - "shell.execute_reply.started": "2023-08-18T19:33:25.819250Z" - }, "tags": [] }, "outputs": [], @@ -52,13 +45,6 @@ "execution_count": 2, "id": "46127941", "metadata": { - "execution": { - "iopub.execute_input": "2023-08-18T19:33:29.527470Z", - "iopub.status.busy": "2023-08-18T19:33:29.527103Z", - "iopub.status.idle": "2023-08-18T19:33:30.072992Z", - "shell.execute_reply": "2023-08-18T19:33:30.072145Z", - "shell.execute_reply.started": "2023-08-18T19:33:29.527439Z" - }, "tags": [] }, "outputs": [ @@ -226,13 +212,6 @@ "execution_count": 3, "id": "ad21ccc1", "metadata": { - "execution": { - "iopub.execute_input": "2023-08-18T19:33:30.076244Z", - "iopub.status.busy": "2023-08-18T19:33:30.075996Z", - "iopub.status.idle": "2023-08-18T19:33:30.220143Z", - "shell.execute_reply": "2023-08-18T19:33:30.219397Z", - "shell.execute_reply.started": "2023-08-18T19:33:30.076223Z" - }, "tags": [] }, "outputs": [ @@ -355,13 +334,6 @@ "execution_count": 4, "id": "2646efb0", "metadata": { - "execution": { - "iopub.execute_input": "2023-08-18T19:33:30.221417Z", - "iopub.status.busy": "2023-08-18T19:33:30.221143Z", - "iopub.status.idle": "2023-08-18T19:33:30.445033Z", - "shell.execute_reply": "2023-08-18T19:33:30.443911Z", - "shell.execute_reply.started": "2023-08-18T19:33:30.221397Z" - }, "tags": [] }, "outputs": [ @@ -370,28 +342,28 @@ "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ @@ -518,13 +490,6 @@ "execution_count": 5, "id": "9d265060", "metadata": { - "execution": { - "iopub.execute_input": "2023-08-18T19:33:30.446982Z", - "iopub.status.busy": "2023-08-18T19:33:30.446468Z", - "iopub.status.idle": "2023-08-18T19:35:53.622894Z", - "shell.execute_reply": "2023-08-18T19:35:53.622142Z", - "shell.execute_reply.started": "2023-08-18T19:33:30.446942Z" - }, "tags": [] }, "outputs": [ @@ -534,28 +499,28 @@ "text": [ "#\n", "# Fitting site-level fixed Hill coefficient and non-neutralized frac model.\n", - "# Starting optimization of 1248 parameters at Fri Aug 18 12:33:36 2023.\n", + "# Starting optimization of 1248 parameters at Fri Jan 26 11:43:31 2024.\n", " step time_sec loss fit_loss reg_escape reg_spread reg_spatial reg_uniqueness reg_uniqueness2 reg_activity reg_hill_coefficient reg_non_neutralized_frac\n", - " 0 0.080992 37333 37314 0 0 0 0 0 18.641 0 0\n", - " 100 8.954 4910 4825 38.888 0 0 0 0 46.108 0 0\n", - " 177 15.898 4908.2 4822.5 39.589 0 0 0 0 46.145 0 0\n", - "# Successfully finished at Fri Aug 18 12:33:52 2023.\n", + " 0 0.036176 37333 37314 0 0 0 0 0 18.641 0 0\n", + " 100 4.0581 4910 4825 38.903 0 0 0 0 46.113 0 0\n", + " 187 7.4821 4908.2 4822.4 39.676 0 0 0 0 46.145 0 0\n", + "# Successfully finished at Fri Jan 26 11:43:39 2024.\n", "#\n", "# Fitting fixed Hill coefficient and non-neutralized frac model.\n", - "# Starting optimization of 8450 parameters at Fri Aug 18 12:33:52 2023.\n", + "# Starting optimization of 8450 parameters at Fri Jan 26 11:43:39 2024.\n", " step time_sec loss fit_loss reg_escape reg_spread reg_spatial reg_uniqueness reg_uniqueness2 reg_activity reg_hill_coefficient reg_non_neutralized_frac\n", - " 0 0.2196 7347.8 7034.8 266.82 3.6355e-31 0 0 0 46.145 0 0\n", - " 100 44.671 6864.9 6706.7 95.063 10.674 0 0 0 52.402 0 0\n", - " 200 86.329 6855.5 6701.8 89.625 11.611 0 0 0 52.473 0 0\n", - " 265 112.06 6854.7 6701.4 89.038 11.746 0 0 0 52.456 0 0\n", - "# Successfully finished at Fri Aug 18 12:35:44 2023.\n", + " 0 0.057451 7348.1 7034.8 267.14 2.8796e-31 0 0 0 46.145 0 0\n", + " 100 6.7995 6863 6706.2 93.396 10.9 0 0 0 52.517 0 0\n", + " 200 13.405 6855 6701.6 89.267 11.691 0 0 0 52.449 0 0\n", + " 221 14.788 6854.7 6701.6 88.939 11.715 0 0 0 52.465 0 0\n", + "# Successfully finished at Fri Jan 26 11:43:54 2024.\n", "#\n", "# Fitting model.\n", - "# Starting optimization of 8452 parameters at Fri Aug 18 12:35:44 2023.\n", + "# Starting optimization of 8452 parameters at Fri Jan 26 11:43:54 2024.\n", " step time_sec loss fit_loss reg_escape reg_spread reg_spatial reg_uniqueness reg_uniqueness2 reg_activity reg_hill_coefficient reg_non_neutralized_frac\n", - " 0 0.29954 6812.7 6701.4 89.038 11.746 0 0 0 10.491 0 0\n", - " 19 9.0023 6750.3 6638.1 89.041 11.747 0 0 0 10.444 0.90715 0.076633\n", - "# Successfully finished at Fri Aug 18 12:35:53 2023.\n" + " 0 0.056528 6812.7 6701.6 88.939 11.715 0 0 0 10.493 0 0\n", + " 15 0.95641 6750.3 6638.2 88.941 11.716 0 0 0 10.443 0.90755 0.07658\n", + "# Successfully finished at Fri Jan 26 11:43:55 2024.\n" ] } ], @@ -593,13 +558,6 @@ "execution_count": 6, "id": "8e887519", "metadata": { - "execution": { - "iopub.execute_input": "2023-08-18T19:35:53.624320Z", - "iopub.status.busy": "2023-08-18T19:35:53.624115Z", - "iopub.status.idle": "2023-08-18T19:35:53.641780Z", - "shell.execute_reply": "2023-08-18T19:35:53.641038Z", - "shell.execute_reply.started": "2023-08-18T19:35:53.624294Z" - }, "tags": [] }, "outputs": [ @@ -673,13 +631,6 @@ "execution_count": 7, "id": "d7b168a4", "metadata": { - "execution": { - "iopub.execute_input": "2023-08-18T19:35:53.642927Z", - "iopub.status.busy": "2023-08-18T19:35:53.642623Z", - "iopub.status.idle": "2023-08-18T19:35:53.646142Z", - "shell.execute_reply": "2023-08-18T19:35:53.645459Z", - "shell.execute_reply.started": "2023-08-18T19:35:53.642906Z" - }, "tags": [] }, "outputs": [], @@ -701,13 +652,6 @@ "execution_count": 8, "id": "f7db9fc1-1a45-403e-b504-6cbc02f68af7", "metadata": { - "execution": { - "iopub.execute_input": "2023-08-18T19:35:53.647243Z", - "iopub.status.busy": "2023-08-18T19:35:53.646964Z", - "iopub.status.idle": "2023-08-18T19:35:53.672204Z", - "shell.execute_reply": "2023-08-18T19:35:53.671606Z", - "shell.execute_reply.started": "2023-08-18T19:35:53.647224Z" - }, "tags": [] }, "outputs": [ @@ -817,13 +761,6 @@ "execution_count": 9, "id": "1a9d6f5d", "metadata": { - "execution": { - "iopub.execute_input": "2023-08-18T19:35:53.673295Z", - "iopub.status.busy": "2023-08-18T19:35:53.673036Z", - "iopub.status.idle": "2023-08-18T19:35:56.080657Z", - "shell.execute_reply": "2023-08-18T19:35:56.079640Z", - "shell.execute_reply.started": "2023-08-18T19:35:53.673278Z" - }, "tags": [] }, "outputs": [ @@ -832,28 +769,28 @@ "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ @@ -934,16 +871,9 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 10, "id": "e06e0259-9ad4-4d3a-81bb-dbf38631d702", "metadata": { - "execution": { - "iopub.execute_input": "2023-08-18T19:37:14.759387Z", - "iopub.status.busy": "2023-08-18T19:37:14.758796Z", - "iopub.status.idle": "2023-08-18T19:37:21.098361Z", - "shell.execute_reply": "2023-08-18T19:37:21.097467Z", - "shell.execute_reply.started": "2023-08-18T19:37:14.759347Z" - }, "tags": [] }, "outputs": [ @@ -952,28 +882,28 @@ "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ "alt.VConcatChart(...)" ] }, - "execution_count": 16, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -1052,13 +982,6 @@ "execution_count": 11, "id": "837eb0ea-e56e-4b5a-badd-94923ceca75d", "metadata": { - "execution": { - "iopub.execute_input": "2023-08-18T19:36:02.142398Z", - "iopub.status.busy": "2023-08-18T19:36:02.142129Z", - "iopub.status.idle": "2023-08-18T19:36:03.130230Z", - "shell.execute_reply": "2023-08-18T19:36:03.129154Z", - "shell.execute_reply.started": "2023-08-18T19:36:02.142384Z" - }, "tags": [] }, "outputs": [ @@ -1067,28 +990,28 @@ "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ @@ -1167,13 +1090,6 @@ "execution_count": 12, "id": "f9d15bf6-c67b-46aa-9f69-96b97133e701", "metadata": { - "execution": { - "iopub.execute_input": "2023-08-18T19:36:03.131534Z", - "iopub.status.busy": "2023-08-18T19:36:03.131192Z", - "iopub.status.idle": "2023-08-18T19:36:04.069149Z", - "shell.execute_reply": "2023-08-18T19:36:04.068142Z", - "shell.execute_reply.started": "2023-08-18T19:36:03.131508Z" - }, "tags": [] }, "outputs": [ @@ -1182,28 +1098,28 @@ "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ @@ -1282,13 +1198,6 @@ "execution_count": 13, "id": "aeff75ca", "metadata": { - "execution": { - "iopub.execute_input": "2023-08-18T19:36:04.070367Z", - "iopub.status.busy": "2023-08-18T19:36:04.070083Z", - "iopub.status.idle": "2023-08-18T19:36:04.125481Z", - "shell.execute_reply": "2023-08-18T19:36:04.124706Z", - "shell.execute_reply.started": "2023-08-18T19:36:04.070345Z" - }, "tags": [] }, "outputs": [ @@ -1382,13 +1291,6 @@ "execution_count": 14, "id": "c05b9029-6c4b-4c14-88cd-ed997a32b84a", "metadata": { - "execution": { - "iopub.execute_input": "2023-08-18T19:36:04.126725Z", - "iopub.status.busy": "2023-08-18T19:36:04.126375Z", - "iopub.status.idle": "2023-08-18T19:36:04.130774Z", - "shell.execute_reply": "2023-08-18T19:36:04.130167Z", - "shell.execute_reply.started": "2023-08-18T19:36:04.126701Z" - }, "tags": [] }, "outputs": [], @@ -1421,7 +1323,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.4" + "version": "3.11.7" } }, "nbformat": 4, diff --git a/polyclonal/__init__.py b/polyclonal/__init__.py index b61f2636..5bba4609 100644 --- a/polyclonal/__init__.py +++ b/polyclonal/__init__.py @@ -31,7 +31,7 @@ __author__ = "`the Bloom lab `_" __email__ = "jbloom@fredhutch.org" -__version__ = "6.9" +__version__ = "6.10" __url__ = "https://github.com/jbloomlab/polyclonal" from polyclonal.alphabets import AAS diff --git a/polyclonal/pdb_utils.py b/polyclonal/pdb_utils.py index 8166dd80..c80f7317 100644 --- a/polyclonal/pdb_utils.py +++ b/polyclonal/pdb_utils.py @@ -7,7 +7,6 @@ """ - import collections # noqa: F401 import itertools import os # noqa: F401 diff --git a/polyclonal/plot.py b/polyclonal/plot.py index 568bc703..5f2b3bd9 100644 --- a/polyclonal/plot.py +++ b/polyclonal/plot.py @@ -7,7 +7,6 @@ """ - import functools import math import operator @@ -515,8 +514,10 @@ def lineplot_and_heatmap( indicated in the slider. addtl_slider_stats_hide_not_filter : None or list By default, `addtl_slider_stats` are filtered entirely from data set. If you just - them excluded from lineplot calculation but marked as filtered on heat map, - add names of stats to this list. + them excluded from lineplot but marked as hidden on heat map (eg, gray box), + add names of stats to this list. Mutations that fail one of these hiding filters + are always shown as hidden on the heat map rather than fully excluded, even if + they fail other filters in `addtl_slider_stats`. init_floor_at_zero : bool Initial value for option to put floor of zero on value is `stat_col`. init_site_statistic : {'sum', 'mean', 'max', 'min'} @@ -657,7 +658,6 @@ def replace_std(col): .assign(**{stat_col: lambda x: x[stat_col] * scale_stat_col}) ) - # filter `data_df` by any minimums in `slider_binding_range_kwargs` if slider_binding_range_kwargs is None: slider_binding_range_kwargs = {} @@ -723,9 +723,11 @@ def replace_std(col): # get tooltips for heatmap float_cols = [c for c in req_cols if data_df[c].dtype == float] heatmap_tooltips = [ - alt.Tooltip(c, type="quantitative", format=".3g") - if c in float_cols - else alt.Tooltip(c, type="nominal") + ( + alt.Tooltip(c, type="quantitative", format=".3g") + if c in float_cols + else alt.Tooltip(c, type="nominal") + ) for c in req_cols if c != category_col or show_category_label ] @@ -954,11 +956,13 @@ def replace_std(col): base_chart = base_chart.transform_filter( (alt.datum[slider_stat] <= (slider + 1e-6)) # round tol | ~alt.expr.isFinite(alt.datum[slider_stat]) # do not filter null + | alt.datum["_stat_hide"] # do not filter hidden sites ) else: base_chart = base_chart.transform_filter( (alt.datum[slider_stat] >= (slider - 1e-6)) # round tol | ~alt.expr.isFinite(alt.datum[slider_stat]) # do not filter null + | alt.datum["_stat_hide"] # do not filter hidden sites ) # Remove any sites that are only wildtype and filter with site zoom brush base_chart = ( @@ -1165,9 +1169,9 @@ def replace_std(col): heatmaps.append(heatmap_bg + heatmap_hide + heatmap + heatmap_wildtype) heatmaps = alt.vconcat(*heatmaps, spacing=10).resolve_scale( x="shared", - color="shared" - if heatmap_color_scheme or len(categories) == 1 - else "independent", + color=( + "shared" if heatmap_color_scheme or len(categories) == 1 else "independent" + ), ) chartlist = [] diff --git a/polyclonal/polyclonal.py b/polyclonal/polyclonal.py index 604bc51a..3b137aa3 100644 --- a/polyclonal/polyclonal.py +++ b/polyclonal/polyclonal.py @@ -7,7 +7,6 @@ """ - import collections import copy # noqa: F401 import inspect @@ -387,16 +386,16 @@ class Polyclonal: barcode aa_substitutions IC50 0 AA 0.085 1 AC M1C 0.230 - 2 GA M1C 0.230 - 3 AG G2A 0.296 - 4 AT A4K 0.128 - 5 TA A4L 0.117 - 6 CA M1C G2A 0.355 - 7 CG M1C A4K 0.722 - 8 CC G2A A4K 1.414 - 9 TC G2A A4L 0.858 - 10 CT M1C G2A A4K 3.237 - 11 TG M1C G2A A4L 1.430 + 2 AG G2A 0.296 + 3 AT A4K 0.128 + 4 TA A4L 0.117 + 5 CA M1C G2A 0.355 + 6 CG M1C A4K 0.722 + 7 CC G2A A4K 1.414 + 8 TC G2A A4L 0.858 + 9 CT M1C G2A A4K 3.237 + 10 TG M1C G2A A4L 1.430 + 11 GA M1C 0.230 Or the IC90s: @@ -404,16 +403,16 @@ class Polyclonal: barcode aa_substitutions IC90 0 AA 0.464 1 AC M1C 1.260 - 2 GA M1C 1.260 - 3 AG G2A 1.831 - 4 AT A4K 0.976 - 5 TA A4L 0.782 - 6 CA M1C G2A 2.853 - 7 CG M1C A4K 4.176 - 8 CC G2A A4K 7.473 - 9 TC G2A A4L 4.532 - 10 CT M1C G2A A4K 18.717 - 11 TG M1C G2A A4L 9.532 + 2 AG G2A 1.831 + 3 AT A4K 0.976 + 4 TA A4L 0.782 + 5 CA M1C G2A 2.853 + 6 CG M1C A4K 4.176 + 7 CC G2A A4K 7.473 + 8 TC G2A A4L 4.532 + 9 CT M1C G2A A4K 18.717 + 10 TG M1C G2A A4L 9.532 + 11 GA M1C 1.260 Or the fold change IC90s of all mutations: >>> model.mut_icXX_df( @@ -2127,10 +2126,9 @@ def fit( fit_kwargs["fix_hill_coefficient"] = True fit_kwargs["fix_non_neutralized_frac"] = True fit_kwargs["reg_activity_weight"] = fit_fixed_first_reg_activity_weight - fit_kwargs[ - "log_desc" - ] = "fixed Hill coefficient and non-neutralized frac" + ( - f" {log_desc}" if log_desc else "" + fit_kwargs["log_desc"] = ( + "fixed Hill coefficient and non-neutralized frac" + + (f" {log_desc}" if log_desc else "") ) self.fit(**fit_kwargs) elif fit_site_level_first: diff --git a/polyclonal/utils.py b/polyclonal/utils.py index f3071db5..06b0cf15 100644 --- a/polyclonal/utils.py +++ b/polyclonal/utils.py @@ -7,7 +7,6 @@ """ - import re import pandas as pd # noqa: F401 diff --git a/setup.py b/setup.py index 8d7f808c..8ddf1fbb 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,5 @@ """Setup script for ``polyclonal``.""" - import re import sys @@ -52,6 +51,7 @@ "natsort>=8.0", "numpy>=1.17", "pandas>=1.5", + "pyarrow", "requests", "scipy>=1.7.1", "urllib3==1.26.15", # https://github.com/googleapis/python-bigquery/issues/1565 diff --git a/tests/test_polyclonalaverage.ipynb b/tests/test_polyclonalaverage.ipynb index 2dd78e3c..e574dd51 100644 --- a/tests/test_polyclonalaverage.ipynb +++ b/tests/test_polyclonalaverage.ipynb @@ -22,13 +22,6 @@ "execution_count": 1, "id": "5935c6e6-a5ae-4d73-8f80-03c7d36775f0", "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:12.123716Z", - "iopub.status.busy": "2023-07-19T19:40:12.123318Z", - "iopub.status.idle": "2023-07-19T19:40:14.431939Z", - "shell.execute_reply": "2023-07-19T19:40:14.430678Z", - "shell.execute_reply.started": "2023-07-19T19:40:12.123687Z" - }, "tags": [] }, "outputs": [ @@ -189,13 +182,6 @@ "execution_count": 2, "id": "0667e765-d0d7-40fc-b21b-c2da5fedec23", "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:14.441393Z", - "iopub.status.busy": "2023-07-19T19:40:14.440939Z", - "iopub.status.idle": "2023-07-19T19:40:14.705332Z", - "shell.execute_reply": "2023-07-19T19:40:14.704549Z", - "shell.execute_reply.started": "2023-07-19T19:40:14.441368Z" - }, "tags": [] }, "outputs": [], @@ -216,13 +202,6 @@ "execution_count": 3, "id": "c6396f53-82f2-4fcf-bd2d-b6f0c03f8d7f", "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:14.709597Z", - "iopub.status.busy": "2023-07-19T19:40:14.709229Z", - "iopub.status.idle": "2023-07-19T19:40:14.819708Z", - "shell.execute_reply": "2023-07-19T19:40:14.819088Z", - "shell.execute_reply.started": "2023-07-19T19:40:14.709561Z" - }, "tags": [] }, "outputs": [ @@ -269,83 +248,83 @@ " \n", " \n", " 1\n", - " 2\n", - " 1.000\n", + " 1\n", + " 0.877\n", " A\n", - " 0\n", + " 1\n", " A\n", " 0\n", - " 1.000\n", + " 0.770\n", " \n", " \n", " 2\n", " 1\n", - " 0.877\n", + " 0.997\n", " A\n", - " 1\n", + " 2\n", " A\n", " 0\n", - " 0.770\n", + " 0.994\n", " \n", " \n", " 3\n", - " 2\n", - " 1.000\n", - " A\n", " 1\n", + " 0.999\n", + " B\n", + " 0\n", " A\n", " 0\n", - " 0.999\n", + " 0.998\n", " \n", " \n", " 4\n", " 1\n", - " 0.997\n", - " A\n", - " 2\n", + " 0.893\n", + " B\n", + " 1\n", " A\n", " 0\n", - " 0.994\n", + " 0.798\n", " \n", " \n", " 5\n", " 2\n", - " 0.992\n", + " 1.000\n", " A\n", - " 2\n", + " 0\n", " A\n", " 0\n", - " 0.984\n", + " 1.000\n", " \n", " \n", " 6\n", + " 2\n", + " 1.000\n", + " A\n", " 1\n", - " 0.999\n", - " B\n", - " 0\n", " A\n", " 0\n", - " 0.998\n", + " 0.999\n", " \n", " \n", " 7\n", " 2\n", " 0.992\n", - " B\n", - " 0\n", + " A\n", + " 2\n", " A\n", " 0\n", " 0.984\n", " \n", " \n", " 8\n", - " 1\n", - " 0.893\n", + " 2\n", + " 0.992\n", " B\n", - " 1\n", + " 0\n", " A\n", " 0\n", - " 0.798\n", + " 0.984\n", " \n", " \n", " 9\n", @@ -369,83 +348,83 @@ " \n", " \n", " 11\n", - " 2\n", + " 1\n", " 1.000\n", " A\n", - " 0\n", + " 1\n", " A\n", " 1\n", - " 0.999\n", + " 1.000\n", " \n", " \n", " 12\n", " 1\n", - " 1.000\n", + " 0.929\n", " A\n", - " 1\n", + " 2\n", " A\n", " 1\n", - " 1.000\n", + " 0.863\n", " \n", " \n", " 13\n", - " 2\n", - " 1.000\n", - " A\n", " 1\n", + " -0.289\n", + " B\n", + " 0\n", " A\n", " 1\n", - " 1.000\n", + " 0.084\n", " \n", " \n", " 14\n", " 1\n", - " 0.929\n", - " A\n", - " 2\n", + " 0.998\n", + " B\n", + " 1\n", " A\n", " 1\n", - " 0.863\n", + " 0.996\n", " \n", " \n", " 15\n", " 2\n", - " 0.999\n", + " 1.000\n", " A\n", - " 2\n", + " 0\n", " A\n", " 1\n", - " 0.998\n", + " 0.999\n", " \n", " \n", " 16\n", + " 2\n", + " 1.000\n", + " A\n", " 1\n", - " -0.289\n", - " B\n", - " 0\n", " A\n", " 1\n", - " 0.084\n", + " 1.000\n", " \n", " \n", " 17\n", " 2\n", - " 0.966\n", - " B\n", - " 0\n", + " 0.999\n", + " A\n", + " 2\n", " A\n", " 1\n", - " 0.933\n", + " 0.998\n", " \n", " \n", " 18\n", - " 1\n", - " 0.998\n", + " 2\n", + " 0.966\n", " B\n", - " 1\n", + " 0\n", " A\n", " 1\n", - " 0.996\n", + " 0.933\n", " \n", " \n", " 19\n", @@ -469,83 +448,83 @@ " \n", " \n", " 21\n", - " 2\n", - " 0.992\n", + " 1\n", + " 0.929\n", " A\n", - " 0\n", + " 1\n", " A\n", " 2\n", - " 0.984\n", + " 0.863\n", " \n", " \n", " 22\n", " 1\n", - " 0.929\n", + " 1.000\n", " A\n", - " 1\n", + " 2\n", " A\n", " 2\n", - " 0.863\n", + " 1.000\n", " \n", " \n", " 23\n", - " 2\n", - " 0.999\n", - " A\n", " 1\n", + " 0.993\n", + " B\n", + " 0\n", " A\n", " 2\n", - " 0.998\n", + " 0.986\n", " \n", " \n", " 24\n", " 1\n", - " 1.000\n", - " A\n", - " 2\n", + " 0.941\n", + " B\n", + " 1\n", " A\n", " 2\n", - " 1.000\n", + " 0.886\n", " \n", " \n", " 25\n", " 2\n", - " 1.000\n", + " 0.992\n", " A\n", - " 2\n", + " 0\n", " A\n", " 2\n", - " 1.000\n", + " 0.984\n", " \n", " \n", " 26\n", + " 2\n", + " 0.999\n", + " A\n", " 1\n", - " 0.993\n", - " B\n", - " 0\n", " A\n", " 2\n", - " 0.986\n", + " 0.998\n", " \n", " \n", " 27\n", " 2\n", - " 0.998\n", - " B\n", - " 0\n", + " 1.000\n", " A\n", " 2\n", - " 0.995\n", + " A\n", + " 2\n", + " 1.000\n", " \n", " \n", " 28\n", - " 1\n", - " 0.941\n", + " 2\n", + " 0.998\n", " B\n", - " 1\n", + " 0\n", " A\n", " 2\n", - " 0.886\n", + " 0.995\n", " \n", " \n", " 29\n", @@ -569,83 +548,83 @@ " \n", " \n", " 31\n", - " 2\n", - " 0.992\n", + " 1\n", + " -0.289\n", " A\n", - " 0\n", + " 1\n", " B\n", " 0\n", - " 0.984\n", + " 0.084\n", " \n", " \n", " 32\n", " 1\n", - " -0.289\n", + " 0.993\n", " A\n", - " 1\n", + " 2\n", " B\n", " 0\n", - " 0.084\n", + " 0.986\n", " \n", " \n", " 33\n", - " 2\n", - " 0.966\n", - " A\n", " 1\n", + " 1.000\n", " B\n", " 0\n", - " 0.933\n", + " B\n", + " 0\n", + " 1.000\n", " \n", " \n", " 34\n", " 1\n", - " 0.993\n", - " A\n", - " 2\n", + " -0.088\n", + " B\n", + " 1\n", " B\n", " 0\n", - " 0.986\n", + " 0.008\n", " \n", " \n", " 35\n", " 2\n", - " 0.998\n", + " 0.992\n", " A\n", - " 2\n", + " 0\n", " B\n", " 0\n", - " 0.995\n", + " 0.984\n", " \n", " \n", " 36\n", + " 2\n", + " 0.966\n", + " A\n", " 1\n", - " 1.000\n", - " B\n", - " 0\n", " B\n", " 0\n", - " 1.000\n", + " 0.933\n", " \n", " \n", " 37\n", " 2\n", - " 1.000\n", - " B\n", - " 0\n", + " 0.998\n", + " A\n", + " 2\n", " B\n", " 0\n", - " 1.000\n", + " 0.995\n", " \n", " \n", " 38\n", - " 1\n", - " -0.088\n", + " 2\n", + " 1.000\n", " B\n", - " 1\n", + " 0\n", " B\n", " 0\n", - " 0.008\n", + " 1.000\n", " \n", " \n", " 39\n", @@ -669,80 +648,80 @@ " \n", " \n", " 41\n", - " 2\n", - " 0.988\n", + " 1\n", + " 0.998\n", " A\n", - " 0\n", + " 1\n", " B\n", " 1\n", - " 0.976\n", + " 0.996\n", " \n", " \n", " 42\n", " 1\n", - " 0.998\n", + " 0.941\n", " A\n", - " 1\n", + " 2\n", " B\n", " 1\n", - " 0.996\n", + " 0.886\n", " \n", " \n", " 43\n", - " 2\n", - " 0.991\n", - " A\n", " 1\n", + " -0.088\n", + " B\n", + " 0\n", " B\n", " 1\n", - " 0.981\n", + " 0.008\n", " \n", " \n", " 44\n", " 1\n", - " 0.941\n", - " A\n", - " 2\n", + " 1.000\n", " B\n", " 1\n", - " 0.886\n", + " B\n", + " 1\n", + " 1.000\n", " \n", " \n", " 45\n", " 2\n", - " 0.996\n", + " 0.988\n", " A\n", - " 2\n", + " 0\n", " B\n", " 1\n", - " 0.993\n", + " 0.976\n", " \n", " \n", " 46\n", + " 2\n", + " 0.991\n", + " A\n", " 1\n", - " -0.088\n", - " B\n", - " 0\n", " B\n", " 1\n", - " 0.008\n", + " 0.981\n", " \n", " \n", " 47\n", " 2\n", - " 1.000\n", - " B\n", - " 0\n", + " 0.996\n", + " A\n", + " 2\n", " B\n", " 1\n", - " 1.000\n", + " 0.993\n", " \n", " \n", " 48\n", - " 1\n", + " 2\n", " 1.000\n", " B\n", - " 1\n", + " 0\n", " B\n", " 1\n", " 1.000\n", @@ -764,54 +743,54 @@ "text/plain": [ " epitope correlation library_1 replicate_1 library_2 replicate_2 r2\n", "0 1 1.000 A 0 A 0 1.000\n", - "1 2 1.000 A 0 A 0 1.000\n", - "2 1 0.877 A 1 A 0 0.770\n", - "3 2 1.000 A 1 A 0 0.999\n", - "4 1 0.997 A 2 A 0 0.994\n", - "5 2 0.992 A 2 A 0 0.984\n", - "6 1 0.999 B 0 A 0 0.998\n", - "7 2 0.992 B 0 A 0 0.984\n", - "8 1 0.893 B 1 A 0 0.798\n", + "1 1 0.877 A 1 A 0 0.770\n", + "2 1 0.997 A 2 A 0 0.994\n", + "3 1 0.999 B 0 A 0 0.998\n", + "4 1 0.893 B 1 A 0 0.798\n", + "5 2 1.000 A 0 A 0 1.000\n", + "6 2 1.000 A 1 A 0 0.999\n", + "7 2 0.992 A 2 A 0 0.984\n", + "8 2 0.992 B 0 A 0 0.984\n", "9 2 0.988 B 1 A 0 0.976\n", "10 1 0.877 A 0 A 1 0.770\n", - "11 2 1.000 A 0 A 1 0.999\n", - "12 1 1.000 A 1 A 1 1.000\n", - "13 2 1.000 A 1 A 1 1.000\n", - "14 1 0.929 A 2 A 1 0.863\n", - "15 2 0.999 A 2 A 1 0.998\n", - "16 1 -0.289 B 0 A 1 0.084\n", - "17 2 0.966 B 0 A 1 0.933\n", - "18 1 0.998 B 1 A 1 0.996\n", + "11 1 1.000 A 1 A 1 1.000\n", + "12 1 0.929 A 2 A 1 0.863\n", + "13 1 -0.289 B 0 A 1 0.084\n", + "14 1 0.998 B 1 A 1 0.996\n", + "15 2 1.000 A 0 A 1 0.999\n", + "16 2 1.000 A 1 A 1 1.000\n", + "17 2 0.999 A 2 A 1 0.998\n", + "18 2 0.966 B 0 A 1 0.933\n", "19 2 0.991 B 1 A 1 0.981\n", "20 1 0.997 A 0 A 2 0.994\n", - "21 2 0.992 A 0 A 2 0.984\n", - "22 1 0.929 A 1 A 2 0.863\n", - "23 2 0.999 A 1 A 2 0.998\n", - "24 1 1.000 A 2 A 2 1.000\n", - "25 2 1.000 A 2 A 2 1.000\n", - "26 1 0.993 B 0 A 2 0.986\n", - "27 2 0.998 B 0 A 2 0.995\n", - "28 1 0.941 B 1 A 2 0.886\n", + "21 1 0.929 A 1 A 2 0.863\n", + "22 1 1.000 A 2 A 2 1.000\n", + "23 1 0.993 B 0 A 2 0.986\n", + "24 1 0.941 B 1 A 2 0.886\n", + "25 2 0.992 A 0 A 2 0.984\n", + "26 2 0.999 A 1 A 2 0.998\n", + "27 2 1.000 A 2 A 2 1.000\n", + "28 2 0.998 B 0 A 2 0.995\n", "29 2 0.996 B 1 A 2 0.993\n", "30 1 0.999 A 0 B 0 0.998\n", - "31 2 0.992 A 0 B 0 0.984\n", - "32 1 -0.289 A 1 B 0 0.084\n", - "33 2 0.966 A 1 B 0 0.933\n", - "34 1 0.993 A 2 B 0 0.986\n", - "35 2 0.998 A 2 B 0 0.995\n", - "36 1 1.000 B 0 B 0 1.000\n", - "37 2 1.000 B 0 B 0 1.000\n", - "38 1 -0.088 B 1 B 0 0.008\n", + "31 1 -0.289 A 1 B 0 0.084\n", + "32 1 0.993 A 2 B 0 0.986\n", + "33 1 1.000 B 0 B 0 1.000\n", + "34 1 -0.088 B 1 B 0 0.008\n", + "35 2 0.992 A 0 B 0 0.984\n", + "36 2 0.966 A 1 B 0 0.933\n", + "37 2 0.998 A 2 B 0 0.995\n", + "38 2 1.000 B 0 B 0 1.000\n", "39 2 1.000 B 1 B 0 1.000\n", "40 1 0.893 A 0 B 1 0.798\n", - "41 2 0.988 A 0 B 1 0.976\n", - "42 1 0.998 A 1 B 1 0.996\n", - "43 2 0.991 A 1 B 1 0.981\n", - "44 1 0.941 A 2 B 1 0.886\n", - "45 2 0.996 A 2 B 1 0.993\n", - "46 1 -0.088 B 0 B 1 0.008\n", - "47 2 1.000 B 0 B 1 1.000\n", - "48 1 1.000 B 1 B 1 1.000\n", + "41 1 0.998 A 1 B 1 0.996\n", + "42 1 0.941 A 2 B 1 0.886\n", + "43 1 -0.088 B 0 B 1 0.008\n", + "44 1 1.000 B 1 B 1 1.000\n", + "45 2 0.988 A 0 B 1 0.976\n", + "46 2 0.991 A 1 B 1 0.981\n", + "47 2 0.996 A 2 B 1 0.993\n", + "48 2 1.000 B 0 B 1 1.000\n", "49 2 1.000 B 1 B 1 1.000" ] }, @@ -847,13 +826,6 @@ "execution_count": 4, "id": "fa1cdd44-0748-4a57-b56d-1d0cfc6ba073", "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:14.822592Z", - "iopub.status.busy": "2023-07-19T19:40:14.822361Z", - "iopub.status.idle": "2023-07-19T19:40:14.992389Z", - "shell.execute_reply": "2023-07-19T19:40:14.991187Z", - "shell.execute_reply.started": "2023-07-19T19:40:14.822572Z" - }, "tags": [] }, "outputs": [ @@ -862,28 +834,28 @@ "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ @@ -955,13 +927,6 @@ "execution_count": 5, "id": "250f75fb-b87c-4e1b-9034-15483d7c7e8d", "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:14.997044Z", - "iopub.status.busy": "2023-07-19T19:40:14.996664Z", - "iopub.status.idle": "2023-07-19T19:40:15.011681Z", - "shell.execute_reply": "2023-07-19T19:40:15.010970Z", - "shell.execute_reply.started": "2023-07-19T19:40:14.997015Z" - }, "tags": [] }, "outputs": [ @@ -1095,13 +1060,6 @@ "execution_count": 6, "id": "7ef29b17-be20-4f68-a794-ef6d646898fe", "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:15.014876Z", - "iopub.status.busy": "2023-07-19T19:40:15.014631Z", - "iopub.status.idle": "2023-07-19T19:40:15.032342Z", - "shell.execute_reply": "2023-07-19T19:40:15.031665Z", - "shell.execute_reply.started": "2023-07-19T19:40:15.014854Z" - }, "tags": [] }, "outputs": [ @@ -1171,13 +1129,6 @@ "execution_count": 7, "id": "2dc2eab2-d846-488d-aa0d-69cc9c0d621f", "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:15.035416Z", - "iopub.status.busy": "2023-07-19T19:40:15.035163Z", - "iopub.status.idle": "2023-07-19T19:40:15.127505Z", - "shell.execute_reply": "2023-07-19T19:40:15.126569Z", - "shell.execute_reply.started": "2023-07-19T19:40:15.035397Z" - }, "tags": [] }, "outputs": [ @@ -1186,28 +1137,28 @@ "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ @@ -1278,43 +1229,35 @@ "cell_type": "code", "execution_count": 8, "id": "5e784d25-67cc-49e7-be35-3689e4c2128d", - "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:15.128820Z", - "iopub.status.busy": "2023-07-19T19:40:15.128502Z", - "iopub.status.idle": "2023-07-19T19:40:15.209162Z", - "shell.execute_reply": "2023-07-19T19:40:15.208389Z", - "shell.execute_reply.started": "2023-07-19T19:40:15.128799Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ @@ -1386,13 +1329,6 @@ "execution_count": 9, "id": "4520c763-f8da-45cc-9987-bcbb2214f85e", "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:15.210452Z", - "iopub.status.busy": "2023-07-19T19:40:15.210162Z", - "iopub.status.idle": "2023-07-19T19:40:15.371701Z", - "shell.execute_reply": "2023-07-19T19:40:15.371100Z", - "shell.execute_reply.started": "2023-07-19T19:40:15.210434Z" - }, "tags": [] }, "outputs": [ @@ -1930,13 +1866,6 @@ "execution_count": 10, "id": "0e88ba97-d25c-4d5a-a6f2-469bd90d39d7", "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:15.373077Z", - "iopub.status.busy": "2023-07-19T19:40:15.372746Z", - "iopub.status.idle": "2023-07-19T19:40:15.430205Z", - "shell.execute_reply": "2023-07-19T19:40:15.429502Z", - "shell.execute_reply.started": "2023-07-19T19:40:15.373058Z" - }, "tags": [] }, "outputs": [ @@ -2159,13 +2088,6 @@ "execution_count": 11, "id": "52b6b660-a2fc-461d-bf2f-d4aebb624314", "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:15.431276Z", - "iopub.status.busy": "2023-07-19T19:40:15.431010Z", - "iopub.status.idle": "2023-07-19T19:40:16.700983Z", - "shell.execute_reply": "2023-07-19T19:40:16.700405Z", - "shell.execute_reply.started": "2023-07-19T19:40:15.431258Z" - }, "tags": [] }, "outputs": [ @@ -2174,28 +2096,28 @@ "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ @@ -2267,13 +2189,6 @@ "execution_count": 12, "id": "957a1c96-80e2-4880-8c34-0a31eb8166a7", "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:16.701913Z", - "iopub.status.busy": "2023-07-19T19:40:16.701722Z", - "iopub.status.idle": "2023-07-19T19:40:16.774220Z", - "shell.execute_reply": "2023-07-19T19:40:16.773536Z", - "shell.execute_reply.started": "2023-07-19T19:40:16.701896Z" - }, "tags": [] }, "outputs": [ @@ -2720,13 +2635,6 @@ "execution_count": 13, "id": "a8ba5f75-a935-4342-a867-931691e54e47", "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:16.775317Z", - "iopub.status.busy": "2023-07-19T19:40:16.775019Z", - "iopub.status.idle": "2023-07-19T19:40:16.862604Z", - "shell.execute_reply": "2023-07-19T19:40:16.861893Z", - "shell.execute_reply.started": "2023-07-19T19:40:16.775299Z" - }, "tags": [] }, "outputs": [ @@ -3238,13 +3146,6 @@ "execution_count": 14, "id": "688be46d-8d22-45b8-9f4a-3c3df3bc2f05", "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:16.863702Z", - "iopub.status.busy": "2023-07-19T19:40:16.863410Z", - "iopub.status.idle": "2023-07-19T19:40:18.270304Z", - "shell.execute_reply": "2023-07-19T19:40:18.269314Z", - "shell.execute_reply.started": "2023-07-19T19:40:16.863684Z" - }, "tags": [] }, "outputs": [ @@ -3253,28 +3154,28 @@ "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ @@ -3346,13 +3247,6 @@ "execution_count": 15, "id": "17b2ad0d-0399-4b0d-8282-3400a998d3ef", "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:18.271601Z", - "iopub.status.busy": "2023-07-19T19:40:18.271384Z", - "iopub.status.idle": "2023-07-19T19:40:18.325278Z", - "shell.execute_reply": "2023-07-19T19:40:18.324489Z", - "shell.execute_reply.started": "2023-07-19T19:40:18.271584Z" - }, "tags": [] }, "outputs": [], @@ -3364,15 +3258,7 @@ "cell_type": "code", "execution_count": 16, "id": "d21637c6-ebb8-481b-9a9e-9c313b4a90e3", - "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:18.326490Z", - "iopub.status.busy": "2023-07-19T19:40:18.326199Z", - "iopub.status.idle": "2023-07-19T19:40:18.367369Z", - "shell.execute_reply": "2023-07-19T19:40:18.366665Z", - "shell.execute_reply.started": "2023-07-19T19:40:18.326472Z" - } - }, + "metadata": {}, "outputs": [ { "data": { @@ -3446,13 +3332,6 @@ "execution_count": 17, "id": "c9cd79cc-295a-461c-bcf0-adb7e57e12ca", "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:18.368387Z", - "iopub.status.busy": "2023-07-19T19:40:18.368204Z", - "iopub.status.idle": "2023-07-19T19:40:18.474072Z", - "shell.execute_reply": "2023-07-19T19:40:18.473437Z", - "shell.execute_reply.started": "2023-07-19T19:40:18.368371Z" - }, "tags": [] }, "outputs": [ @@ -3461,28 +3340,28 @@ "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ @@ -3546,13 +3425,6 @@ "execution_count": 18, "id": "8f31165f-71de-44d5-89ab-8aac85a41300", "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:18.475169Z", - "iopub.status.busy": "2023-07-19T19:40:18.474976Z", - "iopub.status.idle": "2023-07-19T19:40:18.488034Z", - "shell.execute_reply": "2023-07-19T19:40:18.487397Z", - "shell.execute_reply.started": "2023-07-19T19:40:18.475152Z" - }, "tags": [] }, "outputs": [ @@ -3621,43 +3493,35 @@ "cell_type": "code", "execution_count": 19, "id": "e45b077a-e0f5-4d8a-a0a4-80eaf98cbe69", - "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:18.489154Z", - "iopub.status.busy": "2023-07-19T19:40:18.488854Z", - "iopub.status.idle": "2023-07-19T19:40:18.563482Z", - "shell.execute_reply": "2023-07-19T19:40:18.562766Z", - "shell.execute_reply.started": "2023-07-19T19:40:18.489129Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ @@ -3720,15 +3584,7 @@ "cell_type": "code", "execution_count": 20, "id": "e12a5c30-7179-4279-9e8c-031b04ed8d22", - "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:18.566961Z", - "iopub.status.busy": "2023-07-19T19:40:18.566657Z", - "iopub.status.idle": "2023-07-19T19:40:18.598467Z", - "shell.execute_reply": "2023-07-19T19:40:18.597557Z", - "shell.execute_reply.started": "2023-07-19T19:40:18.566943Z" - } - }, + "metadata": {}, "outputs": [ { "data": { @@ -3916,43 +3772,35 @@ "cell_type": "code", "execution_count": 21, "id": "0a899811-e216-4c47-97c5-c412162f9500", - "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:18.599808Z", - "iopub.status.busy": "2023-07-19T19:40:18.599424Z", - "iopub.status.idle": "2023-07-19T19:40:19.957972Z", - "shell.execute_reply": "2023-07-19T19:40:19.957274Z", - "shell.execute_reply.started": "2023-07-19T19:40:18.599781Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ @@ -4015,15 +3863,7 @@ "cell_type": "code", "execution_count": 22, "id": "1eda7a75-87b0-4a40-800a-31d2a6f06c60", - "metadata": { - "execution": { - "iopub.execute_input": "2023-07-19T19:40:19.960686Z", - "iopub.status.busy": "2023-07-19T19:40:19.960158Z", - "iopub.status.idle": "2023-07-19T19:40:20.006991Z", - "shell.execute_reply": "2023-07-19T19:40:20.006277Z", - "shell.execute_reply.started": "2023-07-19T19:40:19.960650Z" - } - }, + "metadata": {}, "outputs": [ { "data": { @@ -4553,7 +4393,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.4" + "version": "3.11.7" } }, "nbformat": 4,