awslabs / dgl-lifesci

Python package for graph neural networks in chemistry and biology
Apache License 2.0
714 stars 147 forks source link

WeaveEdgeFeaturizer bug (number of edges) #191

Closed nbrosse closed 2 years ago

nbrosse commented 2 years ago

WeaveEdgeFeaturizer does not work for some smiles

https://github.com/awslabs/dgl-lifesci/blob/91ef785bb5659108ade5d71ca88e0e89de16963a/python/dgllife/utils/featurizers.py#L1881

from dgllife.utils import WeaveAtomFeaturizer, WeaveEdgeFeaturizer, smiles_to_bigraph

edge_featurizer = WeaveEdgeFeaturizer()
atom_featurizer = WeaveAtomFeaturizer()

graph1 = smiles_to_bigraph("CO", edge_featurizer=edge_featurizer, node_featurizer=atom_featurizer, add_self_loop=True)

OK

from dgllife.utils import WeaveAtomFeaturizer, WeaveEdgeFeaturizer, smiles_to_bigraph

edge_featurizer = WeaveEdgeFeaturizer()
atom_featurizer = WeaveAtomFeaturizer()

graph2 = smiles_to_bigraph("CCO", edge_featurizer=edge_featurizer, node_featurizer=atom_featurizer, add_self_loop=True)

Error dgl._ffi.base.DGLError: Expect number of features to match number of edges. Got 9 and 7 instead.

mufeili commented 2 years ago

WeaveEdgeFeaturizer does not work for bidirected molecular graphs. According to the doc, "This featurization is performed for a complete graph of atoms with self loops added".

nbrosse commented 2 years ago

Thank you, I am sorry I should have better read the documentation !

mufeili commented 2 years ago

No worries :)