While I did not find the CSD definition of a "metal" in the MOF subset paper [1], the MOF subset contains several structures with metalloids like Antimony (e.g. AXUVUL) and Germanium (e.g. DIPROL ), for which the mofchecker complains that the structure does not contain metals.
@property
def is_metalloid(self) -> bool:
"""
True if element is a metalloid.
"""
return self.symbol in ("B", "Si", "Ge", "As", "Sb", "Te", "Po")
which is likely too broad - e.g. frameworks with boron centers are typically considered COFs (e.g. BP-COF-4).
While the definition of what is a metal is rather clear-cut for an elemental crystal (vanishing electronic band gap - to include semimetals), I'm not sure whether transferring this criterion to individual metal atoms in MOFs is very meaningful (strictly speaking, one might then also include carbon as the element in the graphene semi-metal ;-) ).
Perhaps a more appropriate criterion would look at the bond strength or other characteristics of the bonds (to distinguish from COFs).
Perhaps a practical fix for the moment would be to also include is_metalloid but print a warning.
Since the mofchecker currently excepts if there is no metal in the structure, it might be better to be a bit more lenient (unless any of the other checks would break down for these elements)
[1] They write
[ ...] the restriction to transition metals is limiting and excludes all other metals that are effectively synthesized in some MOF structures. These metals are alkalis, rare earths and metalloids, among others.
but I could not find which elements they do consider to be metals.
While I did not find the CSD definition of a "metal" in the MOF subset paper [1], the MOF subset contains several structures with metalloids like Antimony (e.g. AXUVUL) and Germanium (e.g. DIPROL ), for which the mofchecker complains that the structure does not contain metals.
The
is_metalloid
property of pymatgen includeswhich is likely too broad - e.g. frameworks with boron centers are typically considered COFs (e.g. BP-COF-4).
While the definition of what is a metal is rather clear-cut for an elemental crystal (vanishing electronic band gap - to include semimetals), I'm not sure whether transferring this criterion to individual metal atoms in MOFs is very meaningful (strictly speaking, one might then also include carbon as the element in the graphene semi-metal ;-) ). Perhaps a more appropriate criterion would look at the bond strength or other characteristics of the bonds (to distinguish from COFs).
Perhaps a practical fix for the moment would be to also include
is_metalloid
but print a warning. Since the mofchecker currently excepts if there is no metal in the structure, it might be better to be a bit more lenient (unless any of the other checks would break down for these elements)[1] They write
but I could not find which elements they do consider to be metals.