-
Notifications
You must be signed in to change notification settings - Fork 36
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Please make sure these conditions are met
- I have checked that this issue has not already been reported.
- I have confirmed this bug exists on the latest version of pertpy.
- (optional) I have confirmed this bug exists on the main branch.
Report
With default figsize and parameters, plot_multicomparison_fc
often throws an annoying error and doesn't plot the significance markers.
Example
model.plot_multicomparison_fc(all_results)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[120], line 1
----> 1 model.plot_multicomparison_fc(all_results)
File ~/miniforge3/envs/rpy2-voodoo/lib/python3.12/site-packages/pertpy/tools/_differential_gene_expression/_base.py:868, in MethodBase.plot_multicomparison_fc(self, results_df, n_top_vars, contrast_col, log2fc_col, pvalue_col, symbol_col, marker_size, figsize, x_label, y_label, show, return_fig, **heatmap_kwargs)
865 for _i, row in results_df.iterrows():
866 if row["significance"] != "n.s.":
867 plt.scatter(
--> 868 x=x_locs[x_labels.index(row[symbol_col])],
869 y=y_locs[y_labels.index(row[contrast_col])],
870 s=_size[row["significance"]],
871 marker="*",
872 c="white",
873 )
875 plt.scatter([], [], s=marker_size, marker="*", c="black", label="< 0.001")
876 plt.scatter([], [], s=math.floor(marker_size / 2), marker="*", c="black", label="< 0.01")
ValueError: 'IL5' is not in list
Simple fixes:
model.plot_multicomparison_fc(all_results, figsize=(18,3))
model.plot_multicomparison_fc(all_results, xticklabels=True)
Versions
<table class=table>
<thead style="position: sticky; top: 0; background-color: var(--jp-layout-color0, var(--vscode-editor-background, white));">
<tr><th>Package</th><th>Version</th></tr>
</thead>
<tbody>
<tr><td><strong>pandas</strong></td><td>2.2.3</td></tr>
<tr><td><strong>numpy</strong></td><td>1.26.4</td></tr>
<tr><td><strong>scanpy</strong></td><td>1.11.0</td></tr>
<tr><td><strong>anndata</strong></td><td>0.12.0.dev92+gccfb6e3</td></tr>
<tr><td><strong>matplotlib</strong></td><td>3.9.3</td></tr>
<tr><td><strong>seaborn</strong></td><td>0.13.2</td></tr>
<tr><td><strong>pertpy</strong></td><td>0.10.0</td></tr>
</tbody>
<thead style="position: sticky; top: 0; background-color: var(--jp-layout-color0, var(--vscode-editor-background, white));">
<tr><th>Component</th><th>Info</th></tr>
</thead>
<tbody>
<tr><td>Python</td><td>3.12.0 | packaged by conda-forge | (main, Oct 3 2023, 08:43:22) [GCC 12.3.0]</td></tr>
<tr><td>OS</td><td>Linux-6.1.0-30-amd64-x86_64-with-glibc2.36</td></tr>
<tr><td>Updated</td><td>2025-04-30 23:43</td></tr>
</tbody>
</table>
<details>
<summary>Dependencies</summary>
<div style="max-height: min(500px, 80vh); overflow-y: auto;">
<table class=table>
<thead style="position: sticky; top: 0; background-color: var(--jp-layout-color0, var(--vscode-editor-background, white));">
<tr><th>Dependency</th><th>Version</th></tr>
</thead>
<tbody>
<tr><td>session-info2</td><td>0.1.2</td></tr>
<tr><td>pytorch-lightning</td><td>2.4.0</td></tr>
<tr><td>Pyomo</td><td>6.8.2</td></tr>
<tr><td>absl-py</td><td>2.1.0</td></tr>
<tr><td>pytz</td><td>2024.2</td></tr>
<tr><td>opt_einsum</td><td>3.4.0</td></tr>
<tr><td>zarr</td><td>3.0.6</td></tr>
<tr><td>kiwisolver</td><td>1.4.7</td></tr>
<tr><td>Deprecated</td><td>1.2.18</td></tr>
<tr><td>nvidia-cufft-cu12</td><td>11.2.1.3</td></tr>
<tr><td>jaxopt</td><td>0.8.3</td></tr>
<tr><td>xarray</td><td>2024.11.0</td></tr>
<tr><td>jaraco.context</td><td>5.3.0</td></tr>
<tr><td>parso</td><td>0.8.4</td></tr>
<tr><td>traitlets</td><td>5.14.3</td></tr>
<tr><td>jedi</td><td>0.19.2</td></tr>
<tr><td>jaraco.functools</td><td>4.0.1</td></tr>
<tr><td>six</td><td>1.17.0</td></tr>
<tr><td>nvidia-nvjitlink-cu12</td><td>12.4.127</td></tr>
<tr><td>jaxlib</td><td>0.4.35</td></tr>
<tr><td>PyYAML</td><td>6.0.2</td></tr>
<tr><td>debugpy</td><td>1.8.9</td></tr>
<tr><td>python-dateutil</td><td>2.9.0.post0</td></tr>
<tr><td>matplotlib-inline</td><td>0.1.7</td></tr>
<tr><td>rich</td><td>13.9.4</td></tr>
<tr><td>pyzmq</td><td>26.2.0</td></tr>
<tr><td>jaxtyping</td><td>0.2.36</td></tr>
<tr><td>cffi</td><td>1.17.1</td></tr>
<tr><td>packaging</td><td>24.2</td></tr>
<tr><td>pycparser</td><td>2.22</td></tr>
<tr><td>toolz</td><td>0.12.1</td></tr>
<tr><td>docrep</td><td>0.3.2</td></tr>
<tr><td>sparsecca</td><td>0.3.1</td></tr>
<tr><td>lamin_utils</td><td>0.13.9</td></tr>
<tr><td>regex</td><td>2024.11.6 (2.5.148)</td></tr>
<tr><td>mpmath</td><td>1.3.0</td></tr>
<tr><td>chardet</td><td>5.2.0</td></tr>
<tr><td>multipledispatch</td><td>1.0.0 (0.6.0)</td></tr>
<tr><td>pure_eval</td><td>0.2.3</td></tr>
<tr><td>ml_collections</td><td>1.0.0</td></tr>
<tr><td>nvidia-curand-cu12</td><td>10.3.5.147</td></tr>
<tr><td>chex</td><td>0.1.87</td></tr>
<tr><td>pydeseq2</td><td>0.5.0</td></tr>
<tr><td>more-itertools</td><td>10.5.0</td></tr>
<tr><td>tqdm</td><td>4.67.1</td></tr>
<tr><td>platformdirs</td><td>4.3.6</td></tr>
<tr><td>joblib</td><td>1.4.2</td></tr>
<tr><td>threadpoolctl</td><td>3.5.0</td></tr>
<tr><td>stack-data</td><td>0.6.3</td></tr>
<tr><td>triton</td><td>3.1.0</td></tr>
<tr><td>setuptools</td><td>75.6.0</td></tr>
<tr><td>nvidia-cuda-runtime-cu12</td><td>12.4.127</td></tr>
<tr><td>comm</td><td>0.2.2</td></tr>
<tr><td>msgpack</td><td>1.1.0</td></tr>
<tr><td>nvidia-cublas-cu12</td><td>12.4.5.8</td></tr>
<tr><td>ott-jax</td><td>0.5.0</td></tr>
<tr><td>wcwidth</td><td>0.2.13</td></tr>
<tr><td>texttable</td><td>1.7.0</td></tr>
<tr><td>mudata</td><td>0.3.1</td></tr>
<tr><td>typing_extensions</td><td>4.12.2</td></tr>
<tr><td>statsmodels</td><td>0.14.4</td></tr>
<tr><td>ipykernel</td><td>6.29.5</td></tr>
<tr><td>asttokens</td><td>3.0.0</td></tr>
<tr><td>scvi-tools</td><td>1.2.1</td></tr>
<tr><td>etils</td><td>1.11.0</td></tr>
<tr><td>pillow</td><td>11.0.0</td></tr>
<tr><td>certifi</td><td>2024.8.30 (2024.08.30)</td></tr>
<tr><td>nvidia-cuda-cupti-cu12</td><td>12.4.127</td></tr>
<tr><td>pyarrow</td><td>15.0.2</td></tr>
<tr><td>torchmetrics</td><td>1.6.0</td></tr>
<tr><td>ml_dtypes</td><td>0.5.0</td></tr>
<tr><td>jax</td><td>0.4.35</td></tr>
<tr><td>patsy</td><td>1.0.1</td></tr>
<tr><td>donfig</td><td>0.8.1.post1</td></tr>
<tr><td>decoupler</td><td>1.8.0</td></tr>
<tr><td>lightning</td><td>2.4.0</td></tr>
<tr><td>numpyro</td><td>0.16.0</td></tr>
<tr><td>interface-meta</td><td>1.3.0</td></tr>
<tr><td>fsspec</td><td>2024.10.0</td></tr>
<tr><td>numcodecs</td><td>0.15.1</td></tr>
<tr><td>natsort</td><td>8.4.0</td></tr>
<tr><td>wrapt</td><td>1.17.0</td></tr>
<tr><td>nvidia-nccl-cu12</td><td>2.21.5</td></tr>
<tr><td>pyparsing</td><td>3.2.0</td></tr>
<tr><td>pyro-ppl</td><td>1.9.1</td></tr>
<tr><td>nvidia-cuda-nvrtc-cu12</td><td>12.4.127</td></tr>
<tr><td>leidenalg</td><td>0.10.2</td></tr>
<tr><td>lightning-utilities</td><td>0.11.9</td></tr>
<tr><td>psutil</td><td>6.1.0</td></tr>
<tr><td>jaraco.collections</td><td>5.1.0</td></tr>
<tr><td>pynndescent</td><td>0.5.13</td></tr>
<tr><td>blitzgsea</td><td>1.3.47</td></tr>
<tr><td>ipywidgets</td><td>8.1.5</td></tr>
<tr><td>prompt_toolkit</td><td>3.0.48</td></tr>
<tr><td>flax</td><td>0.10.2</td></tr>
<tr><td>tornado</td><td>6.4.2</td></tr>
<tr><td>formulaic-contrasts</td><td>0.2.0</td></tr>
<tr><td>urllib3</td><td>2.2.3</td></tr>
<tr><td>jupyter_client</td><td>8.6.3</td></tr>
<tr><td>numba</td><td>0.60.0</td></tr>
<tr><td>formulaic</td><td>1.0.2</td></tr>
<tr><td>scipy</td><td>1.14.1</td></tr>
<tr><td>adjustText</td><td>1.3.0</td></tr>
<tr><td>equinox</td><td>0.11.9</td></tr>
<tr><td>requests</td><td>2.32.3</td></tr>
<tr><td>ipython</td><td>8.30.0</td></tr>
<tr><td>nvidia-cusolver-cu12</td><td>11.6.1.9</td></tr>
<tr><td>decorator</td><td>5.1.1</td></tr>
<tr><td>crc32c</td><td>2.7.1</td></tr>
<tr><td>nvidia-nvtx-cu12</td><td>12.4.127</td></tr>
<tr><td>simplejson</td><td>3.19.3</td></tr>
<tr><td>torch</td><td>2.5.1 (2.5.1+cu124)</td></tr>
<tr><td>sympy</td><td>1.13.1</td></tr>
<tr><td>PubChemPy</td><td>1.0.4</td></tr>
<tr><td>scikit-learn</td><td>1.5.2</td></tr>
<tr><td>nvidia-cudnn-cu12</td><td>9.1.0.70</td></tr>
<tr><td>h5py</td><td>3.12.1</td></tr>
<tr><td>nvidia-cusparse-cu12</td><td>12.3.1.170</td></tr>
<tr><td>charset-normalizer</td><td>3.4.0</td></tr>
<tr><td>optax</td><td>0.2.4</td></tr>
<tr><td>jupyter_core</td><td>5.7.2</td></tr>
<tr><td>jaraco.text</td><td>3.12.1</td></tr>
<tr><td>lineax</td><td>0.0.7</td></tr>
<tr><td>idna</td><td>3.10</td></tr>
<tr><td>executing</td><td>2.1.0</td></tr>
<tr><td>ply</td><td>3.11</td></tr>
<tr><td>Pygments</td><td>2.18.0</td></tr>
<tr><td>sparse</td><td>0.15.4</td></tr>
<tr><td>cycler</td><td>0.12.1</td></tr>
<tr><td>attrs</td><td>24.2.0</td></tr>
<tr><td>igraph</td><td>0.11.8</td></tr>
<tr><td>legacy-api-wrap</td><td>1.4.1</td></tr>
<tr><td>filelock</td><td>3.16.1</td></tr>
<tr><td>llvmlite</td><td>0.43.0</td></tr>
<tr><td>scikit-misc</td><td>0.5.1</td></tr>
</tbody>
</table>
</div>
</details>
<details>
<summary>Copyable Markdown</summary>
<pre>| Package | Version |
| ---------- | --------------------- |
| pandas | 2.2.3 |
| numpy | 1.26.4 |
| scanpy | 1.11.0 |
| anndata | 0.12.0.dev92+gccfb6e3 |
| matplotlib | 3.9.3 |
| seaborn | 0.13.2 |
| pertpy | 0.10.0 |
| Dependency | Version |
| ------------------------ | ---------------------- |
| session-info2 | 0.1.2 |
| pytorch-lightning | 2.4.0 |
| Pyomo | 6.8.2 |
| absl-py | 2.1.0 |
| pytz | 2024.2 |
| opt_einsum | 3.4.0 |
| zarr | 3.0.6 |
| kiwisolver | 1.4.7 |
| Deprecated | 1.2.18 |
| nvidia-cufft-cu12 | 11.2.1.3 |
| jaxopt | 0.8.3 |
| xarray | 2024.11.0 |
| jaraco.context | 5.3.0 |
| parso | 0.8.4 |
| traitlets | 5.14.3 |
| jedi | 0.19.2 |
| jaraco.functools | 4.0.1 |
| six | 1.17.0 |
| nvidia-nvjitlink-cu12 | 12.4.127 |
| jaxlib | 0.4.35 |
| PyYAML | 6.0.2 |
| debugpy | 1.8.9 |
| python-dateutil | 2.9.0.post0 |
| matplotlib-inline | 0.1.7 |
| rich | 13.9.4 |
| pyzmq | 26.2.0 |
| jaxtyping | 0.2.36 |
| cffi | 1.17.1 |
| packaging | 24.2 |
| pycparser | 2.22 |
| toolz | 0.12.1 |
| docrep | 0.3.2 |
| sparsecca | 0.3.1 |
| lamin_utils | 0.13.9 |
| regex | 2024.11.6 (2.5.148) |
| mpmath | 1.3.0 |
| chardet | 5.2.0 |
| multipledispatch | 1.0.0 (0.6.0) |
| pure_eval | 0.2.3 |
| ml_collections | 1.0.0 |
| nvidia-curand-cu12 | 10.3.5.147 |
| chex | 0.1.87 |
| pydeseq2 | 0.5.0 |
| more-itertools | 10.5.0 |
| tqdm | 4.67.1 |
| platformdirs | 4.3.6 |
| joblib | 1.4.2 |
| threadpoolctl | 3.5.0 |
| stack-data | 0.6.3 |
| triton | 3.1.0 |
| setuptools | 75.6.0 |
| nvidia-cuda-runtime-cu12 | 12.4.127 |
| comm | 0.2.2 |
| msgpack | 1.1.0 |
| nvidia-cublas-cu12 | 12.4.5.8 |
| ott-jax | 0.5.0 |
| wcwidth | 0.2.13 |
| texttable | 1.7.0 |
| mudata | 0.3.1 |
| typing_extensions | 4.12.2 |
| statsmodels | 0.14.4 |
| ipykernel | 6.29.5 |
| asttokens | 3.0.0 |
| scvi-tools | 1.2.1 |
| etils | 1.11.0 |
| pillow | 11.0.0 |
| certifi | 2024.8.30 (2024.08.30) |
| nvidia-cuda-cupti-cu12 | 12.4.127 |
| pyarrow | 15.0.2 |
| torchmetrics | 1.6.0 |
| ml_dtypes | 0.5.0 |
| jax | 0.4.35 |
| patsy | 1.0.1 |
| donfig | 0.8.1.post1 |
| decoupler | 1.8.0 |
| lightning | 2.4.0 |
| numpyro | 0.16.0 |
| interface-meta | 1.3.0 |
| fsspec | 2024.10.0 |
| numcodecs | 0.15.1 |
| natsort | 8.4.0 |
| wrapt | 1.17.0 |
| nvidia-nccl-cu12 | 2.21.5 |
| pyparsing | 3.2.0 |
| pyro-ppl | 1.9.1 |
| nvidia-cuda-nvrtc-cu12 | 12.4.127 |
| leidenalg | 0.10.2 |
| lightning-utilities | 0.11.9 |
| psutil | 6.1.0 |
| jaraco.collections | 5.1.0 |
| pynndescent | 0.5.13 |
| blitzgsea | 1.3.47 |
| ipywidgets | 8.1.5 |
| prompt_toolkit | 3.0.48 |
| flax | 0.10.2 |
| tornado | 6.4.2 |
| formulaic-contrasts | 0.2.0 |
| urllib3 | 2.2.3 |
| jupyter_client | 8.6.3 |
| numba | 0.60.0 |
| formulaic | 1.0.2 |
| scipy | 1.14.1 |
| adjustText | 1.3.0 |
| equinox | 0.11.9 |
| requests | 2.32.3 |
| ipython | 8.30.0 |
| nvidia-cusolver-cu12 | 11.6.1.9 |
| decorator | 5.1.1 |
| crc32c | 2.7.1 |
| nvidia-nvtx-cu12 | 12.4.127 |
| simplejson | 3.19.3 |
| torch | 2.5.1 (2.5.1+cu124) |
| sympy | 1.13.1 |
| PubChemPy | 1.0.4 |
| scikit-learn | 1.5.2 |
| nvidia-cudnn-cu12 | 9.1.0.70 |
| h5py | 3.12.1 |
| nvidia-cusparse-cu12 | 12.3.1.170 |
| charset-normalizer | 3.4.0 |
| optax | 0.2.4 |
| jupyter_core | 5.7.2 |
| jaraco.text | 3.12.1 |
| lineax | 0.0.7 |
| idna | 3.10 |
| executing | 2.1.0 |
| ply | 3.11 |
| Pygments | 2.18.0 |
| sparse | 0.15.4 |
| cycler | 0.12.1 |
| attrs | 24.2.0 |
| igraph | 0.11.8 |
| legacy-api-wrap | 1.4.1 |
| filelock | 3.16.1 |
| llvmlite | 0.43.0 |
| scikit-misc | 0.5.1 |
| Component | Info |
| --------- | ----------------------------------------------------------------------------- |
| Python | 3.12.0 | packaged by conda-forge | (main, Oct 3 2023, 08:43:22) [GCC 12.3.0] |
| OS | Linux-6.1.0-30-amd64-x86_64-with-glibc2.36 |
| Updated | 2025-04-30 23:43 |</pre>
</details>
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working