diff --git a/REQUIREMENTS.txt b/REQUIREMENTS.txt index 5056135fa..8a0a13a0c 100644 --- a/REQUIREMENTS.txt +++ b/REQUIREMENTS.txt @@ -8,8 +8,8 @@ jsonschema<4.18 matplotlib<3.8 # pinning mistune for m2r2 in CI requirements mistune==0.8.4 -# numpy 1.25 slightly changes values in three tests causing them to fail -numpy<1.25 +# numpy 2.0 breaks code and migration requires additional work +numpy<2 read_roi regional # scikit-image is temporarily pinned as newer versions require updating module imports diff --git a/requirements/REQUIREMENTS-CI.txt b/requirements/REQUIREMENTS-CI.txt index 2c5905e59..b1fb00718 100644 --- a/requirements/REQUIREMENTS-CI.txt +++ b/requirements/REQUIREMENTS-CI.txt @@ -6,15 +6,15 @@ babel==2.16.0 backports.tarfile==1.2.0 beautifulsoup4==4.12.3 bleach==6.1.0 -boto3==1.35.13 -botocore==1.35.13 +boto3==1.35.38 +botocore==1.35.38 certifi==2024.8.30 cffi==1.17.1 -charset-normalizer==3.3.2 +charset-normalizer==3.4.0 click==8.1.7 commonmark==0.9.1 contourpy==1.3.0 -coverage==7.6.1 +coverage==7.6.2 cryptography==43.0.1 cycler==0.12.1 decorator==5.1.1 @@ -28,36 +28,36 @@ executing==2.1.0 fastjsonschema==2.20.0 flake8==7.1.1 flake8-import-order==0.18.2 -fonttools==4.53.1 -h5py==3.11.0 -idna==3.8 +fonttools==4.54.1 +h5py==3.12.1 +idna==3.10 imageio==2.35.1 imagesize==1.4.1 -importlib_metadata==8.4.0 -importlib_resources==6.4.4 +importlib_metadata==8.5.0 +importlib_resources==6.4.5 iniconfig==2.0.0 ipython==8.18.1 jaraco.classes==3.4.0 jaraco.context==6.0.1 -jaraco.functools==4.0.2 +jaraco.functools==4.1.0 jedi==0.19.1 jeepney==0.8.0 Jinja2==3.1.4 jmespath==1.0.1 joblib==1.4.2 jsonschema==4.17.3 -jupyter_client==8.6.2 +jupyter_client==8.6.3 jupyter_core==5.7.2 jupyterlab_pygments==0.3.0 -keyring==25.3.0 +keyring==25.4.1 kiwisolver==1.4.7 lazy_loader==0.4 looseversion==1.3.0 lxml==5.3.0 -lxml_html_clean==0.2.2 +lxml_html_clean==0.3.1 m2r2==0.3.3.post2 markdown-it-py==3.0.0 -MarkupSafe==2.1.5 +MarkupSafe==3.0.1 matplotlib==3.7.5 matplotlib-inline==0.1.7 mccabe==0.7.0 @@ -73,18 +73,18 @@ nbencdec==0.0.10 nbformat==5.10.4 networkx==3.2.1 nh3==0.2.18 -numpy==1.24.4 +numpy==1.26.4 numpydoc==1.8.0 packaging==24.1 -pandas==2.2.2 +pandas==2.2.3 pandocfilters==1.5.1 parso==0.8.4 pexpect==4.9.0 pillow==10.4.0 pkginfo==1.10.0 -platformdirs==4.2.2 +platformdirs==4.3.6 pluggy==1.5.0 -prompt_toolkit==3.0.47 +prompt_toolkit==3.0.48 ptyprocess==0.7.0 pure_eval==0.2.3 pycodestyle==2.12.1 @@ -93,11 +93,11 @@ pyflakes==3.2.0 Pygments==2.18.0 pyparsing==3.1.4 pyrsistent==0.20.0 -pytest==8.3.2 +pytest==8.3.3 pytest-cov==5.0.0 pytest-xdist==3.6.1 python-dateutil==2.9.0.post0 -pytz==2024.1 +pytz==2024.2 PyWavelets==1.6.0 PyYAML==6.0.2 pyzmq==26.2.0 @@ -108,15 +108,15 @@ regional==1.1.2 requests==2.32.3 requests-toolbelt==1.0.0 rfc3986==2.0.0 -rich==13.8.0 -s3transfer==0.10.2 +rich==13.9.2 +s3transfer==0.10.3 scikit-image==0.21.0 -scikit-learn==1.5.1 +scikit-learn==1.5.2 scipy==1.13.1 seaborn==0.13.2 SecretStorage==3.3.3 semantic-version==2.10.0 -setuptools==74.1.2 +setuptools==75.1.0 showit==1.1.4 six==1.16.0 slicedimage==4.1.1 @@ -125,8 +125,8 @@ soupsieve==2.6 Sphinx==7.4.7 sphinx-autodoc-typehints==2.3.0 sphinx-bootstrap-theme==0.8.1 -sphinx-gallery==0.17.1 -sphinx-rtd-theme==2.0.0 +sphinx-gallery==0.18.0 +sphinx-rtd-theme==3.0.1 sphinxcontrib-applehelp==2.0.0 sphinxcontrib-devhelp==2.0.0 sphinxcontrib-htmlhelp==2.1.0 @@ -136,26 +136,26 @@ sphinxcontrib-programoutput==0.17 sphinxcontrib-qthelp==2.0.0 sphinxcontrib-serializinghtml==2.0.0 stack-data==0.6.3 -sympy==1.13.2 +sympy==1.13.3 tabulate==0.9.0 threadpoolctl==3.5.0 tifffile==2024.8.30 tinycss2==1.3.0 -tomli==2.0.1 +tomli==2.0.2 tornado==6.4.1 tqdm==4.66.5 trackpy==0.6.4 traitlets==5.14.3 twine==5.1.1 -types-PyYAML==6.0.12.20240808 +types-PyYAML==6.0.12.20240917 types-requests==2.31.0.6 -types-setuptools==74.1.0.20240906 +types-setuptools==75.1.0.20240917 types-urllib3==1.26.25.14 typing_extensions==4.12.2 -tzdata==2024.1 +tzdata==2024.2 urllib3==1.26.20 validators==0.34.0 wcwidth==0.2.13 webencodings==0.5.1 xarray==2023.8.0 -zipp==3.20.1 +zipp==3.20.2 diff --git a/requirements/REQUIREMENTS-JUPYTER.txt b/requirements/REQUIREMENTS-JUPYTER.txt index bfa50197f..e9283f010 100644 --- a/requirements/REQUIREMENTS-JUPYTER.txt +++ b/requirements/REQUIREMENTS-JUPYTER.txt @@ -1,5 +1,5 @@ # You should not edit this file directly. Instead, you should edit one of the following files (requirements/REQUIREMENTS-JUPYTER.txt.in) and run make requirements/REQUIREMENTS-JUPYTER.txt -anyio==4.4.0 +anyio==4.6.0 argon2-cffi==23.1.0 argon2-cffi-bindings==21.2.0 arrow==1.3.0 @@ -9,16 +9,16 @@ attrs==24.2.0 babel==2.16.0 beautifulsoup4==4.12.3 bleach==6.1.0 -boto3==1.35.13 -botocore==1.35.13 +boto3==1.35.38 +botocore==1.35.38 certifi==2024.8.30 cffi==1.17.1 -charset-normalizer==3.3.2 +charset-normalizer==3.4.0 click==8.1.7 comm==0.2.2 contourpy==1.3.0 cycler==0.12.1 -debugpy==1.8.5 +debugpy==1.8.7 decorator==5.1.1 defusedxml==0.7.1 diskcache==5.6.3 @@ -27,16 +27,16 @@ entrypoints==0.4 exceptiongroup==1.2.2 executing==2.1.0 fastjsonschema==2.20.0 -fonttools==4.53.1 +fonttools==4.54.1 fqdn==1.5.1 h11==0.14.0 -h5py==3.11.0 -httpcore==1.0.5 +h5py==3.12.1 +httpcore==1.0.6 httpx==0.27.2 -idna==3.8 +idna==3.10 imageio==2.35.1 -importlib_metadata==8.4.0 -importlib_resources==6.4.4 +importlib_metadata==8.5.0 +importlib_resources==6.4.5 ipykernel==6.29.5 ipython==8.18.1 ipywidgets==8.1.5 @@ -52,7 +52,7 @@ jupyter==1.1.1 jupyter-console==6.6.3 jupyter-events==0.6.3 jupyter-lsp==2.2.5 -jupyter_client==8.6.2 +jupyter_client==8.6.3 jupyter_core==5.7.2 jupyter_server==2.10.0 jupyter_server_terminals==0.5.3 @@ -64,7 +64,7 @@ kiwisolver==1.4.7 lazy_loader==0.4 looseversion==1.3.0 lxml==5.3.0 -MarkupSafe==2.1.5 +MarkupSafe==3.0.1 matplotlib==3.7.5 matplotlib-inline==0.1.7 mistune==0.8.4 @@ -76,17 +76,17 @@ nest-asyncio==1.6.0 networkx==3.2.1 notebook==7.1.3 notebook_shim==0.2.4 -numpy==1.24.4 +numpy==1.26.4 overrides==7.7.0 packaging==24.1 -pandas==2.2.2 +pandas==2.2.3 pandocfilters==1.5.1 parso==0.8.4 pexpect==4.9.0 pillow==10.4.0 -platformdirs==4.2.2 -prometheus_client==0.20.0 -prompt_toolkit==3.0.47 +platformdirs==4.3.6 +prometheus_client==0.21.0 +prompt_toolkit==3.0.48 psutil==6.0.0 ptyprocess==0.7.0 pure_eval==0.2.3 @@ -96,7 +96,7 @@ pyparsing==3.1.4 pyrsistent==0.20.0 python-dateutil==2.9.0.post0 python-json-logger==2.0.7 -pytz==2024.1 +pytz==2024.2 PyWavelets==1.6.0 PyYAML==6.0.2 pyzmq==26.2.0 @@ -105,33 +105,33 @@ regional==1.1.2 requests==2.32.3 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 -s3transfer==0.10.2 +s3transfer==0.10.3 scikit-image==0.21.0 -scikit-learn==1.5.1 +scikit-learn==1.5.2 scipy==1.13.1 seaborn==0.13.2 semantic-version==2.10.0 Send2Trash==1.8.3 -setuptools==74.1.2 +setuptools==75.1.0 showit==1.1.4 six==1.16.0 slicedimage==4.1.1 sniffio==1.3.1 soupsieve==2.6 stack-data==0.6.3 -sympy==1.13.2 +sympy==1.13.3 terminado==0.18.1 threadpoolctl==3.5.0 tifffile==2024.8.30 tinycss2==1.3.0 -tomli==2.0.1 +tomli==2.0.2 tornado==6.4.1 tqdm==4.66.5 trackpy==0.6.4 traitlets==5.14.3 -types-python-dateutil==2.9.0.20240906 +types-python-dateutil==2.9.0.20241003 typing_extensions==4.12.2 -tzdata==2024.1 +tzdata==2024.2 uri-template==1.3.0 urllib3==1.26.20 validators==0.34.0 @@ -141,4 +141,4 @@ webencodings==0.5.1 websocket-client==1.8.0 widgetsnbextension==4.0.13 xarray==2023.8.0 -zipp==3.20.1 +zipp==3.20.2 diff --git a/requirements/REQUIREMENTS-NAPARI-CI.txt b/requirements/REQUIREMENTS-NAPARI-CI.txt index 901b3b016..7c497392d 100644 --- a/requirements/REQUIREMENTS-NAPARI-CI.txt +++ b/requirements/REQUIREMENTS-NAPARI-CI.txt @@ -1,25 +1,25 @@ # You should not edit this file directly. Instead, you should edit one of the following files (requirements/REQUIREMENTS-NAPARI-CI.txt.in) and run make requirements/REQUIREMENTS-NAPARI-CI.txt alabaster==0.7.16 annotated-types==0.7.0 -app-model==0.2.8 +app-model==0.3.0 appdirs==1.4.4 asciitree==0.3.3 asttokens==2.4.1 attrs==24.2.0 babel==2.16.0 -boto3==1.35.13 -botocore==1.35.13 -build==1.2.1 +boto3==1.35.38 +botocore==1.35.38 +build==1.2.2.post1 cachey==0.2.1 certifi==2024.8.30 -charset-normalizer==3.3.2 +charset-normalizer==3.4.0 click==8.1.7 cloudpickle==3.0.0 comm==0.2.2 contourpy==1.3.0 cycler==0.12.1 dask==2024.8.0 -debugpy==1.8.5 +debugpy==1.8.7 decorator==5.1.1 diskcache==5.6.3 docstring_parser==0.16 @@ -29,17 +29,17 @@ executing==2.1.0 fasteners==0.19 flexcache==0.3 flexparser==0.3.1 -fonttools==4.53.1 +fonttools==4.54.1 freetype-py==2.5.1 fsspec==2024.9.0 -h5py==3.11.0 +h5py==3.12.1 HeapDict==1.0.1 hsluv==5.0.4 -idna==3.8 +idna==3.10 imageio==2.35.1 imagesize==1.4.1 -importlib_metadata==8.4.0 -importlib_resources==6.4.4 +importlib_metadata==8.5.0 +importlib_resources==6.4.5 in-n-out==0.2.1 iniconfig==2.0.0 ipykernel==6.29.5 @@ -49,7 +49,7 @@ Jinja2==3.1.4 jmespath==1.0.1 joblib==1.4.2 jsonschema==4.17.3 -jupyter_client==8.6.2 +jupyter_client==8.6.3 jupyter_core==5.7.2 kiwisolver==1.4.7 lazy_loader==0.4 @@ -58,55 +58,55 @@ locket==1.0.0 looseversion==1.3.0 magicgui==0.9.1 markdown-it-py==3.0.0 -MarkupSafe==2.1.5 +MarkupSafe==3.0.1 matplotlib==3.7.5 matplotlib-inline==0.1.7 mdurl==0.1.2 mistune==0.8.4 mpmath==1.3.0 -napari==0.5.3 -napari-console==0.0.9 +napari==0.5.4 +napari-console==0.1.0 napari-plugin-engine==0.2.0 -napari-plugin-manager==0.1.0 +napari-plugin-manager==0.1.3 napari-svg==0.2.0 nest-asyncio==1.6.0 networkx==3.2.1 npe2==0.7.7 numba==0.60.0 numcodecs==0.12.1 -numpy==1.24.4 +numpy==1.26.4 numpydoc==1.8.0 packaging==24.1 -pandas==2.2.2 +pandas==2.2.3 parso==0.8.4 partd==1.4.2 pexpect==4.9.0 pillow==10.4.0 Pint==0.24.3 -platformdirs==4.2.2 +platformdirs==4.3.6 pluggy==1.5.0 pooch==1.8.2 -prompt_toolkit==3.0.47 +prompt_toolkit==3.0.48 psutil==6.0.0 psygnal==0.11.1 ptyprocess==0.7.0 pure_eval==0.2.3 pyconify==0.1.6 -pydantic==2.9.0 +pydantic==2.9.2 pydantic-compat==0.1.2 -pydantic_core==2.23.2 +pydantic_core==2.23.4 Pygments==2.18.0 PyOpenGL==3.1.7 pyparsing==3.1.4 -pyproject_hooks==1.1.0 +pyproject_hooks==1.2.0 PyQt5==5.15.11 -PyQt5-Qt5==5.15.14 +PyQt5-Qt5==5.15.15 PyQt5_sip==12.15.0 pyrsistent==0.20.0 -pytest==8.3.2 +pytest==8.3.3 pytest-qt==4.4.0 python-dateutil==2.9.0.post0 -pytz==2024.1 +pytz==2024.2 PyWavelets==1.6.0 PyYAML==6.0.2 pyzmq==26.2.0 @@ -115,14 +115,14 @@ QtPy==2.4.1 read-roi==1.6.0 regional==1.1.2 requests==2.32.3 -rich==13.8.0 -s3transfer==0.10.2 +rich==13.9.2 +s3transfer==0.10.3 scikit-image==0.21.0 -scikit-learn==1.5.1 +scikit-learn==1.5.2 scipy==1.13.1 seaborn==0.13.2 semantic-version==2.10.0 -setuptools==74.1.2 +setuptools==75.1.0 shellingham==1.5.4 showit==1.1.4 six==1.16.0 @@ -137,13 +137,13 @@ sphinxcontrib-qthelp==2.0.0 sphinxcontrib-serializinghtml==2.0.0 stack-data==0.6.3 superqt==0.6.7 -sympy==1.13.2 +sympy==1.13.3 tabulate==0.9.0 threadpoolctl==3.5.0 tifffile==2024.8.30 -tomli==2.0.1 -tomli_w==1.0.0 -toolz==0.12.1 +tomli==2.0.2 +tomli_w==1.1.0 +toolz==1.0.0 tornado==6.4.1 tqdm==4.66.5 trackpy==0.6.4 @@ -151,7 +151,7 @@ traitlets==5.14.3 triangle==20230923 typer==0.12.5 typing_extensions==4.12.2 -tzdata==2024.1 +tzdata==2024.2 urllib3==1.26.20 validators==0.34.0 vispy==0.14.3 @@ -159,4 +159,4 @@ wcwidth==0.2.13 wrapt==1.16.0 xarray==2023.8.0 zarr==2.18.2 -zipp==3.20.1 +zipp==3.20.2 diff --git a/starfish/REQUIREMENTS-STRICT.txt b/starfish/REQUIREMENTS-STRICT.txt index 1044ae28a..1e3a4d041 100644 --- a/starfish/REQUIREMENTS-STRICT.txt +++ b/starfish/REQUIREMENTS-STRICT.txt @@ -1,19 +1,19 @@ # You should not edit this file directly. Instead, you should edit one of the following files (REQUIREMENTS.txt) and run make starfish/REQUIREMENTS-STRICT.txt attrs==24.2.0 -boto3==1.35.13 -botocore==1.35.13 +boto3==1.35.38 +botocore==1.35.38 certifi==2024.8.30 -charset-normalizer==3.3.2 +charset-normalizer==3.4.0 click==8.1.7 contourpy==1.3.0 cycler==0.12.1 diskcache==5.6.3 docutils==0.20.1 -fonttools==4.53.1 -h5py==3.11.0 -idna==3.8 +fonttools==4.54.1 +h5py==3.12.1 +idna==3.10 imageio==2.35.1 -importlib_resources==6.4.4 +importlib_resources==6.4.5 jmespath==1.0.1 joblib==1.4.2 jsonschema==4.17.3 @@ -24,36 +24,36 @@ matplotlib==3.7.5 mistune==0.8.4 mpmath==1.3.0 networkx==3.2.1 -numpy==1.24.4 +numpy==1.26.4 packaging==24.1 -pandas==2.2.2 +pandas==2.2.3 pillow==10.4.0 pyparsing==3.1.4 pyrsistent==0.20.0 python-dateutil==2.9.0.post0 -pytz==2024.1 +pytz==2024.2 PyWavelets==1.6.0 PyYAML==6.0.2 read-roi==1.6.0 regional==1.1.2 requests==2.32.3 -s3transfer==0.10.2 +s3transfer==0.10.3 scikit-image==0.21.0 -scikit-learn==1.5.1 +scikit-learn==1.5.2 scipy==1.13.1 seaborn==0.13.2 semantic-version==2.10.0 -setuptools==74.1.2 +setuptools==75.1.0 showit==1.1.4 six==1.16.0 slicedimage==4.1.1 -sympy==1.13.2 +sympy==1.13.3 threadpoolctl==3.5.0 tifffile==2024.8.30 tqdm==4.66.5 trackpy==0.6.4 -tzdata==2024.1 +tzdata==2024.2 urllib3==1.26.20 validators==0.34.0 xarray==2023.8.0 -zipp==3.20.1 +zipp==3.20.2 diff --git a/starfish/core/_display.py b/starfish/core/_display.py index 991a57cf8..e14e20839 100644 --- a/starfish/core/_display.py +++ b/starfish/core/_display.py @@ -95,7 +95,7 @@ def _spots_to_markers(intensity_table: IntensityTable) -> Tuple[np.ndarray, np.n code_length = n_rounds * n_channels # create 5-d coordinates for plotting in (x, y, round. channel, z) - n_markers = np.product(intensity_table.shape) + n_markers = np.prod(intensity_table.shape) coords = np.zeros((n_markers, 5), dtype=np.uint16) # create the coordinates. diff --git a/starfish/core/spots/AssignTargets/label.py b/starfish/core/spots/AssignTargets/label.py index cc6fc54c5..0a837c9bf 100644 --- a/starfish/core/spots/AssignTargets/label.py +++ b/starfish/core/spots/AssignTargets/label.py @@ -42,7 +42,7 @@ def _assign( else: warnings.warn( "AssignTargets will require 3D masks in the future.", DeprecationWarning) - z_min, z_max = np.NINF, np.inf + z_min, z_max = -np.inf, np.inf y_min, y_max = float(mask.y.min()), float(mask.y.max()) x_min, x_max = float(mask.x.min()), float(mask.x.max()) diff --git a/starfish/test/full_pipelines/api/test_dartfish.py b/starfish/test/full_pipelines/api/test_dartfish.py index aa4cf0a03..6234d0fc4 100644 --- a/starfish/test/full_pipelines/api/test_dartfish.py +++ b/starfish/test/full_pipelines/api/test_dartfish.py @@ -179,7 +179,8 @@ def test_dartfish_pipeline_cropped_data(tmpdir): cnts_starfish.rename(columns={'target': 'gene', 'area': 'cnt_starfish'}, inplace=True) # get top 5 genes and verify they are correct - high_expression_genes = cnts_starfish.sort_values('cnt_starfish', ascending=False).head(5) + high_expression_genes = cnts_starfish.sort_values('cnt_starfish', ascending=False, + kind='stable').head(5) assert np.array_equal( high_expression_genes['cnt_starfish'].values, @@ -187,7 +188,7 @@ def test_dartfish_pipeline_cropped_data(tmpdir): ) assert np.array_equal( high_expression_genes['gene'].values, - ['MBP', 'MOBP', 'ADCY8', 'TRIM66', 'SYT6'] + ['MBP', 'MOBP', 'ADCY8', 'SYT6', 'TRIM66'] ) # verify correlation is accurate for this subset of the image diff --git a/starfish/test/full_pipelines/api/test_merfish.py b/starfish/test/full_pipelines/api/test_merfish.py index f6d2362e9..0e57b1054 100644 --- a/starfish/test/full_pipelines/api/test_merfish.py +++ b/starfish/test/full_pipelines/api/test_merfish.py @@ -236,7 +236,7 @@ def test_merfish_pipeline_cropped_data(): spot_intensities[Features.PASSES_THRESHOLDS], drop=True ) genes, counts = np.unique(spot_intensities_passing_filters[Features.TARGET], return_counts=True) - result_counts = pd.Series(counts, index=genes).sort_values(ascending=False)[:5] + result_counts = pd.Series(counts, index=genes).sort_values(ascending=False, kind='stable')[:5] # assert that number of high-expression detected genes are correct expected_counts = pd.Series(