CollisionDB: A New Database of Atomic and Molecular Collisional Processes with an Interactive API
Abstract
:1. Introduction
2. Results
2.1. Search Interface
Listing 1. An example dataset file for download. |
Listing 2. A sample manifest JSON file describing the dataset files in the archive. |
2.2. PyCollisionDB Package for API
Listing 3. Initialize the main instance of PyCollisionDB package to interact with the database in Python Shell. |
>>> # import PyCollision module to access associated functions and attributes. >>> from pycollisiondb import PyCollision |
- PyCollision.get_datasets(): This is the main class method for querying and retrieving the datasets in a standardized format from the server for a given query, which should be passed as a Python dictionary (dict object). Only valid metadata keys, such as ids (a list of dataset IDs) or reactants, are accepted in each query. The values are specified as either a string or a list of comma-separated strings depending upon the query key. A list of valid keys and examples are given in Table 3.
Listing 4. Search and fetch datasets from the server over the API. |
- PyCollision.summarize_datasets(): This method provides a summary of the retrieved datasets and groups them into different blocks based on the reaction text. The output includes pertinent information such as qualified ID, process types, data type and references for each collisional dataset, as shown in Listing 5.
Listing 5. Summary of datasets in blocks for each distinct reaction text. |
- PyCollision.resolve_refs(): Call this method to resolve the references for all retrieved datasets into a proper, citeable format. The method returns references (refs) as a Python dictionary, with bibliographic data identified by reference ID; see Listing 6.
Listing 6. Resolving the references for all the datasets into a proper, citeable format. |
- PyCollision.datasets: To access the details of a collisional dataset, users can use the dataset ID as a key for the datasets dict attribute. An example of retrieving the metadata and numerical data of a specific dataset 102737 is given in Listing 7.
Listing 7. Retrieve details of an individual dataset. |
- PyCollision.convert_units(): Use this method to change the units for any or all datasets. This function accesses the PyQn library [10] to perform unit conversions. Listing 8 returns all datasets with energy and cross sections in units of and Mb, respectively.
Listing 8. Unit conversions of all datasets. |
- PyCollision.plot_all_datasets(): The PyCollision module also provides visualization function for the retrieved datasets, which assists in data evaluation and quality assessment. The plot_all_datasets method can be used to create plots using the pyplot submodule of the Matplotlib library. An example representation of the retrieved datasets for the proton-impact ionization of H 1s is shown in Figure 5. One can see that the peak cross sections reported in the references identified within CollisionDB as B33 [12] and B34 [13] are about 20–30% lower than those in other works [14,15]. As is evident in Listing 9, data visualization allows users to intuitively identify inconsistencies in the data. This serves as a first step in evaluating the data quality and requires further in-depth analysis of the data [16].
Listing 9. An example of data visualization. |
2.3. Current Status of CollisionDB
3. Materials and Methods
3.1. Data Model
- id: a unique integer primary key identifying the dataset within the CollisionDB ecosystem.
- reaction_id: a foreign key identifying the single collisional process with which a dataset is associated (represented in the rxn_reaction table seen below).
- method: the method used to obtain the numerical data: one of "experiment", "theory", "semi-empirical" or "estimate". More precise details about the computational method used to calculate data can be specified using pre-defined abbreviations in the json_data attribute (see below).
- data_type: the type of collisional data, which can be one of the following: "cross section", "differential cross section" or "rate coefficient".
- comment: a free-text comment field providing additional information concerning the dataset.
- json_data: all other metadata such as threshold, uncertainty and units, stored as key–value pairs in a JSON (JavaScript Object Notation) object (see Section 3.2).
- recommended: A Boolean flag, indicating whether the dataset is evaluated and recommended (details may be provided in the comment field).
- deprecated: A Boolean flag, indicating whether the dataset is out of date due to identified errors or quality issues. Details can be provided in the deprecation_comment field. A new dataset may be available in the database.
- time_added, time_deprecated: timestamps indicating when a dataset was added or deprecated in the CollisionDB database.
- One or more bibliographic references for the data, identified through a many-to-many relationship with the refs_ref table.
- text: a text representation of the reaction in a canonical form conforming to the standards of and parseable by the PyValem library [8].
- html, latex: HTML and LaTeX representations of the reaction, for display in the browser and export.
- comment: a free-text comment field providing further information about the reaction.
- ordered_text: a text representation of the reaction in which the reactants and products are ordered in an arbitrary but consistent way to facilitate indexing, searching and comparison of reactions.
- rxn_reaction_reactants and rxn_reaction_products: these tables provide a many-to-many relationship between each reaction and its individual reactant and product species (including their quantum states, where relevant), which are held in the rp_rp table.
- rxn_reaction_process_types: this table provides a many-to-many relationship between a reaction and its classifying process codes (e.g., EIN = electron-impact ionization); a complete list of these codes is given in Ref. [9].
3.2. Data Transfer Format for Download: JSON
3.3. Data Transfer Format for Upload
3.3.1. Plain Text
Listing 10. An example template file for submission. |
3.3.2. JSON
Listing 11. An example JSON dataset file for submission. |
4. Conclusions
Author Contributions
Funding
Data Availability Statement
Conflicts of Interest
References
- Pitchford, L.C.; Alves, L.L.; Bartschat, K.; Biagi, S.F.; Bordage, M.-C.; Bray, I.; Brion, C.E.; Brunger, M.J.; Campbell, L.; Chachereau, A.; et al. LXCat: An Open-Access, Web-Based Platform for Data Needed for modeling low temperature plasmas. Plasma Process. Polym. 2017, 14, 1600098. [Google Scholar] [CrossRef]
- Park, J.H.; Choi, H.; Chang, W.S.; Chung, S.Y.; Kwon, D.C.; Song, M.Y.; Yoon, J.S. A New Version of the Plasma Database for Plasma Physics in the Data Center for Plasma Properties. Appl. Sci. Converg. Technol. 2020, 29, 5–9. [Google Scholar] [CrossRef]
- Celiberto, R.; Armenise, I.; Cacciatore, M.; Capitelli, M.; Esposito, F.; Gamallo, P.; Janev, R.K.; Laganà, A.; Laporta, V.; Laricchiuta, A.; et al. Atomic and molecular data for spacecraft re-entry plasmas. Plasma Sources Sci. Technol. 2016, 25, 033004. [Google Scholar] [CrossRef]
- Tennyson, J.; Mohr, S.; Hanicinec, M.; Dzarasova, A.; Smith, C.; Waddington, S.; Liu, B.; Alves, L.L.; Bartschat, K.; Bogaerts, A.; et al. The 2021 release of the Quantemol database (QDB) of plasma chemistries and reactions. Plasma Sources Sci. Technol. 2022, 31, 095020. [Google Scholar] [CrossRef]
- Summers, H.P. The ADAS User Manual, Version 2.6.2004. Available online: http://www.adas.ac.uk (accessed on 23 March 2024).
- Hulse, R.A. The ALADDIN atomic physics database system. AIP Conf. Proc. 1990, 206, 63–72. [Google Scholar] [CrossRef]
- Wilkinson, M.D.; Dumontier, M.; Aalbersberg, I.J.; Appleton, G.; Axton, M.; Baak, A.; Blomberg, N.; Boiten, J.-W.; da Silva Santos, L.B.; Bourne, P.E.; et al. The FAIR Guiding Principles for scientific data management and stewardship. Sci. Data 2016, 3, 160018. [Google Scholar] [CrossRef] [PubMed]
- Hill, C. PyValem, GitHub Repository. 2022. Available online: https://github.com/xnx/pyvalem (accessed on 23 March 2024).
- Hill, C.; Dubernet, M.L.; Endres, C.; Karwasz, G.; Marinković, B.; Marquart, T.; Heinola, K.; Zwölf, C.M.; Moreau, N.; Dipti; et al. “Classification of Processes in Plasma Physics” Version 2.4. 2022. Available online: https://amdis.iaea.org/media/miscellaneous-publications/plasma-processes-classification-v2.4.pdf (accessed on 23 March 2024).
- Hill, C. PyQn, GitHub Repository. 2022. Available online: https://github.com/xnx/pyqn (accessed on 23 March 2024).
- Hill, C. PyCollisionDB, GitHub Repository. 2022. Available online: https://github.com/xnx/pycollisiondb (accessed on 23 March 2024).
- Shah, M.B.; Gilbody, H.B. Experimental study of the ionisation of atomic hydrogen by fast H+ and He2+ ions. J. Phys. B At. Mol. Opt. Phys. 1981, 14, 2361. [Google Scholar] [CrossRef]
- Shah, M.B.; Elliott, D.S.; Gilbody, H.B. Ionisation of atomic hydrogen by 9–75 keV protons. J. Phys. B At. Mol. Opt. Phys. 1987, 20, 2481. [Google Scholar] [CrossRef]
- Agueny, H.; Hansen, J.P.; Dubois, A.; Makhoute, A.; Taoutioui, A.; Sisourat, N. Electron capture, ionization and excitation cross sections for keV collisions between fully stripped ions and atomic hydrogen in ground and excited states. At. Data Nucl. Data Tables 2019, 129–130, 101281. [Google Scholar] [CrossRef]
- Leung, A.C.K.; Kirchner, T. Proton impact on ground and excited states of atomic hydrogen. Eur. Phys. J. D 2019, 73, 246. [Google Scholar] [CrossRef]
- Hill, C.; Dipti; Heinola, K.; Dubois, A.; Sisourat, N.; Taoutioui, A.; Agueny, H.; Tőkési, K.; Ziaeian, I.; Illescas, C.; et al. Atomic collisional data for neutral beam modeling in fusion plasmas. Nucl. Fusion 2023, 63, 125001. [Google Scholar] [CrossRef]
- Hill, C. django-pyref, GitHub Repository. 2022. Available online: https://github.com/xnx/django-pyref (accessed on 23 March 2024).
Species or State | PyValem Notation | Chemical Notation |
---|---|---|
Atoms | Li, Be, W | |
Molecules | H2, LiH, H2O | , , |
Ions | H+ | |
Be+4 | ||
H2- | ||
CO3-2 | ||
Isotopes | (2H) or D | 2 (D) |
(6Li) | 6 | |
(235U) | 235 | |
Isotopologues | (2H)2 or D2 | 2 () |
(13C)H4 | 13 | |
Atomic configurations | Li 1s2.2s or Li [He].2s | |
Ne+ 1s2.2s2.2p5 | ||
Atomic term symbols | He 1S | He 1S |
Al 2P_3/2 | Al 2P3/2 | |
Molecular configurations | H2 1g2 or H2 1sigmag2 | |
H2+ 1sigmag | ||
Be2+ 1sigma2.2pi | ||
Molecular term symbols | O2 X(3SIGMA-g) | |
AlO C(2PI) | ||
Quantum numbers, labels | n=4, |m|=1, par=+ |
Key | Description |
---|---|
qid | For downloaded dataset files, the qualified ID of the dataset: the primary key integer prefixed with D. |
reaction | A collisional process between stateful species described by the conventions of the PyValem Python package [8]. |
process_types | A sequence of three-letter codes describing the collisional process [9] and a brief description. |
data_type | Type of the collisional data, one of "cross section", "rate coefficient" or "differential cross section". |
refs | A sequence of key–value pairs identifying the references cited for this dataset; the key is a qualified ID for an entry in the CollisionDB refs_ref table (an integer prefixed with the letter B), and the value is typically a JSON representation of the reference’s DOI or URL |
comment | A free-text field with additional information describing the dataset. |
method | A general method, which can be one of "experiment", "semi-empirical", "theory" or "estimate". Alternatively, details of the computational method used can be provided using the pre-defined abbreviations given online at https://amdis.iaea.org/db/collisiondb/theoretical-methods/ (accessed on 23 March 2024), e.g., "MCCC" for molecular convergent close-coupling. |
columns | A list of JSON objects identifying the names and units of the columns in the numerical data part of the dataset file; the column metadata are ordered in the same way as the columns themselves, and the units are parseable by the PyQn Python library [10]. |
unc_perc | The uncertainty as a relative percentage value of the data, specified as a numerical value. Uncertainties per data point can be provided along with numerical data, as shown in the example Listing 10. |
threshold | The threshold energy, in eV, for a given transition should be a number (without units). |
frame | Energy frame of reference, one of "target" or "com" for target and center-of-mass frames, respectively. Mandatory only for heavy-particle collisions. |
channel | A comma-separated list of reaction(s) describing the composite process with multiple channels. |
recommended | Indicates whether the dataset is evaluated and recommended. |
deprecated | Represents whether the dataset is deprecated. |
data_from_fit | Mandatory only for datasets with fit coefficients, describes the source of the numerical data, either false (data from the original source) or true (data derived from fit coefficients). |
fit | The values of named fitting coefficients as key–value pairs, as well as other data such as the fitting uncertainty (fit_unc_perc), the fit function name, func and the limits of validity of the fitting function, Elo and Ehi. |
metadata_version | Provides the specific version of the metadata schema associated with the dataset. |
time_added | Indicates the timestamp for when the dataset was added. |
time_deprecated | Indicates the timestamp for when the dataset was deprecated (if applicable). |
Key | Examples |
---|---|
pks or ids | [15111] |
[105645, 101678, 789] | |
reaction_texts | ['W+61 + H 1s -> W+60 + H+', 'W+62 + H 1s -> W+61 + H+'] |
['e- + LiH X(1SIGMA+g);v=0 -> LiH A(1SIGMA+g);v=10 + e-'] | |
reactant1 | 'e' or 'e-' |
reactant2 | 'H2' |
reactants | ['H', '(2H)2'] |
product1 | 'Li+' |
product2 | 'Be+2 1s.3s S=0' |
products | ['W+60 n=25', 'H+'] |
method | 'semi-empirical' |
'experiment' | |
process_types | ['HCX'] |
['EXE', 'EXV'] | |
data_type | 'cross section' |
'rate coefficient' | |
doi | '10.1088/1361-6455/ac22e1' |
evaluated | True |
valid_on | '2022-08-22' |
Abbreviation | Process Type | Total Number of Reactions | Number Involving Molecular Reactants |
---|---|---|---|
COM | Composite Process with Multiple Channels | 1107 | 1087 |
EDA | Dissociative Attachment | 93 | 93 |
EDE | Dissociative Excitation | 2380 | 2380 |
EDI | Dissociative Ionization | 1660 | 1660 |
EDR | Dissociative Recombination | 88 | 88 |
EDS | Dissociation | 110 | 110 |
EDT | Electron Detachment | 1 | 0 |
EDX | De-Excitation | 3 | 3 |
EEL | Elastic Scattering | 24 | 0 |
EEX | Excitation | 608 | 0 |
EIN | Ionization | 1964 | 1199 |
EMI | Multiple Ionization | 1 | 0 |
EMT | Momentum Transfer | 5 | 0 |
ERR | Radiative Recombination | 1053 | 0 |
ETS | Total Scattering | 1 | 0 |
EXE | Electronic Excitation | 63,724 | 63,724 |
EXV | Vibrational Excitation | 67,395 | 67,395 |
HAC | Association | 15 | 0 |
HCX | Charge Transfer | 27,812 | 730 |
HDC | Dissociative Charge Transfer | 85 | 86 |
HDE | Dissociative Excitation | 10 | 10 |
HDI | Dissociative Ionization | 39 | 39 |
HDS | Dissociation | 72 | 73 |
HDT | Detachment | 16 | 6 |
HDX | De-Excitation | 52 | 0 |
HES | Elastic Scattering | 76 | 51 |
HEX | Excitation | 565 | 12 |
HHT | Transport | 82 | 52 |
HIN | Ionization | 289 | 74 |
HIR | Interchange Reactions | 23 | 36 |
HMI | Multiple Ionization | 24 | 5 |
HMN | Mutual Ion-Ion Neutralization | 4 | 0 |
HMT | Momentum Transfer | 82 | 52 |
HPN | Penning Ionization | 2 | 0 |
HST | Electron Stripping | 83 | 17 |
HTI | Transfer Ionization | 2 | 2 |
HXE | Electronic Excitation | 3 | 3 |
HXV | Vibrational Excitation | 586 | 586 |
PED | Elastic Diffusion | 239 | 0 |
PES | Elastic Scattering | 239 | 0 |
PEX | Photoexcitation | 239 | 0 |
PIN | Photoionization | 7725 | 0 |
PRD | Radiative Decay | 600 | 600 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Hill, C.; Dipti; Heinola, K.; Haničinec, M. CollisionDB: A New Database of Atomic and Molecular Collisional Processes with an Interactive API. Atoms 2024, 12, 20. https://doi.org/10.3390/atoms12040020
Hill C, Dipti, Heinola K, Haničinec M. CollisionDB: A New Database of Atomic and Molecular Collisional Processes with an Interactive API. Atoms. 2024; 12(4):20. https://doi.org/10.3390/atoms12040020
Chicago/Turabian StyleHill, Christian, Dipti, Kalle Heinola, and Martin Haničinec. 2024. "CollisionDB: A New Database of Atomic and Molecular Collisional Processes with an Interactive API" Atoms 12, no. 4: 20. https://doi.org/10.3390/atoms12040020
APA StyleHill, C., Dipti, Heinola, K., & Haničinec, M. (2024). CollisionDB: A New Database of Atomic and Molecular Collisional Processes with an Interactive API. Atoms, 12(4), 20. https://doi.org/10.3390/atoms12040020