jwillis0720 / sadie

The Complete Python Antibody Library
MIT License
21 stars 3 forks source link

[BUG] Unable to run basic README API example #231

Closed pierrekhouryb closed 1 year ago

pierrekhouryb commented 1 year ago

Test case I am simply trying to run the single string sequence example from the README: https://github.com/jwillis0720/sadie#api

I would expect this to work out-of-the-box, any hints on what could be going wrong or how I could try to troubleshoot?

Environment:
sadie, version 1.0.6 Python 3.10.12 Biopython 1.80

Error (truncated): File "/root/projects/single-cell-bcr-pipeline/.venv/lib/python3.10/site-packages/pandas/core/generic.py", line 4800, in _drop_axis result = self._constructor_from_mgr(new_mgr, axes=new_mgr.axes) File "/root/projects/single-cell-bcr-pipeline/.venv/lib/python3.10/site-packages/pandas/core/frame.py", line 649, in _constructor_from_mgr return self._constructor(df, copy=False) File "/root/projects/single-cell-bcr-pipeline/.venv/lib/python3.10/site-packages/sadie/airr/airrtable/airrtable.py", line 214, in init self._verify() File "/root/projects/single-cell-bcr-pipeline/.venv/lib/python3.10/site-packages/sadie/airr/airrtable/airrtable.py", line 434, in _verify self.drop([i for i in self.columns if "Unnamed" in i], axis=1, inplace=True) File "/root/projects/single-cell-bcr-pipeline/.venv/lib/python3.10/site-packages/pandas/core/frame.py", line 5347, in drop return super().drop( File "/root/projects/single-cell-bcr-pipeline/.venv/lib/python3.10/site-packages/pandas/core/generic.py", line 4711, in drop obj = obj._drop_axis(labels, axis, level=level, errors=errors) File "/root/projects/single-cell-bcr-pipeline/.venv/lib/python3.10/site-packages/pandas/core/generic.py", line 4800, in _drop_axis result = self._constructor_from_mgr(new_mgr, axes=new_mgr.axes) File "/root/projects/single-cell-bcr-pipeline/.venv/lib/python3.10/site-packages/pandas/core/frame.py", line 649, in _constructor_from_mgr return self._constructor(df, copy=False) File "/root/projects/single-cell-bcr-pipeline/.venv/lib/python3.10/site-packages/sadie/airr/airrtable/airrtable.py", line 214, in init self._verify() File "/root/projects/single-cell-bcr-pipeline/.venv/lib/python3.10/site-packages/sadie/airr/airrtable/airrtable.py", line 434, in _verify self.drop([i for i in self.columns if "Unnamed" in i], axis=1, inplace=True) File "/root/projects/single-cell-bcr-pipeline/.venv/lib/python3.10/site-packages/pandas/core/frame.py", line 5347, in drop return super().drop( File "/root/projects/single-cell-bcr-pipeline/.venv/lib/python3.10/site-packages/pandas/core/generic.py", line 4711, in drop obj = obj._drop_axis(labels, axis, level=level, errors=errors) File "/root/projects/single-cell-bcr-pipeline/.venv/lib/python3.10/site-packages/pandas/core/generic.py", line 4747, in _drop_axis if axis.is_unique: File "properties.pyx", line 36, in pandas._libs.properties.CachedProperty.get File "/root/projects/single-cell-bcr-pipeline/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py", line 2325, in is_unique return self._engine.is_unique File "properties.pyx", line 36, in pandas._libs.properties.CachedProperty.get File "/root/projects/single-cell-bcr-pipeline/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py", line 846, in _engine target_values = self._get_engine_target() File "/root/projects/single-cell-bcr-pipeline/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py", line 5158, in _get_engine_target if isinstance(vals, StringArray): File "/usr/lib/python3.10/abc.py", line 119, in instancecheck return _abc_instancecheck(cls, instance) RecursionError: maximum recursion depth exceeded in comparison

tmsincomb commented 1 year ago

Hi @pierrekhouryb, I am not able to replicate your error yet. Can you please add your pip freeze here?

pierrekhouryb commented 1 year ago

Thanks @tmsincomb for looking into this.

Here is my pip freeze:
anndata==0.10.1 array-api-compat==1.4 asttokens==2.4.0 backcall==0.2.0 biopython==1.80 blosc2==2.2.9 certifi==2023.7.22 charset-normalizer==3.3.0 click==8.1.7 contourpy==1.1.1 cycler==0.12.1 decorator==5.1.1 et-xmlfile==1.1.0 exceptiongroup==1.1.3 executing==2.0.0 filetype==1.2.0 fonttools==4.43.1 h5py==3.10.0 idna==3.4 ipython==8.16.1 jedi==0.19.1 joblib==1.3.2 kiwisolver==1.4.5 Levenshtein==0.20.9 llvmlite==0.41.0 matplotlib==3.8.0 matplotlib-inline==0.1.6 mizani==0.9.3 msgpack==1.0.7 multidict==6.0.4 natsort==8.4.0 ndindex==1.7 networkx==3.1 numba==0.58.0 numexpr==2.8.7 numpy==1.25.2 openpyxl==3.1.2 packaging==23.2 pandas==2.1.1 parso==0.8.3 patsy==0.5.3 pexpect==4.8.0 pickleshare==0.7.5 Pillow==10.0.1 plotnine==0.12.3 prompt-toolkit==3.0.39 psutil==5.9.5 ptyprocess==0.7.0 pure-eval==0.2.2 py-cpuinfo==9.0.0 pyarrow==13.0.0 pydantic==1.10.13 Pygments==2.16.1 pyhmmer==0.10.2 pynndescent==0.5.10 pyparsing==3.1.1 pysam==0.22.0 python-dateutil==2.8.2 pytz==2023.3.post1 PyYAML==6.0.1 rapidfuzz==2.15.2 requests==2.31.0 sadie-antibody==1.0.6 scanpy==1.9.5 scikit-learn==1.3.1 scipy==1.11.3 seaborn==0.13.0 semantic-version==2.10.0 session-info==1.0.0 six==1.16.0 stack-data==0.6.3 statsmodels==0.14.0 stdlib-list==0.9.0 tables==3.9.1 tbb==2021.10.0 threadpoolctl==3.2.0 tqdm==4.66.1 traitlets==5.11.2 typing_extensions==4.8.0 tzdata==2023.3 umap-learn==0.5.4 urllib3==2.0.6 wcwidth==0.2.8 yarl==1.9.2

tmsincomb commented 1 year ago

How did you install sadie? The .toml file has pandas = ">=1.0,<1.5.0" which should have warned you about the package conflict.

tmsincomb commented 1 year ago

If you create a new conda env and then rerun the example than it should clear your error

conda create -n sadie pip python=3.10.12
conda activate sadie
pip install sadie-antibody

Pandas 2+ changed defaults for a few key methods, such as groupby, that will currently give a nest of bugs. I'll make it a priority to upgrade to pandas 2.0 since there will be a speed incentive. #233

pierrekhouryb commented 1 year ago

Great catch @tmsincomb ! I reinstalled the package in my environment and indeed, it detected a conflict with another of my dependencies (plotnine) that requires pandas>=1.5.0.

In any case I agree Pandas 2 support would be great, but in the meantime, I will check whether that package is absolutely needed, which I doubt.

Thanks again for looking into this so quickly, let me know if or how I can help with #233 .