TY - JOUR
T1 - cclib 2.0
T2 - An updated architecture for interoperable computational chemistry
AU - Berquist, Eric
AU - Dumi, Amanda
AU - Upadhyay, Shiv
AU - Abarbanel, Omri D
AU - Cho, Minsik
AU - Gaur, Sagar
AU - Gano Gil, Victor Hugo
AU - Hutchison, Geoffrey R
AU - Lee, Oliver S
AU - Rosen, Andrew S
AU - Schamnad, Sanjeed
AU - Schneider, Felipe S S
AU - Steinmann, Casper
AU - Stolyarchuk, Maxim
AU - Vandezande, Jonathon E
AU - Zak, Weronika
AU - Langner, Karol M
PY - 2024/7/28
Y1 - 2024/7/28
N2 - Interoperability in computational chemistry is elusive, impeded by the independent development of software packages and idiosyncratic nature of their output files. The cclib library was introduced in 2006 as an attempt to improve this situation by providing a consistent interface to the results of various quantum chemistry programs. The shared API across programs enabled by cclib has allowed users to focus on results as opposed to output and to combine data from multiple programs or develop generic downstream tools. Initial development, however, did not anticipate the rapid progress of computational capabilities, novel methods, and new programs; nor did it foresee the growing need for customizability. Here, we recount this history and present cclib 2, focused on extensibility and modularity. We also introduce recent design pivots—the formalization of cclib’s intermediate data representation as a tree-based structure, a new combinator-based parser organization, and parsed chemical properties as extensible objects.
AB - Interoperability in computational chemistry is elusive, impeded by the independent development of software packages and idiosyncratic nature of their output files. The cclib library was introduced in 2006 as an attempt to improve this situation by providing a consistent interface to the results of various quantum chemistry programs. The shared API across programs enabled by cclib has allowed users to focus on results as opposed to output and to combine data from multiple programs or develop generic downstream tools. Initial development, however, did not anticipate the rapid progress of computational capabilities, novel methods, and new programs; nor did it foresee the growing need for customizability. Here, we recount this history and present cclib 2, focused on extensibility and modularity. We also introduce recent design pivots—the formalization of cclib’s intermediate data representation as a tree-based structure, a new combinator-based parser organization, and parsed chemical properties as extensible objects.
UR - http://www.scopus.com/inward/record.url?scp=85199667022&partnerID=8YFLogxK
U2 - 10.1063/5.0216778
DO - 10.1063/5.0216778
M3 - Journal article
SN - 0021-9606
VL - 161
JO - Journal of Chemical Physics
JF - Journal of Chemical Physics
IS - 4
M1 - 042501
ER -