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
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
- fix: fix the reference (
eadf100)
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)