From c60ba8030a6d2fb059e00f0b02c5016620e4c918 Mon Sep 17 00:00:00 2001 From: temok-mx <temok.mx@gmail.com> Date: Thu, 10 Sep 2020 17:23:12 +0200 Subject: [PATCH] Updated README.md; added metadata.yml; the lead branch is now master, inactive branches became tags --- README.md | 87 +++++++++++++++++++++++++++++++++++++++------------- metadata.yml | 7 +++++ 2 files changed, 72 insertions(+), 22 deletions(-) create mode 100644 metadata.yml diff --git a/README.md b/README.md index f5ef11d..7d7c773 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,78 @@ -# OpenKIM Parser -[NOMAD Laboratory CoE](http://nomad-coe.eu) parser for [OpenKIM](https://openkim.org) -## Version 0.0.1 +This is a NOMAD parser for [openKIM](https://openkim.org/). It will read openKIM input and +output files and provide all information in NOMAD's unified Metainfo based Archive format. -This is the parser for OpenKIM queries at [OpenKIM](https://openkim.org). -The official version lives at: +## Preparing code input and output file for uploading to NOMAD - git@gitlab.mpcdf.mpg.de:nomad-lab/parser-openkim.git +NOMAD accepts `.zip` and `.tar.gz` archives as uploads. Each upload can contain arbitrary +files and directories. NOMAD will automatically try to choose the right parser for you files. +For each parser (i.e. for each supported code) there is one type of file that the respective +parser can recognize. We call these files `mainfiles` as they typically are the main +output file a code. For each `mainfile` that NOMAD discovers it will create an entry +in the database that users can search, view, and download. NOMAD will associate all files +in the same directory as files that also belong to that entry. Parsers +might also read information from these auxillary files. This way you can add more files +to an entry, even if the respective parser/code might not directly support it. -You can browse it at: +For openkim please provide at least the files from this table if applicable to your +calculations (remember that you can provide more files if you want): - https://gitlab.rzg.mpg.de/nomad-lab/parser-openkim -It relies on having the nomad-meta-info and the python-common repositories one level higher. -The simplest way to have this is to check out nomad-lab-base recursively: - git clone --recursive git@gitlab.mpcdf.mpg.de:nomad-lab/nomad-lab-base.git +To create an upload with all calculations in a directory structure: -This parser will be in the directory parsers/openkim of this repository. +``` +zip -r <upload-file>.zip <directory>/* +``` -## Running and Testing the Parser -### Requirements -The required python packages can be installed with (see [python-common](https://gitlab.rzg.mpg.de/nomad-lab/python-common)): +Go to the [NOMAD upload page](https://nomad-lab.eu/prod/rae/gui/uploads) to upload files +or find instructions about how to upload files from the command line. - pip install -r nomad-lab-base/python-common/requirements.txt +## Using the parser -### Usage -The query output of OpenKIM simulation results can be parsed with: +You can use NOMAD's parsers and normalizers locally on your computer. You need to install +NOMAD's pypi package: - python parser-openkim.py test_nomad_id openkim_query_data.json +``` +pip install nomad-lab +``` -### Test Files -Example log output files of OpenKIM query can be found in the directory test/examples. -More details about the calculations and files are explained in README file of test/examples. +To parse code input/output from the command line, you can use NOMAD's command line +interface (CLI) and print the processing results output to stdout: +``` +nomad parse --show-archive <path-to-file> +``` + +To parse a file in Python, you can program something like this: +```python +import sys +from nomad.cli.parse import parse, normalize_all + +# match and run the parser +backend = parse(sys.argv[1]) +# run all normalizers +normalize_all(backend) + +# get the 'main section' section_run as a metainfo object +section_run = backend.resource.contents[0].section_run[0] + +# get the same data as JSON serializable Python dict +python_dict = section_run.m_to_dict() +``` + +## Developing the parser + +Also install NOMAD's pypi package: + +``` +pip install nomad-lab +``` + +Clone the parser project and install it in development mode: + +``` +git clone https://gitlab.mpcdf.mpg.de/nomad-lab/parser-openkim parser-openkim +pip install -e parser-openkim +``` + +Running the parser now, will use the parser's Python code from the clone project. diff --git a/metadata.yml b/metadata.yml new file mode 100644 index 0000000..b6c2f82 --- /dev/null +++ b/metadata.yml @@ -0,0 +1,7 @@ +code-label: openKIM +code-label-style: 'Capitals: K,I,M' +code-url: https://openkim.org/ +parser-dir-name: dependencies/parsers/openkim/ +parser-git-url: https://gitlab.mpcdf.mpg.de/nomad-lab/parser-openkim +parser-specific: '' +table-of-files: '' -- GitLab