Releases: AFM-SPM/TopoStats
v2.3.1
What's Changed
- Added average grain width measurement to disordered tracing by @tcatley in #999
- Combine grain crops rather than overwriting them by @llwiggins in #1070
New Contributors
- @dependabot made their first contribution in #1015
- @tcatley made their first contribution in #999
Full Changelog: v2.2.1...v2.3.1
v2.2.1
Highlights
- Basic
.tif
file support (currently no metadata is included). - Saves results in HDF5 file.
- Supports Python 3.12
- Improved
.asd
file format via AFMReader (nee topofileformats) - New submodule for feret calculations.
- Support for very small (
pm
) and large (mm
) scans.
What's Changed
- pytest<8.0.0 by @ns-rse in #788
- Add the option to save as a
tif
file by @derollins in #778 - Save grain trace data to HDF5 format by @SylviaWhittle in #790
- Added 'pm' and 'mm' for very small and large scans by @ns-rse in #801
- Added 'pm' and 'mm' for very small and large scans by @MaxGamill-Sheffield in #796
- Remove saving of gaussian filtered arrays to .npy files by @ns-rse in #804
- Adding 3.12 to workflow test matrix by @ns-rse in #691
- Sets the type of all arguments that are files/paths to Path by @ns-rse in #809
- Fixing DPI settings by @ns-rse in #808
- Tidies up Images.plot_and_save() by @ns-rse in #810
- Adds numpydoc-validation hook to pre-commit by @ns-rse in #816
- New submodule for feret calculations by @ns-rse in #755
- refactor(grainstats): GrainStats.get_max_min_feret() > measure.feret by @ns-rse in #823
- chore: Update codecov version used in test workflow by @ns-rse in #831
- bug: Addresses importlib.resources.open_text() deprecation by @ns-rse in #830
- Resolve .gwy file not loading and add channel support for .gwy files by @SylviaWhittle in #837
- chore: Update dependency to AFMReader by @ns-rse in #852
Full Changelog: v2.2.0...v2.2.1
TopoStats v2.2.post0
The tag v2.2.0
appears to have already been used on PyPI (although no trace of it remains) and its impossible to make releases with versions that have already been used. This is therefore post0
as the release is identical and complies with such minor changes as described in the Python packaging post-releases page.
Please refer to v2.2.0 release notes for details of changes.
v2.2.0
User Interface
- Switched to
topostats <action>
and removed originalrun_topostats
, for more details please refer to the usage documentation. - Introduces a complete
matplotlibrc
params file for customising plots en-masse- Added
topostats create-matplibrc
command (with options) for generating user customisable figures.
- Added
.asd
file support @SylviaWhittle
Bugs
- Plotting of images that touch the border are now fixed @MaxGamill-Sheffield
- Improved linear splinning @SylviaWhittle
- Flattening runs when scar removal is disabled (which is now the default).
Miscellaneous
- Various minor updates to make the package compliant with Scientific Python Repository Review (still a few more steps to go though).
Development
- Adds
snoop
to aid with debugging. - Additional pre-commit hooks are now included that prevent accidental commits to
main
. - Issue templates have been improved to use Issue Forms.
Full Changelog: v2.1.2...v2.2.0
v2.1.2
Various small changes fixing aspects of plotting with regards to DPI and axis scales. Dependencies are updated and improved and igor2
instead of the unmaintained igor
is now used for loading .ibw
. Linting is improved and considerably faster in the pre-commit
pipeline courtesy with ruff
rather than flake8
and introducing pydocstyle
linting.
Importantly scar removal is now disabled by default, its a time consuming step and should only be enable if you know you have scars in your scans that you want removing.
What's Changed
- Switched to igor2 instead of igor for loading
.ibw
files which allows unpinning of numpy dependency #685 - Added ruff and pydocstyle to the pre-commit configuration and removed
flake8
(ruff
covers the same issues) by @ns-rse in #670 - Moves DPI configuration from
default_config
toplotting_dictionary
- Fix broken reference to 'image', now 'image_original' by @SylviaWhittle in #654
- Updates violin plots to work with Seaborn-0.13 and adds legend only to plots with multiple images by @ns-rse in #680
- Disable scars by default and fix KDE plotting bug by @SylviaWhittle in #678
- Add a zeroing step to filters by @SylviaWhittle in #688
- Fix plotting in pixels for topostats files by @SylviaWhittle in #658
- Adds details for image_stats.csv by @ns-rse in #664
- Changed dict crop_size -1 names to match processing by @MaxGamill-Sheffield in #665
- Lower default DPI of individual molecule plots by @SylviaWhittle in #667
- Remove redundant test by @ns-rse in #689
Full Changelog: v2.1.1...v2.1.2
v2.1.1
A broad overview of what has changed...
Technical
- Dramatically speed up tests
- Nonlinear polynomial and edge intersecting grains.
- Set scale for cropped grains.
- Various improvements of tests.
- Refactoring of DNATracing to process individual grains rather than the whole image.
User Facing
- User facing channel names have been updated.
- Introduces images statistics in addition to grains statistics.
- DNA traces are now overlaid on plots
In Detail...
- Sylvia whittle/550 replace imghdr by @SylviaWhittle in #579
- Sylvia whittle/486 area unit tests by @SylviaWhittle in #578
- Quotes around installation of extra requirements by @ns-rse in #586
- Sylvia whittle/582 channel not found by @SylviaWhittle in #587
- Make channel a free text field by @SylviaWhittle in #590
- Include comments in config files generated with --create-config-file by @SylviaWhittle in #588
- Sylvia whittle/581 group plots by dir by @SylviaWhittle in #584
- Adds unit-tests for dnatracing methods by @ns-rse in #593
- Fixing tpyo's adding in
image
by @ns-rse in #599 - Improves processing of multiple grains during dnatracing by @ns-rse in #600
- Sylvia whittle/ 517 swiss army knife by @SylviaWhittle in #540
- Fix typo "contour_lengths" -> "contour_length" by @SylviaWhittle in #603
- Sylvia whittle/596 zscale grains by @SylviaWhittle in #597
- [pre-commit.ci] pre-commit-autoupdate by @pre-commit-ci in #602
- Correcting padding of test grains for tracing by @ns-rse in #609
- Sylvia whittle/plotting traces new by @SylviaWhittle in #611
- Sylvia whittle/image stats by @SylviaWhittle in #556
- [pre-commit.ci] pre-commit-autoupdate by @pre-commit-ci in #614
- [pre-commit.ci] pre-commit-autoupdate by @pre-commit-ci in #618
- Update notebooks to fix dnatracing issue by @SylviaWhittle in #625
- Updating CITATION.cff by @ns-rse in #623
- User facing channel names swapped for bts channel names by @derollins in #622
- Nonlinear polynomial and edge intersecting grains by @SylviaWhittle in #626
- Add parameter for test_trace_mask for pad_width = 2 by @ns-rse in #628
- Sylvia whittle/601 further modularisation by @SylviaWhittle in #613
- Adds pytest exts to dev dependencies; disables some pytest warnings by @ns-rse in #635
- Speed up tests by @SylviaWhittle in #633
- [pre-commit.ci] pre-commit-autoupdate by @pre-commit-ci in #637
Full Changelog: v2.1.0...v2.1.1
TopoStats v2.1.0
The TopoStats team are pleased to announce the release of v2.1.0 🎉 . A link to the full Changelog of the commits merged since v2.0.0 can be found at the bottom of this post.
Release Highlights
- Scar removal is now available and configurable (@SylviaWhittle)
- Support for
.jpk
files (@MaxGamill-Sheffield) - Support for
.gwy
files (@SylviaWhittle) - Improved logging verbosity (@ns-rse)
- Area thresholding of grains (@SylviaWhittle)
- Updated bug report templates (@ns-rse)
- Median flattening quantile configurable (@SylviaWhittle)
- Dots Per Inch (DPI) of scan plots is configurable (@ns-rse)
- Improvements to documentation which is now built for multiple versions and
main
branch (@SylviaWhittle , @ns-rse) - Command line option to generate sample configuration files for subsequent customisation (@ns-rse)
- Processed arrays are saved as Numpy arrays for subsequent plotting (@SylviaWhittle)
Miscellaneous
- Citation File Format file is included (@ns-rse)
- Additional
pre-commit
hooks (markdownlint-cli2; ruff; pyupgrade; pylint) (@ns-rse) - pre-commit.ci is now used on pull requests to ensure code passes all
pre-commit
hooks for linting code prior to merging. (@ns-rse) - Updated bug report templates (@ns-rse)
- Switched to single
pyproject.toml
for package configuration (@ns-rse) - Switched from versioneer to setuptools_scm for automatic versioning (@ns-rse)
- Output is now in SI units (i.e. metres rather than nanometres) (@SylviaWhittle)
Bug fixes
Thanks to all users who reported bugs, there were quite a few (19). @SylviaWhittle and @ns-rse have worked hard to track down and correct these and we hope to have squashed them all, but expect there to be more out there waiting for you to report. Please do not hesitate to start a discussion or open a new issue.
Notebooks
We also have a set of Jupyter Notebooks available from the GitHub repository. These take you through the steps in processing scans with TopoStats that run automatically, summarising the resulting statistics using Matplotlib, and plotting the scans which are now saved as Numpy arrays.
We are working on some Notebooks to run in Google Colab, for now though you can either save the Notebooks to your computer from GitHub and run them or clone the TopoStats repository and run them from the notebook
directory.
Full Changelog: v2.0.0...v2.1.0
TopoStats v2.0.0
What's Changed
This is the first major release candidate of TopoStats v2. The code base has been completely re-written in Python 3 to remove the dependency on Gwyddion. Key features are...
- Refactoring of code to give classes which improves maintainability and extensibility.
- Filtering, flattening and grain detection performed via native code using NumPy and Scikit-Image functions.
- Configuration via YAML file(s).
- Re-written documentation on the website covering installation, usage and workflow.
- Unit and regression tests for refactored code run automatically via GitHub Actions.
- Linting of code to conform to PEP8 (via black and flake8).
Full Changelog: https://github.com/AFM-SPM/TopoStats/commits/v2.0.0-rc1
Contributors
The work has involved contributions from a number of the AFM-SPM team, in alphabetical order...