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.