Skip to content

Commit

Permalink
🚀 Prepare 0.4.0 release (#709)
Browse files Browse the repository at this point in the history
* 🩹 Fixed old/broken link to docs

* ⬆️ Removed '.dev' from __version__

Note for tests to work locally you need to reinstall pyglotaran (pip install -e .)

* 👌 Changed HISTORY.rst to changelog.md and added myst-parser

For the docs to build locally you ned to install the updated requirements (pip install -r docs/requirements.txt)

* 👌 Updated changelog

* Polish up for 0.4.0 release

Upgraded Development Status to Beta
Standardized Glotaran and pyglotaran spelling
- GloTarAn (*Glo*bal *Tar*get *An*alysis) -> Glotaran
- pyGloTarAn -> pyglotaran
- pyglotaran_examples -> pyglotaran-examples (the repo)

Clean up references on Authors page

Changed URLs from http to https where possible

Moved some notes on robust covarience matrix calculation to PR #706

Co-authored-by: Joris Snellenburg <jsnel@users.noreply.github.com>
  • Loading branch information
s-weigand and jsnel authored Jun 25, 2021
1 parent b5e704a commit dc00e6d
Show file tree
Hide file tree
Showing 15 changed files with 126 additions and 86 deletions.
6 changes: 3 additions & 3 deletions AUTHORS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,6 @@ Supervision

Original publications
---------------------
1. Snellenburg JJ, Laptenok SP, Seger R, Mullen KM, van Stokkum IHM (2012). “Glotaran: A Java-Based Graphical User Interface for the R Package TIMP.” Journal of Statistical Software, 49(3), 1–22. URL http://www.jstatsoft.org/v49/i03/.
2. Mullen, Katharine, & Ivo H. M. van Stokkum. "TIMP: An R Package for Modeling Multi-way Spectroscopic Measurements." Journal of Statistical Software [Online], 18.3 (2007): 1 - 46. Web. 25 Jul. URL https://www.jstatsoft.org/article/view/v018i03
3. van Stokkum, IHM, Delmar S. Larsen, and Rienk van Grondelle. "Global and target analysis of time-resolved spectra." Biochimica et Biophysica Acta (BBA)-Bioenergetics 1657.2-3 (2004): 82-104. https://doi.org/10.1016/j.bbabio.2004.04.011
1. Joris J. Snellenburg, Sergey Laptenok, Ralf Seger, Katharine M. Mullen, Ivo H. M. van Stokkum. "Glotaran: A Java-Based Graphical User Interface for the R Package TIMP". Journal of Statistical Software (2012), Volume 49, Number 3, Pages: 1–22. URL https://dx.doi.org/10.18637/jss.v049.i03
2. Katharine M. Mullen, Ivo H. M. van Stokkum. "TIMP: An R Package for Modeling Multi-way Spectroscopic Measurements". Journal of Statistical Software (2007), Volume 18, Number 3, Pages 1-46, ISSN 1548-7660. URL https://dx.doi.org/10.18637/jss.v018.i03
3. Ivo H. M. van Stokkum, Delmar S. Larsen, Rienk van Grondelle, "Global and target analysis of time-resolved spectra". Biochimica et Biophysica Acta (BBA) - Bioenergetics (2004), Volume 1657, Issues 2–3, Pages 82-104, ISSN 0005-2728. URL https://doi.org/10.1016/j.bbabio.2004.04.011
55 changes: 0 additions & 55 deletions HISTORY.rst

This file was deleted.

12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# pyGloTarAn
# pyglotaran

pyGloTarAn is a Python library for Global and Target Analysis
pyglotaran is a Python library for Global and Target Analysis

[![latest release](https://pypip.in/version/pyglotaran/badge.svg)](https://pypi.org/project/pyglotaran/)
[![Conda Version](https://img.shields.io/conda/vn/conda-forge/pyglotaran.svg)](https://anaconda.org/conda-forge/pyglotaran)
Expand All @@ -16,7 +16,7 @@ pyGloTarAn is a Python library for Global and Target Analysis

Prerequisites:

- Python 3.8 (Python 3.9 is only supported as of v0.3.3)
- Python 3.8 or 3.9
- On Windows only 64bit is supported

Note for Windows Users: The easiest way to get python for Windows is via [Anaconda](https://www.anaconda.com/)
Expand Down Expand Up @@ -55,13 +55,13 @@ This software package is made available as an early access release, to the advan

Anyone using this package for serious work - scientists and academic users in particular - are cautioned, and treat it as any other instrument or tool that requires calibration or validation. Also be prepared for some refactoring of models or analysis specifications, sometime down the line.

As of yet, the pyglotaran package has not yet been used in any peer-reviewed scientific publications (contribution welcome), but it has been partially cross-validated against comparable software, such as the [R-package TIMP](http://dx.doi.org/10.18637/jss.v018.i03), and the TIM software described in [this publication](https://doi.org/10.1016/j.bbabio.2004.04.011) ([DOI: 10.1016/j.bbabio.2004.04.011](https://doi.org/10.1016/j.bbabio.2004.04.011)).
As of yet, the pyglotaran package has not yet been used in any peer-reviewed scientific publications (contribution welcome), but it has been partially cross-validated against comparable software, such as the [R-package TIMP](https://dx.doi.org/10.18637/jss.v018.i03), and the TIM software described in [this publication](https://doi.org/10.1016/j.bbabio.2004.04.011) ([DOI: 10.1016/j.bbabio.2004.04.011](https://doi.org/10.1016/j.bbabio.2004.04.011)).

The examples used in this validation process can be obtained from the [pyglotaran_examples repository](https://github.com/glotaran/pyglotaran_examples).
The examples used in this validation process can be obtained from the [pyglotaran-examples repository](https://github.com/glotaran/pyglotaran-examples).

## Glotaran legacy

The pyglotaran package derives its name from the glotaran software package (now called [glotaran-legacy](https://github.com/glotaran/glotaran-legacy)), first released in 2011 and described in a highly-cited publication in the Journal of Statistical Software, under the title [Glotaran: A Java-Based Graphical User Interface for the R Package TIMP](https://www.jstatsoft.org/article/view/v049i03) ([DOI: 10.18637/jss.v049.i03](http://dx.doi.org/10.18637/jss.v049.i03)).
The pyglotaran package derives its name from the Glotaran software package (now called [glotaran-legacy](https://github.com/glotaran/glotaran-legacy)), first released in 2011 and described in a highly-cited publication in the Journal of Statistical Software, under the title [Glotaran: A Java-Based Graphical User Interface for the R Package TIMP](https://www.jstatsoft.org/article/view/v049i03) ([DOI: 10.18637/jss.v049.i03](https://dx.doi.org/10.18637/jss.v049.i03)).

The [pyglotaran](https://github.com/glotaran/pyglotaran) software can be considered the spiritual successor of the [glotaran-legacy](https://github.com/glotaran/glotaran-legacy) software and has the backing of many of its original creators.

Expand Down
2 changes: 1 addition & 1 deletion benchmark/asv.conf.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
//"install_timeout": 600,

// the base URL to show a commit for the project.
"show_commit_url": "http://github.com/glotaran/pyglotaran/commit/",
"show_commit_url": "https://github.com/glotaran/pyglotaran/commit/",

// The Pythons you'd like to test against. If not provided, defaults
// to the current version of Python used to run `asv`.
Expand Down
93 changes: 93 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Changelog

## 0.4.0 (2021-06-25)

### ✨ Features

- Add basic spectral model (#672)
- Add Channel/Wavelength dependent shift parameter to irf. (#673)
- Refactored Problem class into GroupedProblem and UngroupedProblem (#681)
- Plugin system was rewritten (#600, #665)
- Deprecation framework (#631)
- Better notebook integration (#689)

### 🩹 Bug fixes

- Fix excessive memory usage in `_create_svd` (#576)
- Fix several issues with KineticImage model (#612)
- Fix exception in sdt reader index calculation (#647)
- Avoid crash in result markdown printing when optimization fails (#630)
- ParameterNotFoundException doesn't prepend '.' if path is empty (#688)
- Ensure Parameter.label is str or None (#678)
- Properly scale StdError of estimated parameters with RMSE (#704)
- More robust covariance_matrix calculation (#706)
- `ParameterGroup.markdown()` independent parametergroups of order (#592)

### 🔌 Plugins

- `ProjectIo` 'folder'/'legacy' plugin to save results (#620)
- `Model` 'spectral-model' (#672)

### 📚 Documentation

- User documentation is written in notebooks (#568)
- Documentation on how to write a `DataIo` plugin (#600)

### 🗑️ Deprecations (due in 0.6.0)

- `glotaran.ParameterGroup` -> `glotaran.parameterParameterGroup`
- `glotaran.read_model_from_yaml` -> `glotaran.io.load_model(..., format_name="yaml_str")`
- `glotaran.read_model_from_yaml_file` -> `glotaran.io.load_model(..., format_name="yaml")`
- `glotaran.read_parameters_from_csv_file` -> `glotaran.io.load_parameters(..., format_name="csv")`
- `glotaran.read_parameters_from_yaml` -> `glotaran.io.load_parameters(..., format_name="yaml_str")`
- `glotaran.read_parameters_from_yaml_file` -> `glotaran.io.load_parameters(..., format_name="yaml")`
- `glotaran.io.read_data_file` -> `glotaran.io.load_dataset`
- `result.save` -> `glotaran.io.save_result(result, ..., format_name="legacy")`
- `result.get_dataset("<dataset_name>")` -> `result.data["<dataset_name>"]`
- `glotaran.analysis.result` -> `glotaran.project.result`
- `glotaran.analysis.scheme` -> `glotaran.project.scheme`
- `model.simulate` -> `glotaran.analysis.simulation.simulate(model, ...)`

## 0.3.3 (2021-03-18)

- Force recalculation of SVD attributes in `scheme._prepare_data` (#597)
- Remove unneeded check in `spectral_penalties._get_area` Fixes (#598)
- Added python 3.9 support (#450)

## 0.3.2 (2021-02-28)

- Re-release of version 0.3.1 due to packaging issue

## 0.3.1 (2021-02-28)

- Added compatibility for numpy 1.20 and raised minimum required numpy version to 1.20 (#555)
- Fixed excessive memory consumption in result creation due to full SVD computation (#574)
- Added feature parameter history (#557)
- Moved setup logic to `setup.cfg` (#560)

## 0.3.0 (2021-02-11)

- Significant code refactor with small API changes to parameter relation specification (see docs)
- Replaced lmfit with scipy.optimize

## 0.2.0 (2020-12-02)

- Large refactor with significant improvements but also small API changes (see docs)
- Removed doas plugin

## 0.1.0 (2020-07-14)

- Package was renamed to `pyglotaran` on PyPi

## 0.0.8 (2018-08-07)

- Changed `nan_policiy` to `omit`

## 0.0.7 (2018-08-07)

- Added support for multiple shapes per compartment.

## 0.0.6 (2018-08-07)

- First release on PyPI, support for Windows installs added.
- Pre-Alpha Development
14 changes: 7 additions & 7 deletions docs/Doxyfile.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1130,7 +1130,7 @@ USE_HTAGS = NO
VERBATIM_HEADERS = YES

# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
# clang parser (see: https://clang.llvm.org/) for more accurate parsing at the
# cost of reduced performance. This can be particularly helpful with template
# rich C++ code for which doxygen's built-in parser lacks the necessary type
# information.
Expand All @@ -1151,7 +1151,7 @@ VERBATIM_HEADERS = YES
# If clang assisted parsing is enabled you can provide the clang parser with the
# path to the directory containing a file called compile_commands.json. This
# file is the compilation database (see:
# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the
# https://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the
# options used when the source files were built. This is equivalent to
# specifying the "-p" option to a clang tool, such as clang-check. These options
# will then be passed to the parser. Any options specified with CLANG_OPTIONS
Expand Down Expand Up @@ -1637,7 +1637,7 @@ USE_MATHJAX = NO

# When MathJax is enabled you can set the default output format to be used for
# the MathJax output. See the MathJax site (see:
# http://docs.mathjax.org/en/latest/output.html) for more details.
# https://www.mathjax.org/) for more details.
# Possible values are: HTML-CSS (which is slower, but has the best
# compatibility), NativeMML (i.e. MathML) and SVG.
# The default value is: HTML-CSS.
Expand Down Expand Up @@ -1667,7 +1667,7 @@ MATHJAX_EXTENSIONS =

# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
# of code that will be used on startup of the MathJax code. See the MathJax site
# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
# (see: https://www.mathjax.org/) for more details. For an
# example see the documentation.
# This tag requires that the tag USE_MATHJAX is set to YES.

Expand Down Expand Up @@ -2128,7 +2128,7 @@ DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------

# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures
# AutoGen Definitions (see https://www.gnu.org/software/autogen/) file that captures
# the structure of the code including all documentation. Note that this feature
# is still experimental and incomplete at the moment.
# The default value is: NO.
Expand Down Expand Up @@ -2329,7 +2329,7 @@ HIDE_UNDOC_RELATIONS = NO

# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
# available from the path. This tool is part of Graphviz (see:
# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
# https://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
# Bell Labs. The other options in this section have no effect if this option is
# set to NO
# The default value is: NO.
Expand Down Expand Up @@ -2484,7 +2484,7 @@ DIRECTORY_GRAPH = YES
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
# generated by dot. For an explanation of the image formats see the section
# output formats in the documentation of the dot tool (Graphviz (see:
# http://www.graphviz.org/)).
# https://www.graphviz.org/)).
# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
# to make the SVG files visible in IE 9+ (other browsers do not have this
# requirement).
Expand Down
1 change: 1 addition & 0 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
Sphinx>=3.2.0
sphinx-rtd-theme>=0.5.1
sphinx-copybutton>=0.3.0
myst-parser>=0.12.0
numpydoc>=0.8.0
# notebook docs
nbsphinx>=0.8.1
Expand Down
3 changes: 3 additions & 0 deletions docs/source/changelog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```{include} ../../changelog.md
```
5 changes: 3 additions & 2 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
"sphinx.ext.napoleon",
"nbsphinx",
"sphinx_last_updated_by_git",
"myst_parser",
"numpydoc",
"sphinx_copybutton",
]
Expand All @@ -70,8 +71,8 @@
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = ".rst"
source_suffix = [".rst", ".md"]
# source_suffix = ".rst"

linkcheck_ignore = [
r"https://github\.com/.+?#.+",
Expand Down
1 change: 0 additions & 1 deletion docs/source/history.rst

This file was deleted.

2 changes: 1 addition & 1 deletion docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Welcome to pyglotaran's documentation!
introduction
installation
notebooks/quickstart/quickstart
history
changelog
authors

.. toctree::
Expand Down
2 changes: 1 addition & 1 deletion docs/source/notebooks/quickstart/quickstart.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
"metadata": {},
"source": [
"Like all data in `pyglotaran`, the dataset is a [xarray.Dataset](https://xarray.pydata.org/en/stable/api.html#dataset).\n",
"You can find more information about the ``xarray`` library the [xarray hompage](http://xarray.pydata.org/en/stable/).\n",
"You can find more information about the ``xarray`` library the [xarray hompage](https://xarray.pydata.org/en/stable/).\n",
"\n",
"The loaded dataset is a simulated sequential model."
]
Expand Down
2 changes: 1 addition & 1 deletion glotaran/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

load_plugins()

__version__ = "0.4.0.dev0"
__version__ = "0.4.0"


def __getattr__(attribute_name: str):
Expand Down
6 changes: 1 addition & 5 deletions glotaran/analysis/optimize.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,11 +108,7 @@ def _create_result(
parameters = problem.parameters
covariance_matrix = None
if success:
# robust covariance matrix calculation
# Refs:
# https://stackoverflow.com/a/67023688/3990615
# http://www.ceres-solver.org/nnls_covariance.html#_CPPv4N5ceres10Covariance7Options14algorithm_typeE
# https://www.cse.unr.edu/~bebis/CS791E/Notes/SVD.pdf
# See PR #706: More robust covariance matrix calculation
_, jacobian_SV, jacobian_RSV = np.linalg.svd(jacobian, full_matrices=False)
jacobian_SV_square = jacobian_SV ** 2
mask = jacobian_SV_square > np.finfo(float).eps
Expand Down
8 changes: 5 additions & 3 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ author_email = joern.weissenborn@gmail.com, j.snellenburg@gmail.com, i.h.m.van.s
license = LGPL-3.0
license_file = LICENSE
classifiers =
Development Status :: 3 - Alpha
Development Status :: 4 - Beta
Intended Audience :: Education
Intended Audience :: Science/Research
License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
Natural Language :: English
Expand All @@ -22,8 +23,9 @@ classifiers =
Topic :: Scientific/Engineering :: Chemistry
Topic :: Scientific/Engineering :: Physics
project_urls =
GloTarAn Ecosystem=http://glotaran.org
Documentation=https://glotaran.readthedocs.io
Glotaran Ecosystem=https://glotaran.org
Documentation=https://pyglotaran.readthedocs.io
Changelog=https://pyglotaran.readthedocs.io/en/latest/changelog.html
Source=https://github.com/glotaran/pyglotaran
Tracker=https://github.com/glotaran/pyglotaran/issues

Expand Down

0 comments on commit dc00e6d

Please sign in to comment.