Atomic Mass Evaluation (2016)

Loading the Atomic Mass Evaluation 2016 (AME2016) is easy withNucML. The AME2016 library is originally split into three tables:

  • mass16

  • rct1-16

  • rct2-16

For information on the contents including units and calculation methods please refer to the AME2016 website here.

Original AME Tables

To load any of these tables simply start by importing the nucml.datasets module:

[2]:
# # Prototype
# import sys
# sys.path.append("../..")
[1]:
import nucml.datasets as nuc_data

The mass16 table contains precise atomic masses, mass excess information, the binding energy per nucleon, and the beta decay energy. As a table id, NucML added the Element_w_A feature so that joining with other tables is easier. Let us load and print the first few rows of the mass16 table:

[3]:
mass16 = nuc_data.load_ame(file="mass16")
mass16.head()
INFO:root:AME: Reading and loading the Atomic Mass Evaluation file from:
 C:/Users/Pedro/Desktop/ML_Nuclear_Data/AME/CSV_Files\AME_mass16.csv
[3]:
N Z A EL O Mass_Excess dMass_Excess Binding_Energy dBinding_Energy B_Decay_Energy dB_Decay_Energy Atomic_Mass_Micro dAtomic_Mass_Micro Element_w_A
0 1 0 1 n Other 8071.31713 0.00046 0.000 0.0 782.347 0.0 1.008665e+06 0.00049 1n
1 0 1 1 H Other 7288.97061 0.00009 0.000 0.0 NaN NaN 1.007825e+06 0.00009 1H
2 1 1 2 H Other 13135.72176 0.00011 1112.283 0.0 NaN NaN 2.014102e+06 0.00012 2H
3 2 1 3 H Other 14949.80993 0.00022 2827.265 0.0 18.592 0.0 3.016049e+06 0.00023 3H
4 1 2 3 He Other 14931.21793 0.00021 2572.680 0.0 -13736.000 2000.0 3.016029e+06 0.00022 3He

Similarly, we can load the rct1 and rct2 table.

[4]:
rct1 = nuc_data.load_ame(file="rct1")
rct1.head()
INFO:root:AME: Reading and loading the Atomic Mass Evaluation file from:
 C:/Users/Pedro/Desktop/ML_Nuclear_Data/AME/CSV_Files\AME_rct1.csv
[4]:
S(2n) dS(2n) S(2p) dS(2p) Q(a) dQ(a) Q(2B-) dQ(2B-) Q(ep) dQ(ep) Q(B-n) dQ(B-n) Element_w_A
0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 1n
1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 1H
2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2H
3 8481.79 0.0 NaN NaN NaN NaN -13717.0 2000.0 NaN NaN NaN NaN 3H
4 NaN NaN 7718.04 0.0 NaN NaN NaN NaN NaN NaN NaN NaN 3He
[5]:
rct2 = nuc_data.load_ame(file="rct2")
rct2.head()
INFO:root:AME: Reading and loading the Atomic Mass Evaluation file from:
 C:/Users/Pedro/Desktop/ML_Nuclear_Data/AME/CSV_Files\AME_rct2.csv
[5]:
S(n) dS(n) S(p) dS(p) Q(4B-) dQ(4B-) Q(d,a) dQ(d,a) Q(p,a) dQ(p,a) Q(n,a) dQ(n,a) Element_w_A
0 0.00 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 1n
1 NaN NaN 0.00 0.0 NaN NaN NaN NaN NaN NaN NaN NaN 1H
2 2224.57 0.0 2224.57 0.0 NaN NaN 23846.53 0.0 NaN NaN NaN NaN 2H
3 6257.23 0.0 NaN NaN NaN NaN 17589.30 0.0 19813.86 0.0 NaN NaN 3H
4 NaN NaN 5493.47 0.0 NaN NaN 18353.05 0.0 NaN NaN 20577.62 0.0 3He

You can join all tables using the Element_w_A feature or you can simply use the nuc_data module to load the merged file:

[6]:
ame = nuc_data.load_ame(file="merged")
ame.head()
INFO:root:AME: Reading and loading Atomic Mass Evaluation files from:
 C:/Users/Pedro/Desktop/ML_Nuclear_Data/AME/CSV_Files\AME_all_merged.csv
[6]:
N Z A EL O Mass_Excess dMass_Excess Binding_Energy dBinding_Energy B_Decay_Energy ... Q(n,np) Q(n,d) Q(n,2n) Q(n,t) Q(n,3He) Q(d,t) Q(d,3He) Q(3He,t) Q(3He,a) Q(t,a)
0 1 0 1 n Other 8071.31713 0.00046 0.000 0.0 782.347 ... NaN NaN -0.00 NaN NaN 6257.229 NaN 763.755 20577.6194 NaN
1 0 1 1 H Other 7288.97061 0.00009 0.000 0.0 NaN ... -0.00 2224.566 NaN NaN NaN NaN 5493.4744 NaN NaN 19813.8649
2 1 1 2 H Other 13135.72176 0.00011 1112.283 0.0 NaN ... -2224.57 -0.004 -2224.57 6257.2311 NaN 4032.659 3268.9044 NaN 18353.0494 17589.2949
3 2 1 3 H Other 14949.80993 0.00022 2827.265 0.0 18.592 ... NaN NaN -6257.23 0.0011 NaN -0.001 NaN 0.000 14320.3894 NaN
4 1 2 3 He Other 14931.21793 0.00021 2572.680 0.0 -13736.000 ... -5493.47 -3268.904 NaN 763.7511 0.0004 NaN 0.0044 -13754.592 NaN 14320.3949

5 rows × 65 columns

Processed AME Tables

In later sections, you will learn that the EXFOR database by itself does not contain many features for an ML model to use. The AME database contains a lot of useful information about every isotope that could potentially be useful if joined with EXFOR. Before doing this we need to bring the AME tables into an acceptable state.

There are many missing values in the table. When preparing a dataset for ML there are a couple of strategies to deal with this. You can simply drop all rows with missing values but this means a big loss of information. Another option is filling the values with the mean of the features in the dataset. This latter option does not take into account the nature of the database.

While you can personally start preparing and manipulating the AME tables, NucML offers a set of preprocessed files that are ready to use. Let us explore those.

[7]:
ame_imputed = nuc_data.load_ame(imputed_nan=True, file="merged")
ame_imputed.head()
INFO:root:AME: Reading and loading Atomic Mass Evaluation files from:
 C:/Users/Pedro/Desktop/ML_Nuclear_Data/AME/CSV_Files\AME_all_merged_no_NaN.csv
[7]:
N Z A EL O Mass_Excess dMass_Excess Binding_Energy dBinding_Energy B_Decay_Energy ... Q(n,np) Q(n,d) Q(n,2n) Q(n,t) Q(n,3He) Q(d,t) Q(d,3He) Q(3He,t) Q(3He,a) Q(t,a)
0 1 0 1 n Other 8071.31713 0.00046 0.000 0.0 782.347000 ... 2224.150559 4448.716559 -0.000000 2086.042238 -58069.878992 6257.229000 7717.624959 763.755000 20577.61940 22038.015459
1 0 1 1 H Other 7288.97061 0.00009 0.000 0.0 -1025.364331 ... -0.000000 2224.566000 -3814.015333 4171.487739 -43552.362241 2443.213754 5493.474400 -1043.956338 16763.60400 19813.864900
2 1 1 2 H Other 13135.72176 0.00011 1112.283 0.0 3792.058759 ... -2224.570000 -0.004000 -2224.570000 6257.231100 -29034.845490 4032.659000 3268.904400 3773.466748 18353.04940 17589.294900
3 2 1 3 H Other 14949.80993 0.00022 2827.265 0.0 18.592000 ... -2224.570000 -0.004000 -6257.230000 0.001100 -14517.328738 -0.001000 3268.904400 0.000000 14320.38940 17589.294900
4 1 2 3 He Other 14931.21793 0.00021 2572.680 0.0 -13736.000000 ... -5493.470000 -3268.904000 -12107.357125 763.751100 0.000400 -5850.128069 0.004400 -13754.592000 8470.26224 14320.394900

5 rows × 65 columns

The imputed_nan option allows you to load the imputed AME table. This file was created by using linear interpolation feature-wise. For isotopes that do not have enough information, the mean of the feature is used to fill the values.

The EXFOR database contains many experimental campaigns performed on natural targets. The AME database does not contain any information on natural data understandably. NucML offers two AME tables with natural data, one imputed and one raw. You can load them using:

[8]:
ame_natural = nuc_data.load_ame(natural=True, file="merged")
ame_natural.head()
INFO:root:AME: Reading and loading Atomic Mass Evaluation files from:
 C:/Users/Pedro/Desktop/ML_Nuclear_Data/AME/CSV_Files\AME_Natural_Properties_w_NaN.csv
[8]:
N Z A EL O Mass_Excess dMass_Excess Binding_Energy dBinding_Energy B_Decay_Energy ... Q(n,t) Q(n,3He) Q(d,t) Q(d,3He) Q(3He,t) Q(3He,a) Q(t,a) Neutrons Mass_Number Flag
0 1 0 1 n Other 8071.31713 0.00046 0.000 0.000 782.347 ... NaN NaN 6257.229 NaN 763.755 20577.6194 NaN 1 1 I
1 6 1 7 H -nn 49135.00000 1004.00000 940.000 143.000 23062.000 ... NaN NaN 5445.229 NaN 23043.408 19765.6194 NaN 6 7 I
2 5 1 6 H -3n 41875.72100 254.12700 961.639 42.354 24283.626 ... NaN NaN 7169.189 NaN 24265.034 21489.5794 NaN 5 6 I
3 4 1 5 H -nn 32892.44400 89.44300 1336.359 17.889 21661.211 ... NaN NaN 6457.229 NaN 21642.619 20777.6194 NaN 4 5 I
4 3 1 4 H -n 24621.12700 100.00000 1720.449 25.000 22196.211 ... NaN NaN 7857.229 NaN 22177.619 22177.6194 NaN 3 4 I

5 rows × 67 columns

[9]:
ame_natural_imputed = nuc_data.load_ame(imputed_nan=True, natural=True, file="merged")
ame_natural_imputed.head()
INFO:root:AME: Reading and loading Atomic Mass Evaluation files from:
 C:/Users/Pedro/Desktop/ML_Nuclear_Data/AME/CSV_Files\AME_Natural_Properties_no_NaN.csv
[9]:
N Z A EL O Mass_Excess dMass_Excess Binding_Energy dBinding_Energy B_Decay_Energy ... Q(n,t) Q(n,3He) Q(d,t) Q(d,3He) Q(3He,t) Q(3He,a) Q(t,a) Neutrons Mass_Number Flag
0 1 0 1 n Other 8071.317130 0.000460 0.000000 0.000000 782.347000 ... 0.000000 0.0 6257.229000 0.00000 763.755000 20577.619400 0.000000 1 1 I
1 0 1 1 H Other -2437.418042 -308.875124 1124.312708 -43.336286 -5842.787372 ... 5065.377773 0.0 1666.915910 4540.08726 -5861.379204 15987.306327 18860.477844 -1 0 N
2 0 1 1 H Other 7288.970610 0.000090 0.000000 0.000000 -1025.364293 ... 4171.487772 0.0 2443.213634 5493.47440 -1043.956164 16763.604053 19813.864900 0 1 I
3 1 1 2 H Other 13135.721760 0.000110 1112.283000 0.000000 3792.058787 ... 6257.231100 0.0 4032.659000 3268.90440 3773.466876 18353.049400 17589.294900 1 2 I
4 2 1 3 H Other 14949.809930 0.000220 2827.265000 0.000000 18.592000 ... 0.001100 0.0 -0.001000 3268.90440 0.000000 14320.389400 17589.294900 2 3 I

5 rows × 67 columns

These tables are offered for you to get started and no guarantees are made. It is your responsibility to check the consistency and if needed create a new version of the table. We welcome collaboration so feel free to contribute by opening up a pull request.