Changelog

List of changes in-between nanite releases.

version 3.1.2

  • docs: add POC table to docs

version 3.1.1

  • fix: do not modify preprocessing options when applying them (create a copy of the dictionary)

  • ref: remove Indentation.reset in favor of AFMData.reset_data

version 3.1.0

  • feat: new contact point estimation method “fit_constant_polynomial” which applies a piece-wise constant and polynomial fit

  • feat: contact point estimation methods now return detailed information about the procedure (currently plottable data to understand the process)

  • fix: spatial smoothing not working in some cases (#15)

  • enh: add steps_optional in preprocessing to allow fine-grained control about order of application

  • ref: remove “…smoothed” column data (which was never used anyway); instead, apply smoothing directly to AFMData subclass

  • ref: rename require_steps to steps_required in preprocessing decorator

  • setup: bump afmformats from 0.16.0 to 0.16.4

version 3.0.0

  • BREAKING CHANGE: The contact point estimation method “scheme_2020” has been removed, although it has been the default for some time. It turns out that it does not perform so well and there are other more stable methods (to be implemented). Furthermore, some of the contact point estimation methods were improved so that basically many tests had to be updated. This will not break your analysis, it just means your contact points will change.

  • feat: implement options for preprocessing methods

  • feat: the “correct_tip_offset” preprocessing method now accepts the “method” argument (see new poc submodule)

  • fix: contact point estimation with gradient-based method “poc_gradient_zero_crossing” did not really work

  • enh: improve contact point estimation with “fit_constant_line”

  • enh: speed-up contact point estimation with “deviation_from_baseline”

  • ref: CLI profiles now use JSON format by default (old format still supported)

  • ref: move contact point estimation to new ‘poc’ submodule

version 2.0.1

  • enh: implement ‘require_steps’ in preprocessing to make sure that steps are executed in the correct order

  • enh: add several helper functions for preprocessing

version 2.0.0

  • BREAKING CHANGE: segment in FitProperties is now an integer

  • setup: bump afmformats from 0.15.0 to 0.16.0

  • docs: update doc strings for the “sneddon_spher_approx” model

  • docs: remove duplcate docs for model functions

version 1.7.8

  • ref: introduce preprocessing_step decorator for managing preprocessing steps

  • ref: explicitly request “force-distance” data from afmformats (can be lifted by setting nanite.read.DEFAULT_MODALITY to None)

  • setup: bump afmformats from 0.14.3 to 0.15.0 (initial support for loading creep-compliance data)

version 1.7.7

  • docs: fix build

version 1.7.6

  • setup: bump afmformats from 0.14.1 to 0.14.3 (adjust tests, speed)

version 1.7.5

  • ref: migrate QMap and Group code to afmformats 0.14.1

  • ref: Indentation is now a subclass for afmformats.AFMForceDistance

  • ref: QMap is now a subclass for afmformats.AFMQMap

  • ref: Group is now a subclass for afmformats.AFMGroup

version 1.7.4

  • enh: allow passing metadata to the IndentationGroup initializer

  • setup: bump afmformats from 0.10.2 to 0.13.2

  • ref: deprecate get_data_paths in favor of afmformats.find_data

version 1.7.3

  • build: move windows pipeline to GH Actions

  • ref: better warning traceback for deprecated weight_cp method

  • ref: DeprecationWarning: np.int from numpy 1.20

version 1.7.2

  • build: use oldest-supported-numpy in pyproject.toml

version 1.7.1

  • build: migrate to GitHub Actions

version 1.7.0

  • enh: simplified writing new model functions by introducing default modeling and residual wrappers

  • ref: improve code readability

version 1.6.3

  • tests: fix fails due to tifffile upgrade

  • setup: lift historic pinning of lmfit==0.9.5

version 1.6.2

  • tests: improve coverage

  • enh: add sanity checks for models during registration (#5)

version 1.6.1

  • enh: if the contact point estimate is not possible, use a fit with a partially constant and linear function

version 1.6.0

  • enh: improve contact point estimation by computing the gradient first; resolves issues with tilted baselines (#6) (This may affect fitting results slightly, hence the new minor release)

version 1.5.5

  • setup: make tkinter optional for frozen applications

version 1.5.4

  • setup: bump scikit-learn from 0.18.0 to 0.23.0 (different model results due to bugfixes, enhancements, or random sampling procedures; the tests have been updated accordingly)

  • setup: bump afmformats from 0.10.0 to 0.10.2

version 1.5.3

  • setup: new builds for Python 3.8

version 1.5.2

  • enh: be more verbose when tip position cannot be computed

  • setup: bump afmformats from 0.7.0 to 0.10.0

version 1.5.1

  • setup: bump afmformats from 0.6.0 to 0.7.0 (metadata fixes)

version 1.5.0

  • feat: IndentationGroup.get_enum returns a curve from an enum value

  • setup: bump afmformats from 0.5.0 to 0.6.0 (hdf5 export, improved tab export)

version 1.4.1

  • enh: set parameter baseline to “vary” for all models

  • fix: make sure that model_key is set before params_initial when fitting with kwargs (otherwise, params_initial might reset)

version 1.4.0

  • feat: add function Indentation.get_rating_parameters

  • feat: compute additional ancillary parameter “Maximum indentation”

  • feat: new functions model.get_parm_unit and updated model.get_parm_name to work with ancillary parameters as well

version 1.3.0

  • feat: allow to define ancillary parameters for models and use them during fitting by default

  • feat: Indentation.get_initial_fit_parameters now automatically computes common and model-related ancillary parameters if no initial parameters are present

  • enh: allow to set the model_key in more functions of Indentation

  • ref: use idnt to represent Indentation instances

  • fix: preprocessing steps not stored in Indentation.preprocessing

  • setup: bump afmformats from 0.4.1 to 0.5.0

version 1.2.4

  • enh: update boundaries and default values for model parameters

version 1.2.3

  • fix: FitProperties did not detect changes in “params_initial”

version 1.2.2

  • setup: bump afmformats version from 0.3.0 to 0.4.1

version 1.2.1

  • enh: skip computation of tip position if it is already in the dataset and cannot be computed e.g. due to missing spring constant

  • fix: typo in get_data_paths_enum

  • setup: bump afmformats version from 0.2.0 to 0.3.0

version 1.2.0

  • tests: np.asscalar is deprecated

  • ref: migrate to afmformats (#1)

  • docs: minor improvements

version 1.1.2

  • fix: add __version__ property

  • tests: use time.perf_counter for timing tests

  • docs: improved LaTeX rendering

version 1.1.1

  • setup: migrate to PEP 517 (pyproject.toml)

  • docs: minor update

version 1.1.0

  • feat: add contact point to available features in qmap visualization

  • fix: avoid two invalid operations when computing features

version 1.0.1

  • fix: invalid operation when loading data with a callback function

version 1.0.0

  • docs: minor update

version 0.9.3

  • enh: store nanite and h5py library versions in rating container

  • enh: update hyperparameters of rating regressors

  • ref: deprecation in h5py: replace dataset.value by dataset[…]

version 0.9.2

  • ref: renamed the mode model_hertz_parabolic to model_hertz_paraboloidal to be consistent

  • docs: updat code reference and other minor improvements

version 0.9.1

  • fix: preprocessing keyword not working in Indentation.fit_model

  • docs: add another scripting example and minor improvements

  • tests: increase coverage

version 0.9.0

  • ref: remove legacy “discrete” feature type

  • ref: renamed kwargs for Indetation.rate_quality

  • ref: new method nanite.load_group for loading experimental data

  • ref: new class read.data.IndentationData for managing data

  • ref: replace dataset.IndentationDataSet with group.IndentationGroup to avoid ambiguities

  • fix: add missing “zef18” training set

  • fix: sample weight computation failed when a rating level was missing

  • enh: add nanite-generate-training-set command line program

  • tests: reduce warnings and increase coverage

  • cleanup: old docs in nanite.rate.io

  • docs: major update using helper extensions

version 0.8.0

  • initial release