Research Software

A research topic across the group’s papers.

Research software is the code, and the databases, benchmark data sets, web services and integrated platforms built around it, that scientists write and release so that others can set up and run calculations, retrieve data or analyze results. Most of it is distributed as open-source packages in languages such as Python. Its value depends on a simple, consistent interface, easy installation, integration with the existing scientific ecosystem, documentation, and a community that maintains and extends it. Publishing software so that others can install, use, maintain and cite it raises questions of licensing, hosting and long-term sustainability that ordinary research articles do not, and software papers (for example in SoftwareX or JOSS, or journal application notes) are one way such tools are described and credited.

The Atomic Simulation Environment (2017)

This topical review, with Kitchin among 34 authors, describes ASE, an LGPL-licensed Python library built on NumPy that pairs an Atoms object with a uniform “calculator” interface to about 30 electronic-structure and interatomic-potential codes (Hjorth Larsen et al. 2017). Algorithms for dynamics, optimization, transition-state searches, global optimization, vibrations and thermochemistry act only on Atoms, so they work unchanged with any calculator, and whole simulation campaigns become ordinary Python scripts. The paper also recounts a design lesson: early versions wrapped even atomic positions in objects, which made the code hard to learn, so later rewrites lowered the abstraction to plain arrays while keeping modular design patterns. Projects such as Amp, matscipy and quippy build on it. Summary: hjorthlarsen2017.

pybliometrics, a Python interface to Scopus (2019)

pybliometrics is an MIT-licensed package on PyPI, built on the requests library, that hides the details of the Scopus REST APIs behind classes that take a query string or identifier and expose results as properties named after Scopus fields (Rose 2019). Design choices highlighted in the paper include transparent caching (a first download of 2260 records took under 5 minutes, a cached reuse under a second), an interactively created configuration file for credentials and cache paths, and custom exceptions for error-specific handling. The authors stress that users need no knowledge of REST, XML or JSON, only some Python, and that results plug directly into tools such as NetworkX, pandas, scipy and scikit-learn. Summary: rose2019.

JCIM Application Notes and sustainability standards (2026)

An editorial from the JCIM editorial team, including Kitchin, defines the journal’s Application Note as a peer-reviewed report on a usable digital resource and sets expectations for five categories: databases, benchmark data sets, software packages, web services and integrated platforms (Nunes Alves et al. 2026). To guard against short-lived, AI-generated code, it adds new requirements: standalone packages must show an open repository with at least six months of active development before submission and community uptake metrics, and web services need a hosting sustainability statement plus an open-source repository that would allow others to redeploy the service. Summary: nunesalves2026.

Papers on this topic