Hi everyone,

I was wondering if it would be possible to provide some more examples of how to run a nested mixed membership SBM with edge weights. The new version seems to have removed the "overlap=True" option for state_args in the minimize_* functions.

Is this the correct way to do it now?

import graph_tool as gta
import numpy as np
g = .... # build graph
e_score = .... #Set edge weights
state_args = dict(
    deg_corr=deg_corr,
    base_type=gta.inference.overlap_blockmodel.OverlapBlockState, 
    B=2*g.num_edges(), #B_max
    deg_corr=True,
    recs=[e_score], 
    rec_types=["real-normal"])
state = gta.inference.minimize_nested_blockmodel_dl(
    g, 
    state_args=state_args, 
    multilevel_mcmc_args=dict(verbose=True))
# improve solution with merge-split
state = state.copy(bs=state.get_bs() + [np.zeros(1)] * 4, sampling=True)
for i in range(100):
    if i%10==0: print(".", end="")
    ret = state.multiflip_mcmc_sweep(niter=10, beta=np.inf, verbose=True)

I am currently running this for a fully connected bipartite graph with 3454 nodes and 55008 edges. I understand it would take longer than the non-overlapping version, but do you have any suggestions on how to speed it up? The non-overlapping version takes about 15 minutes, while the overlapping version is still running after 1 day.

Thanks for your help,
Eli
--
PhD Candidate, Phil Bourne's lab
University of Virginia