Skip to content

GlmpcaError: Numerical divergence (deviance no longer finite), try increasing the penalty to improve stability of optimization. #7

@Li-ZhiD

Description

@Li-ZhiD

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!

/mnt/data1/robot/software/miniconda3/envs/paste2/lib/python3.9/site-packages/statsmodels/genmod/families/links.py:527: RuntimeWarning: overflow encountered in exp
  return np.exp(z)
/mnt/data1/robot/software/miniconda3/envs/paste2/lib/python3.9/site-packages/paste2/glmpca.py:393: RuntimeWarning: invalid value encountered in divide
  U[:, k] += grads / infos
/mnt/data1/robot/software/miniconda3/envs/paste2/lib/python3.9/site-packages/statsmodels/genmod/families/family.py:445: RuntimeWarning: invalid value encountered in divide
  endog_mu = self._clean(endog / mu)

---------------------------------------------------------------------------
GlmpcaError                               Traceback (most recent call last)
Cell In[27], 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:82, in glmpca_distance(X, Y, latent_dim, filter, verbose)
     79     joint_matrix = joint_matrix[:, top_indices]
     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, fam='nb', penalty=1, verbose=True)
     84 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions