muon icon indicating copy to clipboard operation
muon copied to clipboard

Negative values after pt.pp.dsb

Open ChaseTaylor939 opened this issue 1 year ago • 1 comments

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.

ChaseTaylor939 avatar Jul 28 '23 18:07 ChaseTaylor939

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

racng avatar Sep 05 '23 01:09 racng