Skip to content

Releases: angelolab/ark-analysis

Release Notes: v0.7.2 - 10/10/24

10 Oct 19:21
e22a487
Compare
Choose a tag to compare

You may download the latest release with:

git clone -b v0.7.2 https://github.com/angelolab/ark-analysis.git

What's new?

Cell table and cell distances updates

Updates to marker_quantification.generate_cell_table() which allows for segmentation masks to have various filenames. Rather than requiring fov1_whole_cell.tiff, files can be either fov1.tiff or fov1-any_suffix.tiff. For spatial analysis, distance matrices are now generated using simply the cell centroids from the cell table, rather than requiring the segmentation masks and running regionprops to locate centroids.

Packaging updates

Spatial Enrichment has been removed along with it's Cython components. This allows Ark to be a pure python package reducing build times, and not requiring operating system specific compiled versions.

In addition as part of removing the custom Docker builds, we have removed Docker related information from the README.

🚀 Features

🧰 Maintenance

📚️ Documentation

@alex-l-kong, @camisowers and @srivarra

Release Notes: v0.7.1 - 06/27/24

27 Jun 20:36
301e344
Compare
Choose a tag to compare

You may download the latest release with:

git clone -b v0.7.1 https://github.com/angelolab/ark-analysis.git

What's new?

Pixie updates

In certain datasets, it is impossible to assign all unique SOM clusters. This was previously prohibitive because error checks required all unique SOM clusters to have at least 1 pixel/cell assigned to it. With this update, this is no longer the case, and users may continue in spite of this.

To prevent users from generating duplicate cluster_id columns by accidentally running the mask generation function multiple times, a safeguard has been added.

An ongoing issue with visualizing unordered cluster IDs using the existing plotting functions has been resolved. Regardless of the spacing and ordering of the IDs internally, they are mapped to the correct color in the overlays.

Update the Mantis directory conversion process to turn off erosion and use an updated cluster_id column to generate correct and clearer overlays.

Lab members often have multiple resolutions of clustering analysis that need to be resolved. The post clustering notebook has been updated to allow users to define new cluster groups based on user-set mappings.

Spatial Analysis Updates

Our repo is gradually transitioning our internal single-cell data representation format to AnnData. We need a way to convert our existing format to be scverse compatible. The AnnData conversion notebook is the first step of this large-scale conversion process.

Prevent incorrect ordering of kmeans clusters by adding control params.

Correct a bug in fiber segmentation that causes metric averages for a fiber to be the same at the first metric value.

ezSegmenter Updates

merge_masks.py took a while to run on very long datasets with thousands of FOVs. This has been optimized by only merging cells that are in the areas surrounding objects.

Due to requests from lab members, we've added a generalized masking script to create masks from single or composite channel tiffs. This is implemented using the channel masking function from the TNBC repo.

Update image loading process to use np.int32 for compatibility of composite array addition and subtraction.

With the addition of various types of masks, it's important for the cell table generation notebook to differentiate only _whole_cell.tiff and _nuclear.tiff files if desired. Support for this has been added. Also prevents FOVs with duplicate substrings from breaking the cell table generation process by requiring specific names.

Optimize the generation of nuclear masks to prevent repetitive computation.

Deployment + Environment Updates

Our deployment stack requires enhanced security protocols, including OIDC and 2FA. These have been updated to allow for future releases.

Downgraded Python to 3.10 while waiting for scikit-image support for 3.11.


🚀 Features

🐛 Bug Fixes

🧰 Maintenance

@alex-l-kong, @bryjcannon, @camisowers and @srivarra

Release Notes: v0.7.0 - 12/06/23

06 Dec 22:50
11de0b0
Compare
Choose a tag to compare

You may download the latest release with:

git clone -b v0.7.0 https://github.com/angelolab/ark-analysis.git

What's new?

ezSegmenter support

Starting with v0.7.0, support for ezSegmenter masks has been added. The Jupyter notebook for this can be found in templates/ez_segmenter.ipynb.

Please note that this feature may experience frequent updates. Updates may be required for Pixie integration and further downstream analysis.

Updated mask visualization

v0.7.0 introduces significant updates to the visualization process of masks. Shared functionality (ex. colormap generation, plotting clusters) has been abstracted away into internal functions and dataclasses. Erosion support has been added to decrease the size of the borders between cells, and interpolation has been turned off to prevent interpolation of cell borders.

In the past, users reported problems of incorrectly sorted colors in the cmap file. This has been addressed. Additionally, users may now specify a dpi and fig_size, as well as multi-compatibility support for saving matplotlib figures.

Mantis saving updates

Starting with v0.7.0, only a single top-level Mantis directory will be created, and support for subfolders (via the img_sub_folder param) has been added.

Pixie updates

During Pixie SOM assignment for pixel clustering, some users reported it taking unusually long. This was caused by the batch size for cluster assignment being too small. With this update, the batch size can now be set by the user to speed the process up, and defaults to a more reasonable value.

Additionally, in some Pixie applications, certain cells won't have any pixel clusters associated with them. These cells now get dropped prior to running the cell clustering portion.

Previously, the overwrite flag did not work for certain functions because it wasn't propagated correctly. This has also been addressed by v0.7.0.

Versioning Updates

ark-analysis now uses scikit-image==0.19.3 and alpineer==v0.1.10.

Licensing

ark-analysis has migrated from the Modified Apache 2.0 License to the MIT license. This was made due to the cell segmentation algorithm, Mesmer, having a more restrictive license.


🚀 Features

🐛 Bug Fixes

  • Make sure overwrite functionality for pixel clustering propagates into helper functions @alex-l-kong (#1058)
  • Adjustments to Mass Plotting Workflow @srivarra (#1067)

🧰 Maintenance

v0.6.6

26 Aug 01:09
511524c
Compare
Choose a tag to compare

Fixes a bug where the tables dependency was causing HDF5 incompatibility issues. This module is never used in our repo, so it has been removed as a dependency.

🐛 Bug Fixes

🧰 Maintenance

v0.6.5

10 Aug 21:43
bc66850
Compare
Choose a tag to compare

🚀 Features

🐛 Bug Fixes

Release Notes: v0.6.4 - 07/24/23

24 Jul 23:10
996584a
Compare
Choose a tag to compare

You may download the latest release with:

git clone -b v0.6.4 https://github.com/angelolab/ark-analysis.git

What's new in Ark Analysis?

Python Compatibility

The minimum supported Python is now version 3.9.

We have an Anaconda environment.yml file so users do not need to use the Docker Image if they wish. This will create a Python 3.11 environment. Here is how to use it.

cd ark-analysis
conda env create -f environment.yml
conda activate ark_env

Pixie Improvements

Pixie now features improved fallback protection during the clustering step, preventing duplicate cluster names and the ability to save cluster masks as colored images.

K-Means Improvements

K-means now has improved plots, default parameters, and has received minor improvements.

Cell Neighbors Analysis

We have a new analysis pipeline containing two independent features: analyzing the homogeneity/diversity of the neighbors surrounding each of the cells and analyzing the proximity/distance between cell phenotypes in samples.

Fiber Segmentation

Fiber segmentation acquires more properties and has received optimizations regarding extracting distinct fiber objects.


🚀 Features

🐛 Bug Fixes

🧰 Maintenance

v0.6.3

24 Mar 20:51
8d28c2c
Compare
Choose a tag to compare

v0.6.2

23 Mar 19:55
863914a
Compare
Choose a tag to compare

🚀 Features

🐛 Bug Fixes

🧰 Maintenance

📚️ Documentation

v0.6.1

21 Mar 03:04
e06838f
Compare
Choose a tag to compare

v0.6.0

15 Mar 02:41
05e7714
Compare
Choose a tag to compare

This latest release contains the revised Pixie pixel and cell clustering algorithm.

Pixie Paper Implementation

🚀 Features

🐛 Bug Fixes

  • Add a hidden parameter to overwrite certain portions of the pipeline @alex-l-kong (#914)

🧰 Maintenance

  • ⬆️ Bump release-drafter/release-drafter from 5.20.1 to 5.22.0 @dependabot (#916)

📚️ Documentation