Open Li-ZhiD opened 3 months ago
After setting penalty=2, warning and error are raised:
[/mnt/data1/robot/software/miniconda3/envs/paste2/lib/python3.9/site-packages/statsmodels/genmod/families/links.py:527](http://192.168.1.111:8899/mnt/data1/robot/software/miniconda3/envs/paste2/lib/python3.9/site-packages/statsmodels/genmod/families/links.py#line=526): RuntimeWarning: overflow encountered in exp
return np.exp(z)
[/mnt/data1/robot/software/miniconda3/envs/paste2/lib/python3.9/site-packages/paste2/glmpca.py:388](http://192.168.1.111:8899/mnt/data1/robot/software/miniconda3/envs/paste2/lib/python3.9/site-packages/paste2/glmpca.py#line=387): RuntimeWarning: invalid value encountered in divide
V[:, k] += grads [/](http://192.168.1.111:8899/) infos
---------------------------------------------------------------------------
GlmpcaError Traceback (most recent call last)
Cell In[16], line 1
----> 1 pi_AB = PASTE2.partial_pairwise_align(adata_st_lst[0], adata_st_lst[1], s=0.7)
File /mnt/data1/robot/software/miniconda3/envs/paste2/lib/python3.9/site-packages/paste2/PASTE2.py:260, in partial_pairwise_align(sliceA, sliceB, s, alpha, armijo, dissimilarity, use_rep, G_init, a_distribution, b_distribution, norm, return_obj, verbose)
258 M = pca_distance(sliceA, sliceB, 2000, 20)
259 elif dissimilarity.lower() == 'glmpca':
--> 260 M = glmpca_distance(A_X, B_X, latent_dim=50, filter=True, verbose=verbose)
261 else:
262 print("ERROR")
File /mnt/data1/robot/software/miniconda3/envs/paste2/lib/python3.9/site-packages/paste2/helper.py:83, in glmpca_distance(X, Y, latent_dim, filter, verbose)
81 print("Starting GLM-PCA...")
82 #res = glmpca(joint_matrix.T, latent_dim, penalty=1, verbose=verbose)
---> 83 res = glmpca(joint_matrix.T, latent_dim, penalty=2, verbose=verbose)
84 #res = glmpca(joint_matrix.T, latent_dim, fam='nb', penalty=1, verbose=True)
85 reduced_joint_matrix = res["factors"]
File /mnt/data1/robot/software/miniconda3/envs/paste2/lib/python3.9/site-packages/paste2/glmpca.py:374, in glmpca(Y, L, fam, ctl, penalty, verbose, init, nb_theta, X, Z, sz)
372 dev[t] = gf.dev_func(Y, rfunc(U, V))
373 if not np.isfinite(dev[t]):
--> 374 raise GlmpcaError(
375 "Numerical divergence (deviance no longer finite), try increasing the penalty to improve stability of optimization.")
376 if t > 4 and np.abs(dev[t] - dev[t - 1]) / (0.1 + np.abs(dev[t - 1])) < ctl["eps"]:
377 break
GlmpcaError: Numerical divergence (deviance no longer finite), try increasing the penalty to improve stability of optimization.
By using dissimilarity='pca'.
/mnt/data1/robot/software/miniconda3/envs/paste2/lib/python3.9/site-packages/ot/lp/__init__.py:361: UserWarning: numItermax reached before optimality. Try to increase numItermax.
result_code_string = check_result(result_code)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[12], line 1
----> 1 pi_AB = PASTE2.partial_pairwise_align(
2 adata_st_lst[0],
3 adata_st_lst[1],
4 s=0.7,
5 dissimilarity='pca'
6 )
File /mnt/data1/robot/software/miniconda3/envs/paste2/lib/python3.9/site-packages/paste2/PASTE2.py:292, in partial_pairwise_align(sliceA, sliceB, s, alpha, armijo, dissimilarity, use_rep, G_init, a_distribution, b_distribution, norm, return_obj, verbose)
288 D_B *= M.max()
289 """
290 Code for normalizing distance matrix ends
291 """
--> 292 pi, log = partial_fused_gromov_wasserstein(M, D_A, D_B, a, b, alpha=alpha, m=m, G0=G_init, loss_fun='square_loss', armijo=armijo, log=True, verbose=verbose)
294 if return_obj:
295 return pi, log['partial_fgw_cost']
File /mnt/data1/robot/software/miniconda3/envs/paste2/lib/python3.9/site-packages/paste2/PASTE2.py:142, in partial_fused_gromov_wasserstein(M, C1, C2, p, q, alpha, m, G0, loss_fun, armijo, log, verbose, numItermax, tol, stopThr, stopThr2)
140 Gc, logemd = ot.lp.emd(p_extended, q_extended, gradF_emd, numItermax=1000000, log=True)
141 if logemd['warning'] is not None:
--> 142 raise ValueError("Error in the EMD resolution: try to increase the"
143 " number of dummy points")
145 G0 = Gc[:len(p), :len(q)]
147 if cpt % 10 == 0: # to speed up the computations
ValueError: Error in the EMD resolution: try to increase the number of dummy points
Hi,
I am interested in this tool for constructing 3D model of Stere-seq datasets. An error is raised when I run partial_pairwise_align. I'm not quite sure if the data is too large.
Thank you!