Dynamique réactionnelle des enzymes rédox multicentres, cinétique électrochimique
Reaction dynamics of multicenter redox enzymes, electrochemical kineticsChanges in QSoas
What’s new in version 3.3 ?
Version 3.3 brings in new features, including reverse Laplace transforms and fits, pH fits, commands for picking points from a dataset, averaging points with the same X value, or perform singular value decomposition.
In addition to these new features, many previous commands were improved, like the addition of a bandcut filter in FFT filtering, better handling of the loading of files produced by QSoas itself, and a button to interrupt the processing of scripts.
See the full list of changes below
What’s new in version 3.2 ?
Version 3.2 is mostly a bug-fix release, fixing a mistake in the EEC
reversible with relay fits, see
the correction of the
original article. All users of the eecr-relay-wave
fit are
strongly encouraged to rerun their fits with the new version.
In addition to this important fix, new possibilities have been added, including a way to make fits with “partially global” parameters, to pick the best parameters dataset-by-dataset within fit trajectories, a parameter space explorer trying all possible permutations of a set of parameters, and the possibility to save the results of a command to a global ruby variable.
It also includes a series of improvements of already existing commands.
See the full list of changes below
What’s new in version 3.1 ?
Version 3.1 brings many improvements to the fit system, including more flexibility in loading parameters, processing fit trajectories (after parameter space exploration), and improvements in individual fits.
It brings in also a series of new commands, to look at files and directories, to add noise and remove it, to run linear least squares minimisations and facilitate the handling of column and row names.
It features also many other improvements, such as the possibility to define “virtual files” inside script files, to define reusable parameters, basic handling of complex numbers and many useability fixes.
See the full list of changes below
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.3 (22.04.2024)
Fits
- a
laplace
fit to fit reverse Laplace transforms of a formula - a
define-laplace-fit
command to define reverse Laplace fits; - a
pH
fit to fit pH titrations, just like thenernst
fit for redox titrations; - a
define-monotone-fit
command that defines a modified version of a fit that only yiels monotonic evolutions (useful to restrict the possibilities for some kinds of baselines). combine-fits
now offers the possibility to not rename parameters, or only those that are identical between the fits- the
load
fit command has gained some facilities to load only a subset of parameters from a file - the fit parameters that are marked by the fit as “linear” are now displayed in blue (this has no effect as of now)
- it is possible to add and remove flag in fit trajectories (see
browse-trajectories
, and display a summary of trajectories by flag. - other improvements in
browse-trajectories
, like the possibility to set a trajectory as reference to color the others based on the the distance from the reference
New commands
- a
pick
command to select one or a few rows from a dataset; - a
convolve
command to convolve a dataset by a function; - a
reverse-laplace
that computes the numerical reverse Laplace transform of a function; - a
average-duplicates
to average the Y values of rows in a dataset that share the same X (within a certain tolerance); - a
sv-decomp
command to perform singular value decomposition on data; - a
correlation-matrix
command that makes the correlation matrix of the columns
Improvements of previous commands
- a
??
shortcut for? /synopsis=true
- a bandcut filter for
filter-fft
, together with a linear power spectrum display and facilities to look at aliased frequencies; - a
/nup
option to the datasets browsers - a reworked
edit
that makes it possible to add/remove rows/columns, and directly edit perpendicular coordinates and row/column names - most of the commands working with column names now accept the
i
column to designate the index column run-for-each
can now also change other arguments than the first one- the
auto-filter-fft
command can now also do bandcut filters - the
run-for-values
can now work on more than one dataset - the commands
cat
andhide-buffer
now accept the/for-which
option changelog
is now an alias for? /location=doc/changes.html
, which shows this page
Other improvements
- interruption of scripts via the the button at the right of the prompt;
- automatically switching to drawing points in more situations, improving the drawing speed;
- better loading of fit parameter files as datasets;
- several bug fixes/small improvements.
- handling of
mruby
versions 3.0 and 3.1 - windows users can also use
/dev/null
to mean an empty file (it is already the case on POSIX platforms) - make sure the
C
locale is always used, in particular formruby
and for the parsing of numbers in general - a
tests/doc
directory containing more information about some of the compuations behind some of the tests
Changes in version 3.2 (22.03.2023)
Fits
- important the
eecr-relay-wave
fits were using a false formula, leading to wrong fits. This version provides a corrected and validated formula (see the correction); - the
define-indexed-fit
command makes it possible to define fits in which a parameter is indexed on a meta-data, to make fits with “partially global” parameters; - parameter space explorers now save the trajectories on each iteration;
- a
compute
command to recompute the fit; - a
pick-from-trajectories
to pick the best parameters, dataset-by-dataset from a list of trajectories; - a
permutation-explorer
explorer that allows one to try all the possible permutations of one or several sets of parameters; - enable the use of reporters in plain ODE fits;
- improvements of the trajectory displays, with better ways to hide parameters and a new tab showing the parameters as a function of perpendicular coordinates.
New command
- a
run-for-values
command to run scripts passing as arguments the contents of a dataset, row by row.
Improvements of previous commands
- all the commands generating values (like
stats
, etc…) can now also save their results into the global ruby variable$values
using the/set-global
option; - the
linear-least-squares
command can now optionally generate datasets with the fits or the residuals.
Other improvements
- better loading of fit parameter files as datasets;
- several bug fixes/small improvements.
- better handling of mruby 2.1, mruby 3 is currently not supported
Changes in version 3.1 (28.09.2022)
Fits
- now the main terminal is also accessible via a tab on from the fit window, which makes it much easier to follow the output of the various fit commands
- more flexibility in
load
for loading parameters, matching datasets, even renaming parameters on the fly ode
andkinetic-system
now have a/voltammogram
option to work better with the time and potential dependence of voltammogramskinetic-system
now provide means to use various interfacial electron transfer models, including Marcus-Hush-Chidsey- definition of species names in
nernst
- more flexibility to designate datasets for
fix
,unfix
,set
- a
sort-trajectories
command to sort the trajectories - the time-dependent parameters now allow to have several parameters controlled by the same time dependence (with different values)
- it is now possible to use
j_elec
as a reporter in thekinetic-system
fit to represent the electrical current at the electrode - the fit engines are now more robust to the appearance of NaN, and also the trajectory sorting now handles them better too
- the sim commands can now push the parameters as a dataset with
/operation=push
- the fit interface now has menus instead of the previously used combo boxes
- trajectory loading is more resistant to manually modified trajectory files
- the use of
reparametrize-fit
now also creates a command that can regenerate the parameters of the original fit from a dataset containing parameters of the reparametrized one
New commands
- a
add-noise
command to add random, controlable, noise to datasets - a
files-browser
command to browse files on the local storage and display/modify their meta-data - a
contour
to compute contour lines at a certain level from a y = f(x,z) dataset - a
clear-segments
command to remove all the segments of a dataset - an
save-meta
command to save the meta defined on the current dataset back to the original data file - a
head
command to display the beginning of a file (as text), as QSoas is seeing it (helpful for whenload
doesn’t do what you want) - a
ls
command to list the files in the current directory - a
linear-least-squares
command that performs the (exact) determination of the parameters in the case of linear least squares, very powerful for data extraction - a
pause
command to temporarily stop the execution of a script - a
rotate
command to move points of a dataset from the beginning to the end - the
set-column-names
andset-row-names
commands to set the column and row names of a dataset - a
let
command to define named parameters to be used inside scripts - a
sort-datasets
command to sort a series of datasets directly from within the stack - a
kernel-filter
command offering several kernel-like filters
Improvements of previous commands
- use of
$c.
column to read the value of a column instrip-if
andapply-formula
apply-formula
got several new modes of action, one in which a new column is added, another in which the dataset is considered as a global function y = f(x,z) (z is the perpendicular coordinate)apply-formula
can also use column names for both reading and modifying- truncate the dataset using the Ruby function
break
inapply-formula
- many commands got the possibility to work on several datasets at
the same time, and others that already had this also were given the
/for-which
option to better fine-tune the datasets they work on - possibilty to specify min and max in
bin
browse
got all the backend-specific options of theload
commandeval
got greatly improved, with the possibility to evaluate several formulas on several datasets at the same time, making it the best command for data extraction on series of datasetseval
can now also modify the row and column namesfilm-loss
got a new mode for determining the film loss rate constant on a given segment- the
find-peaks
command now can save the peak data into parameter files to help with initial parameters in fits generate-dataset
can generate different columns with different formulas in one go, and can directly give a name to the generated datasets with the/name
optiongenerate-dataset
can also have the X values logarithmically spaced- loading of row names from text files with the
/text-columns
option ofload
- the possibility to get the status of the accumulator with
pop
- the possibility to toggle between datasets in
reglin
- more flexibility in controling the format used for saving by
save
andsave-datasets
- the commands that generate several datasets in one go can now push
them in the reverse order of what they usually do by using
/reversed=true
- the
sort
command can now work on any column, not just the X one edit
shows the perpendicular coordinates- a
/select=
option totweak-columns
that selects only a given number of (possibly named) columns from a dataset - conditional execution of scripts in
run
load
plays better with QSoas’s own files, including the saved parameters files (which can be loaded as normal data files)edit
shows the column and row names- all the commands now preserve column and row names whenever possible, or handle them as they should
cursor
can now quit subtracting X values- greatly improved speed for
load
save
now saves the meta-data in the.qsm
files- commands that produce many datasets from one, or one from many now offer the possibilty to expand or contract the meta-data to lists
auto-reglin
can also now be used as a filterrecord-meta
can now also be used to remove meta-data
Other improvements
- inline files: it is now possible to define “inline files” inside files already, which makes subroutine construction/calling much much easier to write and maintain
- better handling of files that QSoas should not try to load (PDF files, etc…)
- better display of the segments delimitation
- it is now possible to specify columns using their name, via the
name:
column or$c
.column syntax (with completion) - handling of complex numbers from within Ruby formulas
- a
--headless
command-line option to run non-interactively - a
--run-script
command-line option to run directly a script - a true Win64 build, allowing you to use much more ram should the need arise
- the tooltip over a dataset point also shows the row name when applicable
- the terminal now uses bold and color when useful
- now understands the
QSOAS_DEBUG
environment variable - a
--write-deps
command-line option that writes the dependency of all the generated files on the files QSoas had to read to generate them, inMakefile
format - quite a few bug fixes, in particular concerning the interaction with Ruby
- implemented a dataset rendering cache to greatly improve the
responsivity when using commands like
cursor
on very “jaggy” datasets - disable the ugly “black console” window on Win platforms
- NaN in datasets are now shown as a “cross” next to the non NaN points they are next to
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 adefine-implicit-fit
to create named implicit fits - the
arb
fit now has its correspondingsim-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
andstats
can now work on several buffersbrowse-stack
,browse-stack
,overlay-buffer
now accept the/for-which=
option to further select the buffersapply-formula
now better handles mathematical errors (likesqrt(-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 expectsrun
,run-for-each
andrun-for-datasets
now provide several ways to deal with errors in the execution of the script: ignore, abort or failreglin
can now be used to define a baseline to characterize peaks, and it can also show the exponential equivalent to the linecursor
has new symmetry operations, and can work effectively with many curvesset-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 they_max
stats (and for all stats and meta too), which means that there is no need anymore for cumbersome double quoting like ineval '$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
andk_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
andy_b
, which correspond to parameters of the linear regression of . Available fory2
and all the others, still as a function ofx
. - 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 likestats
or1
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
andmulti
a much more memory-efficient for massive multi-buffer fitsarb
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 toflag
to remove all the other flags - most data-producing commands now have an
/accumulate
option to generate buffers step-by-step, to combine withpop
- new
stats
:stddev
, and quantiles:q10
,q25
,q75
andq90
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 quotesprint
can now export SVG filesbin
can now use a column for weights, and normalize the sum to 1.- Finally bring back the peak area for
find-peaks
,1
and2
! 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 equationsreparametrize-fit
, to manipulate the parameters of a fit
Fits
- Reparametrization of the wave shape fits for 1- and 2-electron
reversible catalysts
ecr-wave
andeecr-wave
- Implementation of the corresponding fits for irreversible
catalysts,
eci-wave
andeeci-wave
- The commands that define fits,
reparametrize-fit
,combine-fits
,define-distribution-fit
anddefine-derived-fit
can now redefine existing fits with the option/redefine=true
. - The
qsoas
andmulti
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 then
andN
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 orderprint
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 thesim-
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 datasetsauto-reglin
, another way to compute the derivative of a signaldefine-distribution-fit
, to define fits with distribution of values for parametershide-buffer
, to hide buffers from viewmintegrate-formula
, to integrate functions depending on one parameterreverse
, to reverse the order of data pointssplit-on-values
, to split datasets on the values of certain colunmssystem
, to run external commandstimer
, that measures the time between two callsadd
andmultiply
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 tofit-kinetic-system
) tofit-ode
andfit-arb
- New types of time dependent parameters:
rexp
(exponential relaxation) andsteps
(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 inauto-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
andstrip-if
, one can now usei_0
andx_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, likeapply-formula
Other improvements
latest
andlatest:
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