{ "cells": [ { "cell_type": "markdown", "id": "c000", "metadata": {}, "source": [ "# Reproducing across laboratories\n", "\n", "A screen at scale comes from more than one laboratory. This page uses JUMP-Target-2, the plate the JUMP\n", "consortium {cite:p}`Chandrasekaran_2023` ran at every participating laboratory, so any difference between two\n", "copies of it is technical.\n", "\n", "JUMP calls a participating laboratory a source, and this page uses that column throughout: `Metadata_Source`,\n", "with values from `source_2` to `source_13`. In a CellProfiler export, `Metadata_Site` is a field of view inside\n", "a well, which this page does not use." ] }, { "cell_type": "code", "execution_count": 1, "id": "c001", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:33:06.594930Z", "iopub.status.busy": "2026-10-21T00:33:06.594557Z", "iopub.status.idle": "2026-10-21T00:33:27.700674Z", "shell.execute_reply": "2026-10-21T00:33:27.698850Z" } }, "outputs": [], "source": [ "import warnings\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "import scanpy as sc\n", "\n", "import mantispy as mt\n", "\n", "warnings.formatwarning = lambda message, category, *a, **k: f\"{category.__name__}: {message}\\n\"" ] }, { "cell_type": "markdown", "id": "c002", "metadata": {}, "source": [ "## JUMP-Target-2\n", "\n", "`mt.ds.jump_target2()` downloads one TARGET2 plate from each of the eleven sources that ran it,\n", "and joins the JUMP annotation onto them. The plate map is identical at every source, and source_9\n", "runs it four times over on a 1536-well plate; only the laboratory differs." ] }, { "cell_type": "code", "execution_count": 2, "id": "c003", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:33:27.704730Z", "iopub.status.busy": "2026-10-21T00:33:27.704398Z", "iopub.status.idle": "2026-10-21T00:33:28.352379Z", "shell.execute_reply": "2026-10-21T00:33:28.351216Z" } }, "outputs": [ { "data": { "text/plain": [ "{'shape': (5374, 3616),\n", " 'sources': {'source_9': 1536,\n", " 'source_10': 384,\n", " 'source_13': 384,\n", " 'source_3': 384,\n", " 'source_4': 384,\n", " 'source_5': 384,\n", " 'source_6': 384,\n", " 'source_7': 384,\n", " 'source_8': 384,\n", " 'source_11': 383,\n", " 'source_2': 383},\n", " 'perturbations': 302,\n", " 'control wells': 898}" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "jump = mt.ds.jump_target2()\n", "{\n", " \"shape\": jump.shape,\n", " \"sources\": jump.obs[\"Metadata_Source\"].value_counts().to_dict(),\n", " \"perturbations\": int(jump.obs[\"Metadata_Perturbation\"].nunique()),\n", " \"control wells\": int(jump.obs[\"Metadata_Control\"].sum()),\n", "}" ] }, { "cell_type": "code", "execution_count": 3, "id": "fig023", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:33:28.355816Z", "iopub.status.busy": "2026-10-21T00:33:28.355658Z", "iopub.status.idle": "2026-10-21T00:33:28.495713Z", "shell.execute_reply": "2026-10-21T00:33:28.494766Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "counts = jump.obs[\"Metadata_Source\"].value_counts().sort_values()\n", "fig, ax = plt.subplots(figsize=(5, 4))\n", "ax.barh(counts.index.astype(str), counts.to_numpy(), color=\"steelblue\")\n", "ax.set_xlabel(\"wells\")\n", "ax.set_title(\"Wells per source\")\n", "fig.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "fig024", "metadata": {}, "source": [ "Wells contributed by each source. source_9 has 1536 (a 1536-well plate); the others have about 384 each." ] }, { "cell_type": "markdown", "id": "c004", "metadata": {}, "source": [ "The perturbation annotation comes from the JUMP metadata repository, joined by `mt.io.read_jump`; see\n", "[Published profiles and JUMP](../tutorials/data/profiles.ipynb).\n", "\n", "## The same pipeline\n", "\n", "The recipe does not change for data from eleven laboratories." ] }, { "cell_type": "code", "execution_count": 4, "id": "c005", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:33:28.499159Z", "iopub.status.busy": "2026-10-21T00:33:28.499011Z", "iopub.status.idle": "2026-10-21T00:33:30.841466Z", "shell.execute_reply": "2026-10-21T00:33:30.839838Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: 111 of 3616 features have no spread in at least one group of 'Metadata_Plate' among the rows selected by reference='negcon'. Adding epsilon=1e-18 to their scale multiplies them by up to 1e18, so they dominate every distance downstream. They are flagged in var['degenerate_scale'], and pp.feature_select drops them by default; to drop them now, adata = adata[:, ~adata.var['degenerate_scale']].copy(). A variance or outlier cut does not catch a feature that varies across a plate but is constant among its control wells; the flag does.\n" ] }, { "data": { "text/plain": [ "{'features kept': 603,\n", " 'control wells per source': {'source_10': 64,\n", " 'source_11': 64,\n", " 'source_13': 64,\n", " 'source_2': 65,\n", " 'source_3': 64,\n", " 'source_4': 64,\n", " 'source_5': 64,\n", " 'source_6': 65,\n", " 'source_7': 64,\n", " 'source_8': 64,\n", " 'source_9': 256}}" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mt.pp.normalize(jump, method=\"mad_robustize\", by=\"Metadata_Plate\", reference=\"negcon\")\n", "mt.pp.feature_select(jump, na_cutoff=0.0)\n", "jump = mt.pp.subset_features(jump)\n", "\n", "{\n", " \"features kept\": jump.n_vars,\n", " \"control wells per source\": jump.obs.groupby(\"Metadata_Source\", observed=True)[\"Metadata_Control\"].sum().to_dict(),\n", "}" ] }, { "cell_type": "code", "execution_count": 5, "id": "fig021", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:33:30.845241Z", "iopub.status.busy": "2026-10-21T00:33:30.844831Z", "iopub.status.idle": "2026-10-21T00:33:30.978231Z", "shell.execute_reply": "2026-10-21T00:33:30.976947Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "controls = jump.obs.groupby(\"Metadata_Source\", observed=True)[\"Metadata_Control\"].sum().sort_values()\n", "fig, ax = plt.subplots(figsize=(5, 4))\n", "ax.barh(controls.index.astype(str), controls.to_numpy(), color=\"steelblue\")\n", "ax.axvline(jump.n_vars, color=\"indianred\", ls=\"--\", lw=1, label=f\"{jump.n_vars} features\")\n", "ax.set_xlabel(\"control wells\")\n", "ax.set_title(\"Control wells per source\")\n", "ax.legend(fontsize=8)\n", "fig.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "fig022", "metadata": {}, "source": [ "Control wells per source (bars) against the number of features kept (dashed line). Every source has fewer control wells than features." ] }, { "cell_type": "markdown", "id": "c006", "metadata": {}, "source": [ "## The batch metrics\n", "\n", "`mt.metrics.evaluate_integration` runs the integration benchmark over each representation and draws it as a\n", "heatmap, one row per representation, with higher better in every cell. It returns the numeric results frame too." ] }, { "cell_type": "markdown", "id": "gen8228", "metadata": {}, "source": [ "The benchmark comes from [scib-metrics](https://scib-metrics.readthedocs.io), imported through\n", "`pip install \"mantispy[integration,map]\"` rather than reimplemented; mantispy reads its public results and\n", "renders the heatmap. The columns group into blocks: bio conservation (cLISI is how label-pure a well's\n", "neighbourhood is), batch correction (iLISI is how batch-mixed it is, PCR comparison how much less of the variance\n", "the batch explains after correction), and the aggregate scores. With\n", "[copairs](https://github.com/cytomining/copairs) also installed the heatmap gains a retrieval block, the\n", "cross-replicate mean average precision (mAP), and a second aggregate column beside scib-metrics' `Total`:\n", "mantispy's `Total+mAP`, which folds mAP into the bio group. Without scib-metrics it draws the mAP column alone,\n", "and with neither it raises and points to `mt.metrics.batch_variance_explained` (stack several covariates) or\n", "`mt.metrics.pc_regression` (a single covariate) for a native batch-variance check." ] }, { "cell_type": "code", "execution_count": 6, "id": "c007", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:33:30.980318Z", "iopub.status.busy": "2026-10-21T00:33:30.980134Z", "iopub.status.idle": "2026-10-21T00:36:14.734121Z", "shell.execute_reply": "2026-10-21T00:36:14.733243Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sc.pp.pca(jump, n_comps=30)\n", "mt.metrics.evaluate_integration(jump, label_key=\"Metadata_Perturbation\", batch_key=\"Metadata_Source\");" ] }, { "cell_type": "code", "execution_count": 7, "id": "c008", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:36:14.737885Z", "iopub.status.busy": "2026-10-21T00:36:14.737489Z", "iopub.status.idle": "2026-10-21T00:36:21.408092Z", "shell.execute_reply": "2026-10-21T00:36:21.406880Z" } }, "outputs": [ { "data": { "text/html": [ " \n", " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mt.pl.batch_variance(jump, keys=[\"Metadata_Source\", \"Metadata_Perturbation\"]);" ] }, { "cell_type": "markdown", "id": "c009", "metadata": {}, "source": [ "## Cross-source retrieval\n", "\n", "Batch metrics ask whether the sites mix. A screen needs to know whether the same compound, run\n", "at different sites, produces the same profile. That is a retrieval task, with `pos_sameby` set to the\n", "perturbation and `pos_diffby` to the source.\n", "\n", "The next cell computes the baseline, three corrections and an ICC feature filter." ] }, { "cell_type": "code", "execution_count": 8, "id": "c010", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:36:21.411354Z", "iopub.status.busy": "2026-10-21T00:36:21.411137Z", "iopub.status.idle": "2026-10-21T00:37:42.613393Z", "shell.execute_reply": "2026-10-21T00:37:42.612096Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: sphering is fitted on 64 reference rows for 603 features. With fewer rows than features the covariance is singular and the transform amplifies noise. Select fewer features first, or use more controls.\n", "UserWarning: sphering is fitted on 65 reference rows for 603 features. With fewer rows than features the covariance is singular and the transform amplifies noise. Select fewer features first, or use more controls.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: sphering is fitted on 256 reference rows for 603 features. With fewer rows than features the covariance is singular and the transform amplifies noise. Select fewer features first, or use more controls.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=500 no p-value can fall below 1/501, so the correction over 301 groups calls none of them unless at least 13 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=500 no p-value can fall below 1/501, so the correction over 301 groups calls none of them unless at least 13 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=500 no p-value can fall below 1/501, so the correction over 301 groups calls none of them unless at least 13 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=500 no p-value can fall below 1/501, so the correction over 301 groups calls none of them unless at least 13 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=500 no p-value can fall below 1/501, so the correction over 301 groups calls none of them unless at least 13 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
pipelinefeaturescross-source mAPsignificant of 301
0per-plate normalize only6030.02179
1+ sphere per source6030.021117
2+ sphere pooled controls6030.0080
3+ regress out source6030.0040
4+ keep ICC > 0.22530.028122
\n", "
" ], "text/plain": [ " pipeline features cross-source mAP significant of 301\n", "0 per-plate normalize only 603 0.021 79\n", "1 + sphere per source 603 0.021 117\n", "2 + sphere pooled controls 603 0.008 0\n", "3 + regress out source 603 0.004 0\n", "4 + keep ICC > 0.2 253 0.028 122" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def cross_source_map(adata, use_rep=None):\n", " \"\"\"Mean average precision for retrieving a compound across sites.\"\"\"\n", " treated = adata[~adata.obs[\"Metadata_Control\"].to_numpy()].copy()\n", " mt.tl.map(\n", " treated,\n", " pos_sameby=[\"Metadata_Perturbation\"],\n", " pos_diffby=[\"Metadata_Source\"],\n", " neg_diffby=[\"Metadata_Perturbation\"],\n", " use_rep=use_rep,\n", " null_size=500,\n", " seed=0,\n", " )\n", " table = treated.uns[\"mantispy\"][\"map\"]\n", " return round(float(table[\"score\"].mean()), 3), int(table[\"is_significant\"].sum())\n", "\n", "\n", "n_treated = int(jump.obs.loc[~jump.obs[\"Metadata_Control\"].to_numpy(), \"Metadata_Perturbation\"].nunique())\n", "variants = {\"per-plate normalize only\": jump}\n", "\n", "per_source = jump.copy()\n", "mt.pp.sphere(per_source, method=\"ZCA-cor\", reference=\"negcon\", by=\"Metadata_Source\")\n", "variants[\"+ sphere per source\"] = per_source\n", "\n", "pooled = jump.copy()\n", "mt.pp.sphere(pooled, method=\"ZCA-cor\", reference=\"negcon\")\n", "variants[\"+ sphere pooled controls\"] = pooled\n", "\n", "regressed = jump.copy()\n", "mt.pp.regress_out(regressed, keys=[\"Metadata_Source\"], by=None, reference=None)\n", "variants[\"+ regress out source\"] = regressed\n", "\n", "reproducible = jump.copy()\n", "mt.pp.feature_reproducibility(reproducible, by=\"Metadata_Perturbation\", min_icc=0.2)\n", "reproducible = reproducible[:, reproducible.var[\"icc_selected\"].to_numpy()].copy()\n", "variants[\"+ keep ICC > 0.2\"] = reproducible\n", "\n", "map_variants = pd.DataFrame(\n", " [\n", " {\"pipeline\": name, \"features\": adata.n_vars, \"cross-source mAP\": score, f\"significant of {n_treated}\": count}\n", " for name, adata in variants.items()\n", " for score, count in [cross_source_map(adata)]\n", " ]\n", ")\n", "map_variants" ] }, { "cell_type": "code", "execution_count": 9, "id": "fig019", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:37:42.616987Z", "iopub.status.busy": "2026-10-21T00:37:42.616826Z", "iopub.status.idle": "2026-10-21T00:37:42.737815Z", "shell.execute_reply": "2026-10-21T00:37:42.736705Z" } }, "outputs": [ { "data": { "image/png": "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qlSpfNXP7gI2uxdJlfmyqs6pzSupAABNTc1c79tQ9bseVK1XUEkFAOjq6mZbrq6urrRPurq6OdYlIiIios+HU6GIiIiIiEg2JhbFVJ8+fXD//v3CDoOIiIiICOBUqOKLjx4kIiIioqKEIxZERERERCQbEwsiIiIiIpKNiQUREREREcnGxIKIiIiIiGRjYkFERERERLIxsSAiIiIiItmYWBARERERkWxMLIiIiIiISDYmFkREREREJBsTCyIiIiIiko2JBRERERERycbEgoiIiIiIZGNiQUREREREsjGxICIiIiIi2RSFHQBRUXVkdkcYGBgUdhhERDm6PHkrz1NEVGRwxIKIiIiIiGRjYkFERERERLIxsSAiIiIiItmYWBARERERkWxMLIiIiIiISDYmFkREREREJBsTCyIiIiIiko2JBRERERERycbEgoiIiIiIZGNiQUREREREsjGxICIiIiIi2ZhYEBERERGRbIrCDoCoqOrx50kodEoWdhhKTs53KuwQiIiIiLLFEQsiIiIiIpKNiQUREREREcnGxIKIiIiIiGRjYkFERERERLIxsSAiIiIiItmYWBARERERkWxMLIiIiIiISDYmFkREREREJBsTCyIiIiIiko2JBRERERERycbEgoiIiIiIZGNiQUREREREsjGxICIiIiIi2ZhYEBERERGRbEwsiIiIiIhINiYWREREREQkGxMLIiIiIiKSjYkFERERERHJxsSClAghcPToUbx586awQyEiIiKiYqTYJhZPnz7FxYsXCzuMr05aWhp69OgBf3//wg6FiIiIiIqRYptYnD59GvPmzVO5fnBwMM6ePYu0tDT4+vrCzc0NKSkp0np/f394enri4cOH2bZ/9+4dzp49C19fXyQmJuLGjRu4deuWtP7y5cu4f/8+YmNj4eXlhUuXLknrkpKScPHiRXh5eeH169dZ+hZCwM/PD6dPn8bLly9VXpedmJgYnDlzBl5eXoiPj8+yD0ePHkVCQoJS+bFjx/Dq1SsAgIeHBwDg4sWLOHr0KM6ePZvtdvKKS24caWlpOHr0KKKiovD06VN4eHjgyZMnUt3IyEicOXMGN27cQFpaWpbtR0RE4NSpU7h69SoSExPzPG5EREREJI+isAP4Uo4fP47ff/8dVapUQUpKCipUqIB27dohJiYGvXr1QnBwMGrWrAl/f380bNgQ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a9egr6+f67rsbNu2DQsWLMDly5dx/fp1LF++HKtXr1aqs337dgwfPhynT59GREQEPD090atXL5iamkp19u7di+rVq2Pfvn04cuRIlu3kFVdBxKFQKNCtWzcYGRkptTM0NMTVq1cxdOhQXLhwAQ8ePMD69eulpMXAwACXL1/G9OnTcf36dZw7dw61atXC1atXsz1mRERERFQw1MTHE90pW7GxsTAwMJCWY2JiYGlpieXLl2Po0KGFGhsVvNjYWBgaGsJ+7n4odEoWdjhKTs53KuwQiOgTZJxXYmJilP6fFJX+iOi/raDOKf/pqVCqun37Nn799Vf07t0baWlp2LBhA8qXL48+ffoUdmhEREREREVCsZ0K9SW1atUKs2fPxu3bt3H16lUMGzYM165dQ4kSJQo7NCIiIiKiIoEjFiqyt7eHvb19YYdBRERERFQkccSCiIiIiIhkY2JBRERERESyMbEgIiIiIiLZmFgQEREREZFsTCyIiIiIiEg2JhZERERERCQbEwsiIiIiIpKNiQUREREREcnGxIKIiIiIiGRjYkFERERERLIxsSAiIiIiItmYWBARERERkWxMLIiIiIiISDYmFkREREREJBsTCyIiIiIikk1R2AEQFVVHZneEgYFBYYdBREREVCxwxIKIiIiIiGRjYkFERERERLIxsSAiIiIiItmYWBARERERkWxMLIiIiIiISDYmFkREREREJBsTCyIiIiIiko2JBRERERERycbEgoiIiIiIZGNiQUREREREsjGxICIiIiIi2ZhYEBERERGRbIrCDoCoqOrx50kodEoWdhjFwsn5ToUdAhERERUyjlgQEREREZFsTCyIiIiIiEg2JhZERERERCQbEwsiIiIiIpKNiQUREREREcnGxIKIiIiIiGRjYkFERERERLIxsSAiIiIiItmYWBARERERkWxMLIiIiIiISDYmFkREREREJBsTCyIiIiIiko2JBRERERERycbEgoiIiIiIZGNiQUREREREsjGxICIiIiIi2ZhYEBERERGRbMUqsbh9+zaCgoIKO4xCc+7cOURFRcnux8fHB5GRkQUSU1Hx5s0b+Pj4FHYYRERERP9ZxSqxmD59Ov7555/CDqPQ2NnZ4caNG7L76dSpE65cuVIgMX0qIQTOnTuH6OjoAunv4sWL6NSpU4H0RURERET5JyuxuHv3Lp4/f15w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ypYtCw8PD6W/HWNjY7Rq1Upa9vDwwPr167Fjxw6oq6tjyJAh+P7773PcZyIiIiKSR03k9C10X1j79u3RuHFj/PHHH4Udisri4+Ohr6+PK1euSN/xQMVfbGwsDA0NYT93PxQ6ud+4T//n5Hynwg6BqEjLOK/ExMSofN/gl+yPiP7bCuqc8sXusSAiIiIioq9XkUkscpqeVJTlNOWHiIiIiOi/5ovdvJ2Xv/76q7BDyLcSJUp80uNpiYiIiIi+NkVmxIKIiIiIiIovJhZERERERCQbEwsiIiIiIpKNiQUREREREcnGxIKIiIiIiGRjYkFERERERLIxsSAiIiIiItmYWBARERERkWxMLIiIiIiISDYmFkREREREJBsTCyIiIiIiko2JBRERERERycbEgoiIiIiIZGNiQUREREREsjGxICIiIiIi2RSFHQBRUXVkdkcYGBgUdhhERERExQJHLIiIiIiISDYmFkREREREJBsTCyIiIiIiko2JBRERERERycbEgoiIiIiIZGNiQUREREREsjGxICIiIiIi2ZhYEBERERGRbEwsiIiIiIhINiYWREREREQkGxMLIiIiIiKSTVHYARAVVT3+PAmFTsnCDoOoyDg536mwQ6BMWqweAQ0dzcIOg4i+gNszXAo7hDxxxIKIiIiIiGRjYkFERERERLIxsSAiIiIiItmYWBARERERkWxMLIiIiIiISDYmFkREREREJBsTCyIiIiIiko2JBRERERERycbEgoiIiIiIZGNiQUREREREsjGxICIiIiIi2ZhYEBERERGRbEwsiIiIiIhINiYWREREREQkGxMLIiIiIiKSjYkFERERERHJxsSCiIiIiIhkY2JBRERERESyMbH4BK6urrhy5Uphh0FEREREVGQwsfgEa9asgaura2GHQURERERUZHwVicXx48dx+/btwg6DiIiIiOg/S1HYARSEv//+G+3bt0e9evVUbnPlyhUEBgaiQoUKaNOmDXR0dIAP05xMTExQsWJF/Pvvv0hLS0Pnzp1haGiYpY+XL1/i8uXLSEtLQ7t27WBsbKy0PiUlBWfPnsXz589RtWpVtGnTBhoaGtL6j7d17tw5GBgYoHv37gCAiIgInD17FsnJyWjQoAHq1q2b476kpKRgw4YN6NOnD0JDQ+Hv74/y5cujQ4cOUFNTU6qbW78f9xMUFAR/f380bdo0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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "order = map_variants.set_index(\"pipeline\")\n", "sig_col = [c for c in order.columns if c.startswith(\"significant\")][0]\n", "fig, axes = plt.subplots(1, 2, figsize=(8, 4), sharey=True)\n", "axes[0].barh(order.index, order[\"cross-source mAP\"], color=\"steelblue\")\n", "axes[0].set_xlabel(\"cross-source mAP\")\n", "axes[1].barh(order.index, order[sig_col], color=\"seagreen\")\n", "axes[1].set_xlabel(sig_col)\n", "fig.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "fig020", "metadata": {}, "source": [ "Left: cross-source mAP per pipeline. Right: compounds significant of 301. Sphering pooled controls and regressing out source give the lowest values; keeping ICC > 0.2 gives the highest." ] }, { "cell_type": "code", "execution_count": 10, "id": "c011", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:37:42.740875Z", "iopub.status.busy": "2026-10-21T00:37:42.740734Z", "iopub.status.idle": "2026-10-21T00:38:07.913407Z", "shell.execute_reply": "2026-10-21T00:38:07.912580Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# The batch metrics again, after sphering per source.\n", "sphered = variants[\"+ sphere per source\"].copy()\n", "sc.pp.pca(sphered, n_comps=30)\n", "mt.metrics.evaluate_integration(\n", " sphered, reps=(\"X_pca\",), label_key=\"Metadata_Perturbation\", batch_key=\"Metadata_Source\"\n", ");" ] }, { "cell_type": "markdown", "id": "c012", "metadata": {}, "source": [ "Compare that heatmap with the metrics above. Sphering per source lifts the batch-correction side of the heatmap,\n", "and here retrieval agrees: the mAP holds, and 117 compounds are recovered above chance instead of 79. Sphering on\n", "the pooled controls and regressing out the source recover none. Keeping the features whose replicates agree, which\n", "is not a batch correction, recovers the most.\n", "\n", "Judge a correction by the retrieval the screen needs. The mixing metrics describe the batches, not whether the\n", "biology survived.\n", "\n", "With one plate per site, there are 64 or 65 control wells per site (256 at source_9) against 603 features, so\n", "a per-source covariance is underdetermined, yet sphering per source still helped here. With twenty plates per site the result could differ." ] }, { "cell_type": "markdown", "id": "7fb27b941602401d91542211134fc71a", "metadata": {}, "source": [ "## Is it the regularization, or the pooling?\n", "\n", "Sphering divides out the control covariance; the `ZCA-cor` variant used here does it on the correlation matrix, standardizing each feature against the controls first. That division is unstable in directions where the controls barely vary, so a regularization term, `epsilon`, is added to steady it: a larger `epsilon` means gentler whitening, and a large enough one reduces the whitening to almost nothing. mantispy's default is a small fixed `epsilon`; `epsilon=\"auto\"` instead reproduces the consortium's own sphering search. It uses the same log-uniform grid and the same objective, the mean of a candidate's activity and replicate-retrieval mAP, and keeps the best. It then samples past both ends of that grid, and between points, when the best sits there, so the search can follow the signal out of the recipe's range if that is where it leads." ] }, { "cell_type": "code", "execution_count": 11, "id": "acae54e37e7d407bbb7b55eff062a284", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:38:07.917142Z", "iopub.status.busy": "2026-10-21T00:38:07.916988Z", "iopub.status.idle": "2026-10-21T00:39:44.992380Z", "shell.execute_reply": "2026-10-21T00:39:44.991585Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=0 no p-value can fall below 1/1, so the correction over 301 groups calls none of them unless at least 6021 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=0 no p-value can fall below 1/1, so the correction over 301 groups calls none of them unless at least 6021 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "data": { "text/plain": [ "{'fixed default epsilon': 1e-06,\n", " 'fixed default score': 0.152,\n", " 'recipe search range': (1e-05, 1000.0),\n", " 'chosen epsilon': 861345,\n", " 'chosen score': 0.161,\n", " 'largest control-correlation eigenvalue': 79.5}" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "auto = jump.copy()\n", "mt.pp.sphere(auto, method=\"ZCA-cor\", reference=\"negcon\", epsilon=\"auto\")\n", "sweep = auto.uns[\"mantispy\"][\"sphere_epsilon\"]\n", "\n", "\n", "def sweep_objective(adata):\n", " \"\"\"The activity and replicate-retrieval mAP that epsilon=\"auto\" maximizes.\"\"\"\n", " activity = mt.tl.map(adata, mode=\"activity\", null_size=0, seed=0, copy=True)\n", " replicability = mt.tl.map(adata, mode=\"replicability\", null_size=0, seed=0, copy=True)\n", " return (activity.uns[\"mantispy\"][\"map\"][\"score\"].mean() + replicability.uns[\"mantispy\"][\"map\"][\"score\"].mean()) / 2\n", "\n", "\n", "default = jump.copy()\n", "mt.pp.sphere(default, method=\"ZCA-cor\", reference=\"negcon\", epsilon=1e-6)\n", "default_score = sweep_objective(default)\n", "\n", "controls = jump[jump.obs[\"Metadata_Control\"].to_numpy()]\n", "eigenvalues = np.linalg.eigvalsh(np.corrcoef(np.asarray(controls.X, dtype=float), rowvar=False))\n", "{\n", " \"fixed default epsilon\": 1e-6,\n", " \"fixed default score\": round(float(default_score), 3),\n", " \"recipe search range\": (1e-5, 1e3),\n", " \"chosen epsilon\": round(float(sweep[\"epsilon\"])),\n", " \"chosen score\": round(float(np.max(sweep[\"scores\"])), 3),\n", " \"largest control-correlation eigenvalue\": round(float(eigenvalues.max()), 1),\n", "}" ] }, { "cell_type": "code", "execution_count": 12, "id": "9a63283cbaf04dbcab1f6479b197f3a8", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:39:44.994831Z", "iopub.status.busy": "2026-10-21T00:39:44.994614Z", "iopub.status.idle": "2026-10-21T00:39:45.601796Z", "shell.execute_reply": "2026-10-21T00:39:45.600664Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "grid = np.asarray(sweep[\"grid\"], dtype=float)\n", "scores = np.asarray(sweep[\"scores\"], dtype=float)\n", "ok = np.isfinite(scores)\n", "order = np.argsort(grid[ok])\n", "# the chain: the fixed default, then every candidate the search scored, by increasing epsilon\n", "xs = np.concatenate(([1e-6], grid[ok][order]))\n", "ys = np.concatenate(([default_score], scores[ok][order]))\n", "\n", "fig, ax = plt.subplots(figsize=(6, 4))\n", "ax.axvline(1e-5, color=\"grey\", ls=\":\", lw=1)\n", "ax.axvline(1e3, color=\"grey\", ls=\":\", lw=1)\n", "for i in range(len(xs) - 1):\n", " ax.annotate(\n", " \"\",\n", " xy=(xs[i + 1], ys[i + 1]),\n", " xytext=(xs[i], ys[i]),\n", " arrowprops={\"arrowstyle\": \"->\", \"color\": \"steelblue\", \"lw\": 1.3},\n", " )\n", "best = int(np.argmax(ys))\n", "ax.scatter([xs[0]], [ys[0]], color=\"indianred\", s=45, zorder=3)\n", "ax.scatter([xs[best]], [ys[best]], color=\"seagreen\", s=45, zorder=3)\n", "ax.plot([], [], color=\"indianred\", marker=\"o\", ls=\"\", label=\"fixed default\")\n", "ax.plot([], [], color=\"steelblue\", marker=r\"$\\rightarrow$\", ls=\"\", markersize=11, label=\"search\")\n", "ax.plot([], [], color=\"seagreen\", marker=\"o\", ls=\"\", label=\"chosen\")\n", "ax.plot([], [], color=\"grey\", ls=\":\", lw=1, label=\"recipe range\")\n", "ax.set_xscale(\"log\")\n", "ax.set_xlim(xs.min() / 4, xs.max() * 4)\n", "pad = 0.08 * (ys.max() - ys.min())\n", "ax.set_ylim(ys.min() - pad, ys.max() + pad)\n", "ax.set_xlabel(\"epsilon\")\n", "ax.set_ylabel(\"activity + replicability mAP\")\n", "ax.set_title(\"Picking epsilon on the pooled controls\")\n", "ax.legend(loc=\"best\", fontsize=8)\n", "fig.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 13, "id": "8dd0d8092fe74a7c96281538738b07e2", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:39:45.604798Z", "iopub.status.busy": "2026-10-21T00:39:45.604368Z", "iopub.status.idle": "2026-10-21T00:40:36.573775Z", "shell.execute_reply": "2026-10-21T00:40:36.571744Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=500 no p-value can fall below 1/501, so the correction over 301 groups calls none of them unless at least 13 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=500 no p-value can fall below 1/501, so the correction over 301 groups calls none of them unless at least 13 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=500 no p-value can fall below 1/501, so the correction over 301 groups calls none of them unless at least 13 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
pipelinecross-source mAPsignificant of 301
0per-plate normalize only0.02179
1+ sphere pooled, fixed epsilon0.0080
2+ sphere pooled, auto epsilon0.024110
\n", "
" ], "text/plain": [ " pipeline cross-source mAP significant of 301\n", "0 per-plate normalize only 0.021 79\n", "1 + sphere pooled, fixed epsilon 0.008 0\n", "2 + sphere pooled, auto epsilon 0.024 110" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame(\n", " [\n", " {\"pipeline\": name, \"cross-source mAP\": m, f\"significant of {n_treated}\": s}\n", " for name, (m, s) in {\n", " \"per-plate normalize only\": cross_source_map(jump),\n", " \"+ sphere pooled, fixed epsilon\": cross_source_map(pooled),\n", " \"+ sphere pooled, auto epsilon\": cross_source_map(auto),\n", " }.items()\n", " ]\n", ")" ] }, { "cell_type": "markdown", "id": "72eea5119410473aa328ad9291626812", "metadata": {}, "source": [ "The fixed default sits below the recipe range, and the search leaves it by the other end: the score is still rising past the top of the grid and flattens only far beyond it, at an `epsilon` larger than any eigenvalue of the control correlation (above), where the whitening it keeps is close to none. Both regimes agree: heavy whitening at small `epsilon` and almost none at large `epsilon` score about the same, while the partial whitening in between is worst. The whole curve spans a narrow band, a small gain over the default.\n", "\n", "So the search does not find a regularization that makes pooled sphering work; it backs the whitening off until the transform nearly vanishes, which is the data declining the correction. The head-to-head agrees: `auto` recovers essentially the normalize-only mAP, far from the fixed default's collapse, and the extra compounds it calls significant (110 against 79) come from `ZCA-cor`'s per-feature re-standardization, not from the covariance reshaping, which at this `epsilon` is off. On significant compounds it stays below sphering per source (117).\n", "\n", "Read a search that leaves its range and flattens, as here, as a diagnostic: pooled covariance correction is the wrong tool for this screen, because the pooled control correlation is set by the differences between the laboratories. Sphering helps most within a source, where the controls share one correlation structure, and it is not in JUMP's compound recipe at all, which is the next section." ] }, { "cell_type": "markdown", "id": "c013", "metadata": {}, "source": [ "## What the consortium's recipe does\n", "\n", "JUMP has three recipes, and the perturbation type decides which one applies.\n", "`jump-profiling-recipe` names them in its configs. For compounds, which TARGET-2 contains,\n", "`compound.json` specifies\n", "\n", "```\n", "profiles_var_mad_int_featselect_harmony\n", "```\n", "\n", "that is, variance-based feature selection, MAD normalization against the negative controls, the rank\n", "inverse normal transform, feature selection and Harmony. The ORF and CRISPR branches use a\n", "different pipeline, `profiles_wellpos_cc_var_mad_outlier_featselect_sphering_harmony`, which\n", "adds well position correction, cell count regression, outlier removal and sphering.\n", "\n", "Sphering is in the ORF and CRISPR branches, and the `epsilon` search above is exactly how the recipe sets it there, but not in the compound pipeline. The diagnostic above is why: run on this compound screen, that same search tunes the whitening away to almost nothing. mantispy leaves the choice to the data rather than to a fixed rule: `mt.pp.sphere` is available, and `epsilon=\"auto\"` is the recipe's own search, which here declines the step. The two steps of the compound pipeline that the comparison above does not include are covered below, and both behave differently from the corrections in that table.\n", "\n", "`pp.rank_int` is the rank inverse normal transform. Each feature's values are replaced by\n", "their normal scores within a plate, so only the ordering of the wells is kept and the scale is\n", "discarded. Every feature ends up standard normal by construction, which is a strong assumption\n", "about your data, so check what it costs." ] }, { "cell_type": "code", "execution_count": 14, "id": "c014", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:40:36.577829Z", "iopub.status.busy": "2026-10-21T00:40:36.577368Z", "iopub.status.idle": "2026-10-21T00:41:37.992992Z", "shell.execute_reply": "2026-10-21T00:41:37.991775Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=500 no p-value can fall below 1/501, so the correction over 301 groups calls none of them unless at least 13 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=500 no p-value can fall below 1/501, so the correction over 301 groups calls none of them unless at least 13 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=500 no p-value can fall below 1/501, so the correction over 301 groups calls none of them unless at least 13 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=500 no p-value can fall below 1/501, so the correction over 301 groups calls none of them unless at least 13 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
pipelinefeaturescross-source mAPsignificant of 301
0per-plate normalize only6030.02179
1+ rank INT, ranked globally6030.023113
2+ rank INT, ranked per plate6030.033126
3+ rank INT per plate, then ICC > 0.2610.034150
\n", "
" ], "text/plain": [ " pipeline features cross-source mAP \\\n", "0 per-plate normalize only 603 0.021 \n", "1 + rank INT, ranked globally 603 0.023 \n", "2 + rank INT, ranked per plate 603 0.033 \n", "3 + rank INT per plate, then ICC > 0.2 61 0.034 \n", "\n", " significant of 301 \n", "0 79 \n", "1 113 \n", "2 126 \n", "3 150 " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "inted = jump.copy()\n", "mt.pp.rank_int(inted, by=\"Metadata_Plate\")\n", "\n", "# The reference implementation ranks each feature over the whole screen; ranking within a\n", "# plate additionally removes any plate-level difference in the shape of the distribution.\n", "globally = jump.copy()\n", "mt.pp.rank_int(globally)\n", "\n", "inted_icc = inted.copy()\n", "mt.pp.feature_reproducibility(inted_icc, by=\"Metadata_Perturbation\", min_icc=0.2)\n", "inted_icc = inted_icc[:, inted_icc.var[\"icc_selected\"].to_numpy()].copy()\n", "\n", "rankint_variants = pd.DataFrame(\n", " [\n", " {\"pipeline\": name, \"features\": adata.n_vars, \"cross-source mAP\": score, f\"significant of {n_treated}\": count}\n", " for name, adata in [\n", " (\"per-plate normalize only\", jump),\n", " (\"+ rank INT, ranked globally\", globally),\n", " (\"+ rank INT, ranked per plate\", inted),\n", " (\"+ rank INT per plate, then ICC > 0.2\", inted_icc),\n", " ]\n", " for score, count in [cross_source_map(adata)]\n", " ]\n", ")\n", "rankint_variants" ] }, { "cell_type": "code", "execution_count": 15, "id": "fig017", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:41:37.996556Z", "iopub.status.busy": "2026-10-21T00:41:37.996383Z", "iopub.status.idle": "2026-10-21T00:41:38.101983Z", "shell.execute_reply": "2026-10-21T00:41:38.100880Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxcAAAGGCAYAAAAJhXzzAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjIsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvgI3uAAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAV3ZJREFUeJzt3XmcTuXj//H3mNWYjZF1xsi+ZSeRrUaEsqdkzRKS4iMi2ii08UH1KSQiEmVIUUTIEhl7yDZ2hjG7Mdv1++Nr7p/bLO4Zh7G8no/HPB7OOdd1netc930f532f5XYyxhgBAAAAwE3Kk9sdAAAAAHBvIFwAAAAAsAThAgAAAIAlCBcAAAAALEG4AAAAAGAJwgUAAAAASxAuAAAAAFiCcAEAAADAEi653QEAd6/U1FSdPn1a3t7ecnJyyu3uAMghY4xiYmJUrFgx5clz8987sm8A7h3Z3T8QLgDk2OnTpxUYGJjb3QBgkRMnTiggIOCm22HfANx7HN0/EC4A5Ji3t7d0dYfj4+OT290BkEPR0dEKDAy0faZvFvsG4N6R3f0D4QJAjqVd7uDj48MBBHAPsOoSJvYNwL3H0f0DN3QDAAAAsAThAgAAAIAlCBcAAAAALEG4AAAAAGAJwgUAAAAASxAuAAAAAFiCcAEAAADAEoQLAAAAAJYgXAAAAACwBOECAAAAgCUIFwAAAAAsQbgAAAAAYAmX3O4AgLtfu4kr5eLhmdvdAHCdlWNa5er660/pJWcP11ztA4D0dg5bcMva5swFAAAAAEsQLgAAAABYgnABAAAAwBKECwAAAACWIFwAAAAAsAThAgAAAIAlCBcAAAAALEG4AAAAAGAJwgUAAAAASxAuAAAAAFiCcAEAAADAEoQLAAAAAJYgXAAAAACwBOECAAAAgCUIFwAAAAAsQbgAAAAAYAnCBQAAAABLEC4AAAAAWIJwAQAAAMAShAsAAAAAliBcAAAAALAE4QIAAACAJQgXAAAAACxBuAAAAABgiXsqXISEhGjTpk253Y27xs8//6x169bldjcyxesJAABwd3HJ7Q5YaerUqapdu7YeeeQRh8qvXr1a0dHRateunW36n3/+UfPmzVW2bFlbuTNnzmjx4sXq1q2bvvnmmyzbrFKlipo0aXKTW3J7fPnllwoICFCjRo0crrN8+XL5+vrq0UcftbQvGbWb3dfTSte/N9LExcVp/fr1OnnypAoWLKhq1arpwQcfTFff0XJWSklJ0erVqxUWFqayZcuqcePGcnJyyrLO6dOntXHjRiUlJalWrVoqV67cLe0jAAC4t93UmYvly5dr586d1vXmNvvmm2/03//+12765Zdf1sCBA+3KHT58WC+//LKioqK0f/9+29/333+vV1991W7euXPncmFLbp/PP/9cixYtumvazanr3xuS9NVXXykwMFCjR4/W5s2b9c0336h58+bq2LGjjDHZLmeluLg4NWrUSC+++KLWrl2rLl266KmnnlJSUlKmdQYNGqQGDRpowYIFWrJkiWrUqKFhw4bdkv4BAID7w02dufj8888VHBysatWqOVQ+JCREhQoVUvHixbV27Vr5+Piobdu2Wrt2rfbs2SNJ8vf3V+3ate3OHFxbNygoSBs3blRKSooef/xxFSxYMNP1paSkaPbs2SpevLiaN2/uUB/Lli2rtWvX6tdff9UTTzxht8zNzU3Tpk2zTU+bNk1btmyxm+fItm/evFkpKSlq2bKlfH197colJSVp9erVOnnypEqVKqXGjRvL2dk5w3auHcOcru9aN3odVq9erWPHjikuLs62zV27dpWfn98N+52VzNpNk/btemavuaNjlp33zvW+//579e7dW3PnztXzzz9vm2+M0ZIlS2SMkZOTk8Plrrdv3z4VK1ZMfn5+DvfpWhMnTlRYWJh27dqlAgUKKCwsTFWqVNGMGTM0YMCADOs89thjmjx5slxc/m83sG7dOjVu3FhPP/10ts5mAQAApLmtl0VNnTpVFy9eVHR0tBo2bKgaNWpIks6dO6f9+/fb/t2vXz+NGzdOr7zyil3diIgIxcXFqV69etq/f78GDx6srVu3qkSJEunWlZCQoGeffVbHjx/XihUrHO5jqVKl9Pjjj2vEiBFq1qzZDS8rye62R0REqGHDhtq7d6+GDRum9evXq1SpUpKkY8eOqUWLFvLx8VGVKlU0depUubi4aNWqVcqfP79dO9ePYU7Wd70bvQ5nzpxRXFycXFxcbOWuXLniUL+zklm7kvTrr7/qxx9/zPQ1d3TMsvPeycioUaPUtm1bu8AgSU5OTnaXTjla7nrfffedPvzwQ3Xo0EG9e/d26JKm6+t37txZBQoUkCQFBQWpdevW+u677zINF+3bt7ebbtSokdzc3LR//37CBQAAyJHbfs/FyZMn9c8//9h9a9y5c2d17tzZNr1hwwY1a9ZMXbt2lb+/v21+eHi4du/eLT8/PxljVLNmTX3++ecaP3683Tqio6P19NNPS1e/jffx8clWH9966y2VKVNG3377bbqDxJtx4MAB7du3TyVLllRycrKaN2+uESNG6Pvvv5ck9ezZU08++aQmTZokSUpNTVWLFi30zjvvaPLkybZ2MhrDnKzvejd6Hbp27aoFCxaoTJkydv1p0qSJQ/3OTGbtyoHX3NExc/S9k5Hjx4/r0KFDGjFihCXlMvLmm2+qbt26mjVrlpo3b67AwEC98MIL6tGjh4oXL55l3aSkJP3777+qWLGi3fyKFStq9erVDvdhxYoVSkxMVK1atTItc+XKFVvw09XPGgCwbwCQJlvhYsuWLdq6datt+tixY9qwYYPtsgpJateuXZYHQ0899VSGB8VHjhzRtm3bdOHCBaWmpiopKUn//POP3Q2+rVu3tl024uTkpLp16+rw4cN27Zw/f15NmjRRYGCgvvvuO3l4eGRnEyVJRYoU0ZAhQzR69Gh16tQp2/Uz06pVK5UsWVKS5OLiogEDBqhr165KTU3V2bNn9ccff6h+/fr63//+J2OMjDHy9vbWhg0b7NrJbAyzs748eTK+3caR1+Fap0+fdrjfOZHVa56ddTvy3slMeHi4JCkgIMCSchlxdnZWq1at1KpVK128eFHz5s3TrFmz9Oabb6pFixbq3bu3WrduLVdX13R14+LiZIxJd0lV/vz5Hf4P/tSpU+rdu7e6du2aZbgYP3683nnnnWxvH4B7G/sGAGmyFS7Cw8Ntl63o6kHNtZfSSFJ8fHyWbRQqVCjdvPfee08TJkxQkyZNVKxYMbm6usrJyUkXL160K3f9/QKurq5KTEy0m7do0SIlJibq+++/z1GwSDN8+HB98cUX+vTTT1WnTp0ct3Ot6w86AwMDdeXKFYWHh+vEiRPS1QPmaw8IixYtqipVqtjVy2gMs7u+woULpyvv6Otwrez0Oyeyes2zs25H3js36sONbtZ3tNyN+Pv7a/DgwRo8eLDWrl2rrl27qn379lqzZk2GTyJLe5/HxMTYzY+Ojpanp+cN13fu3DkFBwercuXKmjFjRpZlR44cqaFDh9qtIzAwMBtbB+BexL4BQJpshYvWrVurdevWtuljx44pODhYr776ao47EB8fr7feekvLly+33XQdFxenTz/9NEdP1unfv7/Onj2r4OBgrV27VkFBQTnql7e3t0aPHq13331Xs2fPzlEb17tw4YLddHh4uFxcXOTv7287OO7Vq5caN258y9d3vZy+DmnX+FvZb0fdrnWXLl1ahQsX1rp169SjR4+bLncjqampWr16tWbNmqUff/xRxYsX13vvvZfp/TUeHh4KDAzU0aNH7eYfOXIk3YMRrnf+/Hk99thjCggIUEhIiNzd3bMs7+7ufsMyAO4/7BsApMn1H9GLiYlRSkqKihQpYps3Z86cHLeXJ08eff3113r00UfVtGlTHT9+PMdt9e/fX76+vpo4cWKO27jWzz//bPcN+7x589SwYUO5uLiobNmyqlChgiZPnmx3MJ+amqqDBw9avr7rOfo6+Pj42J2dcrTfBw8e1LRp05SQkJBhX69v1xG3Yswy4uTkpOHDh2v27NnavHlzuuV79+61PQXKkXKZOXz4sMaMGaOSJUuqTZs2cnZ21i+//KJ///1Xo0aNyvJJX08//bS+//572zXPUVFRWrZsme3eI0n666+/NH36dNt0eHi4HnvsMRUrVkxLly5V3rx5szUuAAAA18v1H9ErXLiwmjZtqueee049evTQkSNHFBISkuEBsKPy5Mmj2bNnq3v37mrSpInWrl3r8FOBruXm5qZx48apS5cuOe7LtfLly6cGDRro2Wef1Y4dO/TTTz/pjz/+sC2fM2eOnnzySTVs2FAtW7bUpUuX9Ntvv6lPnz45+nGzG63vWo6+DvXr19e7776rUqVKycvLS127dnWo33/++aeGDBmiHj16ZHi5WkbtOsLqMcvMkCFDdOrUKTVt2lQdO3ZU9erVdenSJe3YsUMnT57U9u3b5eTk5HC56/33v//VkCFDVLNmTY0cOVJdunTJMkxcb8yYMfrpp58UHBysJ554Qj/++KMKFy6swYMH28r8/PPPmjx5svr27StJat68ucLCwtSjRw/NnDnTVq5u3bqqW7fuTY8ZAAC4/9xUuGjdurUqVKjgcPm2bdtmeJC/fPlyff311zp06JDKli2r0NBQffTRR3aPTM2obuPGjRUZGZlhmbSA8f7772vx4sUaMmRIuvUGBwfb3U8QHByc7gbYZ599Vrt371Z0dLTy5ctnt6xq1aqZPuYzI126dFHLli21du1aVaxYUWPHjrUbvzp16ujg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s88+q1deeSXL7QUAAMgI4eI2W7NmjapVq6bw8HCdOnVK586dszuQ+/TTTzVt2jStXr1a0dHROnDggDZv3qy33nrLrp3ff/9djRo1UmRkpLZv357p+nbt2iVXV1edOXNGFy9eVL58+dSjR49My7dp00Znz57V2bNnFRsbq08//VR9+/bVvn37JEmdO3fWm2++qcqVK9vKde/eXSEhIRo6dKgWLFigmJgYnThxQuHh4XrppZeyHI9du3apaNGiOnv2rC5duiQvLy8NHz7ctnzBggV67733tGjRIsXFxWnFihWaNm2apk+fnq4df39/RURE2M6o6OoB9DvvvKNLly5py5YtWrBggRo2bKiJEycqJiZGq1at0nvvvafQ0FBbnYkTJ9q2LTo6Wi1btlTHjh2VmJiY5bakqVu3rq3+2bNn9csvv8jZ2VkdO3aUJL322mtat26ddu/erejoaG3atElffvllum261rBhw7Rt2zYdOHBAsbGxGjVqlLp06WJ7XdIsXrxY//nPf3Tp0iUdPHhQa9euzbTd9u3by8XFRYsXL7bNO3v2rFasWKEXXnghwzpXrlxRdHS03R8AsG8AkIZwcZsFBARo9OjRcnFxUZEiRfT+++/r22+/tX3D/+GHH2rw4MEqWrSowsPD5ezsrBdffFHz58+3a6dSpUoaPHhwukuErufp6amPP/5Y7u7u8vX11aRJk7R27Vrt3bs3y3rGGF24cEF169ZVtWrVtHLlyizLf/DBB+rdu7fKlSun8PBwJSUl6eWXX9aiRYuUnJycab1ixYrpzTfflIuLizw9PdWjRw9t3brVtnzKlCnq2bOn7R6P+vXra8CAAfrvf/9r107at/+urq528zt06KDg4GBJUq1atVSlShW1bdvWdhP7o48+qlKlStmtM01ycrIuXbqkfv366cSJEzccs4ycP39ebdu21XPPPadBgwYpNjZWn332mUaNGiVPT0+Fh4crf/786tq1a7rXOE18fLxmzJihsWPHqmTJksqTJ4/69++vOnXqaNq0aXZl27dvrxYtWkiSSpYsqSeffDLDbZMkd3d3de3aVbNmzbLNmzNnjgICAvTYY49lWGf8+PHy9fW1/QUGBmZ7TADce9g3AEjDPRe3WZUqVewCQfXq1ZWamqpDhw6pXLlyCgsL07vvvqvx48fb1XNyclJqaqrtPoayZcvalhlj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+0lSUpISExPt5m3ZskVRUVGqUqWKdPXengoVKti9986fP69NmzZl7713kzelA7gHxMbGmrJly5rHH3/cLFmyxIwcOdK4uLiY33//3Vbml19+MZLMP//843AdR8rcqbp162ZKlChh5s2bZ6ZPn258fX3tfpMgKSnJSDJTp051uI4xxuzcudOsX7/edO/e3ZQoUcKsX7/erF+/3iQmJt7W7cuumTNnGjc3N/PJJ5+YRYsWmYceesg0btzY7mkjDRo0MB06dHC4zvnz502pUqVMpUqVzJo1a2xjsX79ehMVFZUr2+moXbt2GU9PT9O/f3+zdOlS06FDB1OoUCG7R/O+8cYbxt/fP1t1atSoYSZMmGB++eUXs3jxYtOuXTvj5eWV6VPK7jSzZ882rq6u5qOPPjKLFy821atXN48++ugd/2jh2+W3334zTZo0MTNnzjQrVqwwb7/9tsmbN2+6x3OPGTPG+Pn5menTp5t58+aZgIAA071791zr9+22Y8cOs379evP888+bBx980LZfSEpKspV57rnnTMmSJc23335rvvzyS+Pt7W3effddu3YcKXOvOHnypFm/fr2ZNWuWkWTmzJlj1q9fb3uC4blz58xDDz1kpkyZYlauXGmmTZtmihQpYh5//HG7z+ePP/5onJ2dzdixY82PP/5oHnnkEVOtWrVs/R/lZK49XwTgvnX+/HlNmDBBO3fuVKFChTRw4EC7b3e2bNmi//znP/r2229tp0dvVMfRMneipKQkTZs2TStXrpSLi4s6dOignj172n7dNSUlRY0bN9bQoUPVvn17h+pI0osvvqi9e/emW9/SpUtVoECB27iF2bdkyRLNmTNHMTExatCggV577TW7X24dOHCg/P39NXbsWIfq7N69WwMGDMhwXZ9//nmGvxp7J9m5c6cmTZqk48ePq3z58ho+fLgefPBB2/Lp06crJCREP/30k8N1IiIiNG3aNP31119ydXVVlSpVNGDAABUrVuy2b19OLV26VLNnz1Z0dLQeeeQRvfbaa/L29s7tbt0x/vrrL82cOVPHjh1TYGCgOnfunO5bYWOMvv76ay1evFjJyclq3ry5Bg0alO4m73tVnz59bGdBr7V8+XLbL9YnJiZq6tSp+vXXX+Xm5mbb317LkTL3igULFmjatGnp5l/7f9SxY8c0bdo07dmzRwULFlRwcLC6d++uPHnsL2T67bffNH36dEVERKh27doaMWKE8ufP73BfCBcAAAAALME9FwAAAAAsQbgAAAAAYAnCBQAAAABLEC4AAAAAWIJwAQAAAMAShAsAAAAAliBcAAAAALCES253AAAA4H6wdetWJScn65FHHrnl7cbHx2vjxo26ePGiGjdurEOHDsnT01M1a9a0dN230+XLl/Xnn3/atqlIkSK53SVkgHABALjnPfXUU4qLi9PKlSvT/crx8uXLbb8qnidPHhUpUkSNGjVS//795eHhkUs9xr3oiy++UGxsrOXh4vp24+LiVKNGDeXPn18PPvigKlSooI8++kgBAQG3PVxs2bJFxhjVq1fvptqJjY1V9erV5e/vb9umjMJFcnKyduzYoTNnzqhUqVKqXLlyhu3t3r1bhw4dUsmSJVWjRo0Myxw7dkxbtmxRjRo1VK5cuZvq//2EcAEAuKetXbtWq1evloeHh5YuXaoOHTrYLQ8PD9eWLVu0adMmGWN04MABjRw5UmvXrtWSJUtyrd+499StW1cJCQm3vN3Vq1crPDxc+/fvV548/3cFfMOGDVWgQAHL130jn3/+uZKTk286XKxevVoXL17UwYMHbduUUZmXX35Zvr6+KliwoDZu3KiHHnpIISEh8vX1lSSlpKSoR48eWr58uerWrau///5bDRo00Pfffy83NzdJ0r59+/Taa69p3759On36tCZOnEi4yAbCBQBk008//aS5c+fq/PnzqlevnkaOHClvb29JUqdOndS+fXsdOHBA69atU9OmTTVmzBhFRETogw8+0JYtW+Tp6al27dqpd+/ecnJysrU7f/58ff/994qNjVWdOnU0fPhw23+IWS3LSFblb9SX7du3a+DAgfrzzz/l7Oxsq9OyZUt9++23KlWqlI4cOaIuXbpo2rRp+vTTT3Xo0CG99957atSokcLCwjRp0iTt3LlTAQEBevXVV1WrVi1b344dO6aPP/5Ye/bsUaFChdSpUyd17Ngx0235+uuvtWHDBjVr1kwhISE6e/asgoODNXz4cC1atEjffvutEhMT1alTJ/Xu3Ttd/RkzZuiZZ56Rr6+vZsyYkS5cpEk7+HnkkUdkjNELL7ygs2fPcukFsu3o0aPau3evChUqpBo1atjOltWoUUPJycl2ZePj47Vu3Tq5u7urRo0aOnr0qOLi4vToo49KkjZt2iQXFxdV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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "order = rankint_variants.set_index(\"pipeline\")\n", "sig_col = [c for c in order.columns if c.startswith(\"significant\")][0]\n", "fig, axes = plt.subplots(1, 2, figsize=(8, 4), sharey=True)\n", "axes[0].barh(order.index, order[\"cross-source mAP\"], color=\"steelblue\")\n", "axes[0].set_xlabel(\"cross-source mAP\")\n", "axes[1].barh(order.index, order[sig_col], color=\"seagreen\")\n", "axes[1].set_xlabel(sig_col)\n", "fig.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "fig018", "metadata": {}, "source": [ "Left: cross-source mAP per ranking choice. Right: compounds significant of 301. Ranking per plate is higher than ranking globally or normalize-only, and adding the ICC filter is higher still." ] }, { "cell_type": "markdown", "id": "c015", "metadata": {}, "source": [ "Ranking per plate helps more than any correction above, and the ICC filter adds to it on only 61\n", "features.\n", "Ranking globally helps less (113 significant, against 126 per plate).\n", "\n", "Where you rank matters. The reference implementation ranks each feature over the whole\n", "screen, which is the `by=None` default. Ranking within each plate works better here,\n", "because it also removes plate-to-plate differences in the shape of a\n", "feature's distribution, which with one plate per site are the differences between sites.\n", "\n", "The transform discards magnitude, and distance from the controls depends on magnitude, so\n", "check the effect on activity as well:" ] }, { "cell_type": "code", "execution_count": 16, "id": "c016", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:41:38.105207Z", "iopub.status.busy": "2026-10-21T00:41:38.105064Z", "iopub.status.idle": "2026-10-21T00:41:40.330985Z", "shell.execute_reply": "2026-10-21T00:41:40.329600Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=500 no p-value can fall below 1/501, so the correction over 301 groups calls none of them unless at least 13 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=500 no p-value can fall below 1/501, so the correction over 301 groups calls none of them unless at least 13 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "data": { "text/plain": [ "{'per-plate normalize only': (0.249, 110), '+ rank INT': (0.289, 117)}" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def activity(adata):\n", " \"\"\"Phenotypic activity: can each compound be told from the negative controls?\"\"\"\n", " scratch = adata.copy()\n", " mt.tl.map(scratch, mode=\"activity\", null_size=500, seed=0)\n", " table = scratch.uns[\"mantispy\"][\"map\"]\n", " return round(float(table[\"score\"].mean()), 3), int(table[\"is_significant\"].sum())\n", "\n", "\n", "activity_compare = {\"per-plate normalize only\": activity(jump), \"+ rank INT\": activity(inted)}\n", "activity_compare" ] }, { "cell_type": "code", "execution_count": 17, "id": "fig015", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:41:40.334368Z", "iopub.status.busy": "2026-10-21T00:41:40.334211Z", "iopub.status.idle": "2026-10-21T00:41:40.420871Z", "shell.execute_reply": "2026-10-21T00:41:40.419775Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "labels = list(activity_compare)\n", "maps = [activity_compare[k][0] for k in labels]\n", "fig, ax = plt.subplots(figsize=(5, 4))\n", "bars = ax.bar(labels, maps, color=[\"grey\", \"steelblue\"])\n", "ax.bar_label(bars, padding=2)\n", "ax.set_ylabel(\"activity mAP\")\n", "ax.set_title(\"Phenotypic activity\")\n", "fig.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "fig016", "metadata": {}, "source": [ "Phenotypic activity mAP before and after the rank INT transform. It is slightly higher after the transform." ] }, { "cell_type": "markdown", "id": "c017", "metadata": {}, "source": [ "Here it costs nothing, and activity rises too. That need not generalize: this is one plate per\n", "source and 603 features. The\n", "outcome depends on the screen, so measure both before adopting it.\n", "\n", "## Harmony, and a metric that disagrees with retrieval\n", "\n", "`pp.harmony` ranked in the top three in every scenario of the batch-correction benchmark\n", "{cite:p}`Arevalo_2024`, as did Seurat RPCA, and is the last step of the recipe.\n", "It works on an embedding rather than on features (it alternates soft clustering and\n", "per-cluster linear correction), so it returns a corrected `obsm`, not a corrected `X`. It needs the optional extra,\n", "`pip install 'mantispy[harmony]'`. Its result moves with the seed and the row order;\n", "[Learned embeddings against CellProfiler](learned_embeddings.ipynb) measures how much the seed moves it." ] }, { "cell_type": "code", "execution_count": 18, "id": "c018", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:41:40.423919Z", "iopub.status.busy": "2026-10-21T00:41:40.423780Z", "iopub.status.idle": "2026-10-21T00:42:29.480370Z", "shell.execute_reply": "2026-10-21T00:42:29.479508Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "harmonised = jump.copy() # carries the X_pca from above\n", "mt.pp.harmony(harmonised, batch_key=\"Metadata_Source\", use_rep=\"X_pca\")\n", "\n", "mt.metrics.evaluate_integration(\n", " harmonised, reps=(\"X_pca\", \"X_harmony\"), label_key=\"Metadata_Perturbation\", batch_key=\"Metadata_Source\"\n", ");" ] }, { "cell_type": "code", "execution_count": 19, "id": "c019", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:42:29.482922Z", "iopub.status.busy": "2026-10-21T00:42:29.482762Z", "iopub.status.idle": "2026-10-21T00:42:45.101873Z", "shell.execute_reply": "2026-10-21T00:42:45.100671Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=500 no p-value can fall below 1/501, so the correction over 301 groups calls none of them unless at least 13 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "UserWarning: with null_size=500 no p-value can fall below 1/501, so the correction over 301 groups calls none of them unless at least 13 reach that floor together. Raise null_size above 6020 for one group to be callable on its own.\n" ] }, { "data": { "text/plain": [ "{'X_pca': {'site centroid spread': 418.1, 'cross-source mAP': (0.017, 61)},\n", " 'X_harmony': {'site centroid spread': 343.5, 'cross-source mAP': (0.02, 67)}}" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def centroid_spread(embedding):\n", " \"\"\"Mean distance of the site centroids from their mean.\"\"\"\n", " centroids = pd.DataFrame(embedding).groupby(harmonised.obs[\"Metadata_Source\"].to_numpy()).mean()\n", " return round(float(np.linalg.norm(centroids - centroids.mean(), axis=1).mean()), 1)\n", "\n", "\n", "harmony_compare = {\n", " key: {\n", " \"site centroid spread\": centroid_spread(harmonised.obsm[key]),\n", " \"cross-source mAP\": cross_source_map(harmonised, use_rep=key),\n", " }\n", " for key in (\"X_pca\", \"X_harmony\")\n", "}\n", "harmony_compare" ] }, { "cell_type": "code", "execution_count": 20, "id": "fig013", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:42:45.105112Z", "iopub.status.busy": "2026-10-21T00:42:45.104901Z", "iopub.status.idle": "2026-10-21T00:42:45.271475Z", "shell.execute_reply": "2026-10-21T00:42:45.270341Z" } }, "outputs": [ { "data": { "image/png": "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NgwMDCCTqR42kpOTlaaKfVfOpEmTMGrUKL1sW5MYIiIqGvwGJiKidzI2Ns533etnGjTJMTU1VbmnoqDb1iaGiIgKFy+FIiIiIiIinRX4jEVUVBR++ukn1KlTBwMHDlRa9+zZM4SEhCA6Ohpubm7o06ePys15msQQEREREVHJUKAzFllZWejduzc2bNiAP/74Q2ldQkICGjRogHXr1gEAFi9ejCZNmuDFixdaxRARERERUclRoMJi+vTpqF+/Pry9vVXWffXVVzAwMMDx48exYMECnDhxAtHR0Vi2bJlWMUREREREVHJoXViEhYVh3759+N///qd2/a5du+Dv7y/NEFKqVCl06dIFu3bt0iqGiIiIiIhKDq0Ki4cPH2LEiBHYtGkTLC0tVdYrFApER0fD1dVVqd3V1RW3b9/WOEYdhUKBtLQ0pYWIiIiIiN4PGhcWubm56N+/P8aOHYtGjRqpjUlPTwcA2NjYKLXL5XLp/glNYtQJDg6GXC6XFmdnZ02HTkREREREhUzjwmL//v0IDw9HYmIipk2bhmnTpuHmzZu4evUqpk2bhuTkZFhaWsLAwAApKSlKuSkpKbC2tgYAjWLUCQwMRGpqqrTExsZqv7dERERERFQoNJ5utlq1aliwYIFSm6mpKWQyGcqUKQMjIyOYmJjA1dUV//zzj1LcrVu3UKNGDQDQKEYdbR+oRERERERERUfjwqJq1aqYNm2aUtvx48dhZmam1O7v74/Nmzdj9uzZkMvlePjwIcLCwvDVV19pFUNERERERCWH3p+8PXPmTDg4OOCjjz7CsGHD0LhxYzRq1AijRo3SKoaIiIiIiEqOAj95GwCGDRsGmUy5CxsbG4SHh2Pv3r2IiYmBv78/2rdvD0NDQ61iiIiIiIio5NCpsOjevbvadmNjY3Tr1u2tuZrEEBERERFRycBTBEREREREpDMWFkREREREpDMWFkREREREpDMWFkREREREpDMWFkREREREpDMWFkREREREpDMWFkREREREpDMWFkREREREpDMWFkREREREpDMWFkREREREpDMWFkRERB+wJUuWoHr16ihdujQ6dOiA69ev65yTlpaG5cuXo06dOrCyssLVq1eV1ufk5MDKykrt8uWXX+p9H4moaLCwICIi+kAtX74cs2fPxsKFC3HhwgWULVsWrVu3RnJysk45gYGBuH79OgIDA/HixQvk5OQo9WFkZIQnT54oLevWrcOLFy/g6+tbqPtMRIWHhQUREdEHSAiBb775BuPHj0fXrl1RuXJlrFq1ChkZGVi/fr1OOcuXL8eKFSvg4eGR7/bfPFMREhKC+vXrw9PTs1D2l4gKn6y4B0BERO+39PR0nD9/HjKZDB999BFMTEz0kpOTk4OTJ09CCIFWrVoprXv06BEuXbqktu+mTZvC1tYWALB3717k5uYqra9VqxZcXFy03MsPT3R0NB48eIA2bdpIbaampmjWrBlOnTqFqVOn6iVHE3Fxcfjzzz/x448/FnBviOh9wMKCiIjydezYMfj7+6Ns2bJQKBRIT0/Hnj17UL9+fZ1yvv76a6xZswaZmZmwtLREVFSUUh937tzBTz/9pNR2+/ZtREVF4d69e1Jh0bVrV3h6esLBwUGKGzlyJAsLDTx69AgA4OjoqNTu6OiImzdv6i1HE7/88gtMTEzQv3//AvdBRMWPhQUREamVnp6Ovn37YtCgQVi8eDEAoG/fvujbty9u3rwJAwODAufk5OTgxIkTWL9+PTZt2qTST7NmzdCsWTOVtooVK6JSpUpK7UFBQfDx8dHrvn9IDA0NVV4LIfSe8zbr169H7969YWNjU+A+iKj48R4LIiJS68CBA4iPj8f06dOlthkzZuCff/7B2bNndcqZM2cOKlasqPFYbt++jVOnTmHEiBEq66KionD48GHcuXNHi72jvLMOT58+VWp/+vSpyhkJXXLe5eTJk/jnn3/U/n9LRCULCwsiIlIrMjISTk5OKFOmjNRWt25dGBoaIjIyUm85mli3bh1Kly6N7t27q6xbvHgx5s+fjwYNGqBFixaIjY3Ntx+FQoG0tDSl5UNVpUoVODo64q+//pLaXr58ib///hve3t56y3mXdevWoVatWmjcuHGB8ono/cHCgoj0Li0tDY8fP1a5qfZNGRkZuHXrFuLj43XqB69u/rx165bScu/evQLvAwEpKSkoVaqUUpuhoSHkcjlSUlL0lvMuL1++xK+//oqBAweq3AQeEhKCe/fu4cSJE7h79y6eP3+OQYMG5dtXcHAw5HK5tDg7OxdoTP8FhoaGmDBhApYuXYpz584hPT0dgYGByM7OxtChQ6W4gIAAtG/fXqscTT179gy///47z1YQ/UewsCAivTl+/Dg+/vhjuLq6ol69enB0dHzrLC9Dhw5FjRo18PXXX+vUDwDMnTsXjRo1gp+fn7RMnDhRb/v2ITIxMUF6erpKe0ZGRr4zQxUk513+/PNPPHnyBMOHD1dZ5+/vL/23vb09Zs2ahWPHjuVbxAQGBiI1NVVa3nZ240MQGBiIYcOGoV27drC2tsaBAwewb98+lC1bVorJyMhQ+v9Uk5wVK1bAysoKjRo1AgB8/PHHsLKywooVK5S2HxISgpycHAQEBBTJ/hJR4eLN20SkN+fPn8eKFStQr149AEBoaCj8/f1Rv359lRtx161bhwcPHqB27do69fO69u3bIzQ0VO/79aFycXFBXFwcsrOzYWxsDLy6lj4zMzPfWZcKkvMua9euRdOmTVGjRo13xtrZ2QEAnjx5Is0c9TpTU1OYmpoWaBz/RYaGhvj222/x7bffKv1/9rpNmzYp3ZitSc6IESMwcOBAlfY33/tBgwZhwIABsLCw0Ns+EVHx4RkLItKb6dOnS8UAAHTv3h0ymUxlKtGbN29izpw52LhxI4yMjArcz5uEEIiJiUFqaqpe9udD1759e2RmZmL//v1SW2hoKMzMzNCyZUupLSwsTLrsTNMcTT1+/Bj79u1Te6lMUlKSStuePXsgl8tRpUoVrbf1oVNXIACAmZkZzM3NtcoxNjZWeQCelZWVSrypqSmLCqL/EJ6xICK9evHiBWJjY5GWloY1a9bAxcUF3bp1k9ZnZmaiT58+WLhwISpXrlzgftTZsWMHwsPDkZSUhGrVqmHlypVo0qSJXvfvQ+Lq6opx48Zh2LBhmDt3LjIzMzF37lzMmTNH6WxAly5d8MMPP2DSpEka55w+fRpJSUm4ffs20tPTERYWBgBo27YtzMzMpLgNGzbA2tpa6ZKnPAcPHsSqVavQo0cPODg44PDhw/j111+xcuXKAl92RUREBcfCgoj0KiIiAsOHD0dCQgJycnKwZs0apZt5p0yZgpo1a2LAgAE69fOmJk2aYOrUqXBzc0NmZiYmTJgAX19fXLt2DRUqVNDrPn5I/ve//6FBgwbYv38/ZDIZNmzYgJ49eyrF+Pr6Kp0h0CRn9+7duH79OgCgQYMG0sPwGjdurFRYxMXFYc6cOWp/Me/Tpw9cXV3x22+/4e+//4aLiwsuX76MmjVr6v19ICKidzMQujzRphilpaVBLpcjNTW1QA/U6TD/z0IZF5VcB+b4FvcQ/nO2b9+OPn36YOfOnejcuTMOHTqEXr16Yd++fdKv1927d0ejRo0QGBiI6tWra9SPJrKysmBvb48FCxZgwoQJet2vkkDX78gPBd8n+q+qu6hPcQ+B3jOR07YUKE+b70mtz1jcunULYWFhSEhIQLVq1dCrVy9YWVlJ6w8cOIA9e/Yo5VhYWGDhwoVKbcnJydi4cSOio6Ph5uaGgQMH8jpLov+YTz75BI0aNcL27dvRuXNnxMfHw8nJCYMHD5Zi7t+/j7i4OJw9exbXr19Xe8/Fm/1owsTEBGXKlEFMTIxe94mIiIjU06qw+O6777B161a0a9cOcrkcP/30E+bNm4fw8HCUL18eeDWby59//ompU6dKeW/OAhEXFwdvb29UqFAB7du3x+rVq7FixQqcPn1aqUghopJDCIHc3FylwiA3NxdxcXFo2LAhAKB///7o37+/Ul69evXQsmVLLFmyRON+8GrWn4yMDLi4uEAIgZycHMhk//8rLTY2Fvfv30e1atUKdb/pw8ZfhelNBf1VmOi/QKvCws/PD9OnT5deT5kyBeXLl8fmzZsxY8YMqd3JyQnjxo3Lt5+vvvoKZmZmOHz4MExNTTFhwgS4ubnhxx9/xKxZswq6L0RUjDIyMtC8eXNMmjQJNWvWREpKClauXIn4+HiMHj1a7/3Mnj0bZ86cwbVr15CdnQ1vb29MmjQJtWrVQkxMDL744gu4urqqFDJERERUOLSabtbNzU3pdUZGBrKzs2Fvb6/UHhcXh8DAQAQFBWHfvn0q/ezevRv+/v7SmQy5XI4uXbpg9+7dBdsLIip2FhYW2Lx5M/766y+MGjUKX375JSpUqICrV6++9fkDLi4ucHJy0rqfsmXLSjcMm5iYICQkBKdOncLo0aOxcuVK9OrVCxcvXoSlpWUh7zkRERGhIPdYPH78GAsWLMCLFy9w+vRpjBkzBoMGDVKKKV++PCwsLJCSkoJ+/fqhefPm2LlzJwwNDaFQKBAbG6vyoKQqVapg586d+W5XoVBAoVBIr9PS0rQdOhEVMnd3d6xevVqrHHX/7jXpZ/78+Tpvm4iIiPRH6wfkmZqaonr16nB1dYW1tTWOHj2Kp0+fSusHDRqEU6dOYc6cOVi8eDFOnz6N/fv345dffgFeneUAAGtra6V+bWxskJ6enu92g4ODIZfLpcXZ2VnboRMRERERUSHRurAoVaoUxo0bh9mzZyM8PBzPnz/HvHnzpPVv/sFfo0YNeHp64tSpUwAAS0tLGBgYICUlRSkuOTn5rVNYBQYGIjU1VVpiY2O1HToRERERERUSnR6QZ2xsjHr16uH27dtvjVMoFHj58qWU4+bmhps3byrF3Lx5860PNTI1NVWZXYqIiIiIiN4PWp2xOHjwoNLrp0+f4tixY/D09JTaDhw4oBRz5MgRREREoEOHDlJb7969sXXrViQlJQEAoqOjERYWht69exd0P4iIiIiIqBhpdcZi06ZN+Oyzz1CnTh1kZGTg0KFD8PLywpw5c6SYLVu2YMaMGahXrx4SEhJw5MgRTJo0CX379pViPvvsMxw+fBienp74+OOPcezYMbRo0QLDhw/X794REREREVGR0Kqw+PXXX3H79m2cO3cOxsbG+OKLL1C7dm2lmJ9//lmKsbCwwPLly1G5cmWlGEtLS5w8eRKHDx9GTEwMRowYgRYtWsDAwEA/e0VUQnWY/2dxD4HeQwfm+Bb3EIiIiN5J63ssqlWr9s4n2WoSY2RkpHR5FBERERERlVxazwpFRERERET0JhYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkM1lxD4CIiN5vu3fvxv79+yGTyeDn54c2bdroJefkyZPYvHkzrKyssGjRIpX1gwYNQk5OjlJbQEAAOnTooPP4iIhI/3jGgoiI8vX5559j0KBBqFChAmxtbeHr64ulS5fqnFO/fn0EBgbizp072LVrl9p+Nm/ejHLlysHHx0daKlWqpPP4iIiocPCMBRERqRUTE4Nvv/0WISEh8Pf3BwCUKlUKgYGBGDx4MKytrQucExISgurVq2PevHm4d+9evmNo3bo1fHx89DY+IiIqPDxjQUREau3fvx/Gxsbo2rWr1NanTx+8ePECx48f1ymnevXqGo1h3bp1GD58OBYsWIA7d+7oPD4iIio8LCyIiEitu3fvwsnJCaamplJb2bJlYWJigrt37+otJz9OTk6oWrUqPD09ERERgdq1ayMsLEynbSkUCqSlpSktRESkH7wUioiI1MrIyICVlZVKu5WVFTIyMvSWk5/Lly/DwcEBAPDpp59i9OjRGDFiBB4/flzgbQUHByMoKEircRARkWZ4xoKIiNSSy+VITk5WahNCIDU1FXK5XG85+ckrKvL07NkTT548QUxMTIG3FRgYiNTUVGmJjY3VakxERJQ/FhZERKSWh4cHnjx5goSEBKnt+vXryMnJgYeHh95yNPXixQudt2VqagobGxulhYiI9IOFBRERqeXj4wNbW1ul6VuXLFkCFxcXNG7cWGobMGAADhw4oFXOu5w9exb379+XXj9//hzfffcdPDw8ULFiRb1ui4iI9IP3WBARkVrW1tb45Zdf0LdvXxw9ehSZmZm4e/cu/vjjDxgZGUlxmzdvRsOGDdGhQweNc+bPn49//vkHV65cQVxcHAYMGAAAWLp0Kezs7CCTydCtWzdYWVnBwcEBZ8+eRfny5bFt2zatx0dEREVD68IiMjISe/bsQUJCAqpVq4b+/furXMuakJCA9evXIzo6Gm5ubhg2bJjKfOKaxBARUfHq3Lkz7t27h1OnTkEmk6F58+Yqlw9t3LgRDRs21CrHy8sLLi4uKs+oyJvhydPTExcvXsTFixfx+PFjBAUFoU6dOjAwMNB6fEREVDS0Kiy+/vprhIWFoUOHDqhUqRJCQkLw1Vdf4cyZM9Kp6UePHqFRo0Zwd3eHj48PQkJCsGrVKpw9e1b6stckhoiI3g+lS5eGn59fvuvzzjZok9O+fft3blcmk8HLy0vn8RERUdHQ6h6Lfv364fTp05g7dy4mT56Mo0ePIjs7GyEhIVLM/PnzYWtri/3792P69Ok4fPgwkpOTsWTJEq1iiIiIiIio5NCqsKhcubLS67S0NGRmZsLJyUlq27NnDz755BMYGxsDr66B7dKlC/bs2aNVDBERERERlRxazwr16NEjDB8+HH379kXDhg0xbdo0BAQEAAAyMzPx8OFDlQLExcUFUVFRGseow6elEhERERG9v7QuLMzNzeHt7Q1PT0+ULVsWO3fuVHoKKl6dgXidtbW1tE6TGHWCg4Mhl8ulxdnZWduhExERERFRIdG6sLCzs8Pw4cMxbdo0/PXXX8jNzcW8efMAAFZWVjA0NFR5EmpSUpJ0U7YmMerwaalERERERO8vnZ5jIZPJ4OHhIV3CZGxsjGrVquHGjRtKcdevX0ft2rU1jlHH1NRUmoaQiIiIiIjeL1qdsfjjjz+UXj9+/BhHjhyBt7e31Na3b19s3boVT58+BQDcuXMHe/fuRd++fbWKISIiIiKikkOrwiIsLAy1atVC79690bVrV1SrVg3e3t74/PPPpZjp06fD3d0d9evXxyeffILGjRujQ4cOGDp0qFYxRERERERUcmh1KdTq1asRHR2N8+fPw9jYGIsXL4abm5tSjLm5OY4cOYKTJ08iJiYG06dPVzqjoWkMERERERGVHFrfY1GpUiVUqlTprTGGhoZo0aKFzjFERERERFQyaD0rFBERERER0ZtYWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARUb7i4uLg7+8Pa2tr2NnZYciQIUhLS9M55/Llyxg1ahSsrKxQtWpVlT7S09OxZMkS1K9fH5aWlnBzc8OCBQvw8uVLpTiZTAYDAwOlZcmSJXraeyIi0gYLCyIiUksIge7duyMuLg7Xrl3DmTNncP78eQwaNEjnnE8//RT169fH6NGj1fazfft2REdHY8OGDXj69CnWrFmDJUuWYNasWSqx+/btgxBCWiZNmqSHvSciIm3JinsARET0fvr7778RHh6OyMhIVKpUCQDw7bffonPnzrhz5w5cXV0LnBMeHg4AmDdvntptBwQEICAgQHrdsmVLfPrpp/j111+xcOHCQtlfIiLSDc9YEBGRWqdPn4adnR3q1KkjtbVp00Zap68cTT19+hRyuVylvV+/fjAzM0ONGjWwcOFCZGdn67QdIiIqGJ6xICIitZ48eQIHBwelNjMzM1hbW+PJkyd6y9FEREQE1q9fj8WLFyu1DxgwANOnT0fFihVx5MgRDBs2DE+ePMH333+vth+FQgGFQiG9ftf9IkREpDmesSAiIq0IIWBgYFDoOXnu3buHLl26oEePHhg7dqzSug0bNqBWrVqwtraGn58fgoKCsHTpUqXi4XXBwcGQy+XS4uzsXKAxERGRKhYWRESkVpkyZfD06VOltszMTDx//hxOTk56y3mb+/fvo1WrVmjcuDE2btz4zuLEw8MDL1++xP3799WuDwwMRGpq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LUKLFi2QlZUlxdy/fx8NGjTAzZs30bJlS5w8eRINGzZEYmKiVjFERFS8fHx8kJ2djT/++ENq27JlCywtLdGyZUupbdOmTbh165ZWOfrYtr62RURE+qHVGYvQ0FBUqFBBeu3r64tKlSph79698PPzAwDMnz8fFSpUwPbt22FoaIiAgABUrVoVP/zwA7766iuNY4iIqHhVrFgRn332GUaMGIHbt28jMzMT3333Hb777jtYW1tLcQEBAfjhhx9QvXp1jXMOHjyI+Ph4XLlyBc+fP8emTZsAAD169ICFhYVG/Wi6LSIiKhpanbF4vagAgDJlysDY2BjJyclS2969e9GjRw8YGv5f12ZmZujSpQv27t2rVQwRERW/BQsWYMOGDYiNjUVycjLCwsKUpncFgP79+6NGjRpa5Zw9exb79++HhYUF2rZti/3792P//v1QKBRa9aNJDBERFQ2dnrz9008/AQBatWoFAMjIyMCTJ09QsWJFpbiKFSsiJCRE4xh1FAqF0gGHUwQSERUNPz8/6ay0OnlnG7TJmTNnjl62rWkMEREVvgLPCnXixAlMnz4dCxcuROXKlYFXf/wDgIWFhVKslZUVMjMzNY5Rh1MEEhERERG9vwpUWJw+fRpdunTBjBkzMGnSJKndysoKRkZGSpdGAUBiYiJsbW01jlGHUwQSEREREb2/tL4UKjw8HD4+Phg/fjzmz5+v3JlMhho1auDKlStK7VeuXEGdOnU0jlGHUwQSEREREb2/tDpjcfbsWfj4+GDChAlYsGCB2pgBAwZg27ZtePDgAQDg+vXr2LdvHwYMGKBVDBERERERlRxanbHo0qULcnNzcevWLfTs2VNq79WrF3r16gUAmDx5Mk6fPo26deuiXr16OH/+PPr27YuAgAApXpMYIiIiIiIqObQqLFatWoWcnByV9po1a0r/bWJigt27dyMyMhIxMTGoWrWq0jSEmsYQEREREVHJoVVh0b17d41j69ati7p16+ocQ0RERERE778CTzdLRERERESUh4UFERERERHpjIUFERERERHpjIUFERERERHpjIUFERERERHpjIUFERERERHpjIUFERERERHpjIUFERERERHpjIUFERERERHpjIUFERERERHpjIUFERERERHpjIUFERERERHpjIUFERERERHpjIUFERERERHpjIUFERERERHpjIUFERERERHpjIUFERERERHpjIUFERERERHpjIUFERERERHpjIUFERERERHpTFbcAyAiovdXbm4ufv75Z+zfvx8ymQx+fn7o3bu3zjnvijlx4gSCg4PV9v+///0P7u7uAABfX1/k5OQorR89ejT8/Px02GsiIioIFhZERJSv8ePHY/v27QgKCkJmZiaGDx+Of//9F7Nnz9Yp510x7u7umDRpklK/S5cuRXh4OCpVqiS1HThwAEFBQfD09JTaatSooed3gYiINMHCgoiI1IqKisLKlSuxZ88e+Pr6AgDMzMwwceJEjB07FnZ2dgXK0SSmTJky8PHxkfp9+fIlBg8ejICAAJiZmSlt09PTUymWiIiKB++xICIitQ4ePAhzc3O0b99eavvkk0+gUChw/PjxAucUpN+wsDDExcVh+PDhKuu+//57+Pn5YfLkyYiIiNBpn4mIqOBYWBARkVr379+Hk5MTjI2NpbbSpUvDzMwM9+/fL3BOQfpdt24dvL294eHhodRepUoVdOjQAf3790dGRga8vLzw22+/5btPCoUCaWlpSgsREemH1pdCPXr0CGvXrsWlS5cwefJktGjRQmn977//js2bNyu1WVpaqrTdv38fK1asQHR0NNzc3DBhwgQ4OjoWdD+IiEjPsrKyYG5urtJubm6OrKysAudo2++jR4+wb98+rF69WmXdpUuXYGVlBQDw9/eHpaUlxo8fj759+8LAwEAlPjg4GEFBQfnuMxERFZxWZyw2btwIb29vZGVlYffu3YiNjVWJ+eeff3Dz5k0MHjxYWvr166cUc+/ePXh6euLu3bvw8fHBuXPn0LBhQyQkJOi+R0REpBe2trZISkpSasvNzUVqaqra+ys0zdG2319++QUWFhZqZ6PKKyry+Pr6IikpKd8zH4GBgUhNTZUWdccxIiIqGK3OWLRp0wZ9+/aFTCbDggUL8o2zs7N761R/X375JSpXroxt27bB0NAQ/fr1Q9WqVfH999/j66+/1m4PiIioUNSrVw9xcXF4/PgxypYtCwC4fPkycnNzUbdu3QLnaNvv+vXr0a9fP1haWr5zzHkFi4mJidr1pqamMDU11fg9ICIizWl1xqJcuXKQyd5di8TExCAgIAAjRozAmjVr8PLlS6X1+/btQ/fu3WFo+H+bNzU1RZcuXbBv3z5tx09ERIWkQ4cOcHJywrfffgsAEELg22+/RY0aNdCoUSMpzsfHB7t27dI4R9N+AeD48eOIiorCiBEjVMZ34sQJXLlyRXr99OlTLFiwAF5eXihfvnyhvCdERJQ/vU83a2BggGbNmqF169ZISUnBggULsHbtWpw8eRImJibIyMhAXFwcnJ2dlfKcnZ3fecOdQqGQXvOGOyKiwmVubo4tW7agZ8+eOHDgALKyspCdnY09e/Yo3b9w4MABabpXTXI07RevbtquX7++0nMq8jg4OGDEiBFISEiAg4MDrly5Am9vb6xdu7bQ3xsiIlKl98Ji3LhxkMvl0mt/f39Ur14dq1evxrhx46TiwMLCQinPysoKmZmZ+fbLG+6IiIpeixYtEBsbiwsXLkAmk8HT01NpNie8Ogv9+kPpNMnRJAYAhg8fjjJlyqgdW82aNfH333/jzp07ePz4MVxcXHimgoioGOm9sHi9qACAChUqoEGDBrhw4QLwqoAwMjJCcnKyUlxiYmK+NwPi1Q13U6ZMkV6npaWpnPUgIiL9MzMzQ9OmTfNdr+7hdO/K0TTmzZkH1XF1dYWrq+s744iIqHAVyZO3U1JSpHszZDIZatasicjISKWYy5cvo06dOvn2wRvuiIiIiIjeX3p/QN7PP/+sdLP2pk2bcPXqVXTr1k1qCwgIwLZt2xATEwMAuHr1Kg4cOICAgAB9D4eIiIiIiIqAVmcsrly5gi+++EJ6vWTJEoSGhqJdu3YYO3YsACAqKgpVqlSBm5sbEhIScO/ePSxevBhdunSR8iZNmoQzZ86gbt26qFOnDi5evIiAgAD0799fn/tGRERERERFRKvComzZshg8eDAASP8LAJUrV5b+e8GCBZg2bRoiIyNhYWGBGjVqwNraWqkfY2NjbN++HdevX0dMTAyqVq0KNzc33feGiIiIiIiKhVaFhYODw1sffJfHzs4OLVu2fGdcrVq1UKtWLW2GQERERERE7yG932NBREREREQfHhYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkMxYWRERERESkM1lxD4CIiN5/2dnZMDQ0hJGRkV5z3haTmpoKIYRSm7m5OUxNTfUyPiIi0i+esSAionzFxMSgXbt2sLCwgLm5Obp3746EhASdczSJsbe3R4UKFVC5cmVpWb9+vc7jIyKiwsHCgoiI1MrNzUW3bt1gZGSE+Ph4xMTE4MGDB+jfv79OOdr0GxoaipSUFGn59NNPdRofEREVHl4KRUREap04cQKXL1/GjRs3YGdnBwD4+uuv0b59e9y6dQvVq1cvUI62/WZmZsLMzEwv4yMiosKj9RmL+/fvY9asWfDx8cHRo0fVxvz777+YMGECunXrhmnTpuHhw4cFiiEiouJz9uxZ2Nvbo0aNGlJbixYtpHUFzdGmXz8/P9jY2KBs2bKYNWsWMjMzdRofEREVHq0Ki59//hmtW7eGhYUFDhw4gEePHqnE/Pvvv2jUqBESExPRp08f3Lp1C40aNUJ8fLxWMUREVLzi4+NRunRppTYTExPI5fJ8v681ydG033HjxuHOnTvIzMxESEgIfv75Z0ycOFGn8SkUCqSlpSktRESkH1oVFr6+voiKisLs2bPzjZk/fz7c3NywadMm9O3bFzt37oRMJsPixYu1iiEiouKXm5ur0vby5UsYGBjolKNJzJIlS1C+fHkYGhqiZcuWCAoKwtq1a5XOWmg7vuDgYMjlcmlxdnbOdz+IiEg7WhUWjo6OMDR8e8qBAwfQrVs36Uvd2NgYXbp0wf79+7WKISKi4lW+fHmVX/7T09Px4sULlCtXrsA5BekXAKpXr47c3FxER0cXuJ/AwECkpqZKS2xs7FvfAyIi0pxeZ4VKT09HfHy8yi9AFSpUwP379zWOUYenr4mIilbTpk2RmpqKCxcuSG2HDh0CADRp0kRqS0lJgUKh0DhH037fdOHCBchkMpQtW7bA/ZiamsLGxkZpISIi/dBrYZGVlQW8eoDR6ywsLKR1msSow9PXRERFy8vLC61bt8bo0aMRGRmJs2fPYsqUKejfvz8qVaokxdnZ2WHlypUa52gSs27dOsyePRsRERF48OABNmzYgKCgIIwZM0YqBjQdHxERFQ29FhZWVlaQyWRISkpSak9MTJSmAtQkRh2eviYiKnqhoaGoV68efH190bt3b3Tp0gWrV69WipHL5UpPw9Yk510xAQEBKF26NEaOHAlvb2+sW7cO33//PX744Qetx0dEREVDr8+xkMlkqFWrFiIiIpTaIyIiULduXY1j1DE1NVU6cBERUeGzs7PD2rVr3xqTkpKidc67YkxMTDBp0iRMmjRJ5/EREVHR0PuTtwcNGoRt27bh3r17AIBLly7hwIEDGDRokFYxRERERERUcmh1xuLy5cuYOXOm9Pq7777Dpk2b4OPjI/2qNH78eFy4cAEeHh6oVasWrl69ilGjRqFPnz5SniYxRERERERUcmhVWDg7O0sFxOunp1+/kVomk2Hz5s24c+cOYmJiULVqVZUbrTWJISIiIiKikkOrwsLe3h4+Pj4axbq6usLV1VXnGCIiIiIiev/p/R4LIiIiIiL68LCwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIinbGwICIiIiIincmKewBERPR+i4mJwbFjxyCTydC2bVs4OTnpJeddMbm5uQgPD8ft27dRrlw5tGzZEqampkoxK1asQG5urlJbs2bNULdu3QLvLxERFQzPWBARUb62bNmC6tWrIzQ0FBs2bEDVqlVx6NAhnXPeFXPu3DnUrl0bM2fOxF9//YXp06fD3d0dN2/eVOpnwoQJOHjwIG7duiUtycnJen4XiIhIE3o/Y7Fx40asW7dOqc3KygphYWFKbTdu3MCSJUsQHR0NNzc3TJ8+HZUqVdL3cIiIqIBSUlIwatQozJ07F5999hnw6g/5IUOG4P79+5DJVA8hmuRoEmNsbIzdu3fDzc0NeHX2on379hg7diyOHj2qtM0xY8bAx8enCN4RIiJ6G72fsYiOjkZ8fDzmzZsnLTNnzlSKuXXrFry9vZGTk4PRo0fj8ePHaNSoER4/fqzv4RARUQHt27cPL168wMiRI6W2sWPH4uHDhzh16lSBczSJqV+/vlRUAIChoSFat26NW7duqWzz77//xtq1a3HkyBEoFAo97T0REWmrUC6FsrGxQcuWLaWladOmSuvnz5+PWrVqYd26dejevTu2bt0KCwsLLF68uDCGQ0REBXDjxg2UKVMGdnZ2Ulu1atVgZGSEGzduFDinIP0KIbBnzx54enoqtRsZGeHUqVM4efIkRo4cidq1a+PatWv57pNCoUBaWprSQkRE+lEoN2/fu3cPXbp0gZmZGRo1aoRx48bB3NxcWn/w4EFMmTLl/w9CJkPnzp1x8ODBwhgOEREVwLNnz2Bra6vUZmBgALlcnu8f5JrkFKTfoKAgREZG4uzZs0rtf/31F7y8vAAAWVlZ8PX1RUBAACIiItT2ExwcjKCgoHfuOxERaU/vZyyMjIzg5+eHoUOHolOnTvj555/x0UcfISMjAwCQnp6OhIQElC9fXimvfPnyiI6Ozrdf/spERFS0zM3N8ezZM5X2Z8+ewcLCosA52vb7448/4ptvvsH27dvh4eGhtC6vqAAAExMTTJgwAZcvX0Z8fLza8QUGBiI1NVVaYmNj1cYREZH29H7GYuLEiUoHBl9fX1StWhUrV67ElClTkJWVBbw6sLzOwsJCWqcOf2UiIipabm5uePLkCdLT06Xv9djYWGRnZyvd/6Btjjb9Llu2DDNmzMD27dvRsWPHd445bzralJQUODo6ql3/5pS1RESkH3o/Y/Hmr02Ojo6oX78+Ll++DACwtraGTCZDYmKiUlxiYqLS9bZv4q9MRERFy8fHB0IIhIaGSm0bN26EXC5HixYtpLZly5YhMjJS4xxN+12xYgWmTZuG0NBQ+Pr6qowvOjpa5QepTZs2oUyZMnB1ddXb+0BERJopkgfkPX36FO7u7sCrS6U8PDxw6dIlpZjz58+jfv36+fbBX5mIiIpWuXLl8OWXX2LMmDG4evUqMjMzsWrVKqxatUrpR6Tx48fjhx9+QN26dTXK0SRm9+7dGDduHDp37oz79+9j2bJl0vbGjRsHALh+/Tq6dOmCdu3awcHBAYcPH8b58+exefNmGBkZFfn7RUT0odP7GYslS5YgMzNTer1s2TLcvHkT/v7+UtuQIUPw+++/4/bt28CrByEdPnwYQ4YM0fdwiIhIBzNnzkRYWBiMjIwgl8vx999/q3xXjx07FvXq1dMq510xFhYWGDNmDCpWrKj08LvXp5vt1KkT/vzzT1SsWBEpKSnw9/dHVFQUOnfuXKjvCRERqaf3MxZZWVlwcXFBuXLlkJiYiBcvXmDdunVo166dFDNmzBhcvnwZdevWRbVq1fDPP/9g0qRJ6Nmzp76HQ0REOsqbOjw/r59N0DTnXTHt2rVTOm7kx9nZGRMnTnxnHBERFT69FxYzZszAxIkTcfPmTVhYWMDFxQXGxsZKMUZGRli3bh2CgoIQGxuLKlWqwMnJSd9DISIiIiKiIlIo91iYmpoqnRbPT4UKFVChQoXCGAIRERERERWhQnnyNhERERERfVhYWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc5YWBARERERkc6KrbC4fPkyBg4ciBYtWmD48OGIiooqrqEQEVE+srOzsXjxYrRr1w4dO3bEqlWrIITQOacoY4iIqGjIimOj165dQ9OmTTFw4EDMnDkTv/76K7y9vXH58mVUqFChOIZERERqDB8+HMeOHcN3332HzMxMTJ48Gffu3cM333yjU05RxhARUdEolsJi/vz5qFevHlasWAEAaN++Pdzd3bF48WL88MMPxTEkIiJ6w82bN/Hrr7/i0KFDaNu2LQBACIGRI0di2rRpKF26dIFyijKGiIiKTrFcCnXkyBF06dJFem1kZARfX18cPny4OIZDRERqHDlyBJaWlmjVqpXU1q1bN2RnZ+PEiRMFzinKGCIiKjpFfsbixYsXSExMRLly5ZTay5Urh+jo6HzzFAoFFAqF9Do1NRUAkJaWVqBxvMxML1Ae/XcV9LOkT/xckjoF+Wzm5ehyv0F0dDScnJxgZGQktdnZ2cHc3Dzf72tNcooy5k36PpbkZGYXKI/+u96HYwn42SQ1CvrZ1OZ4UuSFRXb2/33QTU1NldrNzc2ldeoEBwcjKChIpd3Z2bkQRkkfIvnXxT0CIvV0+Ww+e/YMcrm8QLnZ2dkq39UAYGZmlu/3tSY5RRnzJh5LqLDJ5+wo7iEQqaXrZ1OT40mRFxbW1tYwNjZGUlKSUntiYiLs7e3zzQsMDMSUKVOk17m5uUhKSoK9vT0MDAwKdcz/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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "keys = list(harmony_compare)\n", "spread = [harmony_compare[k][\"site centroid spread\"] for k in keys]\n", "maps = [harmony_compare[k][\"cross-source mAP\"][0] for k in keys]\n", "fig, axes = plt.subplots(1, 2, figsize=(8, 4))\n", "b0 = axes[0].bar(keys, spread, color=\"steelblue\")\n", "axes[0].bar_label(b0, padding=2)\n", "axes[0].set_title(\"Site centroid spread\")\n", "b1 = axes[1].bar(keys, maps, color=\"seagreen\")\n", "axes[1].bar_label(b1, padding=2)\n", "axes[1].set_title(\"Cross-source mAP\")\n", "fig.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "fig014", "metadata": {}, "source": [ "Left: mean spread of the site centroids for PCA and Harmony. Right: cross-source mAP for the same two. Harmony lowers the centroid spread and raises the mAP slightly." ] }, { "cell_type": "markdown", "id": "c020", "metadata": {}, "source": [ "Harmony pulls the site centroids about 18% closer and raises cross-source retrieval slightly, yet the batch-mixing\n", "side of the heatmap above disagrees: iLISI falls sharply.\n", "\n", "iLISI asks whether a well's nearest neighbors come from several sites. Harmony aligns the sites\n", "globally without mixing local neighborhoods, so a well stays surrounded by wells from its own\n", "site while the site clouds move together. Both observations hold, and retrieval is the one that\n", "answers the screen's question.\n", "\n", "harmonypy can report convergence and return the embedding unchanged. `pp.harmony` compares its\n", "output with its input and warns when they are identical, so that uncorrected numbers do not\n", "pass unnoticed through the rest of the pipeline." ] }, { "cell_type": "markdown", "id": "c023", "metadata": {}, "source": [ "## Which compounds reproduce across sites?\n", "\n", "The results above are aggregates: one mAP for the screen, one LISI per representation. Follow-up\n", "work needs to know which compounds reproduced, which the page has not yet shown.\n", "\n", "`tl.transport` answers that. It computes each perturbation's effect as its profile minus the\n", "control centroid of its own setting, so a baseline offset does not count as disagreement, and\n", "measures how well those effect vectors agree across settings. `by=` takes a list from coarsest\n", "to finest level, and each pair of plates is assigned to the coarsest level at which the two\n", "differ, so every comparison belongs to exactly one level.\n", "\n", "With one plate per laboratory, as so far, laboratory and plate effects are the same comparison\n", "and cannot be separated. The next cell loads twelve of the 141 plates `jump_target2` pins: three\n", "sources, two batches each, two plates per batch.\n", "\n", "This section uses only the per-plate `mad_robustize` normalization from earlier, without\n", "`rank_int`, Harmony or the other corrections evaluated above. Its numbers are an uncorrected\n", "baseline on a different set of plates and are not comparable with the eleven-plate mAP values\n", "earlier on this page." ] }, { "cell_type": "code", "execution_count": 21, "id": "c024", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:42:45.274550Z", "iopub.status.busy": "2026-10-21T00:42:45.274398Z", "iopub.status.idle": "2026-10-21T00:44:04.030774Z", "shell.execute_reply": "2026-10-21T00:44:04.029108Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Downloading file 'CP59__JCPQC052__JCPQC052.parquet' from 'https://cellpainting-gallery.s3.amazonaws.com/cpg0016-jump/source_3/workspace/profiles/CP59/JCPQC052/JCPQC052.parquet' to ''.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/13.3M [00:00'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/13.3M [00:00'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/13.3M [00:00'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/13.3M [00:00'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/13.3M [00:00'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/13.3M [00:00'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/13.3M [00:00'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/13.3M [00:00'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/13.2M [00:00'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/34.8M [00:00'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/34.8M [00:00'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/34.8M [00:00'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/55.8M [00:00'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/55.6M [00:00'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/55.4M [00:00'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/43.6M [00:00'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/43.7M [00:00'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0.00/43.7M [00:00\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
compoundsagreementreproduce
level
Metadata_Plate3010.47575
Metadata_Batch3010.36575
Metadata_Source3010.13461
\n", "" ], "text/plain": [ " compounds agreement reproduce\n", "level \n", "Metadata_Plate 301 0.475 75\n", "Metadata_Batch 301 0.365 75\n", "Metadata_Source 301 0.134 61" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hierarchy = mt.ds.jump_target2(\n", " plates=[\"JCPQC051\", \"JCPQC052\", \"JCPQC053\", \"JCPQC054\"]\n", " + [\"BR00121438\", \"BR00121439\", \"BR00126113\", \"BR00126114\"]\n", " + [\"110000294936\", \"110000296682\", \"110000296339\", \"110000296356\"]\n", ")\n", "mt.pp.normalize(hierarchy, method=\"mad_robustize\", by=\"Metadata_Plate\", reference=\"negcon\")\n", "hierarchy = hierarchy[:, ~hierarchy.var[\"degenerate_scale\"].to_numpy()].copy()\n", "mt.pp.feature_select(hierarchy, na_cutoff=0.0)\n", "hierarchy = mt.pp.subset_features(hierarchy)\n", "\n", "mt.tl.transport(hierarchy, by=[\"Metadata_Source\", \"Metadata_Batch\", \"Metadata_Plate\"])\n", "by_level = hierarchy.uns[\"mantispy\"][\"transport\"]\n", "by_level.groupby(\"level\", observed=True).agg(\n", " compounds=(\"group\", \"size\"),\n", " agreement=(\"agreement\", \"median\"),\n", " reproduce=(\"is_significant\", \"sum\"),\n", ").round(3).reindex([\"Metadata_Plate\", \"Metadata_Batch\", \"Metadata_Source\"])" ] }, { "cell_type": "code", "execution_count": 22, "id": "fig011", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:44:04.034987Z", "iopub.status.busy": "2026-10-21T00:44:04.034769Z", "iopub.status.idle": "2026-10-21T00:44:04.950899Z", "shell.execute_reply": "2026-10-21T00:44:04.949386Z" } }, "outputs": [ { "data": { "image/png": "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gG1c9AkAAADANoIFAAAAANsIFgAAAABsI1gAAAAAsI1gAQAAAMA2ggUAAAAA2wgWAAAAAGwjWADQvn379MUXX1ivd+3apSVLlpRqTQBwN9m6dauSk5NLu4wb7uzZs5oxY4aysrJKrM9Tp05pxowZcjgcJdYniodgAUBff/21nnjiCev1l19+qZEjR5ZqTfg/K1asUHp6emmXAeAGmjlzpv7+97+Xdhk33I8//qgHH3xQJ06cKLE+Dxw4oAcffFCZmZkl1ieKh2ABII86deqoe/fupV0GrnjppZc0Z86c0i4DAG5J5cuXV0JCgry8vEq7lLuee2kXACCvbdu26dixY2rTpo3S0tL0448/qnnz5goODtbFixe1evVqORwOtWjRQuXKlcuz/d69e5Wenq7g4GA1atRI3t7eTuuzs7O1evVqZWVlKSYmJs/2NWrUkIuLi/X60KFDWrNmjSTJz89PdevWVc2aNfOtuV27dtqyZYt++eUXNW7cWJUrVy5wPwvTb269qampunDhgmJiYnT+/Hlt375d8fHxeY7X2rVr9fPPP6tv376SpJycHK1bt04//fSTatasqejo6Dz9X6/NsmXLFBYWpuDgYG3evFmS1LZtW3l6euqnn37Sd999p6CgIDVv3lyurq7F6rty5cratGmT3Nzc1Lx5c+trlpqaql9//VXp6emaMWOGJKl37955vqbA7WLbtm3atWuXatasqfr16zuty8nJ0Xfffafjx4+rVq1aatCggdP69evX6/Lly2rYsKG2bNmikydPqm3btvL399eZM2e0evVqeXh4qGXLlvLx8cmzXYMGDbR582ZlZmaqbdu2Klu2bJHGT01Nla+vrxo3bmwt+/7775WRkaH27ds7jRUTE6MtW7bozJkzatasmcqXL+/U18WLF7Vq1Sq5urqqUaNG+R6rQ4cOaevWrQoMDFTjxo0L/MX5t/u3Zs0aORwO9ejRQ5LkcDj07bff6vTp06pXr55q1KjhtO38+fPVpEkTubu7Ky0tTf7+/mrZsqXTe0BuGxcXF23atEnVqlWzaj5w4IC2bNlibZff3LR161YdOHBAUVFRTv1K0tGjR/Xtt9/q/vvvt5adOXNGX3zxhXr16uX0dczIyNC6devk5eWl5s2bW+vKlSun3r17W8fn119/1fLly9W3b1/t3LlTe/fuVa1atVSnTp08taWlpenQoUOKiopSlSpVtGjRojzjoggMgFvOK6+8YsLDw02tWrVM586dTaNGjYyfn59JTEw0tWvXNl26dDENGjQwoaGh5siRI9Z2ly9fNo8++qgJCgoy8fHxplGjRqZGjRomPT3danP27FnTsmVLU6lSJdO9e3cTEhJiOnbsaGrUqGG1eeutt0x0dLT1es2aNSYhIcEkJCSYe++91/j7+5shQ4bkqbl69eqmUaNGpmPHjqZly5bGz8/PfP311wXuZ2H6PX36tGnatKmpXLmy6d69u6latWqeenPHbtiwoYmLizMJCQnGGGMOHDhgGjZsaKKiokzPnj1N1apVzX333WcuXrxobVuYNk2aNDGxsbGmWrVqJj4+3lSpUsU0aNDAvPfeeyY8PNz06NHDBAcHm169ejnVXti+27dvbyIjI018fLyJiIgwUVFR5tSpU8YYY9544w0TFBRkoqOjrWOVuw64nZw5c8bEx8ebgIAA07VrV1O/fn3z0EMPWet//vln07hxYxMaGmq6detmAgICzB/+8Adz6dIlq83AgQNNdHS0CQ8PN926dTN16tQxwcHB5r///a+JiIgw3bt3NzVr1jTR0dHm7NmzTts1bNjQREZGmk6dOpm6deuaSpUqma1btxZp/F69epm//vWvTvv17LPPmo4dOzqNFRMTY6KiokzXrl3NPffcY4KCgpzm4ePHj5s6deqY6tWrm27dupnQ0FDTqlUrp35effVVU7ZsWdO9e3fTtm1b07BhQ7Nr1658j23u/uW+PwwbNswYY8zmzZtNeHi4adSokenRo4cJCgoygwcPdtq2QoUKpnPnzqZq1aqme/fuJigoyHTs2NFcuHDBqU2XLl1MeHi46d27t/nvf/9rjDFm1KhRxtfX13Tq1MlERUWZ0NBQk5aW5tT/8OHDja+vr+nSpYupUaOG6d69u5FkDh8+bIwxZv78+cbPz89pm+3btzu1McaYf//738bX19fExsaaDh06mOjoaLNz505rPyWZX375xRhjTEpKipFkevbsaRo3bmy6d+9uvLy8zPjx453GGTx4sPH19TVdu3Y1NWvWzFMbio5gAdyCXnnlFePi4mL9Up6Tk2PatGljXF1dzerVq40xxmRnZ5vGjRub559/3tpuwoQJpkGDBub06dPWspEjR5rY2Fjr9bhx40xERIQ5ceKEMcaYo0ePmooVK14zWFzt8OHDpnz58mb58uV5av7qq6+sZYMGDTJt27Yt9H7n1++LL77oVO/x48dNpUqV8gQLSWb+/PlO/bVs2dKMGDHC5OTkGGOMOXfunGnYsKF59dVXi9SmSZMmpnr16ubkyZPWMfPw8DC1a9e2jvXevXuNq6ur+e6774rcd3h4uLV/58+fN2FhYeZf//qX1aZVq1bmpZdeKvRxBG5Ff/nLX0zNmjXN8ePHrWULFiyw/j9o0CBzzz33mDNnzhhjjNm/f78JCAgw//73v602AwcONN7e3mb79u3GGGMcDoeJiIgwfn5+Zs+ePcYYY7KyskzlypXNlClTnLaTZJYtW2bMlfnzD3/4g9P8VJjxCxssvL29rSCRk5NjOnfubPr372+1GTBggGnevLk5f/68McaY9PR04+npafVz+fJl4+3tbb788ktrm927d5vvv/8+32M7cOBA4+bmZjZs2GAtczgcpnr16uatt96ylv3888+mSpUq5n//+5+1rEKFCiY8PNz6pfz48eOmcuXKTnNQhQoVTP369U1mZqa1LDU11bi4uJiUlBTrmN5///2mWbNm1py3atUqp7ocDoeJi4srcrDIHWvOnDlWm3379lnHo6BgMXr0aKv9J598Yry8vKxj/vXXX+eprVOnTgQLm7jHArhF1apVS3FxcZIkFxcXxcbGqn79+mrZsqUkydXVVc2aNdOuXbusbRITExUTE6Nly5Zp9uzZmjVrlgIDA7Vu3TqdO3dOkjRr1iwNHDhQgYGBkqSQkBA98sgj160n9xKsOXPmKDU1VVWrVtW6deuc2tSsWVOdOnWyXrdv3147d+601e+cOXOc6q1cuXK+9YaFhal3797W6127dmnNmjWKjIzU3LlzNXv2bC1atEg1atTQypUrC90mV9++fRUQEGAds/DwcPXr10/+/v6SpMjISAUHB1tfj6L2nbt/Pj4+io2Nve5xA24nly9f1vTp0zVy5EinyyN79epl/X/mzJkaPny4ypQpI0mqXr26Hn74YesSwFxt27ZVVFSUJMnDw0NNmjRRx44drUt8vL29dc899zjNjZJ0zz33qHPnztKV+XPkyJFatWqVfvrppyKNXxht2rSxLnt0cXFRu3btnH6mZ8+erWHDhlmX20RHR1uXLuXW5+XlpfT0dOXk5EhX5terL836rZYtW6pJkybW65UrV+rgwYMKDg7WnDlzNHv2bK1cuTLfOWjAgAEKCgqSrsyx/fv316xZs/K0+e2lYzNmzFCbNm3UunVrq+bnn39e69at0/79+61jGhcXZ9Xl4eGhJ598ssjHMykpSbGxsU6XS0VERFzzeEjS0KFDrf+3b99eFy9e1MGDB6Ur7y1X1zZixIgi1wZn3GMB3KKuvh7Xy8sr32UXLlywXh84cEDlypXLc6Nv3759lZWVJT8/Px06dEjVq1d3Wh8REXHNWr799lv17t1bgYGBqlmzpnx9fZWRkaGff/7ZqV3uL8cF1Vecfg8fPpyn3qtfS1KVKlWcXh84cECStGrVKrm5uVnLPT09Vbt27UK3yVXUr0dR+i7qcQNuNydOnND58+fzfO/nysjI0JkzZxQZGem0vEaNGlq4cKHTsvx+7vz8/PIsu/pnqKB57+DBg/Lw8Cj0+IVxrZ/pjIwMnT17Nt96tmzZIl0JI5988olGjBihCRMmqG3btkpISLDuHctPfnOgp6dnnvqrVq2a5+uQXy0ff/zxNfs/ePBgvsfrt+uK836Tn0OHDhX4vXMtv/065N5/kft1KOx7C4qGYAHcQfz9/dWzZ0+NGjWqwDYVKlTQyZMnnZZd/fpqzzzzjBISEvT2229by5o3by5jjK16C9NvYGCgTp06dd16r74hMPdMwrhx41SvXr18xy9Mm+K6kX0Dt5uyZcvK1dW1wEeMlitXTh4eHsrIyHBanpGRYf0l3a6C5r2goKBCj+/q6mqdQchV1D8C+Pv7y93d/brzcI8ePdSjRw/t2bNHixcv1pAhQ3TgwAE988wz+fab3xzocDg0depU6yxMQfKr5erjfnX/QUFBeb6euccvd9vCvN8U5pgGBASU6ONpVYT3FhQNl0IBd5Bu3bopMTFRFy9edFp+9OhR6/+tW7fWggULrNfGGM2fP/+a/f74449OT9PYt2+f9XQkOwrTb6tWrfTZZ5851fv5559ft+/GjRsrODhY77//fp51x44dK3Sb4irJvsuUKcMZDNzWfH191bp1ayUlJTkt/+WXXyTJehravHnzrHU5OTmaN2+edamNXd9++61+/PFH6/W8efMUGhqq8PDwQo9ftWpV7dmzx6nNN998U6Q63N3d1bx5c6d5+MKFC/ryyy+dXuf+kl6zZk09/vjj+v3vf69vv/220OO0b99enp6e+uCDD5yWZ2dnW5d/5crvPaFVq1bX7L9169ZauXKl0y/js2fPVnBwsHV2oXXr1lqxYoXOnDljtfntMdaVY5qVleU0L159qVaXLl309ddf68iRI9aynJwcW2GjVatWWrFihc6ePWst++17DYqHMxbAHeTVV19VmzZt1KxZMw0YMEAeHh5avXq1MjMztWjRIknSmDFj9Lvf/U59+/ZVp06dtHDhQh0+fDjfx9bm6t27t1555RVdvnxZ2dnZmjhxYok8iq8w/ebW++CDD6pDhw764osvtG/fPut+h4J4enpq6tSp6tOnj3766Sd16tRJv/76qxYuXKj+/ftr6NChhWpTXCXZ9+9+9zvNmDFDderUkY+PD4+bxW1p0qRJiouLU3x8vO677z4dPXpUixcv1vr16yVJb7zxhtq1aycPDw81b95cc+bMUUZGhl544YUSGd/Pz0+dOnXS0KFDdfjwYb355ptKTEy0LlUszPgPP/ywWrVqpaefflp169bV3LlzdfToUVWoUKFItfzzn/9Ux44d5e7urkaNGikpKUmXL1+21p87d06xsbHq2bOnGjRooGPHjmnWrFmaMmVKoceoXLmyJk6cqMcff1w7duxQbGysjhw5orlz5+qf//yn0z0dP/zwgx544AF16dJFixYt0p49e6772Tl/+tOf9P7776t9+/YaPHiwDh06pLfeekv/+c9/rMuO+vfvr4kTJ6pDhw4aOHCgtm/fnueelXvuuUcNGjRQ3759NWDAAO3atUv/+9//nNo88sgjmjFjhlq0aKHHH39cvr6+mjlzpl555RXrMb9F9ac//UlvvfWWOnbsqAEDBmjnzp369NNPpXzOzqDwCBbALSg6OjrPWYeGDRvK09PTaVnjxo0VEhJiva5SpYq2bNmipKQkbdiwQWXKlFHv3r31wAMPWG1q166tdevWacqUKdq0aZPuv/9+Pfnkk05nAa7+gLxXX31VtWrV0tq1a+Xn56fExERt2LDB6SbM/GoOCwtzutnuaoXpNyoqSuvWrdMHH3ygjRs3qlevXoqNjdXs2bOvObYk9ezZU+np6fr444+VmpqqsLAwvfPOO/rd735XpDZdu3bNczlT9+7d8zwTvWfPnk7PiC9u3y1atHD6PIxRo0YpMDBQq1atUlZWlrp3706wwG0nJiZG6enp+vDDD7V27VrVrl1by5Yts9Y3a9ZMmzZtUmJiolJTU9WmTRt9/PHHCg4Odmpz9dm7q39edOXm6avvc+jcubMee+wxLVq0SGfOnNGiRYvUtWvXIo0fGxurb775RjNmzNDWrVs1bNgwZWZmat++fdesMSoqSt26dXOqLzU1VR999JHS09P15JNPKicnR7t375auXEK0ceNGffTRR1q9erXKly+vxYsXF3j2Jr8xJWnIkCGKjY3VzJkztWrVKkVGRmr27Nl55q6JEyfq3Llz2rhxo2rXrq233npL1apVs9b/4Q9/UHh4uNM2bm5uSk5O1tSpU7Vu3TqVLVtWy5cvV5s2baw2Hh4eWrVqld555x2tW7dOUVFRWrVqlV566SX5+vo69TNp0iStXbtW0dHRWrFihcaMGWO1cXd31xdffKH//e9/+uabb1S2bFm9/vrrat68uZTPB+RVrFhRCQkJTve3eXl5KSEhwbpHx9PTU6mpqZo0aZJV28cff6yuXbvm+XwTFJ6LsXuRNADcQNnZ2Tp37px1z4IkxcXFqWbNmvrPf/5TqrUBuD0MGjRIZ8+eLdYTnu50QUFBevfdd9WvX7/SLuWmy8jIcAqgY8eO1fTp062Ah6LjjAWAW9qlS5fUvn17PfDAA6pQoYIWLlyo77//XpMnTy7t0gAAt7HBgwerevXqioqK0saNGzVt2jRNmzattMu6rXHzNoBbmre3t+bNm6dLly5p3bp1atWqlbZt22Y9xx4ArqdZs2bWZwDBWX6XOd0tEhMTFRoaqrVr16p8+fJau3at/vjHP5Z2Wbc1LoUCAAAAYBtnLAAAAADYRrAAAAAAYBvBAgAAAIBtBAsAAAAAthEsAAAAANhGsAAAAABgG8ECAAAAgG0ECwAAAAC2ESwAAAAA2Pb/ATSXihhh0WZlAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "levels = [\"Metadata_Plate\", \"Metadata_Batch\", \"Metadata_Source\"]\n", "summary = (\n", " by_level.groupby(\"level\", observed=True)\n", " .agg(\n", " agreement=(\"agreement\", \"median\"),\n", " reproduce=(\"is_significant\", \"sum\"),\n", " )\n", " .reindex(levels)\n", ")\n", "fig, axes = plt.subplots(1, 2, figsize=(8, 4), sharey=True)\n", "axes[0].barh(levels, summary[\"agreement\"], color=\"steelblue\")\n", "axes[0].set_xlabel(\"median agreement\")\n", "axes[1].barh(levels, summary[\"reproduce\"], color=\"seagreen\")\n", "axes[1].set_xlabel(\"compounds reproducing\")\n", "fig.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "fig012", "metadata": {}, "source": [ "Left: median effect agreement at each level. Right: compounds reproducing at q < 0.05. Agreement falls from plate to batch to source." ] }, { "cell_type": "markdown", "id": "c025", "metadata": {}, "source": [ "Read the table row by row. A compound's effect agrees at +0.475 between two plates of one\n", "batch, at +0.365 between batches of one laboratory, and at +0.134 between laboratories. Each\n", "step up the hierarchy lowers agreement, and the step between laboratories costs about twice\n", "as much as the step between batches.\n", "\n", "A single aggregate cross-source mAP shows that the sites disagree, but not whether to fix\n", "plate handling or the protocol. The gap between levels does.\n", "\n", "The `reproduce` column counts the compounds whose agreement beats the null at q < 0.05. The\n", "null uses every mismatched pair of compounds at that level instead of a sample. A sampled null\n", "would not give Benjamini-Hochberg enough resolution: its smallest possible p-value is one over\n", "the number of draws, so the count would reflect the number of draws rather than the screen.\n", "\n", "`pl.setting_agreement`, in the figure below, reads the same effect vectors by plate instead of\n", "by compound: it shows which of the twelve plates agree with each other. Annotating by source\n", "draws a line at each laboratory boundary, so a laboratory that disagrees with itself appears as\n", "a broken block. Its cells are an activity-weighted mean over compounds, while the table's\n", "per-level number is an unweighted median, so the heatmap reads higher than the table for the\n", "same pair of settings. Use it to see which settings differ from each other, not to compare\n", "absolute levels with the table." ] }, { "cell_type": "code", "execution_count": 23, "id": "c026", "metadata": { "execution": { "iopub.execute_input": "2026-10-21T00:44:04.954045Z", "iopub.status.busy": "2026-10-21T00:44:04.953831Z", "iopub.status.idle": "2026-10-21T00:44:05.383531Z", "shell.execute_reply": "2026-10-21T00:44:05.381632Z" } }, "outputs": [ { "data": { "text/html": [ " \n", " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mt.pl.setting_agreement(hierarchy, by=\"Metadata_Source\");" ] }, { "cell_type": "markdown", "id": "c027", "metadata": {}, "source": [ "## Summary\n", "\n", "- \"Site\" is ambiguous in this field. JUMP's source is a laboratory; CellProfiler's\n", " `Metadata_Site` is a field of view.\n", "- Judge a correction by the question your screen asks. On this data iLISI\n", " and retrieval disagreed about Harmony, and the corrections that pooled the sites left no\n", " compound significant.\n", "- Reproducibility has levels. `tl.transport` separates them, and the gap between two levels\n", " is more actionable than either value alone. It is an observational measure: it supports\n", " \"this effect did not reproduce at the other site\", but not \"this effect would have been\n", " *x* at the other site\".\n", "\n", "Next: [Learned embeddings against CellProfiler](learned_embeddings.ipynb), the same question asked of six\n", "feature sets." ] } ], "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.13.15" } }, "nbformat": 4, "nbformat_minor": 5 }