mosamatic2 2.0.11__py3-none-any.whl → 2.0.12__py3-none-any.whl
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.
Potentially problematic release.
This version of mosamatic2 might be problematic. Click here for more details.
- mosamatic2/commands/dicom2nifti.py +8 -8
- mosamatic2/core/data/multiniftiimage.py +26 -0
- mosamatic2/core/data/multinumpyimage.py +4 -4
- mosamatic2/core/data/niftiimage.py +13 -0
- mosamatic2/core/data/numpyimage.py +1 -1
- mosamatic2/core/tasks/calculatescorestask/calculatescorestask.py +2 -2
- mosamatic2/core/tasks/dicom2niftitask/dicom2niftitask.py +23 -9
- mosamatic2/core/tasks/segmentmusclefatl3tensorflowtask/segmentmusclefatl3tensorflowtask.py +3 -0
- mosamatic2/core/tasks/selectslicefromscanstask/selectslicefromscanstask.py +1 -1
- mosamatic2/core/utils.py +12 -2
- mosamatic2/ui/resources/VERSION +1 -1
- mosamatic2/ui/widgets/panels/tasks/dicom2niftitaskpanel.py +23 -23
- {mosamatic2-2.0.11.dist-info → mosamatic2-2.0.12.dist-info}/METADATA +1 -1
- {mosamatic2-2.0.11.dist-info → mosamatic2-2.0.12.dist-info}/RECORD +16 -14
- {mosamatic2-2.0.11.dist-info → mosamatic2-2.0.12.dist-info}/WHEEL +0 -0
- {mosamatic2-2.0.11.dist-info → mosamatic2-2.0.12.dist-info}/entry_points.txt +0 -0
|
@@ -3,12 +3,12 @@ import click
|
|
|
3
3
|
from mosamatic2.core.tasks import Dicom2NiftiTask
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
@click.command(help='Converts DICOM series to NIFTI')
|
|
6
|
+
@click.command(help='Converts root directory with DICOM series to NIFTI format')
|
|
7
7
|
@click.option(
|
|
8
|
-
'--
|
|
8
|
+
'--scans',
|
|
9
9
|
required=True,
|
|
10
10
|
type=click.Path(exists=True),
|
|
11
|
-
help='
|
|
11
|
+
help='Root directory with DICOM scans (one for each patient)',
|
|
12
12
|
)
|
|
13
13
|
@click.option(
|
|
14
14
|
'--output',
|
|
@@ -22,14 +22,14 @@ from mosamatic2.core.tasks import Dicom2NiftiTask
|
|
|
22
22
|
default=False,
|
|
23
23
|
help='Overwrite [true|false]'
|
|
24
24
|
)
|
|
25
|
-
def dicom2nifti(
|
|
25
|
+
def dicom2nifti(scans, output, overwrite):
|
|
26
26
|
"""
|
|
27
|
-
Converts
|
|
27
|
+
Converts DICOM scans to NIFTI format.
|
|
28
28
|
|
|
29
29
|
Parameters
|
|
30
30
|
----------
|
|
31
|
-
--
|
|
32
|
-
|
|
31
|
+
--scans : str
|
|
32
|
+
Root directory with DICOM scans (one subdirectory for each patient)
|
|
33
33
|
|
|
34
34
|
--output : str
|
|
35
35
|
Path to output directory
|
|
@@ -38,7 +38,7 @@ def dicom2nifti(images, output, overwrite):
|
|
|
38
38
|
Overwrite contents output directory [true|false]
|
|
39
39
|
"""
|
|
40
40
|
task = Dicom2NiftiTask(
|
|
41
|
-
inputs={'
|
|
41
|
+
inputs={'scans': scans},
|
|
42
42
|
params=None,
|
|
43
43
|
output=output,
|
|
44
44
|
overwrite=overwrite,
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from mosamatic2.core.managers.logmanager import LogManager
|
|
3
|
+
from mosamatic2.core.data.filedata import FileData
|
|
4
|
+
from mosamatic2.core.data.niftiimage import NiftiImage
|
|
5
|
+
|
|
6
|
+
LOG = LogManager()
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class MultiNiftiImage(FileData):
|
|
10
|
+
def __init__(self):
|
|
11
|
+
super(MultiNiftiImage, self).__init__()
|
|
12
|
+
self._images = []
|
|
13
|
+
|
|
14
|
+
def images(self):
|
|
15
|
+
return self._images
|
|
16
|
+
|
|
17
|
+
def load(self):
|
|
18
|
+
if self.path():
|
|
19
|
+
for f in os.listdir(self.path()):
|
|
20
|
+
f_path = os.path.join(self.path(), f)
|
|
21
|
+
image = NiftiImage()
|
|
22
|
+
image.set_path(f_path)
|
|
23
|
+
if image.load():
|
|
24
|
+
self._images.append(image)
|
|
25
|
+
return True
|
|
26
|
+
return False
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import os
|
|
2
2
|
from mosamatic2.core.managers.logmanager import LogManager
|
|
3
3
|
from mosamatic2.core.data.filedata import FileData
|
|
4
|
-
from mosamatic2.core.data.numpyimage import
|
|
4
|
+
from mosamatic2.core.data.numpyimage import NumpyImage
|
|
5
5
|
|
|
6
6
|
LOG = LogManager()
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
class
|
|
9
|
+
class MultiNumpyImage(FileData):
|
|
10
10
|
def __init__(self):
|
|
11
|
-
super(
|
|
11
|
+
super(MultiNumpyImage, self).__init__()
|
|
12
12
|
self._images = []
|
|
13
13
|
|
|
14
14
|
def images(self):
|
|
@@ -18,7 +18,7 @@ class MultiNumPyImage(FileData):
|
|
|
18
18
|
if self.path():
|
|
19
19
|
for f in os.listdir(self.path()):
|
|
20
20
|
f_path = os.path.join(self.path(), f)
|
|
21
|
-
image =
|
|
21
|
+
image = NumpyImage()
|
|
22
22
|
image.set_path(f_path)
|
|
23
23
|
if image.load():
|
|
24
24
|
self._images.append(image)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from mosamatic2.core.data.filedata import FileData
|
|
2
|
+
from mosamatic2.core.utils import (
|
|
3
|
+
is_nifti,
|
|
4
|
+
load_nifti,
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
class NiftiImage(FileData):
|
|
8
|
+
def load(self):
|
|
9
|
+
if self.path():
|
|
10
|
+
if is_nifti(self.path()):
|
|
11
|
+
self.set_object(load_nifti(self.path()))
|
|
12
|
+
return True
|
|
13
|
+
return False
|
|
@@ -4,7 +4,7 @@ import pandas as pd
|
|
|
4
4
|
from mosamatic2.core.tasks.task import Task
|
|
5
5
|
from mosamatic2.core.managers.logmanager import LogManager
|
|
6
6
|
from mosamatic2.core.data.multidicomimage import MultiDicomImage
|
|
7
|
-
from mosamatic2.core.data.numpyimage import
|
|
7
|
+
from mosamatic2.core.data.numpyimage import NumpyImage
|
|
8
8
|
from mosamatic2.core.utils import (
|
|
9
9
|
get_pixels_from_dicom_object,
|
|
10
10
|
calculate_area,
|
|
@@ -74,7 +74,7 @@ class CalculateScoresTask(Task):
|
|
|
74
74
|
|
|
75
75
|
def load_segmentation(self, f, file_type='npy'):
|
|
76
76
|
if file_type == 'npy':
|
|
77
|
-
segmentation =
|
|
77
|
+
segmentation = NumpyImage()
|
|
78
78
|
segmentation.set_path(f)
|
|
79
79
|
if segmentation.load():
|
|
80
80
|
return segmentation.object()
|
|
@@ -2,23 +2,37 @@ import os
|
|
|
2
2
|
import dicom2nifti
|
|
3
3
|
from mosamatic2.core.tasks.task import Task
|
|
4
4
|
from mosamatic2.core.managers.logmanager import LogManager
|
|
5
|
+
from mosamatic2.core.utils import is_dicom
|
|
5
6
|
|
|
6
7
|
LOG = LogManager()
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
class Dicom2NiftiTask(Task):
|
|
10
|
-
INPUTS = ['
|
|
11
|
+
INPUTS = ['scans']
|
|
11
12
|
PARAMS = []
|
|
12
13
|
|
|
13
14
|
def __init__(self, inputs, params, output, overwrite):
|
|
14
15
|
super(Dicom2NiftiTask, self).__init__(inputs, params, output, overwrite)
|
|
15
16
|
|
|
17
|
+
def load_scan_dirs(self):
|
|
18
|
+
scan_dirs = []
|
|
19
|
+
for d in os.listdir(self.input('scans')):
|
|
20
|
+
scan_dir = os.path.join(self.input('scans'), d)
|
|
21
|
+
if os.path.isdir(scan_dir):
|
|
22
|
+
scan_dirs.append(scan_dir)
|
|
23
|
+
return scan_dirs
|
|
24
|
+
|
|
16
25
|
def run(self):
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
os.path.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
scan_dirs = self.load_scan_dirs()
|
|
27
|
+
nr_steps = len(scan_dirs)
|
|
28
|
+
for step in range(nr_steps):
|
|
29
|
+
scan_dir = scan_dirs[step]
|
|
30
|
+
scan_name = os.path.split(scan_dir)[1]
|
|
31
|
+
nifti_file_name = scan_name + '.nii.gz'
|
|
32
|
+
LOG.info(f'Converting DICOM series in {scan_dir} to {nifti_file_name}')
|
|
33
|
+
dicom2nifti.dicom_series_to_nifti(
|
|
34
|
+
scan_dir,
|
|
35
|
+
os.path.join(self.output(), nifti_file_name),
|
|
36
|
+
reorient_nifti=True,
|
|
37
|
+
)
|
|
38
|
+
self.set_progress(step, nr_steps)
|
|
@@ -9,6 +9,7 @@ from mosamatic2.core.tasks.task import Task
|
|
|
9
9
|
from mosamatic2.core.tasks.segmentmusclefatl3tensorflowtask.paramloader import ParamLoader
|
|
10
10
|
from mosamatic2.core.data.multidicomimage import MultiDicomImage
|
|
11
11
|
from mosamatic2.core.data.dicomimage import DicomImage
|
|
12
|
+
from mosamatic2.core.managers.logmanager import LogManager
|
|
12
13
|
from mosamatic2.core.utils import (
|
|
13
14
|
normalize_between,
|
|
14
15
|
get_pixels_from_dicom_object,
|
|
@@ -16,6 +17,8 @@ from mosamatic2.core.utils import (
|
|
|
16
17
|
)
|
|
17
18
|
|
|
18
19
|
DEVICE = 'cpu'
|
|
20
|
+
L3_INDEX = 167
|
|
21
|
+
LOG = LogManager()
|
|
19
22
|
|
|
20
23
|
|
|
21
24
|
class SegmentMuscleFatL3TensorFlowTask(Task):
|
|
@@ -30,7 +30,7 @@ class SelectSliceFromScansTask(Task):
|
|
|
30
30
|
os.makedirs(self._error_dir, exist_ok=True)
|
|
31
31
|
self._error_file = os.path.join(self._error_dir, 'errors.txt')
|
|
32
32
|
with open(self._error_file, 'w') as f:
|
|
33
|
-
f.write('Errors:\n')
|
|
33
|
+
f.write('Errors:\n\n')
|
|
34
34
|
LOG.info(f'Error directory: {self._error_dir}')
|
|
35
35
|
|
|
36
36
|
def write_error(self, message):
|
mosamatic2/core/utils.py
CHANGED
|
@@ -5,6 +5,7 @@ import textwrap
|
|
|
5
5
|
import math
|
|
6
6
|
import pendulum
|
|
7
7
|
import numpy as np
|
|
8
|
+
import nibabel as nb
|
|
8
9
|
import struct
|
|
9
10
|
import binascii
|
|
10
11
|
import pydicom
|
|
@@ -134,6 +135,16 @@ def is_jpeg2000_compressed(p):
|
|
|
134
135
|
return False
|
|
135
136
|
|
|
136
137
|
|
|
138
|
+
def is_nifti(f):
|
|
139
|
+
return f.endswith('.nii') or f.endswith('.nii.gz')
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
def load_nifti(f):
|
|
143
|
+
if is_nifti(f):
|
|
144
|
+
return nb.load(f)
|
|
145
|
+
return None
|
|
146
|
+
|
|
147
|
+
|
|
137
148
|
def is_numpy_array(value):
|
|
138
149
|
return isinstance(value, np.array)
|
|
139
150
|
|
|
@@ -149,8 +160,7 @@ def is_numpy(f):
|
|
|
149
160
|
def load_numpy_array(f):
|
|
150
161
|
if is_numpy(f):
|
|
151
162
|
return np.load(f)
|
|
152
|
-
|
|
153
|
-
return None
|
|
163
|
+
return None
|
|
154
164
|
|
|
155
165
|
|
|
156
166
|
def get_pixels_from_tag_file(tag_file_path):
|
mosamatic2/ui/resources/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.0.
|
|
1
|
+
2.0.12
|
|
@@ -33,8 +33,8 @@ class Dicom2NiftiTaskPanel(TaskPanel):
|
|
|
33
33
|
def __init__(self):
|
|
34
34
|
super(Dicom2NiftiTaskPanel, self).__init__()
|
|
35
35
|
self.set_title(PANEL_TITLE)
|
|
36
|
-
self.
|
|
37
|
-
self.
|
|
36
|
+
self._scans_dir_line_edit = None
|
|
37
|
+
self._scans_dir_select_button = None
|
|
38
38
|
self._output_dir_line_edit = None
|
|
39
39
|
self._output_dir_select_button = None
|
|
40
40
|
self._overwrite_checkbox = None
|
|
@@ -46,16 +46,16 @@ class Dicom2NiftiTaskPanel(TaskPanel):
|
|
|
46
46
|
self._thread = None
|
|
47
47
|
self.init_layout()
|
|
48
48
|
|
|
49
|
-
def
|
|
50
|
-
if not self.
|
|
51
|
-
self.
|
|
52
|
-
return self.
|
|
49
|
+
def scans_dir_line_edit(self):
|
|
50
|
+
if not self._scans_dir_line_edit:
|
|
51
|
+
self._scans_dir_line_edit = QLineEdit(self.settings().get(f'{PANEL_NAME}/scans_dir'))
|
|
52
|
+
return self._scans_dir_line_edit
|
|
53
53
|
|
|
54
|
-
def
|
|
55
|
-
if not self.
|
|
56
|
-
self.
|
|
57
|
-
self.
|
|
58
|
-
return self.
|
|
54
|
+
def scans_dir_select_button(self):
|
|
55
|
+
if not self._scans_dir_select_button:
|
|
56
|
+
self._scans_dir_select_button = QPushButton('Select')
|
|
57
|
+
self._scans_dir_select_button.clicked.connect(self.handle_scans_dir_select_button)
|
|
58
|
+
return self._scans_dir_select_button
|
|
59
59
|
|
|
60
60
|
def output_dir_line_edit(self):
|
|
61
61
|
if not self._output_dir_line_edit:
|
|
@@ -93,13 +93,13 @@ class Dicom2NiftiTaskPanel(TaskPanel):
|
|
|
93
93
|
return self._settings
|
|
94
94
|
|
|
95
95
|
def init_layout(self):
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
scans_dir_layout = QHBoxLayout()
|
|
97
|
+
scans_dir_layout.addWidget(self.scans_dir_line_edit())
|
|
98
|
+
scans_dir_layout.addWidget(self.scans_dir_select_button())
|
|
99
99
|
output_dir_layout = QHBoxLayout()
|
|
100
100
|
output_dir_layout.addWidget(self.output_dir_line_edit())
|
|
101
101
|
output_dir_layout.addWidget(self.output_dir_select_button())
|
|
102
|
-
self.form_layout().addRow('
|
|
102
|
+
self.form_layout().addRow('Scans directory', scans_dir_layout)
|
|
103
103
|
self.form_layout().addRow('Output directory', output_dir_layout)
|
|
104
104
|
self.form_layout().addRow('Overwrite', self.overwrite_checkbox())
|
|
105
105
|
layout = QVBoxLayout()
|
|
@@ -108,11 +108,11 @@ class Dicom2NiftiTaskPanel(TaskPanel):
|
|
|
108
108
|
self.setLayout(layout)
|
|
109
109
|
self.setObjectName(PANEL_NAME)
|
|
110
110
|
|
|
111
|
-
def
|
|
111
|
+
def handle_scans_dir_select_button(self):
|
|
112
112
|
last_directory = self.settings().get('last_directory')
|
|
113
113
|
directory = QFileDialog.getExistingDirectory(dir=last_directory)
|
|
114
114
|
if directory:
|
|
115
|
-
self.
|
|
115
|
+
self.scans_dir_line_edit().setText(directory)
|
|
116
116
|
self.settings().set('last_directory', directory)
|
|
117
117
|
|
|
118
118
|
def handle_output_dir_select_button(self):
|
|
@@ -134,7 +134,7 @@ class Dicom2NiftiTaskPanel(TaskPanel):
|
|
|
134
134
|
self.run_task_button().setEnabled(False)
|
|
135
135
|
self.save_inputs_and_parameters()
|
|
136
136
|
self._task = Dicom2NiftiTask(
|
|
137
|
-
inputs={'
|
|
137
|
+
inputs={'scans': self.scans_dir_line_edit().text()},
|
|
138
138
|
params=None,
|
|
139
139
|
output=self.output_dir_line_edit().text(),
|
|
140
140
|
overwrite=self.overwrite_checkbox().isChecked(),
|
|
@@ -167,10 +167,10 @@ class Dicom2NiftiTaskPanel(TaskPanel):
|
|
|
167
167
|
|
|
168
168
|
def check_inputs_and_parameters(self):
|
|
169
169
|
errors = []
|
|
170
|
-
if self.
|
|
171
|
-
errors.append('Empty
|
|
172
|
-
if not os.path.isdir(self.
|
|
173
|
-
errors.append('
|
|
170
|
+
if self.scans_dir_line_edit().text() == '':
|
|
171
|
+
errors.append('Empty scans directory path')
|
|
172
|
+
if not os.path.isdir(self.scans_dir_line_edit().text()):
|
|
173
|
+
errors.append('Scans directory does not exist')
|
|
174
174
|
if self.output_dir_line_edit().text() == '':
|
|
175
175
|
errors.append('Empty output directory path')
|
|
176
176
|
if os.path.isdir(self.output_dir_line_edit().text()) and not self.overwrite_checkbox().isChecked():
|
|
@@ -178,6 +178,6 @@ class Dicom2NiftiTaskPanel(TaskPanel):
|
|
|
178
178
|
return errors
|
|
179
179
|
|
|
180
180
|
def save_inputs_and_parameters(self):
|
|
181
|
-
self.settings().set(f'{PANEL_NAME}/
|
|
181
|
+
self.settings().set(f'{PANEL_NAME}/scans_dir', self.scans_dir_line_edit().text())
|
|
182
182
|
self.settings().set(f'{PANEL_NAME}/output_dir', self.output_dir_line_edit().text())
|
|
183
183
|
self.settings().set(f'{PANEL_NAME}/overwrite', self.overwrite_checkbox().isChecked())
|
|
@@ -7,7 +7,7 @@ mosamatic2/commands/calculatescores.py,sha256=Lb8Q8L2yq7Tt6VBJ6_lltRuldrev_pac6f
|
|
|
7
7
|
mosamatic2/commands/createdicomsummary.py,sha256=qbVgWGIJPBL8vTBcAxfThloQ_q15OfQy5ohMprzZL4E,1955
|
|
8
8
|
mosamatic2/commands/createpngsfromsegmentations.py,sha256=uUAQJVTqOkBCfENzi21RBNYvf6_nuesx1MeR3j_-7dM,1682
|
|
9
9
|
mosamatic2/commands/defaultpipeline.py,sha256=-kQRSXbEDimAdy_kT1qMxRlZWUoXdu3PkWf70PCIS5Y,1734
|
|
10
|
-
mosamatic2/commands/dicom2nifti.py,sha256=
|
|
10
|
+
mosamatic2/commands/dicom2nifti.py,sha256=t0EYUqNpPs7OCtPk4KMZrppZQdiaGnfh0HJKKnYJ8CY,1084
|
|
11
11
|
mosamatic2/commands/rescaledicomimages.py,sha256=25QdCzB5s0sRwkTb3o5zco2bIwy6LttNf7i97kGBDYQ,1280
|
|
12
12
|
mosamatic2/commands/segmentmusclefatl3tensorflow.py,sha256=CdScmA_EQicaN4GY5bBUOYwfhDPqy9om2sxY3WrtmM0,1424
|
|
13
13
|
mosamatic2/commands/selectslicefromscans.py,sha256=3398PM2uBcxF6wpb0-c-Itp_qxoAxBf0SE2nDDI3Ct4,1715
|
|
@@ -19,8 +19,10 @@ mosamatic2/core/data/dicomimageseries.py,sha256=OZkNi15crL8nEA-PGYsM0k9NMi2mMHRv
|
|
|
19
19
|
mosamatic2/core/data/dixonseries.py,sha256=kq9fy65MSM2XwiScqp7b3rQ09JmpyGwbG6ldZsuPRrM,516
|
|
20
20
|
mosamatic2/core/data/filedata.py,sha256=hCnpizGqOpxzIADJkDS2_NSmKVLL1u49TYjSJE5UXQo,515
|
|
21
21
|
mosamatic2/core/data/multidicomimage.py,sha256=cdd0H4Dq49h7NLKBx51_h_HZVnH7-reu48PY8m6tXwU,1034
|
|
22
|
-
mosamatic2/core/data/
|
|
23
|
-
mosamatic2/core/data/
|
|
22
|
+
mosamatic2/core/data/multiniftiimage.py,sha256=zkHRPzKE-fyP9MtlheJyo_OoqpFXmYMxwguZXP-9bdw,753
|
|
23
|
+
mosamatic2/core/data/multinumpyimage.py,sha256=bISFxDHJ2aFuutCLpwQoiuPkMfVQf_Uc0WslZ4ruJ3o,753
|
|
24
|
+
mosamatic2/core/data/niftiimage.py,sha256=s4WGADwnzlSgHx80isM58J6cHdhKXF2e3zuGvJzew-M,347
|
|
25
|
+
mosamatic2/core/data/numpyimage.py,sha256=bnG6WVGSRxNdzIlb2DNj5u6Gv4BAYscIj2BuyjkDjEc,359
|
|
24
26
|
mosamatic2/core/managers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
27
|
mosamatic2/core/managers/logmanager.py,sha256=NEaXvhl0aILjBbK710GaWanVuuNvB51HpHhE5rgYvng,1391
|
|
26
28
|
mosamatic2/core/managers/logmanagerlistener.py,sha256=Gaig07yjBnyQq9I8sN85olTEeDCDyCFQnEJdwzvmgvc,99
|
|
@@ -33,22 +35,22 @@ mosamatic2/core/pipelines/pipeline.py,sha256=mRxKXLKwgKDpc8R9mCI6gDKGJ2lKVxRQ__S
|
|
|
33
35
|
mosamatic2/core/singleton.py,sha256=FV0k_LlOCmFhlWN6gf1c2x7YXWyd8-7DsIMvOKrI6NY,224
|
|
34
36
|
mosamatic2/core/tasks/__init__.py,sha256=w03AyCk2BQ6gGPBEKhtad6lt9WuwHC-nMztv7wQNwb4,759
|
|
35
37
|
mosamatic2/core/tasks/calculatescorestask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
36
|
-
mosamatic2/core/tasks/calculatescorestask/calculatescorestask.py,sha256=
|
|
38
|
+
mosamatic2/core/tasks/calculatescorestask/calculatescorestask.py,sha256=cwGVedJR_BGSYzXq6ouTgCbSC6s2VtyD8FzRC-QBXUI,6617
|
|
37
39
|
mosamatic2/core/tasks/createdicomsummarytask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
40
|
mosamatic2/core/tasks/createdicomsummarytask/createdicomsummarytask.py,sha256=kcdwIBnoAXexok2j6_tF_s6gwvn2DvjLwe_VhdODpbM,2957
|
|
39
41
|
mosamatic2/core/tasks/createpngsfromsegmentationstask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
42
|
mosamatic2/core/tasks/createpngsfromsegmentationstask/createpngsfromsegmentationstask.py,sha256=1UpOsp1CH668BQ0g4tALou_tFgisC306VcvqOKSDuTo,1884
|
|
41
43
|
mosamatic2/core/tasks/dicom2niftitask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
-
mosamatic2/core/tasks/dicom2niftitask/dicom2niftitask.py,sha256=
|
|
44
|
+
mosamatic2/core/tasks/dicom2niftitask/dicom2niftitask.py,sha256=DC6yNX0RCIJMWcFHkzV51KF8khITYvFQTCsbOr60xGI,1305
|
|
43
45
|
mosamatic2/core/tasks/rescaledicomimagestask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
44
46
|
mosamatic2/core/tasks/rescaledicomimagestask/rescaledicomimagestask.py,sha256=vGSpMJoXFtE-IHGxTEO9DMkerMJcfG5r9tXgtvkxm6Y,3053
|
|
45
47
|
mosamatic2/core/tasks/segmentmusclefatl3tensorflowtask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
48
|
mosamatic2/core/tasks/segmentmusclefatl3tensorflowtask/paramloader.py,sha256=VxTCOYK_1VRAG83P-ulm0LPvqXI-0iT5BCr0Rdr7MWg,900
|
|
47
|
-
mosamatic2/core/tasks/segmentmusclefatl3tensorflowtask/segmentmusclefatl3tensorflowtask.py,sha256=
|
|
49
|
+
mosamatic2/core/tasks/segmentmusclefatl3tensorflowtask/segmentmusclefatl3tensorflowtask.py,sha256=IEE-31eLmq7Y47YL5pT3QUdf9ET8Ju-Z3OxniraZUbA,5245
|
|
48
50
|
mosamatic2/core/tasks/selectslicefromscanstask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
|
-
mosamatic2/core/tasks/selectslicefromscanstask/selectslicefromscanstask.py,sha256=
|
|
51
|
+
mosamatic2/core/tasks/selectslicefromscanstask/selectslicefromscanstask.py,sha256=EIEHhWoGL30rcz8qckFl465rU40P-pIkvhMOfSud7Yw,7253
|
|
50
52
|
mosamatic2/core/tasks/task.py,sha256=APPnid6dpSGkPuDqU1vm2RIMR5vkpvbP1CPHUMjympg,1691
|
|
51
|
-
mosamatic2/core/utils.py,sha256=
|
|
53
|
+
mosamatic2/core/utils.py,sha256=9wY1itpLIEWV8KtwZeD5c4gH4shzOkZEkCA0rSwRI4Q,11897
|
|
52
54
|
mosamatic2/server.py,sha256=-cZ9BPsZUXoINKqwhCHN8c59mlvzzDXzTVxsYt9au70,4644
|
|
53
55
|
mosamatic2/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
56
|
mosamatic2/ui/mainwindow.py,sha256=H1X1pLJjqd2DhxJY0ZU6QkktX28zl0pmtFflmOxrGZA,14048
|
|
@@ -56,7 +58,7 @@ mosamatic2/ui/resources/icons/mosamatic2.icns,sha256=OfhC-diJTIgaNMOezxKKilGsY7m
|
|
|
56
58
|
mosamatic2/ui/resources/icons/mosamatic2.ico,sha256=ySD3RYluHK3pgS0Eas7eKrVk_AskdLQ4qs_IT-wNhq4,12229
|
|
57
59
|
mosamatic2/ui/resources/icons/spinner.gif,sha256=rvaac6GUZauHSPFSOLWr0RmLfjmtZih2Q8knQ2WP3Po,16240
|
|
58
60
|
mosamatic2/ui/resources/images/body-composition.jpg,sha256=KD-BudbXwThB4lJOZZN-ad5-TZRaaZ5cKTH0Ar1TOZs,21227
|
|
59
|
-
mosamatic2/ui/resources/VERSION,sha256=
|
|
61
|
+
mosamatic2/ui/resources/VERSION,sha256=faSzNrbz8BB4kaBpCeyQhoMmfWqpb8tKPPbsfcvfHOA,9
|
|
60
62
|
mosamatic2/ui/settings.py,sha256=YEVHYJIfNsqMO3v1pjzgh7Pih9GGoUX7S9s8S-sBNUk,2121
|
|
61
63
|
mosamatic2/ui/utils.py,sha256=6bbPIrh4RJ_yhQKNZrgPbL4XeUEogjIjbk_e5c3QS5g,853
|
|
62
64
|
mosamatic2/ui/widgets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -76,7 +78,7 @@ mosamatic2/ui/widgets/panels/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQe
|
|
|
76
78
|
mosamatic2/ui/widgets/panels/tasks/calculatescorestaskpanel.py,sha256=NmPLQizj4x9jgf9UA7VZSjARNHYJB_jrfB0kvaVncdw,9387
|
|
77
79
|
mosamatic2/ui/widgets/panels/tasks/createdicomsummarytaskpanel.py,sha256=cRCaEmjjZP6RwEhezj2Axxuv8uAGe7ZzHoU67asoZ5s,7530
|
|
78
80
|
mosamatic2/ui/widgets/panels/tasks/createpngsfromsegmentationstaskpanel.py,sha256=JFnmYjPemRtXPXV2fk2cjB45fseN5BZ8gI_T1zVLGV8,7879
|
|
79
|
-
mosamatic2/ui/widgets/panels/tasks/dicom2niftitaskpanel.py,sha256=
|
|
81
|
+
mosamatic2/ui/widgets/panels/tasks/dicom2niftitaskpanel.py,sha256=6gtaMCZMAbLGv0pOHd4fHBFOluIptFfGOA-vGvrYKGI,7450
|
|
80
82
|
mosamatic2/ui/widgets/panels/tasks/rescaledicomimagestaskpanel.py,sha256=ds7JxynpMeNvqfHKtg1LQR23rb3_Y7xoDLbZ2wl-TMw,7597
|
|
81
83
|
mosamatic2/ui/widgets/panels/tasks/segmentmusclefatl3tensorflowtaskpanel.py,sha256=QCEZs9lqaE-XAJuyyrfZVnFkNRyjMw6Cfa-6qP9WaV8,9630
|
|
82
84
|
mosamatic2/ui/widgets/panels/tasks/selectslicefromscanstaskpanel.py,sha256=meKltgxPReZ9HioSop6jW_2CFm18URBy3LX11U8tbtc,8059
|
|
@@ -89,7 +91,7 @@ mosamatic2/ui/widgets/panels/visualizations/slicevisualization/slicevisualizatio
|
|
|
89
91
|
mosamatic2/ui/widgets/panels/visualizations/visualization.py,sha256=JvqTJi7cCGYK1-wrN2oURdCOBoPS2clVUyYglhkoVJg,178
|
|
90
92
|
mosamatic2/ui/widgets/splashscreen.py,sha256=MS-OczOWfwwEQNQd-JWe9_Mh57css0cSQgbu973rwQo,4056
|
|
91
93
|
mosamatic2/ui/worker.py,sha256=v7e3gq7MUudgpB1BJW-P7j5wurzu6-HG5m7I6WHgJp0,699
|
|
92
|
-
mosamatic2-2.0.
|
|
93
|
-
mosamatic2-2.0.
|
|
94
|
-
mosamatic2-2.0.
|
|
95
|
-
mosamatic2-2.0.
|
|
94
|
+
mosamatic2-2.0.12.dist-info/entry_points.txt,sha256=MCUpKkgbej1clgp8EqlLQGs0BIKwGPcBPiVWLfGz9Gw,126
|
|
95
|
+
mosamatic2-2.0.12.dist-info/METADATA,sha256=VwD0JrQc0gdfEC46CqJlD82m3K6TZ1dxAAERa2k4MsY,1490
|
|
96
|
+
mosamatic2-2.0.12.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
97
|
+
mosamatic2-2.0.12.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|