Stand-alone usage or re-purposing of parser modules #20
Replies: 5 comments 7 replies
Stand-alone usage of NOMAD's Parser PluginsNOMAD's major "legacy" computational parser repos: electronic-parsers, atomistic-parsers, workflow-parsers (a refactoring of the simulation schema nomad-simulations and modernization of the parser modules nomad-parser-plugins-simulation is planned for release in 2026). See the corresponding README's for information about the codes supported in each module. InstallationThe legacy parser modules are installable with pip (use venv or conda env, python >= 3.10, it is highly recommend to use uv): uv pip install --upgrade pip
uv pip install nomad-parser-plugins-electronic
uv pip install nomad-parser-plugins-atomistic
uv pip install nomad-parser-plugins-workflowExecutionThe parser modules depend on the nomad parse --show-archive <path-to-mainfile>The mainfile is the uniquely identifying file for NOMAD to determine the source of the data, see NOMAD Docs > Supported Parsers for mainfile specifications.
You can find plenty of test data in the corresponding repo's under |
|
The only weakness to re-using our parsers is that the NOMAD dependency is still quite large: 2.2 MB as listed in PyPi, though this may include dev options too. That aside, the JSON output that you showed with the CLI works quite well standalone, though there are a few redundant fields (only useful within NOMAD infrastructure). |
|
Just to chime in from the datatractor side about how this could be wrapped up/exposed (I don't think a 2 MB dep is a dealbreaker by any means, especially when we are often used to 800 MB+ pytorch etc...). NOMAD could programmatically generate a list of supported file formats following our schema from the list at https://nomad-lab.eu/prod/v1/docs/reference/parsers.html (in the simplest case this is just a list of identifiers), then register ---
id: >-
nomad-parsers
name: >-
NOMAD
description: >-
lorem ipsum
supported_filetypes:
- id: qe-pw-in
- id: qe-pw-out
- id: vasp-in
license:
spdx: Apache-2.0
citations:
- uri: doi:10.21105/joss.05388
creators:
- M. Scheidgen
- others
title: 'NOMAD: A distributed web-based platform for managing materials science research data'
type: article
source_repository: https://github.com/nomad-coe
documentation: https://nomad-lab.eu/prod/v1/docs
usage:
- method: cli
command: nomad parse --show-archive {{ input_path }}
- method: python
setup: nomad.electronicparsers.vasp
command: nomad.electronicparsers.vasp.VASPParser({{ input_path }})
installation:
- method: pip
packages:
- nomad-parser-plugins-electronic ~= 1.0with corresponding entries created for |
|
Is there any option for |
|
Here's your complete breakdown of the core NOMAD Lab dependencies only (what you get with pip install nomad-lab): 📊 Core NOMAD Lab Dependencies Analysis plotly (91 MB) - Interactive scientific plots scipy (139 MB) - Scientific algorithms pymatgen (25 MB) - Crystal structure analysis h5py (15 MB) - HDF5 scientific data py-spy (7 MB) - Production profiling Visualization dominates at 45% (309 MB) - mainly kaleido for plot export Web framework is lightweight (4 MB total) numpy, scipy, pandas - numerical foundation pymatgen, ase, matid - materials science plotly, kaleido - could be optional in headless environments elasticsearch-dsl, python-keycloak - ready for full deployment |
Uh oh!
There was an error while loading. Please reload this page.
Spurred by some questions during the speaker session, let's exchange about possibilities of parser (re)usage and discuss about existing or missing tools for re-purposing parser modules.
All reactions