How to use "has_icsd_exptl_id" property in pymatgen query function?

Hello all,

I just realized that Materials Project has updated the query at website to include matching for experimentally confirmed structures, by using the property has_icsd_exptl_id. However, I cant find a way to use this property to query using MPRester query in python. If I try, for example, mp.query({“has_icsd_exptl_id”: True"}, [“pretty_formula”]), the results are blank.

Is there anyway to use MPAPI with has_icsd_exptl_id, as I am looking for only experimentally matched structures?

Thanks.

1 Like

There is no such field. What we added was a theoretical flag that is False when we have confidence the structure comes from an experimental source. We use that plus having a list of ICSD IDs to filter for experimental ICSD compounds. We’re building up a few more experimental data sets so this will likely change in the future.

@pbcst where did you find the “has_icsd_exptl_id” key?

Hi, I am curious if there is a way to use this ‘theoretical’ flag in pymatgen ?

Yes, absolutely. You can use the MPRester.query() method and ask for the theoretical property. This is not documented yet so is considered subject to change, so use at your own risk: the data itself should be reliable, it is the interface to that data that might change.

Note that this is a three-valued flag: it can return False, True or None, where False means it is an experimentally-known structure, True means it is not, and None means we don’t have enough information at this point (in this case, you can assume it’s likely theoretical).

1 Like

Has this changed? I’m not seeing it in the mapidoc. I’m guessing maybe it’s still just undocumented? (How is the 'theoretical' tag determined? - #4 by shyamd) I do see exp, but it’s not clear if this would be used. Asking here mostly because this pops up via Google search.

Thanks @sgbaird. We’re very close to officially announcing our new API, see api.materialsproject.org and Materials Project - API for details.

This is slightly better documented (all fields are present and typed), including theoretical. I believe the current flag is now a boolean and just True or False. @munrojm can confirm.

Once we’ve officially announced, we will archive the mapidoc repo and point it towards our new API documentation.

Let me know if you need any further info.

Best,

Matt

2 Likes