Lightshow

Lightshow: a Python package for generating computational x-ray absorption spectroscopy input files - Published in JOSS (2023)

https://github.com/ai-multimodal/lightshow

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    14 of 24 committers (58.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords from Contributors

mesh

Scientific Fields

Materials Science Physical Sciences - 38% confidence
Last synced: 4 months ago · JSON representation

Repository

A one-stop-shop for handling data in computational spectroscopy

Basic Info
Statistics
  • Stars: 16
  • Watchers: 5
  • Forks: 9
  • Open Issues: 16
  • Releases: 1
Created over 5 years ago · Last pushed 5 months ago
Metadata Files
Readme Changelog Contributing License Authors

README.md

# Lightshow [![image](https://joss.theoj.org/papers/a9cabcd7f4b85a926a797997c6622b43/status.svg)](https://joss.theoj.org/papers/a9cabcd7f4b85a926a797997c6622b43) [![image](https://github.com/AI-multimodal/Lightshow/actions/workflows/ci.yml/badge.svg)](https://github.com/AI-multimodal/Lightshow/actions/workflows/ci.yml) [![image](https://codecov.io/gh/AI-multimodal/Lightshow/branch/master/graph/badge.svg?token=CW7BMFA5O7)](https://codecov.io/gh/AI-multimodal/Lightshow) [![image](https://app.codacy.com/project/badge/Grade/d31a4e18672c4d71bbaafa719181c140)](https://www.codacy.com/gh/AI-multimodal/Lightshow/dashboard?utm_source=github.com&utm_medium=referral&utm_content=AI-multimodal/Lightshow&utm_campaign=Badge_Grade)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![python](https://img.shields.io/badge/-Python_3.9+-blue?logo=python&logoColor=white)](https://github.com/pre-commit/pre-commit) [![Downloads](https://static.pepy.tech/badge/lightshow)](https://pepy.tech/project/lightshow)

Lightshow is a Python library for easily generating computational spectroscopy input files. If you use our code, please consider citing our manuscript in the Journal of Open Source Software and our multi-code benchmark paper, which provides the methods and default parameters used in Lightshow.

Often, it can be daunting to create comprehensive, well documented databases of materials structures and their x-ray absorption spectra. Lightshow solves this problem, allowing new users to choose sensible defaults for their calculations, while simultaneously exposing all functionality for experts.

Lightshow aims to provide a \"one-stop-shop\" for input file generation, and currently supports the following codes:

with more on the way! The software is intended to be user-friendly, extensively documented and tested, and extendable for those users who wish to add additional spectroscopy functionalities. There are also a few comprehensive tutorials to help you get started.

Tutorials

We offer a few tutorials to get you started (with more on the way!)

| # | Tutorial | Description | Notebook | | ------------- | ------------- | ------------- | ------------- | | 1 | Basic usage | Pull structure data from Materials Project, write input files for all codes | Open In Colab | | 2 | Spectral broadening | Utilities for broadening spectra |Open In Colab |

Installation

To install Lightshow, simply use pip

bash pip install lightshow

Make sure you've set your Materials Project v2 API key as well! You can find some documentation on how to query data here and how to set up your new API key here.

bash export MP_API_KEY="your_Materials_Project_v2_API_key"

(or preferably, add MP_API_KEY to your bash profile).

More details can be found at our documentation.

Development installation

For developers: after cloning Lightshow locally, install pre-commit via

bash pip install pre-commit pre-commit pre-commit install

and check that the tests (below) work correctly (these can be run via pytest). After cloning, simply use bash pytest lightshow/_tests

or with coverage

bash pytest -v --cov --cov-report xml lightshow/_tests

We use helper scripts to parse the pyproject.toml file and install only specific packages required for certain parts of development. For development, we recommend installing all dependencies:

bash bash scripts/install.sh # Install Lightshow's core dependencies bash scripts/install.sh test # Install the test requirements only bash scripts/install.sh doc # Install requirements for building the docs

Contributing

We welcome any and all contributions by the community, including pull requests, bug reports, etc. Please see our contributing document for more details!

Adding new spectroscopy codes

Adding new spectroscopy codes requires one to inherit the _BaseParameters class from lightshow.parameters._base. The new Parameters(_BaseParameters) object should have a write() method, which must take a target directory as an argument, as well as any other keyword arguments require to write the input file (most notably, the Pymatgen structure, either a unit or super cell). The name property must also be defined (corresponding to the name of the calculation, e.g. "VASP"). Take a look at the examples in the lightshow.parameters module for more details!

Funding acknowledgement

This research is based upon work supported by the U.S. Department of Energy, Office of Science, Office Basic Energy Sciences, under Award Number FWP PS-030. This research used resources of the Center for Functional Nanomaterials (CFN), which is a U.S. Department of Energy Office of Science User Facility, at Brookhaven National Laboratory under Contract No. DE-SC0012704. This work received partial funding by the German Research Foundation (DFG) through the CRC 1404 (FONDA), Projektnummer 414984028, and the NFDI consortium FAIRmat – project 460197019. C.V. acknowledges support by the Department of Energy, Basic Energy Sciences, Materials Science and Engineering Division, through the Midwest Integrated Center for Computational Materials (MICCoM).

The Software resulted from work developed under a U.S. Government Contract No. DE-SC0012704 and are subject to the following terms: the U.S. Government is granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable worldwide license in this computer software and data to reproduce, prepare derivative works, and perform publicly and display publicly.

THE SOFTWARE IS SUPPLIED \"AS IS\" WITHOUT WARRANTY OF ANY KIND. THE UNITED STATES, THE UNITED STATES DEPARTMENT OF ENERGY, AND THEIR EMPLOYEES: (1) DISCLAIM ANY WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR NON-INFRINGEMENT, (2) DO NOT ASSUME ANY LEGAL LIABILITY OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR USEFULNESS OF THE SOFTWARE, (3) DO NOT REPRESENT THAT USE OF THE SOFTWARE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS, (4) DO NOT WARRANT THAT THE SOFTWARE WILL FUNCTION UNINTERRUPTED, THAT IT IS ERROR-FREE OR THAT ANY ERRORS WILL BE CORRECTED.

IN NO EVENT SHALL THE UNITED STATES, THE UNITED STATES DEPARTMENT OF ENERGY, OR THEIR EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, SPECIAL OR PUNITIVE DAMAGES OF ANY KIND OR NATURE RESULTING FROM EXERCISE OF THIS LICENSE AGREEMENT OR THE USE OF THE SOFTWARE. <!--funding-end-->

Owner

  • Name: AI-multimodal
  • Login: AI-multimodal
  • Kind: organization

JOSS Publication

Lightshow: a Python package for generating computational x-ray absorption spectroscopy input files
Published
July 29, 2023
Volume 8, Issue 87, Page 5182
Authors
Matthew R. Carbone ORCID
Computational Science Initiative, Brookhaven National Laboratory, Upton, New York 11973, United States
Fanchen Meng ORCID
Center for Functional Nanomaterials, Brookhaven National Laboratory, Upton, New York 11973, United States
Christian Vorwerk ORCID
Pritzker School of Molecular Engineering, University of Chicago, Chicago, IL 60637, United States
Benedikt Maurer ORCID
Physics Department and IRIS Adlershof, Humboldt-Universität zu Berlin, D-12489 Berlin, Germany
Fabian Peschel ORCID
Physics Department and IRIS Adlershof, Humboldt-Universität zu Berlin, D-12489 Berlin, Germany
Xiaohui Qu ORCID
Center for Functional Nanomaterials, Brookhaven National Laboratory, Upton, New York 11973, United States
Eli Stavitski ORCID
National Synchrotron Light Source II, Brookhaven National Laboratory, Upton, New York 11973, United States
Claudia Draxl ORCID
Physics Department and IRIS Adlershof, Humboldt-Universität zu Berlin, D-12489 Berlin, Germany
John Vinson ORCID
Material Measurement Laboratory, National Institute of Standards and Technology, Gaithersburg, Maryland 20899, United States
Deyu Lu ORCID
Center for Functional Nanomaterials, Brookhaven National Laboratory, Upton, New York 11973, United States
Editor
Antonia Mey ORCID
Tags
computational spectroscopy condensed matter physics materials science

GitHub Events

Total
  • Issues event: 2
  • Watch event: 3
  • Issue comment event: 2
  • Push event: 44
  • Pull request event: 1
  • Fork event: 2
  • Create event: 8
Last Year
  • Issues event: 2
  • Watch event: 3
  • Issue comment event: 2
  • Push event: 44
  • Pull request event: 1
  • Fork event: 2
  • Create event: 8

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 801
  • Total Committers: 24
  • Avg Commits per committer: 33.375
  • Development Distribution Score (DDS): 0.503
Past Year
  • Commits: 23
  • Committers: 2
  • Avg Commits per committer: 11.5
  • Development Distribution Score (DDS): 0.043
Top Committers
Name Email Commits
Matthew Carbone x****e@g****m 398
FCMeng f****m@g****u 96
John Vinson j****3@u****u 95
Fanchen Meng f****1@b****v 44
xiaqu x****1@g****m 27
chuntian236 5****6 23
benedikt m****e@p****e 16
FCMeng f****m@c****u 16
dependabot[bot] 4****] 13
Deyu Lu d****u@L****l 11
Christian Vorwerk c****k@p****e 11
deyulu 6****u 9
Xiaohui Qu x****u@b****v 9
Xuance Jiang x****g@X****l 6
Xuance Jiang x****g@s****u 4
Fanchen Meng f****1@i****v 4
Christian Vorwerk v****k@u****u 4
HailiJia H****a 4
Akhil Tayal 1****l 3
Meng f****1@w****v 3
peschelf p****f@p****e 2
shubharajkharel s****l@g****m 1
Fanchen Meng f****m@n****u 1
Fanchen Meng f****m@c****u 1

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 30
  • Total pull requests: 70
  • Average time to close issues: 22 days
  • Average time to close pull requests: 8 days
  • Total issue authors: 5
  • Total pull request authors: 9
  • Average comments per issue: 2.8
  • Average comments per pull request: 1.5
  • Merged pull requests: 33
  • Bot issues: 0
  • Bot pull requests: 43
Past Year
  • Issues: 2
  • Pull requests: 1
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 22 hours
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • matthewcarbone (9)
  • deyulu (7)
  • FCMeng (3)
  • chuntian236 (3)
  • jtv3 (1)
Pull Request Authors
  • dependabot[bot] (67)
  • matthewcarbone (14)
  • chuntian236 (9)
  • jiangxc66 (6)
  • FCMeng (3)
  • HailiJia (2)
  • aakhiltayal (2)
  • xhqu1981 (2)
  • shubharajkharel (1)
Top Labels
Issue Labels
bug (5) enhancement (2) help wanted (1)
Pull Request Labels
dependencies (67)

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • actions/configure-pages v2 composite
  • actions/deploy-pages v1 composite
  • actions/setup-python v2 composite
  • actions/upload-pages-artifact v1 composite
  • codecov/codecov-action v2 composite
  • pypa/gh-action-pypi-publish release/v1 composite
  • rickstaa/action-black v1 composite
  • suo/flake8-github-action releases/v1 composite
pyproject.toml pypi
  • ase *
  • monty *
  • mp-api *
  • numpy *
  • pymatgen ==2023.9.10
  • tqdm *