Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

possible to apply for per-atom descriptors? #24

Open
thangckt opened this issue Feb 10, 2023 · 3 comments
Open

possible to apply for per-atom descriptors? #24

thangckt opened this issue Feb 10, 2023 · 3 comments
Labels
enhancement New feature or request

Comments

@thangckt
Copy link

Dear Developers.

Do you plan to update MLCVS that can allow to apply for per-atoms descriptors?
I mean the descriptors are computed as per-atom vectors than a global vector for a whole system

Thank you so much

@EnricoTrizio
Copy link
Collaborator

Hey Thang,

Right now we are working on a general reorganization of the library structure to make it both easier to use and to develop, so we are quite busy with that.
We have some projects in that sense but they will still require some time.

What did you have in mind? Something like Behler-Parrinello symmetry functions or stuff like that or something closer to graph neural networks?

@thangckt
Copy link
Author

thangckt commented Feb 16, 2023

Dear @EnricoTrizio

I don't know Behler-Parrinello symmetry functions
I just think about the case MLCVS can be applied to compute a per-atom quantity (may be close to the concept of MULTICOLVAR in PLUMED.

Since you already have a PyTorch interface for PLUMED, this new feature will have a huge benefit, for example, it can mitigate other attempts to build a multicolvar, since we can define any arbitrary function as a pytorch model (not necessary an ML model), then just use it in Plumed in Inference mode.

For example: use mlcvs model to differentiate an atom is in FCC, BCC, or HCP structures. In this case, we define peratom desciptors and apply mlcvs model for each atom in the system.

Is it possible?

@luigibonati luigibonati added the enhancement New feature or request label Feb 17, 2023
@EnricoTrizio
Copy link
Collaborator

Ciao @thangckt,
I'm so sorry. I lost track of your issue along the way. Please forgive me.
Luckily, at that time, I would have been of little help, I think 😅

The good news is that, in the meantime, we have been working on extending the transform module of the library (see #124), which is meant to provide preprocessing tools meant to operate directly on the atomic positions.
For example, we have already implemented the computation of several descriptors there.
I don't know if it directly solves your problem, but it can be a good starting point.

In principle, as the transforms are torch.nn.Modules, you could also use them as a standalone tool (i.e., without any NN model attached) to implement your own multicolvar-like functions, script them and import them in PLUMED.

Hope it helps!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants