Changelog
List of changes in-between nanite releases.
version 4.1.0
ref: move to “src”-rooted source tree
ref: move iterative sneddon_spher model to separate package which makes nanite a pure Python package
version 4.0.0
BREAKING CHANGE: Due to the new imputation of nan-valued features, rating inference might change slightly. For the “zef18” dataset, inference was off by about 0.1 on average.
fix: bad data caused TypeError in numpy.polynomial (#25)
enh: impute nan-valued feature data if corresponding response was 0
enh: allow empty-valued groups in rating HDF5 file
enh: when encountering inf values in a training set, replace them with twice the maxium of that feature
version 3.7.3
setup: wrong package setup
version 3.7.2
setup: wrong package setup
version 3.7.1
setup: wrong package setup
version 3.7.0
feat: subtract linear slope from indentation curve (#22)
ref: return normalization reference type for details from POC and preproc
setup: bump scipy to 1.10.0 due to memory leak vulnerability
version 3.6.0
tests: make tests less strict and some cleanup
setup: drop support for Python 3.8 and 3.9
setup: bump h5py from 2.8.0 to 3.9.0
build: migrate to pyproject.toml
ci: use cibuildwheel for releases
version 3.5.4
setup: drop support for Python 3.7
version 3.5.3
setup: bump numpy to 1.22.0
version 3.5.2
build: add wheels for Python up to 3.11
ref: fix DeprecationWarnings
docs: make docs build on Windows
docs: update GH actions badge
tests: loosen np.allclose calls
version 3.5.1
docs: minor update
version 3.5.0
feat: allow to specify geometric correction factor k during fit (tip position is multiplied by k and contact point is modified directly before and after fit)
version 3.4.0
feat: allow to load fitting models from external Python files
enh: add method to deregister NaniteFitModels
version 3.3.1
docs: added some clarifications in the model docs
enh: check for leading/trailing spaces in models
enh: add more checks during loading models
version 3.3.0
feat: introduce new NaniteFitModel class
ref: deprecated get_anc_parms in favor of compute_anc_parms
docs: add more information on how to write own model functions
version 3.2.1
enh: more sensible default parameters for POC estimation fits
version 3.2.0
feat: allow specifying the minimizer method for fitting (#21)
feat: new contact point estimation with linear fit for baseline and polynomial fit for indentation part
feat: new contact point estimation with Fréchet distance between curve and direct path in normalized coordinates
tests: rename experimental test data files according to afmformats scheme (#20)
version 3.1.4
docs: preprocessing methods not correctly rendered
version 3.1.3
fix: make sure that AFM metadata contain the spring constant and raise a MissingMetaDataError if this is not the case
ref: deprecate IndentationPreprocessor class in favor of a more flat submodule (#17)
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
toNone
)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__
propertytests: 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