Dynamique réactionnelle des enzymes rédox multicentres, cinétique électrochimique

*Reaction dynamics of multicenter redox enzymes, electrochemical kinetics*

## Changes in QSoas

# What’s new in version 3.0 ?

Version 3.0 brings an “expert” fit mode, with a fit command line that makes it possible to automate fitting or do parameter space exploration, running many fits with random initial starting positions to greatly increase the likelihood of finding the best parameters (along with many other new features for fits).

Another improvement in the fits is a new implicit fit, to fit an implicit equation to data.

This release also brings in a command to permanently record information about a file, such as the conditions in which the experiments were made (the sample used, the temperature, etc…), in a format that QSoas automatically reads when reading the file. This makes it possible to quickly browse through data to find the experiments you need.

Finally, this release brings in a whole new offline documentation system, with and index and search facilities, startup tips, cross-reference examples and the possibility to specify manually all the command arguments and options in a dialog box when running a command from the menus.

See the full list of changes below

# What’s new in version 2.2 ?

Version 2.2 brings in a lot of new features and improvements, notably
greatly improved memory use for massive multifits, a fit for linear
(in)activation processes, a new way to transform “numbers” like peak
position or stats into new datasets and SVG output ! It also finally
brings back the peak area output in `find-peaks`

and related
commands !

See the full list of changes below

# What’s new in version 2.1 ?

Version 2.1 brings in a number of new functionalities, such as a command to solve equations, and ways to reparametrize fits, along with numerous improvements of already existing commands.

See the full list of changes below

# What’s new in version 2.0 ?

Version 2.0 brings a whole new set of functionalities for fits, namely a fit engine with enormous performance increases in massive multibuffer fits (easy to reach a 1000 times speed increase !), definition of fits with a distribution of parameters, and many new functions.

See the full list of changes below

# Changes in version 3.0 (03.12.2020)

## Fits

The fit system has been greatly improved, with an `/expert=true`

mode
featuring:

- a command-line interface with over 50 commands in the fit dialog to run fits non-interactively
- parameter space explorers, which run fits systematically with different starting parameters, to improve the chance of finding the best parameters
- possibility to run scripts, even as a
`fit-`

command-line option, which means one can now perform fully automatic fits - the display, handling, reuse of all the previous fit attempts in a fit session (“fit trajectories”), including ways to highlight changes
- the possibility to set the fit dialog title bar
- a Particle Swarm Optimizer fit engine
- the GSL implementation of the simplex as fit engine
- a mode in
`sim-`

that just writes the residuals - a mode in
`sim-`

to export subfunctions - improvements to the parameters spreadsheet
- a new fit,
`implicit`

, that fits the results of equations to data, together with a`define-implicit-fit`

to create named implicit fits - the
`arb`

fit now has its corresponding`sim-arb`

function

## New commands

- a
`mem`

command to query for memory usage and set the size of the cache for loading datasets - a
`record-meta`

command to permanently set meta-data to a given file - a
`verify`

command that aborts the current script if a condition is not verified - a
`define-distribution`

command to define distribution of parameters in fits

## Improvements of previous commands

`apply-formula`

,`eval`

and`stats`

can now work on several buffers`browse-stack`

,`browse-stack`

,`overlay-buffer`

now accept the`/for-which=`

option to further select the buffers`apply-formula`

now better handles mathematical errors (like`sqrt(-1)`

)`load`

and related commands now take an`/expected=`

option to abort with an error if the number of loaded datasets is not what one expects`run`

,`run-for-each`

and`run-for-datasets`

now provide several ways to deal with errors in the execution of the script: ignore, abort or fail`reglin`

can now be used to define a baseline to characterize peaks, and it can also show the exponential equivalent to the line`cursor`

has new symmetry operations, and can work effectively with many curves`set-perp`

can now take the values of perpendicular coordinates from a dataset row- possibility to disable optimization in
`auto-filter-bs`

`show-stack`

can also list the meta-data now- Gauss-Kronrod integration for distribution of parameters and other multidimensional integrators
`help`

can now be run without argument to start the new documentation system. With a command argument, it will still take to the documentation of the command.

## Other improvements

- new syntax for statistics and meta: one can now use
`$stats.y_max`

(etc.) in addition to`$stats["y_max"]`

to refer to the`y_max`

stats (and for all stats and meta too), which means that there is no need anymore for cumbersome double quoting like in`eval '$stats["y_max"]'`

- completion on the meta/stats names for the code
- a
`%{ruby code}`

expansion in scripts or command-line - a set of functions (
`k_mhc`

and`k_mhc_double`

) to Marcus-Hush-Chidsey rate constants (using the integral formula) - a
`trumpet_bv`

function to compute the position of peaks in so-called “trumpet plots” when using Butler-Volmer kinetics - several additional functions like
`ln_erfc(x)`

,`ln_gamma(x)`

- a
`--log`

command-line option to choose the log file name - a
`--version`

command-line option - Gauss-Kronrod integrators for parameter distributions
- full support for Qt5 (support for Qt4 is dropped)
- running a command from the menu now spawns a full dialog box with the possibility to set options
- it is now possible to deduce rate constants from thermodynamic constraints in kinetic systems
- new statistics:
`y_a`

and`y_b`

, which correspond to parameters of the linear regression of . Available for`y2`

and all the others, still as a function of`x`

. - a
`_sum`

statistic that corresponds to the sum of all elements (available for each column) - a new comprehensive offline documentation system with index, search capacities, cross-referenced examples, and the possibility to execute commands directly from within it
- a series of startup tips
- now, using the menus to start a command will show a dialog box in which one can choose the arguments and options

# Changes in version 2.2 (2018.03.21)

## New commands

- a
`load-as-parameters`

load function to load saved fit parameters as normal datasets `pop`

, which can be combined with the various`/accumulate=`

options to create datasets on the fly, from the results of commands like`stats`

or`1`

## Fits

- new fit:
`linear-kinetic-system`

, which is useful for fitting the time traces of potential step experiments with linear inactivation (like in Fourmond*el al*,*Nat Chem*2014) - new time-dependent parameter:
`ramps`

- interpolation of parameters in the “Parameters Spreadsheet”
- chi-squared “goodness of fit”
`qsoas`

and`multi`

a much more memory-efficient for massive multi-buffer fits`arb`

has more “automatic” parameters- all the
`sim-`

commands now also take the`/style=`

and`/set-meta=`

options

## Improvements of previous commands

- new picking modes available for all commands that pick points: the local min (Ctrl+M) and max (Ctrl+Shift+M)
- possibility to track the point selected for commands that pick points
- an
`/exclusive=yes`

option to`flag`

to remove all the other flags - most data-producing commands now have an
`/accumulate`

option to generate buffers step-by-step, to combine with`pop`

- new
`stats`

:`stddev`

, and quantiles:`q10`

,`q25`

,`q75`

and`q90`

`save-datasets`

can now avoid to overwrite files- threshold option for
`strip-if`

(to avoid creating near-empty buffers) `load-as-csv`

now correctly parses CSV files with quotes`print`

can now export SVG files`bin`

can now use a column for weights, and normalize the sum to 1.- Finally bring back the peak area for
`find-peaks`

,`1`

and`2`

! `expand`

can now group the Y columns 2 by 2, (or 3 by 3, etc.)- Improvements of
`unwrap`

, including the possibility to reverse its effects

## Other improvements

- possibility to load a saved stack by just double-clicking on it
- in kinetic systems, can now use either Butler-Volmer or Marcus-Hush-Chidsey kinetics for interfacial electron transfers
- now fully compatible with Qt 5, still not the default build
- switched to using embedded mruby rather than plain ruby, which finally fixes a hard crash on Windows
- new special functions: incomplete gamma functions
- many bug fixes and other minor improvements

# Changes in version 2.1 (2017.01.02)

## New commands

`solve`

, to solve equations`reparametrize-fit`

, to manipulate the parameters of a fit

## Fits

- Reparametrization of the wave shape fits for 1- and 2-electron
reversible catalysts
`ecr-wave`

and`eecr-wave`

- Implementation of the corresponding fits for irreversible
catalysts,
`eci-wave`

and`eeci-wave`

- The commands that define fits,
`reparametrize-fit`

,`combine-fits`

,`define-distribution-fit`

and`define-derived-fit`

can now redefine existing fits with the option`/redefine=true`

. - The
`qsoas`

and`multi`

fit engines can now use scaling, see the “Fit Options” dialog - Improvements of the parameters spreadsheet

## Improvements of previous commands

`echem-peaks`

now offers all the options of the other peak-finding commands, with the same meaning- When several datasets are specified, commands that pick points
`cursor`

,`baseline`

, etc. can switch between all displayed datasets (with the`n`

and`N`

keys) - Commands that write to the output file can now also save the data
as meta-data through the use of the
`/set-meta`

option. - It is now possible to select the statistics one wants to
display/save with the
`stats`

command `diff`

can now compute an arbitrary derivative to an arbitrary order`print`

can now overwrite output PDF file without asking via the`/overwrite=true`

option- most of the commands that can produce several datasets now take a
`/flag=`

option and a`/style=`

, the exception being the`sim-`

commands which still only support the`/flag=`

option at this stage.

## Other improvements

- Now compiles and runs with Ruby 2.3 and the most recent GSL releases
- The
`--stdout`

command-line option writes the content of the terminal to the standard output - Sketch of an Emacs major mode,
`misc/qsoas-mode.el`

in the tarball - A series of bug fixes

# Changes in version 2.0 (2016.07.19)

## New commands

`auto-flag`

, to automatically add flags to all newly created datasets`auto-reglin`

, another way to compute the derivative of a signal`define-distribution-fit`

, to define fits with distribution of values for parameters`hide-buffer`

, to hide buffers from view`mintegrate-formula`

, to integrate functions depending on one parameter`reverse`

, to reverse the order of data points`split-on-values`

, to split datasets on the values of certain colunms`system`

, to run external commands`timer`

, that measures the time between two calls`add`

and`multiply`

commands- a
`debug`

function to save debug information in a directory, helpful for debugging (reproducible) crashes

## Fits

- Load parameters using interpolation on Z values
- Shortcut to fix/unfix a parameter for all datasets (right-clicking)
- Spreadsheet mode for editing parameters
- A “Multi” fit engine that performs very well for large number of buffers
- Can now cancel the current fit using the shell command
`killall QSoas -SIGUSR1`

on Linux and MacOS - better convergence for the QSoas and Multi fit engines
- Generalize the use of “time-dependent parameters” (the
`/with=co:2,exp`

options to`fit-kinetic-system`

) to`fit-ode`

and`fit-arb`

- New types of time dependent parameters:
`rexp`

(exponential relaxation) and`steps`

(discrete steps) - The
`sim-`

commands can now compute the jacobian and reexport parameters (to the output file) - Now, the fit dialog detects when there are NaNs in the data, which avoid hard-to-understand problems of convergence of fits
- a new
`pseudo-voigt`

fit - a new
`polynomial`

fit - Now, the commands that define fits can redefine existing (custom)
fits if given the
`/redefine=true`

option - One can now specify the fit engine from the command-line

## Improvements of previous commands

`eval`

can now use statistics and meta-data of the current buffer- Can now push the transform using uppercase T in
`filter-fft`

, and using the`/transform`

option in`auto-filter-fft`

`save-datasets`

can now be used to name files (or buffers) based on meta-data; it can also simply rename without saving, and create directories if necessary (using`/mkpath=true`

)`run`

can change to the directory of a script when it is running it, using`/cd-to-script=true`

`flag`

can now clear all flags before adding new ones (with`/set=true`

)`generate-dataset`

can now generate several buffers at once when using the`/number`

option- More control in
`split-monotonic`

: can now keep only the first and/or last parts, and group several segments into datasets - In
`apply-formula`

and`strip-if`

, one can now use`i_0`

and`x_0`

to refer to the index and value of x of the first point of the segment `strip-if`

is now aware of the metadata and stats, like`apply-formula`

## Other improvements

`latest`

and`latest:`

*n*specifications to refer to the datasets generated by the latest command (or the _n_th before)- Faster startup time
- New special functions: Dawson integral, Debye functions, the clausen function, a couple of Fermi-Dirac integrals, multigamma functions, some hypergeometric functions, and an approximation of Marcus-Hush-Chidsey kinetics
- One can now use the
`--run`

and`--exit-after-running`

command-line options to QSoas to run scripts from the command-line - possibility to run “inline” Ruby code from within scripts and from QSoas itself
- Can now run QSoas commands from within Ruby code, for instance
`QSoas::load("file")`

. This is still experimental. - Now supports GSL 2.0
- Quite a few bug fixes