kjappelbaum / mofdscribe

An ecosystem for digital reticular chemistry
https://mofdscribe.readthedocs.io/en/latest/
MIT License
43 stars 7 forks source link

Using RF code, or other non-CIF input, to calculate surface area #447

Closed KP-303 closed 1 year ago

KP-303 commented 1 year ago

Is it possible to calculate gravimetric surface area (surface area to mass ratio) from some input other than a CIF? For example, the RF code from supramolecular VAE, or from a list of metal centres, linkers and the topology?

I've read the documentation but may have missed this in which case I apologise.

Thanks.

kjappelbaum commented 1 year ago

Hi 👋🏽 ,

you'll need the structure's geometry to compute the surface area or any related property. That is, you'd need to assemble your MOF based on the nodes, linkers in a given net and then relax the structure.

For all featurizers in this library, a crystal structure is the expected input.

However, I'm open to adding an interface to MOF-assembly tools and simple geometry optimization with LAMMPS

KP-303 commented 1 year ago

OK thanks. So the only way is to use a .cif file? What about a .mol file or .xyz?

kjappelbaum commented 1 year ago

You need to have a pymatgen.core.Structure object (https://pymatgen.org/pymatgen.core.structure.html#pymatgen.core.structure.Structure).

This is defined by the unit cell and the basis. That is, the cell vectors and the positions of the atoms in this cell.

You can, in theory, also add a box around a molecule. But this doesn't make sense for many descriptors.

KP-303 commented 1 year ago

Thanks!

kjappelbaum commented 1 year ago

Is there anything else I can help you with? Otherwise, I'd close this issue :)

KP-303 commented 1 year ago

That's fine thanks, sorry, I thought I'd replied a while ago.