@@ -94,7 +94,7 @@ def parfun(i):
9494
9595 output = Parallel (n_jobs = njobs )(delayed (parfun )(i ) for i in tqdm (range (len (dw_data )), position = 0 , leave = True ))
9696 Dt , Fp , Dp = np .transpose (output )
97- except :
97+ except Exception :
9898 # if fails, retry using single core
9999 single = True
100100 else :
@@ -147,7 +147,7 @@ def fit_segmented(bvalues, dw_data, bounds=([0, 0, 0.005],[0.005, 0.7, 0.2]), cu
147147 params , _ = curve_fit (lambda b , Dp : Fp * np .exp (- b * Dp ), bvalues , dw_data_remaining , p0 = (p0 [2 ]), bounds = bounds2 )
148148 Dp = params [0 ]
149149 return Dt , Fp , Dp
150- except :
150+ except ( RuntimeError , ValueError , FloatingPointError ) :
151151 # if fit fails, return zeros
152152 # print('segmented fit failed')
153153 return 0. , 0. , 0.
@@ -183,7 +183,7 @@ def parfun(i):
183183
184184 output = Parallel (n_jobs = njobs )(delayed (parfun )(i ) for i in tqdm (range (len (dw_data )), position = 0 , leave = True ))
185185 Dt , Fp , Dp , S0 = np .transpose (output )
186- except :
186+ except Exception :
187187 single = True
188188 else :
189189 single = True
@@ -207,7 +207,7 @@ def parfun(i):
207207
208208 output = Parallel (n_jobs = njobs )(delayed (parfun )(i ) for i in tqdm (range (len (dw_data )), position = 0 , leave = True ))
209209 Dt , Fp , Dp = np .transpose (output )
210- except :
210+ except Exception :
211211 single = True
212212 else :
213213 single = True
@@ -257,7 +257,7 @@ def fit_least_squares(bvalues, dw_data, S0_output=False, fitS0=True,
257257 return order (Dt , Fp , Dp , S0 )
258258 else :
259259 return order (Dt , Fp , Dp )
260- except :
260+ except ( RuntimeError , ValueError , FloatingPointError ) :
261261 # if fit fails, then do a segmented fit instead
262262 # print('lsq fit failed, trying segmented')
263263 if S0_output :
@@ -297,7 +297,7 @@ def parfun(i):
297297
298298 output = Parallel (n_jobs = njobs )(delayed (parfun )(i ) for i in tqdm (range (len (dw_data )), position = 0 , leave = True ))
299299 Fp0 , Dt , Fp1 , Dp1 , Fp2 , Dp2 = np .transpose (output )
300- except :
300+ except Exception :
301301 single = True
302302 else :
303303 single = True
@@ -357,7 +357,7 @@ def fit_least_squares_tri_exp(bvalues, dw_data, S0_output=False, fitS0=True,
357357 return Fp0 , Dt , Fp1 , Dp1 , Fp2 , Dp2
358358 else :
359359 return Dt , Fp1 , Dp1 , Fp2 , Dp2
360- except :
360+ except ( RuntimeError , ValueError , FloatingPointError ) :
361361 # if fit fails, then do a segmented fit instead
362362 # print('lsq fit failed, trying segmented')
363363 if S0_output :
@@ -396,7 +396,7 @@ def parfun(i):
396396
397397 output = Parallel (n_jobs = njobs )(delayed (parfun )(i ) for i in tqdm (range (len (dw_data )), position = 0 , leave = True ))
398398 Dt , Fp , Dp , Fp0 , Fp2 , Dp2 = np .transpose (output )
399- except :
399+ except Exception :
400400 # if fails, retry using single core
401401 single = True
402402 else :
@@ -463,7 +463,7 @@ def fit_segmented_tri_exp(bvalues, dw_data, bounds=([0, 0, 0, 0.005, 0, 0.06], [
463463 params , _ = curve_fit (lambda b , Dp : Fp2 * np .exp (- b * Dp ), bvalueslow , dw_data , p0 = (0.1 ), bounds = bounds1 )
464464 Dp2 = params [0 ]
465465 return Fp0 , Dt , Fp , Dp , Fp2 , Dp2
466- except :
466+ except ( RuntimeError , ValueError , FloatingPointError , TypeError ) :
467467 # if fit fails, return zeros
468468 # print('segnetned fit failed')
469469 return 0. , 0. , 0. , 0. , 0. , 0.
@@ -619,7 +619,7 @@ def parfun(i):
619619 output = Parallel (n_jobs = arg .jobs )(delayed (parfun )(i ) for i in tqdm (range (len (dw_data )), position = 0 ,
620620 leave = True ))
621621 Dt_pred , Fp_pred , Dp_pred , S0_pred = np .transpose (output )
622- except :
622+ except Exception :
623623 single = True
624624 else :
625625 single = True
@@ -665,14 +665,14 @@ def fit_bayesian(bvalues, dw_data, neg_log_prior, x0=[0.001, 0.2, 0.05, 1], fitS
665665 else :
666666 params = minimize (neg_log_posterior , x0 = x0 [:3 ], args = (bvalues , dw_data , neg_log_prior ), bounds = bounds [:3 ])
667667 if not params .success :
668- raise (params .message )
668+ raise RuntimeError (params .message )
669669 if fitS0 :
670670 Dt , Fp , Dp , S0 = params .x [0 ], params .x [1 ], params .x [2 ], params .x [3 ]
671671 else :
672672 Dt , Fp , Dp = params .x [0 ], params .x [1 ], params .x [2 ]
673673 S0 = 1
674674 return order (Dt , Fp , Dp , S0 )
675- except :
675+ except ( RuntimeError , ValueError , TypeError ) :
676676 # if fit fails, return regular lsq-fit result
677677 # print('a bayes fit fialed')
678678 return fit_least_squares (bvalues , dw_data , S0_output = True )
@@ -717,7 +717,7 @@ def goodness_of_fit(bvalues, Dt, Fp, Dp, S0, dw_data, Fp2=None, Dp2=None):
717717 adjusted_R2 = 1 - ((1 - R2 ) * (len (bvalues )) / (len (bvalues ) - 6 - 1 ))
718718 R2 [R2 < 0 ] = 0
719719 adjusted_R2 [adjusted_R2 < 0 ] = 0
720- except :
720+ except ( IndexError , ValueError , TypeError ) :
721721 if Fp2 is None :
722722 datasim = ivim (bvalues , Dt , Fp , Dp , S0 )
723723 else :
0 commit comments