How difficult would it be to implement the WAVE model in DGL?

This model has an LSTM-like node that goes forward/backward on a BFS of the graph.

https://pubs.acs.org/doi/full/10.1021/acscentsci.7b00405

1 Like

Hi @swamidass,

The neighborhood convolution part looks like a highly standard operation. To deal with different neighborhood depths, we can construct DGLGraph for each depth using dgl.transform. khop_graph.

I am familiar with the Weave model in DeepChem. We are working on a DGL implementation of it using PyTorch for DGL-LifeSci and will release it soon.

I’m less familiar with the WAVE architecture, which seems to update atom representations following the BFS traversal back and forth. For this purpose, I guess dgl.propagate.prop_nodes_bfs can be used. You may also want to check our tutorial on Tree-LSTM which updates node representations based on some particular graph traversal order.

1 Like

Thanks. That is helpful. I didn’t know about this:

Are you open to adding people to that team before publication? DL applied to chemistry is the focus area of my group, and I’d really like to see WAVE implemented both for chemistry and other graphs in a library. DGL seems like it could be a good home for it.

DGL is an open source software and we are always happy to have contributions from the community. I’m not sure if we will have a publication on this and how soon it will be, but we can definitely maintain a page for contribution acknowledgement and we’d be glad to have WAVE implemented in DGL and DGL-LifeSci so that others can use it. If you need some help/dicussion on the implementation part, you can reach me at mufeili1996@gmail.com.

Just emailed you and a couple of my students. It would be great if someone with experience would DGL would be willing to work with us on this. Thanks.