Metadata-Version: 2.0
Name: pysight
Version: 0.5.7
Summary: Create images from photon lists generated by a multiscaler.
Home-page: https://github.com/HagaiHargil/python-pysight
Author: Hagai Hargil
Author-email: hagaihargil@gmail.com
License: BSD
Keywords: multiscaler,photon counting
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Utilities
Requires-Dist: attrs (>=16.3)
Requires-Dist: cython (>=0.24)
Requires-Dist: matplotlib (>=2.0)
Requires-Dist: numpy (>=1.12)
Requires-Dist: pandas (>=0.20)
Requires-Dist: scikit-learn
Requires-Dist: tables

========
Overview
========



Create images from photon lists generated by a multiscaler.

* Free software: BSD license

* Created by `Pablo Blinder's Lab`_.

.. _Pablo Blinder's Lab: http://pblab.tau.ac.il/en/

Installation
============

.. include:: docs/installation.rst

Please refer to ``docs\installation.rst``.

Documentation
=============



https://python-pysight.readthedocs.io/

Development
===========

To run the all tests run::

    tox

Note, to combine the coverage data from all the tox environments run:

.. list-table::
    :widths: 10 90
    :stub-columns: 1

    - - Windows
      - ::

            set PYTEST_ADDOPTS=--cov-append
            tox

    - - Other
      - ::

            PYTEST_ADDOPTS=--cov-append tox


Changelog
=========

0.1.0 (2017-02-27)
------------------

* First release on PyPI.

0.1.1 (2017-02-27)
------------------

* Bug fixes during installation of Numba.

* Added the ``run()`` method for ``main_multiscaler_readout``.

0.1.2 (2017-02-27)
------------------

* Includes ``tifffile`` and minor improvements.

0.1.3 (2017-02-28)
------------------

* Changed IO from ``.read()`` to ``.readlines()`` for better Linux compatibility.

* ``.tif`` is now saved frame-by-frame to save memory, and the method was renamed to ``create_tif()``.

0.1.4 (2017-02-28)
------------------

* Frames are now generated with a generator.
* Fix to installation problems of previous version.

0.1.5 (2017-02-28)
------------------

* Single-lined frames are now supported.

0.1.6 (2017-02-28)
------------------

* More tests coverage.

* Enforced a few types checks.

0.1.7 (2017-03-01)
------------------

* Potential fix to ``pip install`` issues.

* Start of TAG lens interpolation support.

0.2.0 (2017-03-05)
------------------

* Support for TAG lens added - phase interpolation and image display. Note: The algorithm currently assumes that the pulse is triggered at the zero-phase of the TAG lens.

* ``pip`` installation fixed by requiring Numba as a prerequisite.

* Number of pixels in the "Frame" direction (x) supersedes the number of frames as listed by the user.

* Due to massive changes, one test is currently broken.

0.3.0 (2017-03-07)
------------------

* Added method ``create_array`` to Movie() that returns a deque containing the raw data generated by the ``np.histogram`` function, for visualization and analysis purposes.

* Added method ``create_single_volume`` to Movie() that sums all stacks into a single array.

* Fixed bugs in ``tag_tools``, mainly in ``verify_periodicity()``.

* Allows for more elaborate user inputs, requiring to choose which type of output you wish for.

* Basic FLIM support.

0.3.1 (2017-03-07)
------------------

* Tiffs are now saved untiled. Depth axis is x-axis.

* Installation should run smoothly if following the instructions.

0.3.2 (2017-03-07)
------------------

* Added verifications on the FLIM input.

* Bug fixes in FLIM implementation.

0.3.3 (2017-03-08)
------------------

* Code can take care of the the infamous [-1, ..., -1] index list.

* Added ``debug`` mode in which the algorithm reads only a limited amount of lines from a file.

* Fixed minor bug in ``__create_hist``.

* Decreased size of package by removing excess lines of data for tests.

0.3.4 (2017-03-09)
------------------

* More fixes to the [-1] vector problem.

* Added a ``sort`` function before handling the data, because of irregularities.


0.3.5 (2017-03-11)
------------------

* Added sinusoidal interpolation to TAG phase.

* Sorting is now only done for TAG lens input.

* Added ``fileIO_tools.py`` module for increased simplicity.

* Added more verifications to user inputs from GUI that pop up sooner, before heavy computation is made.

* Increased file IO speed with a new ``np.fromfile`` method.


0.3.6 (2017-03-14)
------------------

* Basic support for TAG bits - no actual interpolation yet.

* GUI additions and changes.

* Minor performance upgrades.


0.4.0 (2017-03-16)
------------------

* Changes file IO completely. Performance should be higher.

* TAG lens bug fixes.

* Updated docs.

* Updated tests.

0.4.1 (2017-03-30)
------------------

* Updates to setup.py to allow docs to build successfully.

* Small updates to docs.

* GUI improvements.

0.4.2 (2017-03-30)
------------------

* Added Dask ``delayed`` interface.

0.4.3 (2017-04-02)
------------------

* Removed Dask.

* Refactored class structure, remove the ``Frame`` class.

* Refactored GUI code.

0.4.4 (2017-04-08)
------------------

* Changes to file I\O.

* Number of requested frames should actually matter now.

* GUI improvements.

0.4.5 (2017-04-17)
------------------

* Bug fixes and improvements to TAG lens interpolation.

0.4.6 (2017-05-16)
------------------

* Use ``Debug?`` to read a small portion of an ``.lst`` file.

* Changed defaults in GUI.

* Allows acquisition in bi-directional scanning mode. This is enabled with the ``Mirror phase`` and ``Flyback`` parameters in the GUI.

* Backend changes for possible future support of binary files.

* The code allows to dismiss unwanted input channels by specifying them as "Empty".
    * If you mark a channel as containing data while it's inactive, an error will terminate execution.

* Massive refactoring of pipeline.

0.4.7 (2017-05-25)
------------------

* Fixed some of the tests.

* Added option to save or discard photons arriving during the returning phase of a unidirectional scan. This is the default option now.

* Introduced ``Fill Fraction`` parameter that determines the amount of `time` the mirrors spend "inside" the image.

* Some tests are working again.

* Many other bugfixes.

0.4.8 (2017-05-31)
------------------

* Added type hinting. As a result, disabled support for Python version 3.5. Code is now entirely 3.6-dependent.

* Added ``.json`` configuration files to the GUI. It also automatically loads the last modified configuration file.

* Updated docs.

0.5.0 (2017-06-04)
------------------

* Added the ``CensorCorrection`` class for processing generated data using the censor correction method. Current available methods are:
    * ``censored.gen_bincount_deque()``: Bin the photons into their relative laser pulses, and count how many photons arrived due to each pulse.
    * ``censored.find_temp_structure_deque()``: Generate a summed histogram of the temporal structure of detected photons.

* Fixed linux bug with ``Deque`` import.

* Added tests.

0.5.1 (2017-06-04)
------------------

* Another go at Linux namespace conflicts.

0.5.2 (2017-06-06)
------------------

* Added basic support for "Censor Correction".

0.5.3 (2017-06-06)
------------------

* Bug fixes, including support for single-pixel images.

* Script should require less memory while running.

0.5.4 (2017-06-06)
------------------

* Fixed untested typo.

0.5.5 (2017-06-07)
------------------

* Bug fixes for single-pixel frames

* Bug fixes for defining amount of frames manually in script.

* Censor correction shouldn't require as much memory as it did. It's still not as fast as it can be.

* Loading a configuration file will make it the "last used" file, reloading it when re-running PySight.

0.5.6 (2017-06-08)
------------------

* ML classification is functional.

0.5.7 (2017-06-08)
------------------

* More robust data generation.

* Added ``scikit-learn`` to ``requirements.txt`` and ``setup.py``.

* ``CensorCorrection().learn_histograms()`` now receives the power label as its input - must be an integer.

* Return of ``CensorCorrection().learn_histograms()`` is now ``data, labels``.

* Made ``__get_bincount_deque()`` private. To be accessed using ``learn_histograms()`` only.


