muon
muon copied to clipboard
Negative values after pt.pp.dsb
Describe the bug Lots of my CITE-seq values are negative after running pt.pp.dsb. It seems like like they shouldn't be below 0. Am I just misunderstanding how pt.pp.dsb works?
To Reproduce
BAL_9282_JC_1 = mu.read_10x_h5('/home/taylor81/BAL_Data/9282-JC-1/ec5337_tdi30000_fpr_0.01_epochs150_filtered.h5')
BAL_9282_JC_1_raw = mu.read_10x_h5('/home/taylor81/BAL_Data/9282-JC-1/raw_feature_bc_matrix.h5')
pt.pp.dsb(BAL_9282_JC_1,BAL_9282_JC_1_raw,random_state = 1)
Expected behaviour I would expect no negative values, but I get negative values like the following example:
Hu.CD101 | Hu.CD103 | Hu.CD105_43A3 | Hu.CD107a | Hu.CD112 | Hu.CD119 | Hu.CD11a | Hu.CD11b | Hu.CD11c | Hu.CD122 | Hu.CD123 | Hu.CD124 | Hu.CD127 | Hu.CD13 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CTGATCCCAATGGACG-1 | -10.224 | 10.86788 | -3.03904 | -42.3412 | -8.69139 | -7.74294 | -42.4369 | -13.9509 | -34.5928 | -3.91137 | -21.7118 | -9.87767 | -7.54718 | 9.31312 |
System
- OS: 5.19.0-35-generic
- Python 3.10.9
Package Version Editable project location
absl-py 1.4.0 adjustText 0.8 aiohttp 3.8.4 aiosignal 1.3.1 airr 1.4.1 alabaster 0.7.13 anndata 0.9.1 annoy 1.17.1 anyio 3.5.0 appdirs 1.4.4 argon2-cffi 21.3.0 argon2-cffi-bindings 21.2.0 asttokens 2.0.5 async-timeout 4.0.2 attrs 22.1.0 awkward 2.2.3 awkward-cpp 17 Babel 2.11.0 backcall 0.2.0 bbknn 1.5.1 beautifulsoup4 4.11.1 bleach 4.1.0 boltons 23.0.0 Bottleneck 1.3.5 brotlipy 0.7.0 cached-property 1.5.2 cellbender 0.2.2 /home/taylor81/CellBender celltypist 1.3.0 certifi 2022.12.7 cffi 1.15.1 charset-normalizer 2.0.4 chex 0.1.7 click 8.0.4 colorama 0.4.6 comm 0.1.2 conda 23.3.1 conda-package-handling 2.0.2 conda_package_streaming 0.7.0 contextlib2 21.6.0 contourpy 1.0.5 cryptography 39.0.1 cycler 0.11.0 Cython 0.29.33 debugpy 1.5.1 decorator 5.1.1 defusedxml 0.7.1 dm-tree 0.1.8 docrep 0.3.2 docutils 0.18.1 entrypoints 0.4 et-xmlfile 1.1.0 etils 1.2.0 executing 0.8.3 fastjsonschema 2.16.2 filelock 3.9.0 flax 0.6.9 flit_core 3.8.0 fonttools 4.25.0 frozenlist 1.3.3 fsspec 2023.5.0 future 0.18.3 gmpy2 2.1.2 h5py 3.7.0 harmonypy 0.0.9 idna 3.4 igraph 0.9.11 imageio 2.26.0 imagesize 1.4.1 importlib-metadata 6.0.0 importlib-resources 5.12.0 ipykernel 6.19.2 ipython 8.10.0 ipython-genutils 0.2.0 ipywidgets 7.6.5 jax 0.4.8 jaxlib 0.4.7 jedi 0.18.1 Jinja2 3.1.2 joblib 1.1.1 json5 0.9.6 jsonpatch 1.32 jsonpointer 2.1 jsonschema 4.17.3 jupyter 1.0.0 jupyter_client 8.1.0 jupyter-console 6.4.4 jupyter_core 5.3.0 jupyter-server 1.23.4 jupyterlab 3.5.3 jupyterlab-pygments 0.1.2 jupyterlab_server 2.19.0 jupyterlab-widgets 3.0.5 kiwisolver 1.4.4 lazy_loader 0.1 leidenalg 0.8.10 Levenshtein 0.21.1 lightning-utilities 0.8.0 llvmlite 0.39.1 loompy 3.0.6 louvain 0.8.0 lxml 4.9.1 markdown-it-py 2.2.0 MarkupSafe 2.1.1 matplotlib 3.6.2 matplotlib-inline 0.1.6 mdurl 0.1.2 mistune 0.8.4 mizani 0.9.2 mkl-service 2.4.0 ml-collections 0.1.1 ml-dtypes 0.1.0 mock 4.0.3 mofapy2 0.7.0 mofax 0.3.6 mpmath 1.2.1 msgpack 1.0.5 mudata 0.2.3 multidict 6.0.4 multipledispatch 0.6.0 munkres 1.1.4 muon 0.1.5 natsort 7.1.1 nbclassic 0.5.2 nbclient 0.5.13 nbconvert 6.5.4 nbformat 5.7.0 nest-asyncio 1.5.6 networkx 2.8.4 notebook 6.5.2 notebook_shim 0.2.2 numba 0.56.4 numexpr 2.8.4 numpy 1.23.5 numpy-groupies 0.9.20 numpyro 0.11.0 openpyxl 3.1.1 opt-einsum 3.3.0 optax 0.1.5 orbax-checkpoint 0.2.2 packaging 23.0 pandas 1.5.3 pandocfilters 1.5.0 parasail 1.3.4 parso 0.8.3 patsy 0.5.3 pexpect 4.8.0 pickleshare 0.7.5 Pillow 9.4.0 pip 23.0.1 platformdirs 2.5.2 plotnine 0.12.1 pluggy 1.0.0 ply 3.11 pooch 1.7.0 prometheus-client 0.14.1 prompt-toolkit 3.0.36 protobuf 3.20.3 psutil 5.9.0 ptyprocess 0.7.0 pure-eval 0.2.2 pycosat 0.6.4 pycparser 2.21 Pygments 2.14.0 pynndescent 0.5.4 pyOpenSSL 23.0.0 pyparsing 3.0.9 PyQt5-sip 12.11.0 pyro-api 0.1.2 pyro-ppl 1.8.4 pyrsistent 0.18.0 pysam 0.20.0 PySocks 1.7.1 python-dateutil 2.8.2 python-igraph 0.10.4 python-Levenshtein 0.21.1 pytorch-lightning 1.9.5 pytz 2022.7 PyWavelets 1.4.1 PyYAML 6.0 pyzmq 23.2.0 qtconsole 5.4.0 QtPy 2.2.0 rapidfuzz 3.1.1 requests 2.28.1 rich 13.3.5 ruamel.yaml 0.17.21 ruamel.yaml.clib 0.2.6 scanpy 1.9.3 scikit-image 0.20.0 scikit-learn 1.2.0 scikit-misc 0.2.0 scipy 1.9.3 scirpy 0.13.0 scrublet 0.2.3 scvi-colab 0.12.0 scvi-tools 0.20.3 seaborn 0.12.2 Send2Trash 1.8.0 session-info 1.0.0 setuptools 65.6.3 sip 6.6.2 six 1.16.0 sniffio 1.2.0 snowballstemmer 2.2.0 soupsieve 2.3.2.post1 Sphinx 6.1.3 sphinx-argparse 0.4.0 sphinx_autodoc_typehints 1.22 sphinx-rtd-theme 1.2.0 sphinxcontrib-applehelp 1.0.4 sphinxcontrib-devhelp 1.0.2 sphinxcontrib-htmlhelp 2.0.1 sphinxcontrib-jquery 4.1 sphinxcontrib-jsmath 1.0.1 sphinxcontrib-programoutput 0.17 sphinxcontrib-qthelp 1.0.3 sphinxcontrib-serializinghtml 1.1.5 squarify 0.4.3 stack-data 0.2.0 statsmodels 0.14.0 stdlib-list 0.8.0 sympy 1.11.1 tables 3.7.0 tensorstore 0.1.36 terminado 0.17.1 texttable 1.6.4 threadpoolctl 2.2.0 tifffile 2023.2.28 tinycss2 1.2.1 toml 0.10.2 tomli 2.0.1 toolz 0.12.0 torch 1.13.1 torchaudio 0.13.1 torchmetrics 0.11.4 torchvision 0.14.1 tornado 6.2 tqdm 4.65.0 traitlets 5.7.1 typing_extensions 4.4.0 umap-learn 0.5.3 urllib3 1.26.15 wcwidth 0.2.5 webencodings 0.5.1 websocket-client 0.58.0 wheel 0.38.4 widgetsnbextension 3.5.2 xlrd 1.2.0 yamlordereddictloader 0.4.0 yarl 1.9.2 zipp 3.11.0 zstandard 0.19.0
Additional context Add any other context about the problem here.
Looking at the publication for the dsb tool, Figure 4a shows some negative values for dsb normalized protein data. So it seems like we should expect some negative values. Link to figure: https://www.nature.com/articles/s41467-022-29356-8/figures/4