nomad-FAIR issueshttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues2022-10-04T09:49:23Zhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1090Materials search2022-10-04T09:49:23ZLauri HimanenMaterials searchWe should create and test a search context for materials search. The material entries would still forward the user to the Encyclopedia. Whether we enable this in production is open for discussion.We should create and test a search context for materials search. The material entries would still forward the user to the Encyclopedia. Whether we enable this in production is open for discussion.https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/923Encyclopedia 2D and 1D visualization improvement2022-07-18T05:48:35ZLauri HimanenEncyclopedia 2D and 1D visualization improvementSome of the 2D and 1D structures are not visualized correctly due to the periodic dimensions not being the same always. The viewer setup in the encyclopedia-gui submodule should be updated to fix this.Some of the 2D and 1D structures are not visualized correctly due to the periodic dimensions not being the same always. The viewer setup in the encyclopedia-gui submodule should be updated to fix this.Lauri HimanenLauri Himanenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/917Encyclopedia GUI update2022-06-22T07:06:35ZLauri HimanenEncyclopedia GUI update- [x] Encyclopedia GUI is missing the band gap search field
- [x] Loading the BZ is causing problems due to missing k points
- [x] Structure visualization is not configured correctly for the used `materia`-version.- [x] Encyclopedia GUI is missing the band gap search field
- [x] Loading the BZ is causing problems due to missing k points
- [x] Structure visualization is not configured correctly for the used `materia`-version.Lauri HimanenLauri Himanenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/750Encyclopedia GUI is not authenticating with the API (even if the user is logg...2022-06-17T05:43:12ZMarkus ScheidgenEncyclopedia GUI is not authenticating with the API (even if the user is logged in)https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/566Search: materials2021-09-08T12:46:54ZLauri HimanenSearch: materialsThe new search interface for v0.11.0 now supports entry searches, but we should re-use it to large extent for material searches as well (=modernized Encyclopedia). This needs several steps:
- [x] The GUI should use the same components a...The new search interface for v0.11.0 now supports entry searches, but we should re-use it to large extent for material searches as well (=modernized Encyclopedia). This needs several steps:
- [x] The GUI should use the same components and target quantity names for both entry and material searches. `FilterContext`/`SearchContext` will internally handle the switch between entry/material API endpoints and rename the query/aggregation fields accordingly.
- [x] Ensuring that the v1 API has all the required features for material searches and that this API is analogous with the entry search.
- [x] UI concept for switching between the two search contexts. Tab, button, switch? How to preserve the Encyclopedia identity, how to signal the user about the current context, what are the differences on the component level? _At the moment we will separate the entry/materials searches to their own pages with distinct URLs. The user will see the URL and the page title change._
- [x] Checkbox for activating/deactivating entry-specific queries.
- [x] Better generic handling of searchable quantities that are derivatives of actual metainfo quantities (e.g. available properties)
- [x] Link to encyclopedia in the results list.v1.0.0-betaLauri HimanenLauri Himanenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/454A fastapi re-implementation of the "encyclopedia" API2021-05-06T08:51:53ZMarkus ScheidgenA fastapi re-implementation of the "encyclopedia" APIYou could branch of the `fastapi`-branch and start on a "encyclopedia" API. I would suggest to add `materials.py` to `nomad/app_fastapi/routers/`.
We should do a few renames where applicable:
- encyclopedia -> material(s)
- calculation(...You could branch of the `fastapi`-branch and start on a "encyclopedia" API. I would suggest to add `materials.py` to `nomad/app_fastapi/routers/`.
We should do a few renames where applicable:
- encyclopedia -> material(s)
- calculation(s) -> entr(y|ies)
A few guidelines
- not just GUI, but user friendly (think curl and browser, not python)
- GET for everything, even if less powerful than a potentially necessary POST version (i.e. something for users, something for GUI)
- we GET and POST resources in HTTP, e.g. use POST materials/query and not POST materials (as we do not post a material, but a query for materials)
- nothing that requires substantial URL encoding, e.g. no JSON in query params or arrays in path.
- full documentation
- the responses echo the normalized request + data
- for `entries.py` I designed a few models around common aspects like, pagination or required properties. Those should be reused (and refactored if necessary)
Here are a few operation suggestions
- `GET materials/`
- `POST materials/query`; The body could be designed to also allow to retrieve entries from multiple material ids and potentially multiple given entry ids, multiple specified properties, etc.
- `GET materials/<id>/entries`
- `POST materials/<id>/entries/query`; The body could be designed to also allow to retrieve data for multiple entry ids, we could also skip this and force the use of `POST materials/query` for any complex request.
- `GET materials/<id>/entries/<id>`
- `POST materials/<id>/entries/<id>/query`; Not sure if necessary, as required properties usually go well in query params.
Here are a few examples representing simplest most minimalistic operation set that should suffice:
- `GET materials?owner=public&q=atoms__H&q=atoms__O&include=material_name&include_material_id&include=formula` (like `GET entries`)
- `GET materials/<id>/entries?include=entry_id&include=mainfile`
- `GET materials/<id>/entries/<id>?include=electronic_dos&include=electronic_band_structure`
- `POST materials/query`; The body covers all more specialised aspects, e.g. aggregation, statistics, etc. (similar to `POST entries/query`)
The `POST materials/query` body could look like this:
```json
{
"query": { ... }, # or
"ids": [ ... ],
"pagination": { ... }
"required": { ... }
"entries": {
"ids": [ ... ], # or
"query": { ... },
"pagination": { ... }
"required": { ... }
}
}
```
And could return materials aggregated entries:
```json
{
...
"data": [
{
"material_id": ...,
...
"entries": [
{
"calc_id": ...,
...
}
]
}
]
}
```
The entries in `GET /entries` and the entries in `GET /materials/<id>/entries` should be the same. Currently the repo entries and encyclopedia entries are different. Ideally both operations offer the exact same interface; the only different being that the material one adds another search criteria.https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/465Real-time updates for Encyclopedia2021-05-06T08:49:30ZLauri HimanenReal-time updates for EncyclopediaThe materials index was separated from the calculations index due to performance limitations. These two indices should, however, be synced from time-to-time. Currently the contents of the Encyclopedia (=material entries) are updated manu...The materials index was separated from the calculations index due to performance limitations. These two indices should, however, be synced from time-to-time. Currently the contents of the Encyclopedia (=material entries) are updated manually by running a CLI command (takes > 10 hours currently). This could change so that entries in the materials index would be updated in automatically, or possibly even in real-time.
The updates should be triggered in several different scenarios, including at least the following:
- A new calculation has been processed and has been linked with a material
- Calculation is published
- Calculation is re-processed, possibly changing the material or material properties
- The calculation ownership is changed (`shared_with`, `owner`)
- Embargo is released
- Calculation is removed (done by admin)
- Uploads are migrated?
Possibly the stablest solution for achieving this could be the following:
- New uploads are indexes straight away into the materials index (small change in the processing pipeline).
- A periodic job checks for updated entries (based on a timestamp field which would record the latest update time of a calculation) and re-indexes them in the materials index. This could run e.g. every night.Markus ScheidgenMarkus Scheidgenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/516Error message for non existing materials in the Encyclopedia2021-04-07T11:13:14ZMarkus ScheidgenError message for non existing materials in the EncyclopediaDue to our delayed indexing, some materials that are referenced in the repository might not exist in the encyclopedia. The Encyclopedia GUI needs to produce a meaningful error message, e.g. "Material not yet available."
For example, if ...Due to our delayed indexing, some materials that are referenced in the repository might not exist in the encyclopedia. The Encyclopedia GUI needs to produce a meaningful error message, e.g. "Material not yet available."
For example, if you click ENCYCLOPEDIA here on the structure: https://nomad-lab.eu/prod/rae/beta/gui/entry/id/10k9kKRNTiWFsaK56Ft3og/xUjNvzui8NTYPBhdxshs5QukaRms/overviewLauri HimanenLauri Himanenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/518Encylopedia complex search minor changes2021-04-07T11:12:53ZLauri HimanenEncylopedia complex search minor changes- [x] Remove opacity change based on focus
- [x] Hide periodic table upon hitting search button, bring back upon clicking.
- [x] Make filters on left update the search automatically
- [x] Show all results by default- [x] Remove opacity change based on focus
- [x] Hide periodic table upon hitting search button, bring back upon clicking.
- [x] Make filters on left update the search automatically
- [x] Show all results by defaultLauri HimanenLauri Himanenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/473Complex encyclopedia search2021-02-22T06:32:44ZMarkus ScheidgenComplex encyclopedia search- [x] New API feature for performing complex queries based on the Optimade language
- [x] Regression tests for the complex query API
- [x] Refactored GUI for building the complex queries together with new results layout. This is mostly u...- [x] New API feature for performing complex queries based on the Optimade language
- [x] Regression tests for the complex query API
- [x] Refactored GUI for building the complex queries together with new results layout. This is mostly up to Iker.v0.10.0Lauri HimanenLauri Himanenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/488Adapt encyclopedia normalizer to workflows2021-02-11T06:11:59ZMarkus ScheidgenAdapt encyclopedia normalizer to workflowsThe encyclopedia normalizer depends on framesequence and sampling method to determine a calculation type. @ladinesa started to remove the use of these old metainfo definitions. @himanel1 should adapt the encyclopedia normalizer. For now ...The encyclopedia normalizer depends on framesequence and sampling method to determine a calculation type. @ladinesa started to remove the use of these old metainfo definitions. @himanel1 should adapt the encyclopedia normalizer. For now it should look for workflow information and use this. Only if no workflows are present, I should revert to the old behaviour. Once the migration to workflows is complete this should also be removed.
Currently (branch new-vasp-parser) this breaks the CI/CD because `tests/data/api/enc_private_material.zip::private/vasprun.xml` is parsed by the new vasp parser and no framesequence is generated anymore -> calc_type=unavailable -> no enc entry -> broken assertion in `tests/app/flask/test_api_encyclopedia.py::TestEncyclopedia::test_material`
Btw, the test case is terrible as it depends on multiple parsers, test data, etc. If one of these deps changes, its really hard to figure out, why this fails. Ideally this could be broken down into multiple test cases at some point (e.g. when implementing a new enc API based on flask api).v0.10.0Lauri HimanenLauri Himanenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/406Legacy material ids2020-12-18T16:07:58ZMarkus ScheidgenLegacy material idsIn principle, we should be able to assign old material ids to new material ids based on the material hash. The material hash should not have changed, or could simply be recomputed for entries in the old encyclopedia database.
Having th...In principle, we should be able to assign old material ids to new material ids based on the material hash. The material hash should not have changed, or could simply be recomputed for entries in the old encyclopedia database.
Having the old ids, e.g. a metadata `legacy_id`, would allow us to have canonic redirects from the old to the new encyclopedia for material urls.
We could also work with Martins old data, if he does not manage to produce new one.https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/399Add similarity to the encyclopedia2020-12-18T16:07:58ZMarkus ScheidgenAdd similarity to the encyclopediaHere is similarity test data: https://gitlab.mpcdf.mpg.de/mkuban/calculate_dos_similarity_matrix/-/blob/talos/test_similarity_simat_nearest_neighbors.dat
Basically JSON one-liner in a huge file. The ids are `upoad_id:calc_id:material_id...Here is similarity test data: https://gitlab.mpcdf.mpg.de/mkuban/calculate_dos_similarity_matrix/-/blob/talos/test_similarity_simat_nearest_neighbors.dat
Basically JSON one-liner in a huge file. The ids are `upoad_id:calc_id:material_id`. We need a way make this data available.
Maybe as a piece of "user" metadata. We would add it to mongodb (`nomad.processing.Calc`) and then reindex. This way the data is stored in datastore that has a backup and will "survive" any re-processing. The downside is that the data is not part of the encyclopedia section.
Another solution, we have this in a separate database and add it during processing.
Another solution, we have this in a separate collection/database (e.g. mongodb) and the API grabs it on the fly. Probably the most flexible and fastest solution. Hence preferable solution?
@Lauri can you decide and do this and test with the linked file?Lauri HimanenLauri Himanenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/372Encyclopedia fixlist2020-12-18T16:07:58ZLauri HimanenEncyclopedia fixlistNow that the encyclopedia is using the current production data, several issues have popped up:
- [x] Labels in DOS plot are sometimes messed up ([1](https://repository.nomad-coe.eu/app/encyclopedia/#/material/kBgEJhs2b5vh0VbIGKGeVa9KqP...Now that the encyclopedia is using the current production data, several issues have popped up:
- [x] Labels in DOS plot are sometimes messed up ([1](https://repository.nomad-coe.eu/app/encyclopedia/#/material/kBgEJhs2b5vh0VbIGKGeVa9KqPaW)) (Due to invalid DOS normalization, now uses scientific notation.)
- [x] Some functional types not correctly displayed in the Methodology overview box, although they show up properly when the methodology view is opened ([1](https://repository.nomad-coe.eu/app/encyclopedia/#/material/C492y94PtpFyWbGWWrChoApDLW2o), [2](https://repository.nomad-coe.eu/app/encyclopedia/#/material/SLpREFsdx6GCMOLKa6q_fElkpTZd))
- [x] The electronic properties view is not displaying correctly when opened without first accessing the overview page ([1](https://repository.nomad-coe.eu/app/encyclopedia/#/material/LlpxKmmdzfAuwBKKfI9FPHsfvIQd/electronicstruct))
- [x] The band gap summary is not being displayed properly ([1](https://repository.nomad-coe.eu/app/encyclopedia/#/material/LlpxKmmdzfAuwBKKfI9FPHsfvIQd/electronicstruct))
- [x] When browsing through materials, the results of the previous material are not correctly cleared.
- [x] Loading some band structures causes a server error, see e.g. calculation YDeISdnCy6L649OT5IKTrhGdVtgB and Uzy9_4hDSLrvDKBQV_QSYW7GIP8X ([1](https://repository.nomad-coe.eu/app/encyclopedia/#/material/lXqtqEIdhn7JBApwPs7TiCMO_WW3), [2](http://localhost/gui/#/material/YdknAqw9MDDYnO0h7B4IdPYO6uyl)) ***These calculations are missing k-points and energies. Will be fixed by the newly introduced check for the existence of k-points and energies. Both FHI-aims and CASTEP seem to be sometimes opening empty `section_k_bands`.***
- [x] Some functional type is not processed correctly and results in `null` shown in the GUI ([1](https://repository.nomad-coe.eu/app/encyclopedia/#/material/lXqtqEIdhn7JBApwPs7TiCMO_WW3)) ***This was caused by elastic calculations for which the method information is not available.***
- [x] Loading the overview for some materials is causing an internal server error. ([1](https://repository.nomad-coe.eu/app/encyclopedia/#/material/Dz0fWgOuVnNtESArXLii6FWGn3m9), [2](https://repository.nomad-coe.eu/app/gui/entry/id/ooqBOjw3RRiKJLb91JTipA/WFlX53tD9GYsf8uZz2V18k8U4mgE/raw)) ***This is caused by encountering data with old metainfo layout (section_encyclopedia vs section_metadata/encyclopedia). Should be fixed after successfull reprocess.***
- [x] Sorting on methodology page is not working correctly for all columns
- [x] Searching for materials with both thermal properties and electronic properties is not returning any results
- [x] Some 1D materials seem to have overlapping atoms. Investigate if problem in raw data or normalization. ([1](https://repository.nomad-coe.eu/app/encyclopedia/#/material/UN-ioivMi-MKWTuiL0lWWMri5Hma)) ***See issue #294. The WIEN2k parser was doing things wrong, now fixed***
- [x] Some 1D materials look suspiciously 2D. Investigate if they are ribbons or 2D. ([1](https://repository.nomad-coe.eu/app/encyclopedia/#/material/QcUVraUq6dmBncl4-o7_cnw4FXiW)). ***They are graphene nanoribbons and thus labeled correctly.***
- [x] The allowed maximum distance between atoms for them to be considered continuous seems too large. Because of this some materials are wrongly classified. ***Now lowered from 3.1 Å to 2.5 Å and added support for different radii definitions in MatID.***([1](https://repository.nomad-coe.eu/app/encyclopedia/#/material/2-cv9YiAuxqbSuoXgcO62xxXd6-v), [2](https://repository.nomad-coe.eu/app/encyclopedia/#/material/-azQbC9QgM5U6XSVeRkCHYva8SR1))
- [x] The idealized cell of some 1D materials is wrapped incorrectly. ([1](https://repository.nomad-coe.eu/app/encyclopedia/#/material/_eSZbSqxvKXhOTyeJkN5zlCrKh-n)) ***Now fixed in matid 0.6.1.***
- [x] Method overview not showing up for some 1D materials
- [x] Some 2D materials are incorrectly labeled as bulk in the material list, but show up correctly in the overview. ([1](https://nomad-lab.eu/prod/rae/encyclopedia/#/material/jdP9AhZIFuYhubLWkm2FPtEV5IZA)) ***This was caused by overlapping material ids between bulk and 2D entries and due to inconsistent selection of the representative calculations. Both now fixed.***
- [x] The chemical species search is not working correctly for 2D systems. E.g. "2D" and "C" is not bringing up graphene, which is found if you simply scroll through the 2D systems. ***The species and species counts were missing for 2D and 1D. Now added.***
- [x] The list of 2D systems includes multiple surface systems. Explore this mixup and remove the surface systems for now as we do not have a way to group them (create a material id) yet. ***These systems were incorrectly classified as 2D in the processing. With the newest processing pipeline they get correctly processed. I'm unable to locate which change did this, could have been a parser update, matid update or some other config update.***
- [x] Various 2D systems seem to have overlapping atoms. ([1](https://nomad-lab.eu/prod/rae/encyclopedia/#/material/aW1x8oAzw4ki0kktU2oyRnwihRcu)) ***These were all incorrectly labeled surface systems that were pushed through the 2D structure pipeline.***
- [x] If functional type is missing, the GUI incorrectly includes a "null" functional type in the statistics views. ([1](https://nomad-lab.eu/prod/rae/encyclopedia/#/material/lXqtqEIdhn7JBApwPs7TiCMO_WW3/structure))
- [x] The structure viewer is not being correctly loaded when entering into structure details the first time.
- [x] The dropdown for selecting a page is not always showing the electronic structure page even if data is present ([1](https://nomad-lab.eu/prod/rae/encyclopedia/#/material/lXqtqEIdhn7JBApwPs7TiCMO_WW3/structure))
- [x] Basis set type search is not working.Lauri HimanenLauri Himanenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/415Internal Server Error (500) on bs + dos search in encyclopedia API2020-12-18T16:07:57ZMarkus ScheidgenInternal Server Error (500) on bs + dos search in encyclopedia APIExample request:
```
{search_by: {exclusive: "0", page: 1, per_page: 10}, has_band_structure: true, has_dos: true}
```
Traceback:
```
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line...Example request:
```
{search_by: {exclusive: "0", page: 1, per_page: 10}, has_band_structure: true, has_dos: true}
```
Traceback:
```
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/local/lib/python3.7/site-packages/flask_restplus/api.py", line 325, in wrapper
resp = resource(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/flask/views.py", line 89, in view
return self.dispatch_request(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/flask_restplus/resource.py", line 44, in dispatch_request
resp = meth(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/flask_restplus/marshalling.py", line 243, in wrapper
resp = f(*args, **kwargs)
File "/app/nomad/app/api/auth.py", line 158, in wrapper
return func(*args, **kwargs)
File "/app/nomad/app/api/encyclopedia.py", line 334, in post
s = s.query(bool_query)
UnboundLocalError: local variable 's' referenced before assignment
```
Btw. Does this even work properly and would also include materials where BS and DOS come only from different calculations? I guess this is where we would really need an aggregated dedicated index, right?Lauri HimanenLauri Himanenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/377Login and error reporting on the encyclopedia gui2020-12-18T16:07:57ZMarkus ScheidgenLogin and error reporting on the encyclopedia guiThe old encyclopedia was allowing users to login. The only difference is that logged, users where getting a button where they can report a problem with a material and its representation (`client/src/common/FlaggingFormPopup.js`). This is...The old encyclopedia was allowing users to login. The only difference is that logged, users where getting a button where they can report a problem with a material and its representation (`client/src/common/FlaggingFormPopup.js`). This is not working anymore, since the old user management was discontinued.
We need to revive this feature based on the new user management. You find a simply how to for plain javascript here:
https://www.keycloak.org/docs/latest/securing_apps/#_javascript_adapter
Ask Markus for the configuration details of our keycloak. Otherwise:
https://repository.nomad-coe.eu/fairdi/keycloak (will change to somewhat nomad-lab.eu soon)
realm: fairdi_nomad_prod, for test its fairdi_nomad_test (here localhost is allowed as redirect_url)
client: nomad_publicLauri HimanenLauri Himanenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/453Exception in enc/material/.../calculation/... API or GUI?2020-12-11T10:19:00ZMarkus ScheidgenException in enc/material/.../calculation/... API or GUI?```
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line ...```
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/local/lib/python3.7/site-packages/flask_restplus/api.py", line 325, in wrapper
resp = resource(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/flask/views.py", line 89, in view
return self.dispatch_request(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/flask_restplus/resource.py", line 44, in dispatch_request
resp = meth(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/flask_restplus/marshalling.py", line 243, in wrapper
resp = f(*args, **kwargs)
File "/app/nomad/app/api/auth.py", line 162, in wrapper
return func(*args, **kwargs)
File "/app/nomad/app/api/encyclopedia.py", line 1284, in post
segments = value["section_k_band_segment"]
KeyError: 'section_k_band_segment'
```
Happens for example on URL `http://nomad-lab.eu/prod/rae/api/encyclopedia/materials/T00uB3LWWxUP9W_uLETV8Hhr6XtT/calculations/odgy1DZ_tji1DKJQgWrJ5vUyc5__` with properties: `electronic_band_structure`.
Don't know if this is GUI, API, or someone sending wrong keys. There is something similar for
url: `http://nomad-lab.eu/prod/rae/api/encyclopedia/materials/%5B%27ZNPtbchXbN3qEKcobLkImVFsrvz4%27%2C%20%27ONZOuUQLHV9AYqimwdw20ATVvyAj%27%5D/calculations/zz6kLYmEW9rJyWgwFFMpb8hXbpaG`
properties: `electronc_dos`Lauri HimanenLauri Himanenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/452Exception in get_hill_decomposition2020-12-11T10:18:51ZMarkus ScheidgenException in get_hill_decomposition```
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line ...```
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/local/lib/python3.7/site-packages/flask_restplus/api.py", line 325, in wrapper
resp = resource(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/flask/views.py", line 89, in view
return self.dispatch_request(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/flask_restplus/resource.py", line 44, in dispatch_request
resp = meth(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/flask_restplus/marshalling.py", line 243, in wrapper
resp = f(*args, **kwargs)
File "/app/nomad/app/api/auth.py", line 162, in wrapper
return func(*args, **kwargs)
File "/app/nomad/app/api/encyclopedia.py", line 524, in post
names, reduced_counts = get_hill_decomposition(element_list, reduced=True)
File "/app/nomad/atomutils.py", line 239, in get_hill_decomposition
greatest_common_divisor = reduce(gcd, counts)
TypeError: reduce() of empty sequence with no initial value
```
Happens in API doing a `http://nomad-lab.eu/prod/rae/api/encyclopedia/materials/` with:
```json
"search_by": {
"restricted": "0",
"page": 1,
"formula": "mgbi2",
"exclusive": "0",
"per_page": 10
}
```Lauri HimanenLauri Himanen