MolecularDiffusion.modules.models.diffpharma.distributions¶
2D (n_ligand x n_pocket) size prior for DiffPharma.
Port of DistributionNodes from
others/DiffPharma/equivariant_diffusion/conditional_model.py.
One deliberate deviation: upstream sample(n) returns a pair
(n_lig, n_pocket), which does not satisfy the platform’s
node_dist_model.sample(n) -> LongTensor of atom counts contract. Here
sample returns only the ligand component (i.e. the marginal over pocket
size) and the joint draw is available as sample_joint(). Generation
uses sample_conditional(), which is what DiffPharma itself calls.
Classes¶
Module Contents¶
- class MolecularDiffusion.modules.models.diffpharma.distributions.DistributionNodes(histogram)¶
- log_prob(batch_n_nodes_1, batch_n_nodes_2)¶
- log_prob_n1_given_n2(n1, n2)¶
- log_prob_n2_given_n1(n2, n1)¶
- sample(n_samples=1)¶
Ligand sizes only (pocket size marginalised out).
- sample_conditional(n1=None, n2=None)¶
- sample_joint(n_samples=1)¶
- idx_to_n_nodes¶
- m¶
- n1_given_n2¶
- n2_given_n1¶
- property n_node_dist¶
{n_ligand_atoms: count}– the ligand-size marginal.
- n_nodes_to_idx¶
- prob¶