Ixdat

Latest version: v0.2.11

Safety actively analyzes 623827 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

0.3.0

===============

0.2.11

========================

debugging
---------
- Fixed three bugs in 0.2.10 on spectrum series heat plotting:
- The x axis limit is now such that the full duration
of all the spectra is included when ``spectrum_series.continous`` is ``False`` (not just the last one).
- A universal ``vmin`` and ``vmax`` are determined for all the spectra to be plotted. This avoids effective
normalization of each individual spectrum when ``spectrum_series.continuous`` is ``False`` (which made it
impossible to see changes in overall intensity).
- The ``vs`` variable is now handled correctly when ``continuous`` is ``False``, enabling plotting vs potential
of non-continuous spectrum series data.

API changes
-----------

- ``OpusFTIRReader`` and ``MsrhSECDecayReader`` both set the ``continuous`` attribute of the ``SpectrumSeries``
object to ``True``, since these are readers for fast and continuous-scanning instruments.

- The ``continuous`` attribute is now exported and read from ixdat-exported .csv's.

- The ``continuous`` property of ``SpectroMeasurement`` now has a setter. To change it, e.g.::

ftir = Spectrum.read(...)
ec = Measurement.read(...)
ecftir = ec + ftir
ecftir.continous = False
ecftir.plot_measurement()

0.2.10

========================

debugging
---------
- Fixed bug in 0.2.9 on exporter initiation that had caused a crash on initation of some Spectrum
and SpectroMeasurement objects due to removed ``delim`` argument.

- Fixed bug in 0.2.9 on spectrum reading that had caused a crash when making SpectrumSeries objects
from auxiliary files representing simple Spectrum objects.

0.2.9

========================

API changes
-----------

readers
^^^^^^^
- ``BiologicReader`` can now also read biologic .mpr files using an external package.
When reading a file ending in ".mpr", it first tries the ``galvani`` package, which
seems to work for LSV, CA, and CVA files. If that fails, it tries the ``eclabfiles``
package, which seems to work for OCV and CP files. See:
- https://github.com/echemdata/galvani
- https://github.com/vetschn/eclabfiles
These packages are not added as a requirement, but instead imported dynamically.
If the user tries to read a .mpr file without the needed package installed, they are
pointed to the package but also encouraged to export and read ".mpt" files instead.
".mpr" files are recognized as biologic, and ``reader="biologic"`` works for both types.
Resolves `Issue 132 <https://github.com/ixdat/ixdat/issues/132`_
With `PR 134 <https://github.com/ixdat/ixdat/pull/134>`_

- Zilien MS spectrum reader fixed.
Resolves `Issue 117 <https://github.com/ixdat/ixdat/issues/117>`_

- ``Spectrum.read(reader="zilien")`` rather than ``reader="zilien_spec"`` as
before for reading in a zilien spectrum. This is accomplished by different
groups of reader for ``Spectrum.read`` and ``Measurement.read``
Also, zilien-read spectra now know their duration.

- ``Measurement.read(..., reader="zilien")`` now returns a ``SpectroMSMeasurement``
when the reader can find zilien mass scans taken during the measurement. It
looks for the mass scans folder as zilien names it.
The default plotter is a ``SpectroMSPlotter`` which includes the MS spectra
data in a separate panel. The spectra are accessible by:

meas = Measurement.read("my_MID_with_spectra.tsv", reader="zilien")
meas.spectrum_series[0].plot()

which plots the first MS spectrum.
To leave out the mass scan data, include the argument ``include_mass_scans=False``
in the call to ``read``. To leave out EC data but include the mass scans, include
the argument ``technique="MS-MS_spectra"`` in the call to ``read``.
This finishes `Issue 117 <https://github.com/ixdat/ixdat/issues/117`_

- If a series name is present in the raw data *and* in in a measurement's ``aliases``,
the raw data series matching the name and the aliased series are appended. (Before,
only the raw data series matching the name would be returned.)

- Added "opus_ftir" reader for text-exported files from Opus FTIR spectrumeter.

- ``BiologicReader`` can now also read biologic .mpr files using an external package.
When reading a file ending in ".mpr", it first tries the ``galvani`` package, which
seems to work for LSV, CA, and CVA files. If that fails, it tries the ``eclabfiles``
package, which seems to work for OCV and CP files. See:
- https://github.com/echemdata/galvani
- https://github.com/vetschn/eclabfiles
These packages are not added as a requirement, but instead imported dynamically.
If the user tries to read a .mpr file without the needed package installed, they are
pointed to the package but also encouraged to export and read ".mpt" files instead.
".mpr" files are recognized as biologic, and ``reader="biologic"`` works for both types.
Resolves `Issue 132 <https://github.com/ixdat/ixdat/issues/132`_

techniques
^^^^^^^^^^

- Added FTIR and EC-FTIR. The latter for now just inherits from SpectroECMeasurement

- ECOpticalMeasurement.get_spectrum() now has an option not to interpolate.
Passing the argument `interpolate=False` gets it to choose nearest spectrum instead.

- Indexing a ``SpectroMeasurement`` with an integer returns a ``Spectrum``.
For example, ``zilien_meas_with_spectra[0].plot()`` plots the first mass scan

- ``SpectrumSeries`` and inheriting classes now have a ``cut()`` method which, like
``Measurement.cut``, returns an object containing the subset of the data falling in
a specified timespan.

- ``SpectrumSeries`` and ``SpectroMeasurement`` objects can be added to each other,
given that their ``xseries`` have the same shape and the technique resulting from
``get_combined_technique(meas_or_spec_1.technique, meas_or_spec_2.technique)``
is present in ``TECHNIQUE_CLASSES``. For example:
ms_with_spectra (technique="MS") + ms_without_spectra (technique="MS-MS_spectra")
--> ms_with_spectra (technique="MS-MS_spectra")

- `Issue 158 <https://github.com/ixdat/ixdat/issues/158>`_
- `PR 166 <https://github.com/ixdat/ixdat/pull/166>`_

plotters
^^^^^^^^
- ``SpectrumPlotter.heat_plot()`` and methods that rely on it can now plot discrete heat plots, with
each spectrum only plotted for its duration, if available. If spectrum durations are not available,
it plots each spectrum until the start of the next spectrum, i.e. like the previous (continuous)
behaviour but without interpolation.
Discrete heat plotting is now the default behavior for ``MSSpectroMeasurement``s read by "zilien"
(in which case durations are available).
``ECOpticalMeasurement``s read by "msrh_sec" have an unchanged (continuous) default plot.
resolves `Issue 140 <https://github.com/ixdat/ixdat/issues/140

- Added a ``plot_stacked_spectra`` method to ``SpectrumSeriesPlotter``, ``SpectroMeasurementPlotter``,
and ``SECPlotter``. This is the default plotting method for FTIR.

exporters
^^^^^^^^^
- ``Spectrum`` and ``SpectrumSeries`` objects now have working ``export`` functions, as does
``MSSpectroMeasurement``. In each case, the exported file can be read (``reader="ixdat"``)

- Default delimiter is now just ",", not "\t,", as the latter doesn't open well in excel.

- ``time_step`` argument to ``export`` can now be used without specifying a ``tspan``

- `Issue 153 <https://github.com/ixdat/ixdat/issues/153>`_
- `PR 166 <https://github.com/ixdat/ixdat/pull/166>`_

General
^^^^^^^

- The string representation, which is what is printed if an object is printed, has been
changed for ``TimeSeries``, ``ValueSeries`` and ``Measurement``. The data series have
changed, so that they will return a helpful summary, displaying the name, min, max and
the timestamp for a ``TimeSeries`` as opposed to the class name and ``__init__``
argument form, which is normally inherited from ``__repr__``. In short::

Before: TimeSeries(id=1, name='Potential time [s]')
After: TimeSeries: 'Potential time [s]'. Min, max: 699, 1481s 21B01 17:44:12

Before: ValueSeries(id=2, name='Voltage [V]')
After: ValueSeries: 'Voltage [V]'. Min, max: 1.4e+00, 5.4e+00 [V]

These new string representations should be helpful on their own, but the main goal of
changing them, was to make them useful in the new string representation of
``Measurement``, which is inherited by all measurements. It will now display a summary
of all data series in the measurement, along with information about their internal
connections, like which ``ValueSeries`` depends on which ``TimeSeries``. For an ECMS
measurement the form is::

ECMSMeasurement '2021-02-01 17_44_12' with 48 series

Series list:
┏ TimeSeries: 'Potential time [s]'. Min, max: 699, 1481 [s] 21B01 17:44:12
┣━ ValueSeries: 'Voltage [V]'. Min, max: 1.4e+00, 5.4e+00 [V]
┣━ ValueSeries: 'Current [mA]'. Min, max: -2.5e-02, 2.5e-02 [mA]
┗━ ValueSeries: 'Cycle [n]'. Min, max: 1.0e+00, 1.0e+00 [n]
┏ TimeSeries: 'Iongauge value time [s]'. Min, max: 1, 3042 [s] 21B01 17:44:12
┗━ ValueSeries: 'Iongauge value [mbar]'. Min, max: 6.6e-09, 6.9e-07 [mbar]
<< SNIP MORE SYSTEM CHANNELS >>
┏ TimeSeries: 'C0M2 time [s]'. Min, max: 1, 3041 [s] 21B01 17:44:12
┗━ ValueSeries: 'M2 [A]'. Min, max: 3.4e-12, 2.0e-11 [A]
┏ TimeSeries: 'C1M4 time [s]'. Min, max: 1, 3041 [s] 21B01 17:44:12
┗━ ValueSeries: 'M4 [A]'. Min, max: 1.2e-17, 2.7e-10 [A]
<< SNIP MORE MASS CHANNELS>>

- Reading measurement without the need to specify ``technique`` keyword argument.
The technique is determined from dataset's metadata. The ``MSMeasurement`` is used
when it is a Mass Spec measurement. And when it includes an electrochemistry
data, then ``ECMSMeasurement`` is used. The default/safe case is ``MSMeasurement``.
Resolves `Issue 159 <https://github.com/ixdat/ixdat/pull/159>`_

dev
^^^

- Enable running external tests in CI

0.2.8

========================

Documentation
-------------
Jupyter notebook tutorials are now compiled to .rst with nbsphinx.
This solves `Issue 115 <https://github.com/ixdat/ixdat/issues/115>`_


API changes
-----------

techniques
^^^^^^^^^^
- Native and ``spectro_inlets_quantification`` (siq) calibration objects can be interconverted:
- ``cal.to_siq()`` for ixdat ``MSCalResult`` --> siq ``CalPoint``
- ``MSCalResult.from_siq(cal)`` for siq ``CalPoint`` --> ixdat ``MSCalResult``
- ``cals.to_siq()`` for ixdat ``MSCalibration`` --> siq ``Calibration``
- ``MSCalibration.from_siq(cals)`` for siq ``Calibration`` --> ixdat ``MSCalibration``

- ``MSInlet.gas_flux_calibration_curve()`` has the additional option of passing
a boolean ``axes_measurement_raw``. Set to True if the axes passed to
``axes_measurement`` are raw signal data (i.e. not background subtracted)
Mentioned in `Issue 94 <https://github.com/ixdat/ixdat/issues/94>`_

- ``ECMSMeasurement.ecms_calibration_curve()`` has the additional option of
forcing the line of best fit through zero with ``force_through_zero``
Resolves `Issue 109 <https://github.com/ixdat/ixdat/issues/109`_

- ``ECMSMeasurement.ecms_calibration_curve()`` has the additional option of
passing a J_name to be used for highlighting the integrated current passed to
``axes_measurement``. This does not affect the calculation of sensitivity factors,
only plotting.
Resolves `Issue 118 <https://github.com/ixdat/ixdat/issues/118`_

readers
^^^^^^^
- biologic readers now recognize both "Ece/V" and "<Ece>/V" as "raw_CE_potential".
Resolves `Issue 110 <https://github.com/ixdat/ixdat/issues/110`_

- Native MS calibration methods are moved from ``MSInlet`` to ``MSMeasurement``.
Meanwhile, those using ``spectro_inlets_quantification`` are prefixed with ``siq_``,
e.g. use ``ms_meas.gas_flux_calibration(...)`` for native ixdat MS calibration and
``ms_meas.siq_gas_flux_calibration(...)`` to use the more powerful siq equivalents.
Resolves `Issue 122 <https://github.com/ixdat/ixdat/issues/122>`_

- ``spectro_inlets_quantification`` is consistently abbreviated ``siq``.


Debugging
---------

general
^^^^^^^
- ``EC_MS`` is no longer a dependency
Resolves `Issue 128 <https://github.com/ixdat/ixdat/issues/124>`_

measurement
^^^^^^^^^^^
- ``cut`` no longer crashes when one of the component measurements is empty.
Resolves `Issue 93 <https://github.com/ixdat/ixdat/issues/93>`_

techniques
^^^^^^^^^^^

- ``MSInlet.gas_flux_calibration_curve()`` now works also when passing an
axes_measurement
Resolves `Issue 94 <https://github.com/ixdat/ixdat/issues/94>`_

- ``CyclicVoltammogram.calibrate()`` now works, passing arguments on to a new ``ECCalibration``
Resolves `Issue 111 <https://github.com/ixdat/ixdat/issues/111>`_

readers
^^^^^^^
- Zilien MS spectrum reader fixed.
Resolves `Issue 117 <https://github.com/ixdat/ixdat/issues/117>`_

plotters
^^^^^^^^
- ``ECOpticalPlotter.plot_wavelengths_vs_potential()`` now returns a list of axes.
Resolves `Issue 121 <https://github.com/ixdat/ixdat/issues/121>`_

exporters
^^^^^^^^^
- Fixed exporting and re-importing of ``ECOpticalMeasurment``s for new pandas version
Resolves `Issue 124 <https://github.com/ixdat/ixdat/issues/124>`_

constants
^^^^^^^^^
- ``BOLTZMAN_CONSTANT`` renamed ``BOLTZMANN_CONSTANT``
Resolves `Issue 125 <https://github.com/ixdat/ixdat/issues/125>`_

0.2.7

========================

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.