Skip to content

Instantly share code, notes, and snippets.

@resnant
Created April 26, 2020 14:40
Show Gist options
  • Save resnant/fc9a4879c39b5982e58600dea75a3a34 to your computer and use it in GitHub Desktop.
Save resnant/fc9a4879c39b5982e58600dea75a3a34 to your computer and use it in GitHub Desktop.
XRD論文のレビュアー用コード
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Crystal structure classification using a machine learning model\n",
"_Wrote by Yuta Suzuki_\n",
"\n",
"In this notebook, you can see how to predict the crystal system and space group from the X-ray diffraction pattern. \n",
"Run the following cells to predict these with the trained model."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import sklearn\n",
"from sklearn import metrics\n",
"from sklearn.ensemble import ExtraTreesClassifier\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"random_state = 42"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.18.1\n",
"0.22.1\n"
]
}
],
"source": [
"print(np.__version__)\n",
"print(sklearn.__version__)"
]
},
{
"attachments": {
"example_xrd.png": {
"image/png": "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"
}
},
"cell_type": "markdown",
"metadata": {},
"source": [
"# Prediction\n",
"Here you can use our pre-trained ExtraTreesClassifier to predict space group and crystal system. \n",
"If you would predict with your XRD pattern, please provide a list of 10 peak positions from the lowest angle in $Q (Å^{-1})$ as `input_xrd_Q`. \n",
"\n",
"Example:\n",
"\n",
"<img src=\"example_xrd.png\" width=\"500\">\n",
"\n",
"In case of your XRD has less than 10 peaks, please fill with 0, like `[0.81, 0.92, 0.99, 0, 0, 0, 0, 0, 0, 0]`.\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"exrt_crystal_system = pd.read_pickle('trained_model/exrt_crystal_system.pkl')\n",
"exrt_sgr = pd.read_pickle('trained_model/exrt_sgr_full_model.pkl')\n",
"\n",
"# The original space group classifier requires a much RAM (at least 32 GB).\n",
"# If you encounter an issue about that, please use the small model.\n",
"# Note that when using the small model, the prediction performance will be slightly reduced\n",
"# because the original space group classifier consists of 200 trees, while the small model consists of 50 trees.\n",
"\n",
"# exrt_sgr = pd.read_pickle('trained_model/exrt_sgr_small_model.pkl')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Predicted crystal system: Orthorhombic\n",
"Predicted space group: [36]\n"
]
}
],
"source": [
"# preparing the data and prediction\n",
"\n",
"def twotheta_to_q(two_theta, wavelength = 1.54184):\n",
" \"\"\"\n",
" return q\n",
" \"\"\"\n",
" import numpy as np\n",
" q = 4*np.pi*(np.sin(np.deg2rad(two_theta/2)))/wavelength\n",
" return q\n",
"\n",
"# This XRD is taken from Table S3 in Park, W. B. et al. IUCrJ 4, 486–494 (2017).\n",
"# https://doi.org/10.1107/S205225251700714X\n",
"# The ground truth is orthorhombic system in the A21am (No. 36) space group.\n",
"input_xrd_2T =[13.188150, 16.194180, 16.761641, 18.773069, 19.228790, 23.013981, 25.197500, 25.270580, 26.545000, 26.581079]\n",
"\n",
"input_xrd_Q = np.array(list(map(twotheta_to_q, input_xrd_2T))) # 2theta in CuKa -> Q\n",
"# same as: \n",
"# input_xrd_Q = [ 0.93592846 1.14796946 1.18791312 1.32925651 1.36122475 1.62587152, 1.77774689 1.78281914 1.87115412 1.87365158]\n",
"\n",
"# prediction\n",
"classnames = ['Triclinic', 'Monoclinic', 'Orthorhombic', 'Tetragonal', 'Trigonal', 'Hexagonal', 'Cubic']\n",
"print('Predicted crystal system: ', classnames[exrt_crystal_system.predict(input_xrd_Q.reshape(1, -1))[0]])\n",
"print('Predicted space group: ', exrt_sgr.predict(input_xrd_Q.reshape(1, -1)))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 600x450 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Checking predicted top 10 candidates and probability.\n",
"\n",
"sg_pred_proba = exrt_sgr.predict_proba(input_xrd_Q.reshape(1, -1))\n",
"sgr_pred_top10_idx = np.argsort(-sg_pred_proba).squeeze()[:10]\n",
"\n",
"sgr_nums = pd.read_pickle('data/sgr_nums.pkl')\n",
"plt.figure(figsize=(4,3), dpi=150)\n",
"plt.barh(sgr_nums[sgr_pred_top10_idx].astype(str)[::-1], \n",
" sg_pred_proba[0, sgr_pred_top10_idx][::-1])\n",
"plt.xlabel(\"Probability\");\n",
"plt.ylabel(\"Space group\");\n",
"# plt.savefig(\"VO2_tetragonal_sgnum_proba.pdf\", bbox_inches = \"tight\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Training\n",
"\n",
"If you would train the classifier on your computer, please run following cells."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"train_data = pd.read_csv('data/train.csv')\n",
"test_data = pd.read_csv('data/test.csv')"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"data col: Index(['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'peaknum',\n",
" 'crystal_system', 'sg_num', 'q_1', 'q_2', 'q_3', 'q_4', 'q_5', 'q_6',\n",
" 'q_7', 'q_8', 'q_9', 'q_10'],\n",
" dtype='object')\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>7</th>\n",
" <th>8</th>\n",
" <th>9</th>\n",
" <th>10</th>\n",
" <th>...</th>\n",
" <th>q_1</th>\n",
" <th>q_2</th>\n",
" <th>q_3</th>\n",
" <th>q_4</th>\n",
" <th>q_5</th>\n",
" <th>q_6</th>\n",
" <th>q_7</th>\n",
" <th>q_8</th>\n",
" <th>q_9</th>\n",
" <th>q_10</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>12.800197</td>\n",
" <td>14.940639</td>\n",
" <td>17.394581</td>\n",
" <td>18.505399</td>\n",
" <td>18.670426</td>\n",
" <td>20.689381</td>\n",
" <td>20.721964</td>\n",
" <td>21.964808</td>\n",
" <td>23.583201</td>\n",
" <td>23.846828</td>\n",
" <td>...</td>\n",
" <td>0.908513</td>\n",
" <td>1.059634</td>\n",
" <td>1.232431</td>\n",
" <td>1.310470</td>\n",
" <td>1.322053</td>\n",
" <td>1.463536</td>\n",
" <td>1.465816</td>\n",
" <td>1.552683</td>\n",
" <td>1.665523</td>\n",
" <td>1.683873</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>16.166407</td>\n",
" <td>16.435808</td>\n",
" <td>20.174793</td>\n",
" <td>22.512152</td>\n",
" <td>23.360235</td>\n",
" <td>24.111671</td>\n",
" <td>25.403932</td>\n",
" <td>25.975734</td>\n",
" <td>26.334719</td>\n",
" <td>28.176936</td>\n",
" <td>...</td>\n",
" <td>1.146014</td>\n",
" <td>1.164981</td>\n",
" <td>1.427516</td>\n",
" <td>1.590881</td>\n",
" <td>1.649996</td>\n",
" <td>1.702299</td>\n",
" <td>1.792073</td>\n",
" <td>1.831724</td>\n",
" <td>1.856594</td>\n",
" <td>1.983930</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>14.330435</td>\n",
" <td>15.183582</td>\n",
" <td>16.201044</td>\n",
" <td>19.282158</td>\n",
" <td>20.098901</td>\n",
" <td>23.758891</td>\n",
" <td>23.918898</td>\n",
" <td>25.133432</td>\n",
" <td>25.831712</td>\n",
" <td>27.093006</td>\n",
" <td>...</td>\n",
" <td>1.016587</td>\n",
" <td>1.076764</td>\n",
" <td>1.148453</td>\n",
" <td>1.364967</td>\n",
" <td>1.422202</td>\n",
" <td>1.677753</td>\n",
" <td>1.688888</td>\n",
" <td>1.773300</td>\n",
" <td>1.821741</td>\n",
" <td>1.909068</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>8.402510</td>\n",
" <td>15.542676</td>\n",
" <td>16.850628</td>\n",
" <td>18.598695</td>\n",
" <td>20.147478</td>\n",
" <td>20.727534</td>\n",
" <td>21.372799</td>\n",
" <td>24.718322</td>\n",
" <td>25.392239</td>\n",
" <td>25.669955</td>\n",
" <td>...</td>\n",
" <td>0.597087</td>\n",
" <td>1.102075</td>\n",
" <td>1.194174</td>\n",
" <td>1.317019</td>\n",
" <td>1.425604</td>\n",
" <td>1.466205</td>\n",
" <td>1.511327</td>\n",
" <td>1.744471</td>\n",
" <td>1.791261</td>\n",
" <td>1.810526</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>12.409748</td>\n",
" <td>12.896543</td>\n",
" <td>14.923789</td>\n",
" <td>14.988381</td>\n",
" <td>16.557540</td>\n",
" <td>17.135276</td>\n",
" <td>17.988328</td>\n",
" <td>19.821608</td>\n",
" <td>19.853406</td>\n",
" <td>20.744413</td>\n",
" <td>...</td>\n",
" <td>0.880910</td>\n",
" <td>0.915322</td>\n",
" <td>1.058446</td>\n",
" <td>1.063001</td>\n",
" <td>1.173550</td>\n",
" <td>1.214197</td>\n",
" <td>1.274159</td>\n",
" <td>1.402778</td>\n",
" <td>1.405006</td>\n",
" <td>1.467386</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 23 columns</p>\n",
"</div>"
],
"text/plain": [
" 1 2 3 4 5 6 \\\n",
"0 12.800197 14.940639 17.394581 18.505399 18.670426 20.689381 \n",
"1 16.166407 16.435808 20.174793 22.512152 23.360235 24.111671 \n",
"2 14.330435 15.183582 16.201044 19.282158 20.098901 23.758891 \n",
"3 8.402510 15.542676 16.850628 18.598695 20.147478 20.727534 \n",
"4 12.409748 12.896543 14.923789 14.988381 16.557540 17.135276 \n",
"\n",
" 7 8 9 10 ... q_1 q_2 \\\n",
"0 20.721964 21.964808 23.583201 23.846828 ... 0.908513 1.059634 \n",
"1 25.403932 25.975734 26.334719 28.176936 ... 1.146014 1.164981 \n",
"2 23.918898 25.133432 25.831712 27.093006 ... 1.016587 1.076764 \n",
"3 21.372799 24.718322 25.392239 25.669955 ... 0.597087 1.102075 \n",
"4 17.988328 19.821608 19.853406 20.744413 ... 0.880910 0.915322 \n",
"\n",
" q_3 q_4 q_5 q_6 q_7 q_8 q_9 \\\n",
"0 1.232431 1.310470 1.322053 1.463536 1.465816 1.552683 1.665523 \n",
"1 1.427516 1.590881 1.649996 1.702299 1.792073 1.831724 1.856594 \n",
"2 1.148453 1.364967 1.422202 1.677753 1.688888 1.773300 1.821741 \n",
"3 1.194174 1.317019 1.425604 1.466205 1.511327 1.744471 1.791261 \n",
"4 1.058446 1.063001 1.173550 1.214197 1.274159 1.402778 1.405006 \n",
"\n",
" q_10 \n",
"0 1.683873 \n",
"1 1.983930 \n",
"2 1.909068 \n",
"3 1.810526 \n",
"4 1.467386 \n",
"\n",
"[5 rows x 23 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# The number 1 to 10 means the peak position in 2theta\n",
"print('data col: ', train_data.keys())\n",
"train_data.head()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"y_train_c_sys = train_data['crystal_system']\n",
"y_test_c_sys = test_data['crystal_system']\n",
"y_train_sgr = train_data['sg_num']\n",
"y_test_sgr = test_data['sg_num']\n",
"X_train = train_data[['q_{}'.format(i) for i in range(1, 11)]]\n",
"X_test = test_data[['q_{}'.format(i) for i in range(1, 11)]]\n",
"\n",
"# To reproduce the result in the article, please use 2theta and peaknum as the feature:\n",
"# X_train = train_data[[i for i in range(1, 11)] + ['peaknum']]\n",
"# X_test = test_data[[i for i in range(1, 11)] + ['peaknum']]\n",
"\n",
"classnames = ['Triclinic', 'Monoclinic', 'Orthorhombic', 'Tetragonal', 'Trigonal', 'Hexagonal', 'Cubic']\n",
"sgr_nums = np.array(list(set(y_train_sgr)))\n",
"# pd.to_pickle(sgr_nums, 'data/sgr_nums.pkl')"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"mean accuracy of crystal system prediction: 90.17756360163237\n"
]
}
],
"source": [
"# training crystal system classifier\n",
"exrt_crystal_system = ExtraTreesClassifier(n_estimators=500, \n",
" max_depth=30, \n",
" max_features=9, \n",
" n_jobs=-1, \n",
" random_state=random_state,\n",
" warm_start=False)\n",
"exrt_crystal_system.fit(X_train, y_train_c_sys)\n",
"\n",
"# validation\n",
"y_pred = exrt_crystal_system.predict(X_test)\n",
"print('mean accuracy of crystal system prediction: ', metrics.accuracy_score(y_test_c_sys, y_pred)*100)\n",
"\n",
"# pd.to_pickle(exrt_crystal_system, 'trained_model/exrt_crystal_system.pkl')"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"mean accuracy of space group prediction: 78.35590865676826\n"
]
}
],
"source": [
"# train space group classifier (full model, which is used in the article)\n",
"exrt_sgr = ExtraTreesClassifier(n_estimators=200, n_jobs=-1, max_depth=25, max_features=None, random_state=random_state)\n",
"exrt_sgr.fit(X_train, y_train_sgr)\n",
"\n",
"# validation\n",
"y_pred = exrt_sgr.predict(X_test)\n",
"print('mean accuracy of space group prediction: ', metrics.accuracy_score(y_test_sgr, y_pred)*100)\n",
"\n",
"# pd.to_pickle(exrt_sgr, 'trained_model/exrt_sgr.pkl')"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"mean accuracy of space group prediction: 78.0910827472432\n"
]
}
],
"source": [
"# train space group classifier (small model)\n",
"\n",
"exrt_sgr_small = ExtraTreesClassifier(n_estimators=50, n_jobs=-1, max_depth=25, max_features=None, random_state=random_state)\n",
"exrt_sgr_small.fit(X_train, y_train_sgr)\n",
"y_pred = exrt_sgr_small.predict(X_test)\n",
"print('mean accuracy of space group prediction: ', metrics.accuracy_score(y_test_sgr, y_pred)*100)\n",
"\n",
"# pd.to_pickle(exrt_sgr_small, 'trained_model/exrt_sgr_small_model.pkl')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment