Specifying number of blocks in a bipartite SBM

Hi Tiago,

Is it possible to specify the number of blocks for both types of nodes when
estimating a bipartite SBM? I know that if I specify

model.minimize_nested_blockmodel_dl(B_min=G, B_max=G, state_args =
{'clabel': model.vp['node_type'], 'pclabel': model.vp['node_type']})

then I will end up with a partition with G blocks. But what I want is a
partition in which the type 1 nodes are divided into G1 blocks and the type
2 nodes into G2 blocks, where I specify G1 and G2.

Thank you,
Jamie

Hi Jamie,

Just to chime in with an alternative. I wrote a program that is capable to
specify the (G1, G2) blocks in a bipartite network, using a flat prior
detailed in a paper. When I started to do the research, graph-tool did not
allow such customization.

Code: https://github.com/junipertcy/bipartiteSBM
Related doc:
https://docs.netscied.tw/bipartiteSBM/usage/explore-consistency.html

The flat prior was meant to be comparable with graph-tool's
`minimize_blockmodel_dl`. If you want a hierarchical partition, you can feed
the resulting partition from the `bipartiteSBM` program to the
`minimize_nested_blockmodel_dl` function, by setting `b_min` and `b_max`
simultaneously it. Graph-tool should build a hierarchy atop.

In the meantime, I am curious to know if Tiago has added the function in
graph-tool, too!

Sincerely,
Tzu-Chi

This is currently not yet implemented.