Skip to content

Commit ac5b9ce

Browse files
committed
Fix claic bug
1 parent 60a0a3d commit ac5b9ce

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

gadma/engines/dadi_moments_common.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -276,10 +276,20 @@ def get_claic_component(self, x0, all_boots, grid_sizes, eps):
276276
p0 = x0[is_not_discrete].astype(float)
277277
else:
278278
p0 = x0.astype(float)
279-
if self.multinom: # Remove last value for _Nanc_size
280-
p0 = p0[:-1]
281-
x0 = x0[:-1]
282-
is_not_discrete = is_not_discrete[:-1]
279+
280+
if (self.multinom and hasattr(self.model, "Nanc_size")
281+
and self.model.Nanc_size in var2val):
282+
# Remove value for _Nanc_size as it is just 1
283+
new_x0, new_is_not_discrete = [], []
284+
for i, var in enumerate(var2val):
285+
if var.name != self.model.Nanc_size.name:
286+
new_x0.append(x0[i])
287+
new_is_not_discrete.append(is_not_discrete[i])
288+
x0, is_not_discrete = new_x0, new_is_not_discrete
289+
x0 = np.array(x0, dtype=object)
290+
is_not_discrete = np.array(is_not_discrete)
291+
if len(x0) > 0:
292+
p0 = x0[is_not_discrete].astype(float)
283293

284294
@wraps(self.simulate)
285295
def simul_func(x):

0 commit comments

Comments
 (0)