Skip to content

Commit 8d1a418

Browse files
changes made as requested
1 parent eea774c commit 8d1a418

File tree

5 files changed

+7
-14
lines changed

5 files changed

+7
-14
lines changed

src/standardized/ETP_SRI_LinearFitting.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ def ivim_fit(self, signals, bvalues=None, linear_fit_option=False, **kwargs):
5757
Returns:
5858
_type_: _description_
5959
"""
60+
signals[signals<0.0000001]=0.0000001
6061
if bvalues is None:
6162
bvalues = self.bvalues
6263

src/standardized/OJ_GU_seg.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def ivim_fit(self, signals, bvalues=None):
6161
bthr = 200
6262
else:
6363
bthr = self.thresholds[0]
64-
64+
signals[signals<0.00001]=0.00001
6565
fit_results = seg(signals, bvalues, bthr)
6666

6767
f = fit_results['f']

src/standardized/PvH_KB_NKI_IVIMfit.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ def ivim_fit(self, signals, bvalues=None):
5252
#bvalues = np.array(bvalues)
5353
bvalues = bvalues.tolist() #NKI code expects a list instead of nparray
5454
# reshape signal as the NKI code expects a 4D array
55+
signals[signals<0.00001]=0.00001
5556
signals = np.reshape(signals, (1, 1, 1, len(signals))) # assuming that in this test the signals are always single voxel
5657
fit_results = self.NKI_algorithm(signals,bvalues)
5758

tests/IVIMmodels/unit_tests/algorithms.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,13 @@
6262
"dynamic_rtol": {
6363
"offset": 0.001,
6464
"noise": 200,
65-
"scale_f": false,
6665
"f": 2,
6766
"D": 1,
6867
"Dp": 3
6968
},
7069
"dynamic_atol": {
7170
"offset": 5e-2,
7271
"noise": 10,
73-
"scale_f": false,
7472
"f": 1,
7573
"D": 0.001,
7674
"Dp": 2

tests/IVIMmodels/unit_tests/test_ivim_fit.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -114,29 +114,22 @@
114114

115115
def signal_helper(signal):
116116
signal = np.asarray(signal)
117-
signal = np.abs(signal) #Oliver: do we need this for unit testing? It will bias the fits by forcing positive signals.
117+
#signal[signal < 0] = 0.00001
118118
signal /= signal[0] # this scales noise differenly. I have now made sure signal is produced with amplitude 1 if right flags are selected. Then SNR is fixed. Then, this sentence may be redundant
119-
#ratio = 1 / signal[0] #this is 1 per definition (See sentence above)
120119
return signal
121120

122121
def tolerances_helper(tolerances, data):
123-
epsilon = 0.0001
122+
epsilon = 0.001
124123
if "dynamic_rtol" in tolerances:
125124
dyn_rtol = tolerances["dynamic_rtol"]
126125
scale = dyn_rtol["offset"] + dyn_rtol["noise"]*data["noise"]
127-
if dyn_rtol["scale_f"]:
128-
tolerances["rtol"] = {"f": scale*dyn_rtol["f"], "D": scale*dyn_rtol["D"]/(1-data['f']+epsilon), "Dp": scale*dyn_rtol["Dp"]/(data['f']+epsilon)}
129-
else:
130-
tolerances["rtol"] = {"f": scale * dyn_rtol["f"], "D": scale * dyn_rtol["D"]/0.9,"Dp": scale * dyn_rtol["Dp"]/0.1}
126+
tolerances["rtol"] = {"f": scale*dyn_rtol["f"], "D": scale*dyn_rtol["D"]/(1-data['f']+epsilon), "Dp": scale*dyn_rtol["Dp"]/(data['f']+epsilon)}
131127
else:
132128
tolerances["rtol"] = tolerances.get("rtol", {"f": 0.1, "D": 0.1, "Dp": 0.3})
133129
if "dynamic_atol" in tolerances:
134130
dyn_atol = tolerances["dynamic_atol"]
135131
scale = dyn_atol["offset"] + dyn_atol["noise"]*data["noise"]
136-
if dyn_atol["scale_f"]:
137-
tolerances["atol"] = {"f": scale*dyn_atol["f"], "D": scale*dyn_atol["D"]/(1-data['f']+epsilon), "Dp": scale*dyn_atol["Dp"]/(data['f']+epsilon)}
138-
else:
139-
tolerances["atol"] = {"f": scale*dyn_atol["f"], "D": scale*dyn_atol["D"]/0.9, "Dp": scale*dyn_atol["Dp"]/0.1}
132+
tolerances["atol"] = {"f": scale*dyn_atol["f"], "D": scale*dyn_atol["D"]/(1-data['f']+epsilon), "Dp": scale*dyn_atol["Dp"]/(data['f']+epsilon)}
140133
else:
141134
tolerances["atol"] = tolerances.get("atol", {"f": 2e-1, "D": 5e-4, "Dp": 4e-2})
142135
return tolerances

0 commit comments

Comments
 (0)