oct-to-tiff 0.4.0__tar.gz → 0.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {oct_to_tiff-0.4.0/src/oct_to_tiff.egg-info → oct_to_tiff-0.5.0}/PKG-INFO +67 -11
- {oct_to_tiff-0.4.0 → oct_to_tiff-0.5.0}/README.md +21 -4
- oct_to_tiff-0.5.0/pyproject.toml +55 -0
- oct_to_tiff-0.5.0/setup.cfg +4 -0
- {oct_to_tiff-0.4.0 → oct_to_tiff-0.5.0}/src/oct_to_tiff/cli.py +50 -20
- {oct_to_tiff-0.4.0 → oct_to_tiff-0.5.0/src/oct_to_tiff.egg-info}/PKG-INFO +68 -12
- {oct_to_tiff-0.4.0 → oct_to_tiff-0.5.0}/src/oct_to_tiff.egg-info/SOURCES.txt +0 -2
- oct_to_tiff-0.5.0/src/oct_to_tiff.egg-info/requires.txt +8 -0
- oct_to_tiff-0.4.0/pyproject.toml +0 -3
- oct_to_tiff-0.4.0/setup.cfg +0 -43
- oct_to_tiff-0.4.0/setup.py +0 -3
- oct_to_tiff-0.4.0/src/oct_to_tiff.egg-info/requires.txt +0 -2
- {oct_to_tiff-0.4.0 → oct_to_tiff-0.5.0}/LICENSE.txt +0 -0
- {oct_to_tiff-0.4.0 → oct_to_tiff-0.5.0}/src/oct_to_tiff/__init__.py +0 -0
- {oct_to_tiff-0.4.0 → oct_to_tiff-0.5.0}/src/oct_to_tiff.egg-info/dependency_links.txt +0 -0
- {oct_to_tiff-0.4.0 → oct_to_tiff-0.5.0}/src/oct_to_tiff.egg-info/entry_points.txt +0 -0
- {oct_to_tiff-0.4.0 → oct_to_tiff-0.5.0}/src/oct_to_tiff.egg-info/top_level.txt +0 -0
|
@@ -1,28 +1,71 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: oct-to-tiff
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: A command line tool for converting optical coherence tomography angiography (OCTA) data.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
Author-email: Cameron Lloyd <lloyd@med.unideb.hu>
|
|
6
|
+
Maintainer-email: Cameron Lloyd <lloyd@med.unideb.hu>
|
|
7
|
+
License: BSD 3-Clause License
|
|
8
|
+
|
|
9
|
+
Copyright (c) 2021, Cameron Lloyd
|
|
10
|
+
All rights reserved.
|
|
11
|
+
|
|
12
|
+
Redistribution and use in source and binary forms, with or without
|
|
13
|
+
modification, are permitted provided that the following conditions are met:
|
|
14
|
+
|
|
15
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
16
|
+
list of conditions and the following disclaimer.
|
|
17
|
+
|
|
18
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
19
|
+
this list of conditions and the following disclaimer in the documentation
|
|
20
|
+
and/or other materials provided with the distribution.
|
|
21
|
+
|
|
22
|
+
3. Neither the name of the copyright holder nor the names of its
|
|
23
|
+
contributors may be used to endorse or promote products derived from
|
|
24
|
+
this software without specific prior written permission.
|
|
25
|
+
|
|
26
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
27
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
28
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
29
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
30
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
31
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
32
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
33
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
34
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
35
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
36
|
+
|
|
37
|
+
Project-URL: Homepage, https://github.com/camlloyd/oct-to-tiff
|
|
8
38
|
Project-URL: Bug Tracker, https://github.com/camlloyd/oct-to-tiff/issues
|
|
39
|
+
Project-URL: Changelog, https://github.com/camlloyd/oct-to-tiff/blob/main/CHANGELOG.md
|
|
40
|
+
Keywords: angiography,cli,oct,octa
|
|
9
41
|
Classifier: Development Status :: 3 - Alpha
|
|
10
42
|
Classifier: Intended Audience :: Science/Research
|
|
11
43
|
Classifier: License :: OSI Approved :: BSD License
|
|
12
44
|
Classifier: Natural Language :: English
|
|
13
45
|
Classifier: Operating System :: OS Independent
|
|
14
46
|
Classifier: Programming Language :: Python :: 3
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
17
47
|
Classifier: Programming Language :: Python :: 3.10
|
|
18
48
|
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
-
|
|
49
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
50
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
51
|
+
Requires-Python: >=3.10
|
|
20
52
|
Description-Content-Type: text/markdown
|
|
21
53
|
License-File: LICENSE.txt
|
|
54
|
+
Requires-Dist: defusedxml
|
|
55
|
+
Requires-Dist: numpy
|
|
56
|
+
Requires-Dist: tifffile
|
|
57
|
+
Provides-Extra: dev
|
|
58
|
+
Requires-Dist: mypy; extra == "dev"
|
|
59
|
+
Requires-Dist: ruff; extra == "dev"
|
|
60
|
+
Requires-Dist: types-defusedxml; extra == "dev"
|
|
22
61
|
|
|
23
62
|
# oct-to-tiff
|
|
24
63
|
|
|
25
64
|
[](https://zenodo.org/badge/latestdoi/382486199)
|
|
65
|
+
[](https://pypi.org/project/oct-to-tiff)
|
|
66
|
+
[](https://github.com/camlloyd/oct-to-tiff/blob/main/LICENSE.txt)
|
|
67
|
+
[](https://pepy.tech/projects/oct-to-tiff)
|
|
68
|
+
|
|
26
69
|
|
|
27
70
|
A command line tool for converting optical coherence tomography angiography (OCTA) data.
|
|
28
71
|
|
|
@@ -31,9 +74,9 @@ via pip:
|
|
|
31
74
|
|
|
32
75
|
pip install oct-to-tiff
|
|
33
76
|
|
|
34
|
-
via
|
|
77
|
+
via mamba:
|
|
35
78
|
|
|
36
|
-
|
|
79
|
+
mamba install -c conda-forge oct-to-tiff
|
|
37
80
|
|
|
38
81
|
## Getting started
|
|
39
82
|
oct-to-tiff /path/to/image.OCT
|
|
@@ -49,6 +92,12 @@ By default, the output file will be written with the same name as the input file
|
|
|
49
92
|
|
|
50
93
|
To specify a custom output directory, see [Optional arguments](#optional-arguments) below.
|
|
51
94
|
|
|
95
|
+
## Batch processing
|
|
96
|
+
``` bash
|
|
97
|
+
for file in *.OCT; do oct-to-tiff "${file}"; done
|
|
98
|
+
```
|
|
99
|
+
will convert all OCT volumes in the current directory to OME-TIFF files, including voxel size in the metadata.
|
|
100
|
+
|
|
52
101
|
## Supported scan patterns
|
|
53
102
|
|
|
54
103
|
This tool has been developed by reverse engineering data from the Optovue RTVue XR Avanti System.
|
|
@@ -111,6 +160,13 @@ Sets the correct voxel size for scan patterns with adjustable length.
|
|
|
111
160
|
|
|
112
161
|
oct-to-tiff /path/to/image.OCT --size 4.5
|
|
113
162
|
|
|
163
|
+
#### `--log-level LEVEL`
|
|
164
|
+
**Description**: sets the logging level (default: `WARNING`)
|
|
165
|
+
|
|
166
|
+
**Usage**:
|
|
167
|
+
|
|
168
|
+
oct-to-tiff /path/to/image.OCT --log-level INFO
|
|
169
|
+
|
|
114
170
|
#### `--version`
|
|
115
171
|
**Description**: show program's version number and exit.
|
|
116
172
|
|
|
@@ -154,8 +210,8 @@ Requires `--size SIZE`.
|
|
|
154
210
|
|
|
155
211
|
## Contributing
|
|
156
212
|
|
|
157
|
-
This project uses [
|
|
213
|
+
This project uses [Ruff](https://github.com/astral-sh/ruff) for linting and formatting.
|
|
158
214
|
|
|
159
215
|
## Requirements
|
|
160
216
|
|
|
161
|
-
Requires Python 3.
|
|
217
|
+
Requires Python 3.10 or higher.
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
# oct-to-tiff
|
|
2
2
|
|
|
3
3
|
[](https://zenodo.org/badge/latestdoi/382486199)
|
|
4
|
+
[](https://pypi.org/project/oct-to-tiff)
|
|
5
|
+
[](https://github.com/camlloyd/oct-to-tiff/blob/main/LICENSE.txt)
|
|
6
|
+
[](https://pepy.tech/projects/oct-to-tiff)
|
|
7
|
+
|
|
4
8
|
|
|
5
9
|
A command line tool for converting optical coherence tomography angiography (OCTA) data.
|
|
6
10
|
|
|
@@ -9,9 +13,9 @@ via pip:
|
|
|
9
13
|
|
|
10
14
|
pip install oct-to-tiff
|
|
11
15
|
|
|
12
|
-
via
|
|
16
|
+
via mamba:
|
|
13
17
|
|
|
14
|
-
|
|
18
|
+
mamba install -c conda-forge oct-to-tiff
|
|
15
19
|
|
|
16
20
|
## Getting started
|
|
17
21
|
oct-to-tiff /path/to/image.OCT
|
|
@@ -27,6 +31,12 @@ By default, the output file will be written with the same name as the input file
|
|
|
27
31
|
|
|
28
32
|
To specify a custom output directory, see [Optional arguments](#optional-arguments) below.
|
|
29
33
|
|
|
34
|
+
## Batch processing
|
|
35
|
+
``` bash
|
|
36
|
+
for file in *.OCT; do oct-to-tiff "${file}"; done
|
|
37
|
+
```
|
|
38
|
+
will convert all OCT volumes in the current directory to OME-TIFF files, including voxel size in the metadata.
|
|
39
|
+
|
|
30
40
|
## Supported scan patterns
|
|
31
41
|
|
|
32
42
|
This tool has been developed by reverse engineering data from the Optovue RTVue XR Avanti System.
|
|
@@ -89,6 +99,13 @@ Sets the correct voxel size for scan patterns with adjustable length.
|
|
|
89
99
|
|
|
90
100
|
oct-to-tiff /path/to/image.OCT --size 4.5
|
|
91
101
|
|
|
102
|
+
#### `--log-level LEVEL`
|
|
103
|
+
**Description**: sets the logging level (default: `WARNING`)
|
|
104
|
+
|
|
105
|
+
**Usage**:
|
|
106
|
+
|
|
107
|
+
oct-to-tiff /path/to/image.OCT --log-level INFO
|
|
108
|
+
|
|
92
109
|
#### `--version`
|
|
93
110
|
**Description**: show program's version number and exit.
|
|
94
111
|
|
|
@@ -132,8 +149,8 @@ Requires `--size SIZE`.
|
|
|
132
149
|
|
|
133
150
|
## Contributing
|
|
134
151
|
|
|
135
|
-
This project uses [
|
|
152
|
+
This project uses [Ruff](https://github.com/astral-sh/ruff) for linting and formatting.
|
|
136
153
|
|
|
137
154
|
## Requirements
|
|
138
155
|
|
|
139
|
-
Requires Python 3.
|
|
156
|
+
Requires Python 3.10 or higher.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "oct-to-tiff"
|
|
7
|
+
version = "0.5.0"
|
|
8
|
+
dependencies = [
|
|
9
|
+
"defusedxml",
|
|
10
|
+
"numpy",
|
|
11
|
+
"tifffile",
|
|
12
|
+
]
|
|
13
|
+
requires-python = ">=3.10"
|
|
14
|
+
authors = [{name = "Cameron Lloyd", email = "lloyd@med.unideb.hu"}]
|
|
15
|
+
maintainers = [{name = "Cameron Lloyd", email = "lloyd@med.unideb.hu"}]
|
|
16
|
+
description = "A command line tool for converting optical coherence tomography angiography (OCTA) data."
|
|
17
|
+
readme = "README.md"
|
|
18
|
+
license = {file = "LICENSE.txt"}
|
|
19
|
+
keywords = ["angiography", "cli", "oct", "octa"]
|
|
20
|
+
classifiers = [
|
|
21
|
+
"Development Status :: 3 - Alpha",
|
|
22
|
+
"Intended Audience :: Science/Research",
|
|
23
|
+
"License :: OSI Approved :: BSD License",
|
|
24
|
+
"Natural Language :: English",
|
|
25
|
+
"Operating System :: OS Independent",
|
|
26
|
+
"Programming Language :: Python :: 3",
|
|
27
|
+
"Programming Language :: Python :: 3.10",
|
|
28
|
+
"Programming Language :: Python :: 3.11",
|
|
29
|
+
"Programming Language :: Python :: 3.12",
|
|
30
|
+
"Programming Language :: Python :: 3.13",
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
[project.optional-dependencies]
|
|
34
|
+
dev = [
|
|
35
|
+
"mypy",
|
|
36
|
+
"ruff",
|
|
37
|
+
"types-defusedxml"
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
[project.urls]
|
|
41
|
+
Homepage = "https://github.com/camlloyd/oct-to-tiff"
|
|
42
|
+
"Bug Tracker" = "https://github.com/camlloyd/oct-to-tiff/issues"
|
|
43
|
+
Changelog = "https://github.com/camlloyd/oct-to-tiff/blob/main/CHANGELOG.md"
|
|
44
|
+
|
|
45
|
+
[project.scripts]
|
|
46
|
+
oct-to-tiff = "oct_to_tiff.cli:main"
|
|
47
|
+
|
|
48
|
+
[tool.setuptools.packages.find]
|
|
49
|
+
where = ["src"]
|
|
50
|
+
|
|
51
|
+
[tool.ruff.lint]
|
|
52
|
+
select = [
|
|
53
|
+
"I", # isort
|
|
54
|
+
"S", # flake8-bandit
|
|
55
|
+
]
|
|
@@ -1,25 +1,29 @@
|
|
|
1
1
|
import argparse
|
|
2
2
|
import logging
|
|
3
|
-
|
|
3
|
+
from importlib.metadata import version
|
|
4
4
|
from pathlib import Path
|
|
5
|
+
from typing import Any
|
|
5
6
|
|
|
7
|
+
import defusedxml.ElementTree as DET
|
|
6
8
|
import numpy as np
|
|
7
9
|
import tifffile
|
|
10
|
+
from numpy.typing import NDArray
|
|
8
11
|
|
|
9
|
-
logging.basicConfig(
|
|
10
|
-
format="%(asctime)s %(name)s:%(funcName)s %(levelname)s - %(message)s"
|
|
11
|
-
)
|
|
12
12
|
logger = logging.getLogger(__name__)
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
def reshape_volume(
|
|
16
|
-
volume
|
|
17
|
-
|
|
16
|
+
volume: NDArray[Any],
|
|
17
|
+
frames_per_data_group: int,
|
|
18
|
+
total_data_groups: int,
|
|
19
|
+
oct_window_height: int,
|
|
20
|
+
xy_scan_length: int,
|
|
21
|
+
) -> NDArray[Any]:
|
|
18
22
|
"""Reshape a 1-dimensional array to a 3-dimensional array.
|
|
19
23
|
|
|
20
24
|
Parameters
|
|
21
25
|
----------
|
|
22
|
-
volume :
|
|
26
|
+
volume : NDArray[Any]
|
|
23
27
|
A 1-dimensional array.
|
|
24
28
|
frames_per_data_group : int
|
|
25
29
|
The number of frames per data group.
|
|
@@ -32,7 +36,7 @@ def reshape_volume(
|
|
|
32
36
|
|
|
33
37
|
Returns
|
|
34
38
|
-------
|
|
35
|
-
volume :
|
|
39
|
+
volume : NDArray[Any]
|
|
36
40
|
A 3-dimensional array.
|
|
37
41
|
|
|
38
42
|
"""
|
|
@@ -47,17 +51,19 @@ def reshape_volume(
|
|
|
47
51
|
return volume
|
|
48
52
|
|
|
49
53
|
|
|
50
|
-
def rotate_volume(
|
|
54
|
+
def rotate_volume(
|
|
55
|
+
volume: NDArray[Any],
|
|
56
|
+
) -> NDArray[Any]:
|
|
51
57
|
"""Rotate a 3-dimensional array 90 degrees left (anti-clockwise) about the z-axis.
|
|
52
58
|
|
|
53
59
|
Parameters
|
|
54
60
|
----------
|
|
55
|
-
volume :
|
|
61
|
+
volume : NDArray[Any]
|
|
56
62
|
A 3-dimensional array.
|
|
57
63
|
|
|
58
64
|
Returns
|
|
59
65
|
-------
|
|
60
|
-
volume :
|
|
66
|
+
volume : NDArray[Any]
|
|
61
67
|
A rotated version of the input volume.
|
|
62
68
|
|
|
63
69
|
"""
|
|
@@ -65,14 +71,20 @@ def rotate_volume(volume):
|
|
|
65
71
|
return volume
|
|
66
72
|
|
|
67
73
|
|
|
68
|
-
def write_volume(
|
|
74
|
+
def write_volume(
|
|
75
|
+
output_path: Path,
|
|
76
|
+
volume: NDArray[Any],
|
|
77
|
+
pixel_size_x: float,
|
|
78
|
+
pixel_size_y: float,
|
|
79
|
+
pixel_size_z: float,
|
|
80
|
+
) -> None:
|
|
69
81
|
"""Write a 3-dimensional array to the output path as an OME-TIFF file, including voxel size in the metadata.
|
|
70
82
|
|
|
71
83
|
Parameters
|
|
72
84
|
----------
|
|
73
85
|
output_path : Path
|
|
74
86
|
The specified output path.
|
|
75
|
-
volume :
|
|
87
|
+
volume : NDArray[Any]
|
|
76
88
|
A 3-dimensional array.
|
|
77
89
|
pixel_size_x : float
|
|
78
90
|
The pixel (voxel) width in mm.
|
|
@@ -98,21 +110,23 @@ def write_volume(output_path, volume, pixel_size_x, pixel_size_y, pixel_size_z):
|
|
|
98
110
|
)
|
|
99
111
|
|
|
100
112
|
|
|
101
|
-
def extract_boundaries(input_path):
|
|
113
|
+
def extract_boundaries(input_path: str | Path) -> None:
|
|
102
114
|
"""Extract segmentation lines.
|
|
103
115
|
|
|
104
116
|
Parameters
|
|
105
117
|
----------
|
|
106
|
-
input_path : Path
|
|
118
|
+
input_path : str | Path
|
|
107
119
|
The specified input path.
|
|
108
120
|
|
|
109
121
|
"""
|
|
110
|
-
|
|
122
|
+
input_path = Path(input_path)
|
|
123
|
+
tree = DET.parse(input_path)
|
|
111
124
|
root = tree.getroot()
|
|
112
125
|
|
|
113
|
-
array_size = int(root.findtext("./Curve_Set/Image/Curve/ARRAY"))
|
|
126
|
+
array_size = int(root.findtext("./Curve_Set/Image/Curve/ARRAY", 0))
|
|
114
127
|
data_points = [
|
|
115
|
-
int(point.text)
|
|
128
|
+
int(point.text) if point.text else 0
|
|
129
|
+
for point in root.findall("./Curve_Set/Image/Curve/D")
|
|
116
130
|
]
|
|
117
131
|
scan_length = np.arange(len(data_points))
|
|
118
132
|
num_files = len(data_points) // array_size
|
|
@@ -124,7 +138,7 @@ def extract_boundaries(input_path):
|
|
|
124
138
|
np.savetxt(table_path, table, delimiter="\t", fmt="%d")
|
|
125
139
|
|
|
126
140
|
|
|
127
|
-
def main():
|
|
141
|
+
def main() -> None:
|
|
128
142
|
parser = argparse.ArgumentParser(
|
|
129
143
|
description="Convert optical coherence tomography angiography (OCTA) data."
|
|
130
144
|
)
|
|
@@ -162,9 +176,25 @@ def main():
|
|
|
162
176
|
action="store_true",
|
|
163
177
|
help="extract segmentation lines",
|
|
164
178
|
)
|
|
165
|
-
parser.add_argument(
|
|
179
|
+
parser.add_argument(
|
|
180
|
+
"--log-level",
|
|
181
|
+
default="WARNING",
|
|
182
|
+
metavar="LEVEL",
|
|
183
|
+
help="sets the logging level (default: %(default)s)",
|
|
184
|
+
)
|
|
185
|
+
parser.add_argument(
|
|
186
|
+
"--version", action="version", version="%(prog)s " + version("oct_to_tiff")
|
|
187
|
+
)
|
|
166
188
|
args = parser.parse_args()
|
|
167
189
|
|
|
190
|
+
numeric_level = getattr(logging, args.log_level.upper(), None)
|
|
191
|
+
if not isinstance(numeric_level, int):
|
|
192
|
+
raise ValueError(f"Invalid log level: {args.log_level}")
|
|
193
|
+
logging.basicConfig(
|
|
194
|
+
level=numeric_level,
|
|
195
|
+
format="%(asctime)s %(name)s:%(funcName)s %(levelname)s - %(message)s",
|
|
196
|
+
)
|
|
197
|
+
|
|
168
198
|
input_path = args.input
|
|
169
199
|
if args.output:
|
|
170
200
|
dir_name = args.output
|
|
@@ -1,28 +1,71 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
|
-
Name:
|
|
3
|
-
Version: 0.
|
|
2
|
+
Name: oct-to-tiff
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: A command line tool for converting optical coherence tomography angiography (OCTA) data.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
Author-email: Cameron Lloyd <lloyd@med.unideb.hu>
|
|
6
|
+
Maintainer-email: Cameron Lloyd <lloyd@med.unideb.hu>
|
|
7
|
+
License: BSD 3-Clause License
|
|
8
|
+
|
|
9
|
+
Copyright (c) 2021, Cameron Lloyd
|
|
10
|
+
All rights reserved.
|
|
11
|
+
|
|
12
|
+
Redistribution and use in source and binary forms, with or without
|
|
13
|
+
modification, are permitted provided that the following conditions are met:
|
|
14
|
+
|
|
15
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
16
|
+
list of conditions and the following disclaimer.
|
|
17
|
+
|
|
18
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
19
|
+
this list of conditions and the following disclaimer in the documentation
|
|
20
|
+
and/or other materials provided with the distribution.
|
|
21
|
+
|
|
22
|
+
3. Neither the name of the copyright holder nor the names of its
|
|
23
|
+
contributors may be used to endorse or promote products derived from
|
|
24
|
+
this software without specific prior written permission.
|
|
25
|
+
|
|
26
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
27
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
28
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
29
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
30
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
31
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
32
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
33
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
34
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
35
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
36
|
+
|
|
37
|
+
Project-URL: Homepage, https://github.com/camlloyd/oct-to-tiff
|
|
8
38
|
Project-URL: Bug Tracker, https://github.com/camlloyd/oct-to-tiff/issues
|
|
39
|
+
Project-URL: Changelog, https://github.com/camlloyd/oct-to-tiff/blob/main/CHANGELOG.md
|
|
40
|
+
Keywords: angiography,cli,oct,octa
|
|
9
41
|
Classifier: Development Status :: 3 - Alpha
|
|
10
42
|
Classifier: Intended Audience :: Science/Research
|
|
11
43
|
Classifier: License :: OSI Approved :: BSD License
|
|
12
44
|
Classifier: Natural Language :: English
|
|
13
45
|
Classifier: Operating System :: OS Independent
|
|
14
46
|
Classifier: Programming Language :: Python :: 3
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
17
47
|
Classifier: Programming Language :: Python :: 3.10
|
|
18
48
|
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
-
|
|
49
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
50
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
51
|
+
Requires-Python: >=3.10
|
|
20
52
|
Description-Content-Type: text/markdown
|
|
21
53
|
License-File: LICENSE.txt
|
|
54
|
+
Requires-Dist: defusedxml
|
|
55
|
+
Requires-Dist: numpy
|
|
56
|
+
Requires-Dist: tifffile
|
|
57
|
+
Provides-Extra: dev
|
|
58
|
+
Requires-Dist: mypy; extra == "dev"
|
|
59
|
+
Requires-Dist: ruff; extra == "dev"
|
|
60
|
+
Requires-Dist: types-defusedxml; extra == "dev"
|
|
22
61
|
|
|
23
62
|
# oct-to-tiff
|
|
24
63
|
|
|
25
64
|
[](https://zenodo.org/badge/latestdoi/382486199)
|
|
65
|
+
[](https://pypi.org/project/oct-to-tiff)
|
|
66
|
+
[](https://github.com/camlloyd/oct-to-tiff/blob/main/LICENSE.txt)
|
|
67
|
+
[](https://pepy.tech/projects/oct-to-tiff)
|
|
68
|
+
|
|
26
69
|
|
|
27
70
|
A command line tool for converting optical coherence tomography angiography (OCTA) data.
|
|
28
71
|
|
|
@@ -31,9 +74,9 @@ via pip:
|
|
|
31
74
|
|
|
32
75
|
pip install oct-to-tiff
|
|
33
76
|
|
|
34
|
-
via
|
|
77
|
+
via mamba:
|
|
35
78
|
|
|
36
|
-
|
|
79
|
+
mamba install -c conda-forge oct-to-tiff
|
|
37
80
|
|
|
38
81
|
## Getting started
|
|
39
82
|
oct-to-tiff /path/to/image.OCT
|
|
@@ -49,6 +92,12 @@ By default, the output file will be written with the same name as the input file
|
|
|
49
92
|
|
|
50
93
|
To specify a custom output directory, see [Optional arguments](#optional-arguments) below.
|
|
51
94
|
|
|
95
|
+
## Batch processing
|
|
96
|
+
``` bash
|
|
97
|
+
for file in *.OCT; do oct-to-tiff "${file}"; done
|
|
98
|
+
```
|
|
99
|
+
will convert all OCT volumes in the current directory to OME-TIFF files, including voxel size in the metadata.
|
|
100
|
+
|
|
52
101
|
## Supported scan patterns
|
|
53
102
|
|
|
54
103
|
This tool has been developed by reverse engineering data from the Optovue RTVue XR Avanti System.
|
|
@@ -111,6 +160,13 @@ Sets the correct voxel size for scan patterns with adjustable length.
|
|
|
111
160
|
|
|
112
161
|
oct-to-tiff /path/to/image.OCT --size 4.5
|
|
113
162
|
|
|
163
|
+
#### `--log-level LEVEL`
|
|
164
|
+
**Description**: sets the logging level (default: `WARNING`)
|
|
165
|
+
|
|
166
|
+
**Usage**:
|
|
167
|
+
|
|
168
|
+
oct-to-tiff /path/to/image.OCT --log-level INFO
|
|
169
|
+
|
|
114
170
|
#### `--version`
|
|
115
171
|
**Description**: show program's version number and exit.
|
|
116
172
|
|
|
@@ -154,8 +210,8 @@ Requires `--size SIZE`.
|
|
|
154
210
|
|
|
155
211
|
## Contributing
|
|
156
212
|
|
|
157
|
-
This project uses [
|
|
213
|
+
This project uses [Ruff](https://github.com/astral-sh/ruff) for linting and formatting.
|
|
158
214
|
|
|
159
215
|
## Requirements
|
|
160
216
|
|
|
161
|
-
Requires Python 3.
|
|
217
|
+
Requires Python 3.10 or higher.
|
oct_to_tiff-0.4.0/pyproject.toml
DELETED
oct_to_tiff-0.4.0/setup.cfg
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
[metadata]
|
|
2
|
-
name = oct_to_tiff
|
|
3
|
-
version = 0.4.0
|
|
4
|
-
author = Cameron Lloyd
|
|
5
|
-
author_email = lloyd@med.unideb.hu
|
|
6
|
-
description = A command line tool for converting optical coherence tomography angiography (OCTA) data.
|
|
7
|
-
long_description = file: README.md
|
|
8
|
-
long_description_content_type = text/markdown
|
|
9
|
-
url = https://github.com/camlloyd/oct-to-tiff
|
|
10
|
-
project_urls =
|
|
11
|
-
Bug Tracker = https://github.com/camlloyd/oct-to-tiff/issues
|
|
12
|
-
classifiers =
|
|
13
|
-
Development Status :: 3 - Alpha
|
|
14
|
-
Intended Audience :: Science/Research
|
|
15
|
-
License :: OSI Approved :: BSD License
|
|
16
|
-
Natural Language :: English
|
|
17
|
-
Operating System :: OS Independent
|
|
18
|
-
Programming Language :: Python :: 3
|
|
19
|
-
Programming Language :: Python :: 3.8
|
|
20
|
-
Programming Language :: Python :: 3.9
|
|
21
|
-
Programming Language :: Python :: 3.10
|
|
22
|
-
Programming Language :: Python :: 3.11
|
|
23
|
-
|
|
24
|
-
[options]
|
|
25
|
-
packages = find:
|
|
26
|
-
package_dir =
|
|
27
|
-
=src
|
|
28
|
-
python_requires = >=3.8
|
|
29
|
-
install_requires =
|
|
30
|
-
numpy
|
|
31
|
-
tifffile
|
|
32
|
-
|
|
33
|
-
[options.entry_points]
|
|
34
|
-
console_scripts =
|
|
35
|
-
oct-to-tiff = oct_to_tiff.cli:main
|
|
36
|
-
|
|
37
|
-
[options.packages.find]
|
|
38
|
-
where = src
|
|
39
|
-
|
|
40
|
-
[egg_info]
|
|
41
|
-
tag_build =
|
|
42
|
-
tag_date = 0
|
|
43
|
-
|
oct_to_tiff-0.4.0/setup.py
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|