Skip to content

CHANGELOG

v0.12.2 (2023-11-15)

Build

  • build(_quality.yaml): removes caching of poetry (a7c20e1)

  • build(eyepy): updates versions (23fec54)

  • build(eyepy): removes python 3.8 from testing matrix (b2bcf7b)

  • build(eyepy): upgrades dependencies (e66fd8b)

Fix

  • fix(_release.yaml): corrects python-semantic-release version (f7171ba)

  • fix(eyemeta.py): convert dates to string for saving as json (5d715cd)

Refactor

  • refactor(eyevolume.py): changes skimage import of GeometricTransform (31ce767)

  • refactor(EyeVolume): rename method from remove_pixel_annotations to remove_pixel_annotation (6727a60)

v0.12.1 (2023-09-26)

Ci

  • ci(PythonSemanticRelease): update python semantic release to v8; minor change to README; added support for py3.11; updated dependencies (d4e65a8)

Fix

  • fix(vol_reader.py): get number of read layers from file context instead of assuming 17 layers. (2b53a33)

v0.12.0 (2023-05-31)

Breaking

  • build(eyepy): switch from eyepie to eyepy as a package name on PyPI

Thanks to @dillongwozdz for transfering the eyepy name to us.

BREAKING CHANGE: (8d07a17)

Ci

  • ci(github/workflows): update github actions (setup-python to v4, checkout to v3, cache to v3) (1727f51)

v0.11.3 (2023-04-04)

Documentation

  • docs(README.md;-cookbook.md): Add examples for importing data from different sources (2a71e11)

Fix

  • fix(eyepy.io): fixes duke layer heights import (eb18f2a)

v0.11.2 (2023-04-02)

Fix

  • fix(EyeVolume): fix saving, old method sometimes tried to recursively add the archive to the archive (e6064cc)

  • fix(import_duke_mat): fixes age parsing from duke data (ecbcbc2)

v0.11.1 (2023-03-31)

Fix

  • fix(EyeVolumeMeta): fixes saving issue by storing all dates as string in isoformat to avoid problems with dumping to json and loading (3fc7424)

v0.11.0 (2023-03-30)

Feature

  • feat(io.init.py): adds support for topcon fda files (#12)

  • NF: add basic support for fda files

  • refactor(main-and-io-module-init-files): specify topcon as vendor in fda import function

  • feat(io.init.py): add bscan metadata to returned eye volume

before the fda reader only parsed bscans and segmentation. These changes incorporate scaling and bscan position in fundus images.

  • feat(io.init.py): add fundus image to eyevolume

the changes allow to create a full EyeVolume with fundus image and metadata

  • style(io.init.py): remove double quotes

Co-authored-by: Olivier Morelle <Oli4@users.noreply.github.com> (53f2908)

v0.10.0 (2023-03-30)

Ci

  • ci(.github): add pre-commit checking to quality workflow and call quality workflow for pull requests (9e47a09)

Documentation

  • docs(core.annotations): adds docstrings (236c074)

Feature

  • feat(core.plotting): adds a scale bar and a watermark to Bscan and Fundus visualizations (0e3eaa0)

Fix

  • fix(eyepy.core): fixes bscan_region and bscan_position plotting when plotting only a part of the fundus

also adds new header_gif to the README (2c88074)

  • fix(core.grids.py): fixes error related to python 3.8 not supporting new type annotation Dict-dict List-list (3c6ba41)

Style

  • style(eyepy): applys improved pre-commit style guides

adds dostrings formatting via docformatter \n unifies single/double quotes \n upgrades type hints to be pep585 compliant (28b1b4c)

v0.9.2 (2023-03-17)

Documentation

  • docs(eyepy.core): adds type annotations to all objects in the core subpackage (ea1cb4c)

  • docs(annotations.py): adds type annotations to all objects in this module (986f9bc)

Fix

  • fix(e2e_reader.py): makes exception formatting compatible with python < 3.10 (2c4cbb0)

v0.9.1 (2023-03-15)

Ci

  • ci(ci.yaml): set python version to 3.10 for building and deploying documentation (b6feb0d)

Documentation

  • docs(README.md): clarify that the localizer is a fundus image (4e41acd)

Fix

  • fix(e2e_reader.py): extract number of Bscans more reliably by using the number of slice substructures; Skip localizer affine transformation for now, because slodata is not always available; support reading single B-scan data (1287a24)

  • fix(e2e_format.py): change the name of E2EFile to E2EFormat to avoid confustion with E2EFileStructure in e2e_reader.py (01be6a0)

v0.9.0 (2023-03-09)

Breaking

  • feat(HeE2EReader): switch to construct_typed for describing structures; create file hierarchy when parsing the E2E file; add search functions to the HeE2eReader

BREAKING CHANGE: (45578a5)

Documentation

  • docs(documentation): improve documentation; rename Voxel/Area Annotation to PixelAnnotation for consistency (ab38837)

Feature

  • feat(eyepy.io.utils.py): add functions to search for integer/float values in binary data; set relative tolerance for Bscan distance to 4% (fixes sample data warning) (96fd58b)

Fix

  • fix(HeE2eReader): fix issues with inspect after renaming classes (891c79c)

  • fix(init.py): exclude init.py from isort to prevent circular import (9254231)

  • fix(pyproject.toml): add imageio as dependency and umpgrade imagecodecs to latest version (bef44a0)

v0.8.1 (2023-02-22)

Fix

  • fix(pyproject.toml): increase allowed version range for numpy (fixes #10) (c66f6f6)

v0.8.0 (2023-02-13)

Build

  • build(pyproject.toml): add itk as optional dependency to read RETOUCH data and pygifsicle as dev dependency to optimize the header.gif (ccf0d8e)

Documentation

  • docs(README.md-/-Cookbook): Add header image to README (7501dde)

  • docs(README-and-Cookbook): fix import of load function in examples (e623c4b)

Feature

  • feat(eyepy.core): reflect plotted region in x and y axis for both localizer and B-scan; check if bscan_region bscan position indicators are in plotting region (2842424)

  • feat(eyepy.io): fix imagio warnings; raise ValueError for scan-pattern 2 and 5 instead of warning; set maxint to NAN when reading XML layers; fix bscan order in layer data (vol_reader) (c4a88e7)

Fix

  • fix(src/eyepy/io): convert very large layer heights indicating no valid layer to np.nan (352a984)

  • fix(eyepy.core): make sure ticklabels match plotted image region for EyeEnfac ande EyeBscan plots (f389f47)

  • fix(eyepy.core.utils.py): ignore nans in layers when computing drusen from layer heights (3c4efcd)

  • fix(eyepy.core): set axis in all layer height maps to (n_bscans, width)

Layer in the sample were not correctly oriented due to a different axis order in the HeXMLReader (3493b0e)

Style

  • style(eyepy/config.py): change default color of bscan region and bscan position indicators from green to limegreen because of better visibility (3658a11)

Test

  • test(test_eyevolume.py): correct indexing of layer data

The first axis (bscan axis) of the layer data was flipped to reflect B-scan indexing. Therefore layers have to be flipped now when computing drusen and projecting on the localizer. (d186317)

v0.7.0 (2023-02-10)

Breaking

  • refactor(eyepy): work in progress

BREAKING CHANGE: (c942c6b)

Ci

  • ci(pyproject.yaml): fix semantic release (daaea19)

  • ci(ci.yaml): fix syntax (c2647c6)

  • ci(ci.yaml): fix dependencies (7d4eb5f)

  • ci(ci.yaml): fix mkdocs deployment dependencies (a70a216)

  • ci(quality-check): upgrade poetry version (aedd680)

Documentation

  • docs(README-and-Cookbook): clean up (183b317)

  • docs(eyepy): add docstrings and cookbook examples (3b6ce5d)

  • docs(formats): e2e documentation (059d67b)

Feature

  • feat(HeE2eReader): read E2E volumes (9094890)

Fix

  • fix(eyepy): do not use list and tuple for type annotations python 3.8 only supports List / Tuple (cc6dfee)

  • fix(region-plotting): remove EllipsisType from allowed types for the region parameter since its not supported in python 3.8 (fac7849)

Refactor

  • refactor(eyepy): Use isort with google style for imports and yapf for code formating (47f9330)

Test

  • test(eyevolume): skip save load test for now (bd58274)

  • test(test_eyevolume): change delete to remove in function names (4804dc9)

  • test(eyevolume): skip Vol writing for now (cbdc97e)

v0.6.8 (2022-09-15)

Fix

  • fix(eyepy): update pre-commit; remove itk from dependencies

itk was used to read the RETOUCH dataset and might be added as an extra dependency (0339fb6)

Refactor

  • refactor(EyeVolumeVoxelAnnotation): simplify code for plotting (355e7f6)

v0.6.7 (2022-06-03)

Fix

  • fix(eyevolume.py): remove reformating of knot data in load - eyelab now does it if needed (35060ab)

v0.6.6 (2022-06-03)

Fix

  • fix(eyevolume): auto convert old layer curves (7842120)

v0.6.5 (2022-04-21)

Fix

  • fix(io/utils.py): check for parallel and equal distance B-scans (c5d68d2)

v0.6.4 (2022-04-21)

Fix

  • fix(lazy.py): fix shape of lazy volume (34b944f)

  • fix(eyevolume.py): enable import of B-scans with varying distances by replacing the raised Error by a warning; support deleteion of annotations (d8b4bb8)

Test

  • test(test_grid.py): add tests for ETDRS grid creation (c9c13d1)

v0.6.3 (2022-03-31)

Fix

  • fix(eyevolume.py): set default intensity transform if none is given (16b44bc)

Unknown

  • Merge branch 'master' of github.com:MedVisBonn/eyepy (e57a91e)

v0.6.2 (2022-03-31)

Fix

  • fix(eyevolume.py): add intensity_transform to the saved meta data

this is required to correctly restore saved data with non-default intensity_transform. Custom intensity transform functions can not be saved currently. (c6a2c68)

  • fix(import_retouch): transform intensities correctly

Topcon and Cirrus data is stored as UCHAR while spectralis is stored as USHORT (112d1cc)

v0.6.1 (2022-03-26)

Documentation

  • docs(README.md): add DOI badge (c4d046b)

Fix

  • fix(pyproject.toml): set minimum python version to 3.7 for compatibility with pyinstaller docker container (75c008c)

v0.6.0 (2022-03-25)

Documentation

  • docs(README.md): add Related Projects section with reference to OCT-Converter (c273e44)

Feature

  • feat(eyevolume): enable use of EyeVolume in eyelab (8479628)

  • feat(eyevolume.py): enable custom intensity transformation for OCT data (761dd5a)

v0.4.1 (2022-02-17)

Fix

  • fix(EyeVolume): fix B-scan iteration; enable setting layer heights from EyeBscan (f982d68)

Unknown

  • Merge branch 'master' of github.com:MedVisBonn/eyepy (a63cdd8)

v0.4.0 (2022-02-17)

Breaking

  • refactor(everything): Refactor for easier to maintain code

CI based on Github workflows, EyeVolume class as a standard way for handling OCT volumes, support for HEXEX VOL/XML, Bscans from folder, DUKE and RETOUCH data

BREAKING CHANGE: (117ef89)

v0.3.7 (2022-01-31)

Fix

  • fix(base): fix error when plotting volumes without drusen; fix visibility of drusen projection (9c08c72)

Unknown

  • Merge branch 'master' of github.com:MedVisBonn/eyepy (ed503da)

  • minor change (eb337bd)

v0.3.6 (2021-10-14)

Fix

  • fix(drusen.py): fix the drusen height filtering (4d1b375)

v0.3.5 (2021-08-16)

Fix

  • fix(DefaultEyeQuantifier): enable radii change for default quantifier (ca8aff3)

Unknown

  • Merge branch 'master' of github.com:MedVisBonn/eyepy (de0aba3)

v0.3.4 (2021-08-16)

Fix

v0.3.3 (2021-08-16)

Fix

  • fix(io/heyex/xml_export): initalize empty LayerAnnotation if no annotation is provided (6626467)

Unknown

  • Merge branch 'master' of github.com:MedVisBonn/eyepy (d4dc744)

v0.3.2 (2021-08-16)

Fix

  • fix(eyepy/io/heyex): allow unknown heyex xml versions

show a warning and use the base XML specification for HEYEX XML exports (5c51b46)

Unknown

  • Merge branch 'master' of github.com:MedVisBonn/eyepy (54e0a6c)

v0.3.1 (2021-05-18)

Fix

  • fix(base.py): fix layer mapping in case LayerAnnotation does not contain all layers (5e8621e)

Unknown

  • Merge remote-tracking branch 'origin/master'

Conflicts:

eyepy/core/drusen.py (569a9ed)

v0.3.0 (2021-03-19)

Feature

  • feat(drusen.py): added new histogram based DrusenFinder and made it the new default

The old default is renamed to DrusenFinderPolyFit. The new method estimates a single iRPE distance to the BM for the complete volume. We found that the iRPE found like this has a similar distance to the BM as the RPE in healthy regions hasto the BM. The iRPE computed by the old method has a larger difference to the BM. (9a3e667)

v0.2.6 (2021-03-12)

Fix

  • fix(base.py): fixed bugs for oat (7e10ab3)

Unknown

  • Merge branch 'master' of github.com:MedVisBonn/eyepy (64e6f46)

  • Layer annotation works with DB sync (e676eec)

  • Upload and show line annotations (7386893)

  • Lines and Areas Groups; Import of vol, xml and bscan folder; bug fixes; annotation view active image indicator; (d858a6f)

v0.2.5 (2021-02-11)

Fix

  • fix(docs): add requirements.txt for docs

readthedocs nee to know the dependencies for building the documentation (8008c63)

v0.2.4 (2021-02-11)

Fix

  • fix(travis.yml): removed --user option (f68df9e)

  • fix(travis.yml): switch to new pip version to properly resolve twine dependencies (7215226)

Unknown

  • Merge branch 'master' of github.com:MedVisBonn/eyepy (d14ef68)

v0.2.3 (2021-02-11)

Fix

  • fix(docs): remove eyepy as requirement for building docs (05d6293)

v0.2.2 (2021-02-11)

Fix

  • fix(setup.py-eyepy/init.py): make sure the version numbers match (7357f11)

Style

  • style(project): run pre-commit hooks and cleaned documentation (a882ad4)

Unknown

  • Merge branch 'master' of github.com:MedVisBonn/eyepy (edd53a0)

v0.2.1 (2021-02-11)

Fix

  • fix(core.drusen.py): use logging module instead of prints in this package (978fa11)

v0.2.0 (2021-02-11)

Breaking

  • fix: changed enface to localizer in OCT object

BREAKING CHANGE: (bf6ecd2)

  • refactor(eyepy/core/base.py): rename enface to localizer in Oct object for more consistency

BREAKING CHANGE: (09f8746)

Unknown

  • Merge branch 'master' of github.com:MedVisBonn/eyepy (710d6d8)

v0.1.6 (2021-02-10)

Ci

  • ci(Travis-CI): changed supported versions and location of version string (397deca)

  • ci: add changed files before commiting (8e1cb24)

Documentation

  • docs(readme): added eyepy logo to readme.rst and removed readme.md (bc3e19d)

Fix

  • fix(.travis.yml): another fix (79e3332)

  • fix(.travis.yml): fixed yaml problem (28eac5e)

  • fix(ci-testing): test whether a fix triggers the travic ci build

no significant changes (718e9ee)

Refactor

  • refactor(registration): Added rigid registration of multimodal images based on mean phase images and HOG features. Also added an examplary notebook (7ce9ebd)

  • refactor(project): added 2D rigid registration (67f5908)

Style

  • style: removed index.html files (81bf883)

Unknown

  • Another try (a450ec6)

  • Changed project name from eyepy to eyepie for PyPi (64313c4)

  • Setting up pypi upload (88a6a33)

  • work in progress (b6833a1)

  • Added annotation comparison (1bb8f33)

  • small changes (ae3b464)

  • unknown (b518e0c)

  • Fixed drusen filters (c265d6c)

  • Severall small fixes and improvements (161ecb4)

  • many small improvements; drusen computation now in 4s instead of 90s (cbae8db)

  • layer ploting with region works (fb67ede)

  • minor change (a1fa0bb)

  • default Annotation for B-Scan (758d23f)

  • some changes (8935ab4)

  • Default empty LayerAnnotation works (72a6a43)

  • fix the layer annotation fix :/ (fa5ee81)

  • Added default empty layer annotation and fixed Oct.layer (5c8a395)

  • Assume square area for OCT if no enface and or no layer positions are given; Enabled changing the layer annotations (5e244f0)

  • Added name to Bscan. If B-Scans are save as individual files, this is the respective filename, else it becomes a string version of the B-Scan index (0b09ebe)

  • Merge remote-tracking branch 'public/master' (dd352c6)

  • added layer_indices property to Bscan (bd4f669)

  • Merge remote-tracking branch 'public/master' (64db876)

  • Imports fixed (cb2759a)

  • Merge remote-tracking branch 'public/master'

Conflicts:

eyepy/core/base.py (1b4de44)

  • Rewrite Heyex vol and xml readers. Clean up (f97da6e)

  • Merge remote-tracking branch 'public/master'

Conflicts:

eyepy/core/octbase.py

eyepy/io/heyex/he_xml.py (965bc45)

  • minor fix (b1b97f3)

  • minor fix (266f837)

  • added drusen depth filter (8acd827)

  • bumbed version (5a1000a)

  • Added drusen saving in data_path/.eyepy folder. Added function to recompute drusen if needed with a custom drusenfinder (40ed65d)

  • Merge remote-tracking branch 'origin/master' into dev

Conflicts:

eyepy/core/drusen.py (69a6f71)

  • Drusen depth filter added (d33f0d6)

  • layer_indices and enface filename (2ee6f41)

  • Work in progress, adding reading functionallity for bscan only folders (8d859c0)

  • Changed Repository (5e0aa32)

  • Merge branch 'dev'

Conflicts:

eyepy/preprocess/loggabor.py (1368604)

  • Added DefaultEyeQuantifier and improved plotting (a00b25a)

  • Minor fixes and clean up (2ce4962)

  • Removed code duplication (c02d2dd)

  • Added EyeQuantifier and DefaultEyeQuantifier for standard drusen quantification (6b33b6f)

  • Added loader for sample data (451586d)

  • Added DrusenFinder to octbase (46ec78c)

  • Work in progress on the DrusenFinder (bb69833)

  • When loading B-Scans assume image has 2 dimensions. In case it as 3 dimensions (last dimension for RGB) keep only the R array (0290a7b)

  • minor fix (04f8d6b)

  • Merge branch 'master' into merge_to_public

Conflicts:

setup.py (b300bd6)

  • added drusen metrics and fixed drusen computation (1e38f65)

  • Drusen code is clean, tests missing (c28de74)

  • Started to add drusen computation from layer segmentation. (5e8d511)

  • Store only one channel of the loaded bscan (b7d0827)

  • Added seaborn dependcy (9e41356)

  • relaxed dependencies for now (c2a3ed8)

  • initial commit (c0cb0ca)

  • minor plotting changes (ceb5fed)

  • fixed specification for vol files (0afb7ee)

  • bug fixes and reorganization (2a1dde1)

  • latest changes (39ccccd)

  • old changes (2ca90dc)

  • Added base classes for Oct and Bscan objects which define the interface and deliver basic plotting functionality (a5f82df)

  • Fixed parsing B-Scans for the Heyex XML export (70b101c)

  • read Heyex XML exports with the same class as the Heyex VOL export. This makes both exports accessible using the same interface (b05b3a0)

  • memory mapped file for reading .vol (37b31d5)

  • fixed comma (efb4dc7)

  • Added support for reading segmentations from .vol (5cebe5e)

  • Merge remote-tracking branch 'origin/master'

Conflicts:

docs/conf.py

eyepy/io/init.py

eyepy/io/base.py

eyepy/io/he_vol.py (95eb730)

  • HeyexOct docstring (f539013)

  • Added sphinx extensions for numpy style docstrings (napoleon) and typehints (sphinx_autodoc_typehints) (8faa2d7)

  • Documentation and clean up in progress (8770649)

  • Rewrite vol import (d9b138e)

  • changes to the filtergrid to use it more flexible (5c3c0a7)

  • Another commit (64e1d1b)

  • new approach (9d883af)

  • registartion progress (5705254)

  • log gabor completeted (7f42ea6)

  • ... (f5b451a)

  • progress on registration (8fb4755)

  • progress on log gabor (51e5205)

  • work in progress register nir/cfp (b09762d)

  • Project init (ad34732)

  • Initial commit (d1b9af2)