SPIKE Relase Notes¶
if you need the latest version, get Spike from github then to make available to you system, do > cd spike > python setup.py devel
0.99.33 - October 2023 - not released yet¶
Interactive:
NMR
improved 1D integration
improved the Show2D() tool, and added local projections
in Interactive, added AQ in the parameter list
MS: corrected a bug in pk2pandas() in 2D FTICR which was crashing the action.
NMR: corrected a logic bug in BrukerNMR importer which triggered when importing data with several expno
NMR: modified the File.BrukerNMR.Export_dif to correctly export fid
corrected a subtil bug which always removed the right most point in display() and extract()
corrected a bug in noise computation which was crashing baseline correction sometimes (and elsewhere)
many small corrections due to warnings and deprecations in particular in numpy
0.99.32 - March 2023¶
Interactive:
NMR and MS: example interactive notebooks have been extended, cleaned up and fully checked
better 2D display
added documentation
NMR:
ProcDOSY.ipynb rewritten
ReadSMX.ipynb to import TopSpin processed file into Spike
SNR evaluation in Proc1D.ipynb
added choice of projection in 2D graphics
baseline correction is now fully functional
updated the plugin mechanism - the previous system was incompatible with the coming python 3.12
requires python >= 3.5
should not change anything to your set-up
added Algo.Linepredic.baselinerollrem() to remove baseline roll using Linear Prediction
extended real2cpx() to 2D operations (was only 1D)
NMR: improved importing processed DOSY (PALMA plugin)
corrected cyclic import in PALMA
NMR: in BrukerSMX.py corrected for a warning signaling an upcoming obsolence
0.99.31 - Nov 2022¶
NMR:improvements in spike Interactive
on spectral superposition
improved import/export of peak and integral lists, as csv files
added BrukerNMR.Export_fid (1D)
improvements in automatic baseline correction
improved apodisation functions
MS: added the kilgour() apodisation, from Kilgour et al DOI:10.1002/rcm.7190 handy for phased FTICR-MS data
all: added the
maxi
parameter for hamming(), hanning(), and kaiser() which becomes a versatile and generalized apodisation ( was already available for apod_sin() and apod_sq_sin() )NMR: normalized gaussenh() (which was not !)
adapted to python 3.10 - cleaned the code (better grade in QC!)
a problem with multiprocessing crashing (core dump!) on my system, still investigating
corrected a bug in baseline correction, and improved interface
NMR: Corrected a bug when importing DOSY from TopSpin
0.99.30 - April 2022¶
spike Interactive NMR
modified SHOW1D to handle the move tool
modified selection to right-click (in phaser, peakpicker, baseline)
display of some acquisition parameters
in 1D, corrected errors in managing peaks and calibration
better handling of baseline corrections, phasing and better graphics
dated figure dump
corrected displaying integrals
improvement in object hierarchy
added yratio to SHOW1D, and allow a better zoom experience
General
adapted to matplotlib 3.5 / python 3.9
improved BrukerNMR.import1D_proc to handle different binary options
added yratio to npk.display()
rowc() and colc() method get rows and columns in 2D using current unit instead of index (I don’t know why this was not done earlier…)
added the itoix() ixtoi() ctoix() ixtoc() to access datapoint in complex coordinates
added a method Peaks.Peaklist1D.pkadd() to add a peak list to an existing one
added a method Peaks.Peaklist1D.pkaggreg(distance) to aggregate close peaks
marker “None” in peak display
moved config into $(HOME)/.config/Spike
corrected a bug when reading old Gifafile where diffusion is not defined in the header
0.99.29 - Sept 2021¶
spike Interactive FTICR - not tested yet -
spike Interactive NMR
Phaser2D does not work yet
improved the quality of 2D display (smoother interaction, better scale selection)
corrected a bug introduced in previous version for displaying 2D in notebooks
General: hilbert() ihilbert() and real2cpx() basic transforms (were already there, but not isolated as now, should have been done long ago)
added a “None” mode in displaying peaks
0.99.28 - Aug 2021¶
spike Interactive NMR
interactive phasing is now much smoother and faster
added superimposition of spectra in Proc1DNMR - other will be adapted
adapted and optimized display in the notebook and in the core code
General:
added a disp_artist field in NPKData which contains the last matplotlib artist generated by display()
0.99.27 - July 2021¶
spike interactive in FTICR - many improvements
isotopic pattern simulation using imported
isotope
module (and fine isotopic as well - thanks to the excellent prgm neutronstar !)processing of narrowband acquisition is correct now
better calibration - (still in progress)
superimposition of spectra should work now
0.99.26 - July 2021¶
FT-ICR:
added support for NarrowBand FTICR acqusition - first steps, need to be completed
General
new command zero_dsp() and rem_dsp() to zero or remove the FID header created by the DSP.
bug corrections in the 2D peak centroid and display
0.99.25 - June 2021¶
0.99.24 was short lived, because additional bugs, introduced in.22 were found and corrected
correction for plugins not updated correctly in the pip distribution since 0.99.22, was making errors in interactive tools
corrected a bug when fitting peaks on a zoomed region
NMR: corrections in
Proc1DNMR
notebook in integration tool
0.99.24 - June 2021¶
added a
maxdist
flag in the peak aggregator in plugins.Peaks (default to 10*distance)NMR: corrected a bug introduced in 0.99.22 in the interactive phasing when moving the pivot
0.99.23 - May 2021¶
MS: first interactive notebook for phasing of FTICR-MS spectra - still a bit rough
NMR: slight improvements in apmin() (automatic phaser) better search algorithm
slight improvements in bcorr() (baseline correction), when working on complex spectra
The logo shows up when loading interactive notebooks - and also a nicer set-up
new doc is still in development and missing, sorry (phasing is keeping me busy)
0.99.22 - April 2021 - not released on pypi -¶
change in the plugin set up, there can now be distributed in several directories (in that order)
(distrib dir)/spike/plugins
- basic plugins allways loaded$HOME/spike/plugins
- plugins specific to the user allways loaded(distrib dir)/spike/plugins/NMR
- plugins specific to NMR, loaded withimport spike.NMR
(distrib dir)/spike/plugins/MS
- plugins specific to MS, loaded withimport spike.FTMS
and as before, plugins with a name starting with a
_
are not loaded
MS: new
PhaseMS
plugin, which implements quadratic phase correction and permits to phase FTICR spectraa .tm() apodisation (trapeze) which emulates D.Kilgour apodisation for phase sensitive FTICR-MS
rewrote and reorganized README and documentation
0.99.21 - Feb 2021¶
MS:
plugin which implements .diagonal() for computing the diagonal of 2D FTICR spectra
changed the logic to generate downsampled 2D FTICR spectra - smaller files, smaller vignettes
correction when reading Apex MS dataset for pulse frequency limits - thanks to Maria van Agthoven
correction ThermoFisher/Orbitrap import code - thanks to Will Kew
small correction in urQRd - thanks to Will Kew
small corrections when opening files
many small bugs corrected
0.99.20 - Nov 2020¶
MS: corrected a bad bug which corrupted F1 calibration when loading a 2D-FTICRMS experiment this bug was introduced in the 0.99.14 release but was not detected at that time
0.99.19 - May 2020¶
NMR: corrected a bug in BrukerNMR importer…
0.99.17 - April 2020¶
MS: corrected a bug in BrukerMS importer…
0.99.16 - April 2020¶
MS a new Apex0 bruker importer - to access old datasets, with the “NMR” setup (acqus pdata …)
MS a global BrukerMS importer - Import1D - Import2D
a few corrected bugs
0.99.15 - March 2020¶
This release introduces a major modification in the organisation of the
NPKData
object - which is the central object on which everything is
organized.
Previously NPKData.NPKData
was the standard class, which created
NMR object, and other classes (such as FTICR.FTICRData
or
Orbitrap.OrbiData
) inherited from this class and had to overloaded a
few things. NPKData
held also all Axis
definition, both generic
and for NMR.
Now,
NPKData._NPKData
is a generic object - agnostic about the spectroscopyNPKData
holds also the definitions of generic Axes (Axis
but alsoTimeAxis
andLaplaceAxis
)NMR.NMRData
is the new class for NMR data-sets,NMR
also contains the definitions for all NMR related Axes.FTICR.FTICRData
andOrbitrap.OrbiData
now inherit from the_NPKData
class (throughFTMS
).
In consequence, to create an NMR dataset from scratch, now do:
NMR.NMRData(...)
where you were using NPKData.NPKData
previously
and do
NPKData._NPKData(...)
to create an empty dataset not associated to any spectroscopy
This should have been done long ago - but I’m so lazy…
Other modifications - This set-up allows to better adapt compound experiments (LC-NMR LC-MS …) - jupytext extension was added to jupyter Notebooks - means that a python copy is maintained - only this copy is version controlled - still improvements in notebooks - - NMR: improvement in the SpinIt importer - MS: added a Bo attribute - added the NbMaxPeaks flag in Peak display - added the self.kind attribute in the Axis class - easier to use than self.NMR ! - small bugs corrections - adding a complex value to a complex datasets was wrong in complex mode. - tests in python 2.7 are abandoned - but very few python 3 features are really used… - REMARK, it was always mentionned that version 1.0 would be rolled out when interactive functions in notebooks would be really usefull. It will be the next big release probably !
0.99.14 - October 2019 - not released on pypi -¶
NMR: lots of improvements in Proc1DNMR notebooks
improvements in NoteBook for mouse interactivity (click and scroll)
requires the additional ipympl module
0.99.13 - October 2019 - not released on pypi -¶
MS: added the EasyDisplayFTICR2D for non programers !
improvements in NoteBook interactivity
added smoothing in spline baselinecorrection
0.99.12 - September 2019¶
The 0.99.11 had a bug in the display of 1D NMR experiment - the 0.99.12 corrects it.
0.99.11 - September 2019¶
NMR: added a Notebook for processing of DOSY
many improvement in the interactive Notebooks, and in the interactive library (still work to do though)
added autpoints computation for spline baseline correction
corrected axis placement in spectral display (you should not have inverted axis anymore)
corrected a bug when computing projections
0.99.10 - August 2019¶
changed calibration in FTICR-MS - now should better correspond to Bruker, both for linear and quadratic
be carefull, the definitions are slightly modified, this should be taken into account when reading files, however you should verify the calibration stored into previous files
added Proc2DNMR Notebook - preliminary!
continued to improve other Notebooks
added skewness and kurtosis in bucket lists (optional)
improved Test suite (should mostly work under Windows now)
corrected peak-picker so that width is FWMH after centroid
added an option in Peaks.pk2pandas to output or not the uncertainties
0.99.9 - June 2019¶
improved many aspect of the interactive Notebooks
improved Proc1DNMR Notebook
added peak-picker
added integration
added bucketing
Integrate: plugin for 1D NMR data integration
added peak lists export to pandas
added limit to the number of peak to be displayed on screen (default 1000)
0.99.8 - April 2019¶
corrects a BIG BUG which hampers the import of 1D NMR data-sets,
0.99.7 - April 2019¶
Please do not use, see above - first version of Interactive
Notebooks: - ProcessFTICR-MS - DisplayFTICR2D - Process1DNMR - The new
BrukerMS importer tries Solarix importer and falls back to Apex importer
if it fails - improved Interactive tools - improved FTICR importers to
accept my_expt.d/fid
as well as my_expt.d
- improved peak-picker
behavior - improved error messages in FTICR importers - cured a bug in
Apex.Importxx for a special xml format
0.99.6 - April 2019¶
extended and improved tests - finalized installation through PYPI
support for distribution via pip - you can now do
pip instal spike_py
and spike installed globally on your system.still struggling with correct calibration routines for FTICR ! - proceed carefully ! -
phase() speeded-up by a factor 20 !
added a autothresh scaling to peakpicking (catching peaks “autothresh” times above the noise level - default is 3)
slight improvement of peak list reporting (additional key words: format=“report” and format=“full”)
a bug in extract of complex 1D data-sets was corrected
added the figure keyword to peaklist display
0.99.3 - March 2019¶
Development of Interactive tools, to be used within Jupyter - should be extended in further releases -
a tool for displaying multiresolution 2D FT-ICR-MS data-sets
simple interface in Jupyter for 1D NMR
(that part is not tested in python 2)
added the setup.py prgm, SPIKE is now a regular installable program - still working on it ! -
scale="auto"
in 2D display, choose a levelautoscalethresh
(default is 3) times above the noise floor.added
gaussenh
apodisation plugin for one-command gaussian enhancement.improved display of FTMS spectra
improved
findnoiselevel
andfindnoiselevel_2D
modified
absmax
in NPKData - now a propertyadded phase parameters to NMRAxis:
.P0
and.P1
removed the old Visu2D program - use the jupyter notebook rather !
0.99.2 - January 2019¶
added number of local peaks in bucketing
improved Bruker importer and added support for NEO/TopSpin 4.0 files
improved the
.set_unit()
methodimproved importing DOSY processed with TopSpin
corrected a bug for min value in bucketing
changed pylint/QC defaults -> new values (and corrected a bad bug)
cleaned the code a little
0.99.1 - November 2018¶
added the sane algorithm
added the pg-sane algorithm
added the
NPKData.set_unit(unit)
method for pipeliningadded the
NPKData.load_sampling(axis)
method for pipeliningimproved spinit support
corrected a few bugs
NPKData.save_csv()
now works in python 3NPKData.copy()
is now more robust
0.99 - April 2018 - temp release branch¶
We have been developping a lot this last year, and published quite a few
results. The program is now quite stable in most of its features.
Additions and improvements were added to the repository in the devel
branch, however we neglected updating the more official default
branch. This release is an effort to bring everything into normal mode,
and hopefully, preparing a 1.0 version !
New in 0.99:
SPIKE is now fully compatible with python 2 AND python 3
added the SANE noise denoising algorithm and plugin.
an improvement to urQRd
more faithfull to small signal intensity
slightly different optimum parameters (optimal rank slightly smaller, less iterations needed)
added the handling of NUS 2D FTICR acquisition
added the PALMA DOSY processing algo and plugin (NMR).
added a Linear Prediction plugin
added the first trial for a m/z calibration plugin (MS)
added import from SpinIt (NMR)
added a primitive set of interactive tools to be used in Jupyter notebooks (
INTER.py
)added the possibility to pass a complete dictionary to matplotlib in the .display() method
added the .center() method for NPKData
added a plugin implementing a subset of Topspin commands: xf1, xf2, xfb. (NMR)
added an line fitter, still very exploratory, only 1D Lorentzian for the moment
added more controls on plots (new_fig and mpldic arguments of
.display()
)added a Spinit importer (preliminary) (NMR)
added a compress mode in Solarix importer (MS)
added new automatic tests
improved and extended the Bucketing plugin, with extended features
improved the baseline correction code
improved import/export to Topspin/Bruker NMR files
improved automatic phaser
.apmin()
(NMR)improved the plugin mechanism - with added documentation
corrected the extract() method which was broken
corrected a bug when importing Topspin/Bruker NMR datasets, where $NC was not used. (NMR)
corrected a bug and improved 3 parameters FT-ICR calibration (MS)
corrected the extract function for NPKData
corrected a bug with contour plots and matplotlib version > 1.5.0
modified (improved?) plugin loading code, with additional plugin documentation
modified the way None values are stored into hdf5 files
modified
.extract()
code to work in current axis unitmodified
.mean()
to return complex value is axis is compleximproved python 3 compatibility. It is not finished yet, but most of the program is python 2/python 3 independent, some parts are still missing,
known bugs
NPKData.extract()
method not fully testedNPKData.save_csv()
is buggy in python 3
0.9 - 8 sept 2016¶
never reached the normal distribution - doc partly redundant with 0.8.3
added a baseline correction plugins, already quite developed, with 3 different methods
added an automatic phasing plugin,
.apmin()
still exploratory (NMR)added a wavelet filtering plugin (requires the PyWavelet library)
added a 3D zoom plugin (requires the Mayavi library)
added export to Topspin/Bruker files, and added import of processed Topspin files (NMR)
added the upgrade of files from previous version
added the
d.axis?.cpxsize
: the size of an axis expressed in spectroscopic points (real of complex) different fromd.axis?.size
which is the size of an axis expressed in data points sod.axis?.cpxsize == d.axis?.size
is axis is reald.axis?.cpxsize == d.axis?.size/2
is axis is complex
improved the Peak-Picker (mostly the output capabilities)
improved processing.py for nicer spectra, and possibly faster processing (MS)
improved visu2D.py, for a greater stability and improved selection syntax
corrected a bug in
.conv_n_p()
(NMR)and many small bugs as well
0.8.3 - April 2016¶
ALL spectro.
added a new
cpxsize
property, associated to axes and dataset, which counts complex and real entriesadded: display and peak display now accept a color and markersize arguments
improved plugins, plugins with a filename starting with _ do not load
improved: automatic baseline correction algorithms have been improved (
Algo/BC.py
)finnoiselevel()
set of functions has been rewritten (util/signal_tools.py
)standard test now includes testing for
multiprocessing
- DOES NOT WORK ON ALL DISTRIBUTION if it is your case, setuse_multiprocessing = False
in test.mscf
NMR
added: BrukerNMR now imports TopSpin processed dataset (1r, 2rr)
improved: and corrected Laplace axes - for a new DOSY module to come…
corrected: conv_n_p() was wrong and has been corrected
corrected:
gm_apod()
was wrong and has been corrected_corrected: an error in GifaFile access under Windows
MS
processing.py (2D FTMS) now includes parallel processing in F2 (helping in certain cases)
and gives sharper lineshape thanks to kaiser() apodisation
files from the previous program version (0.7.x) can now be upgraded and read. just do
python -m spike.File.HDF5File update your_file.msh5
improved
.report()
for FTMS datasets
0.8.2 - 2 Feb 2016¶
corrected a bug in processing when running under MPI parallel
added warning in set_col() and set_row() if type do not match.
starting to work on the documentation
0.8.1 - 24 Jan 2016¶
corrected a bug for Orbitrap related to offsetfreq.
0.8.0 - 23 Jan 2016¶
first clean version using the new HDF5 file set-up WARNING
HDF5 files created with this version cannot be read with previous versions
HDF5 files created with previous versions cannot be read with this version - this should be fixed later - File now contains acquisition parameters files in the attached hdf5 sub-group
datasets now carry store and retrieve the parmeters imported from manufacturers file in d.params
improved FTMS calibration using 1, 2, and 3 parameters calibration : calibA calibB calibC, retrieve by Import from experimental file
improved FTMS Hz unit, added the d.axis.offsetfreq parameter
corrected fine details of F1 demodulation and added the parameter freq_f1demodu
unittests extended, in particular in visu2D
Starting with this version
a stable version will be maintained, downloadable as a zip file in the download page https://bitbucket.org/delsuc/spike/downloads
Two developpement branches will be used, the
default
for the stable version - improved for bugs, and thedevel
branche, used for developping the new features.
0.7.1 - 5 Jan 2016¶
greatly improved internal compression of msh5 files and speed of processing.py
many small corrections and bug fixes.
0.7.0 - November 2015¶
a plugin mechanism has been created which allows to add very simply new features to the program
most new features are implemented through this mechanism
the organisation of the spectral axes has been complete modified, with the introduction of a Unit class
each axis holds its own series of possible units (called .units)
and the current unit used for display and selection
many commands now have a zoom= ketword that works in the current unit
additionnaly, there are itoc and ctoi unit converters
Thanks to this, NMR data-sets are now correctly handled, DOSY are still in progress and should come soon
addtionnaly a plugin for Bruker NMR processing is now implemented
A complete 1D and 2D peak-picker is now implemented, with many controls and features
New baseline correction algo have been implemented
the sane algorithm, which is an evolution from urQrd has been separated from urQRd, so both algo can now be used independently
Tests have been reorganized and improved
Importers have been extended - parameters are now brought back to the user
many others
0.6.4 - march 2015¶
added Bruker NMR import
clean-up of the module, still going on
Tests improved
0.6.3 - march 2015¶
first installeable release
0.6.0 - dec 2014¶
Fork to SPIKE
Large improvements of the display program, renamed visu2D
Corrected a bug in the hypercomplex modulus, resulting in splitting in 2D-FT-ICR
many improvements everywhere
0.5.1 - 26 mar 2014¶
processing2.py renamed to processing.py with added features
urQRd
source code reorganized by folders
0.5.0 - 24 mar 2014¶
starting new devl effort
published ! version of urQRd
0.4.1 - 27 Sep 2012¶
final (?) version of urQRd
added data arithmetic
many other optimisation
0.4.0 - 20 apr 2012 -¶
new version processing2.py (temporary name) this one
processing is performed in steps, F2 from infile to interfile (intermediate file) and F1 from interfile to outfile
steps are optionnal, F2 or F1 can be performed alone - allowing denoising on the interfile
processing is faster and mpi enabled - speed-up are better for very large files
has a better way of computing the smaller spectra - done by downsampling - faster and nicer
vignette is now 1024x1024 - can be changed using SIZEMIN in config file
0.3.11 - 29 mar 2012¶
Small tools have been added to modify configuration files and to mix processing.py and ipython visualisation
0.3.10 - 22 jan 2012¶
processing is now (hopefully) bug free and RAPID !
0.3.9 - 18 jan 2012¶
fticrvisu.py, processing working, getting all parameters correctly from FTICRData and Apex
0.3.8 - 13 jan 2012¶
fticrvisu.py, processing working, corrected after Marie came
0.3.7 - 12 dec 2011¶
correction of Gifa file bug, bug in Apex for narrow band data-sets, changes in msh5 file format
0.3.6¶
3 Oct 2011 - added HDF5 file format (.msh5), multiresolution files, configuration files (.mscf), fticrvisu
0.3.5¶
5 Sept 2011 - added cadzow in MPI / savitsky-golay / HDF5 still in progress
0.3.4¶
26 July 2011 - added autotests / savehdf5 first version
0.3.3¶
12 July 2011 - first reliable/taged FTICR version