張作恒 周蕾蕾 何思淵 李 艷 馬寶財(cái) 顧 寧
(1東南大學(xué)生物科學(xué)與醫(yī)學(xué)工程學(xué)院, 南京 210096)(2南京市第一醫(yī)院醫(yī)學(xué)影像科, 南京 210006)
分子動(dòng)力學(xué)模擬將微觀行為與宏觀特性聯(lián)系起來, 是研究晶體合成過程的必要工具.在晶體合成過程中,晶核的形成、生長以及特定條件下晶體的相變,均與局部原子/離子的空間排布直接相關(guān).識(shí)別模擬體系中局部結(jié)構(gòu)的動(dòng)態(tài)變化是關(guān)鍵的科學(xué)問題.然而,從龐大的模擬數(shù)據(jù)中準(zhǔn)確識(shí)別出特定結(jié)構(gòu)的方法卻鮮有報(bào)道.
目前,常用的局部結(jié)構(gòu)識(shí)別算法包括共近鄰原子分析法(CNA)[1]與多面體模板匹配法(PTM)[2].這2種算法已被作為程序模塊集成在Lammps軟件中[3],能夠直接識(shí)別出面心立方(fcc)、密排六方(hcp)、體心立方(bcc)等簡單晶體結(jié)構(gòu),但無法直接對剛玉、反尖晶石等較為復(fù)雜的晶體類型進(jìn)行結(jié)構(gòu)分類.復(fù)雜體系常用分析方法有2種:① 人工直接觀察分析[4],但由于體系中離子相互遮擋,體系較大時(shí)則無法采用該方法;② 基于統(tǒng)計(jì)學(xué)定義相關(guān)結(jié)構(gòu)表征參數(shù)[5],該方法計(jì)算簡單,但無法進(jìn)行目標(biāo)結(jié)構(gòu)的勾畫.文獻(xiàn)[6]提出了一種基于深度學(xué)習(xí)的局部結(jié)構(gòu)識(shí)別算法,但在實(shí)際應(yīng)用中需針對特定結(jié)構(gòu)訓(xùn)練網(wǎng)絡(luò).因此,準(zhǔn)確識(shí)別排列方式復(fù)雜的局部晶體結(jié)構(gòu),已成為分子動(dòng)力學(xué)模擬中亟待解決的問題.
鑒于此,本文提出了一種基于多種群差分進(jìn)化算法的分子動(dòng)力學(xué)模擬體系中局部晶體結(jié)構(gòu)的識(shí)別算法.該算法以一種晶體結(jié)構(gòu)作為模板,結(jié)合模擬體系的幾何結(jié)構(gòu)與拓?fù)浣Y(jié)構(gòu),定義了用于表示模擬體系的局部區(qū)域與模板間重合度的目標(biāo)函數(shù).然后,利用多種群差分進(jìn)化算法,搜索出目標(biāo)函數(shù)最大時(shí)的平移距離與旋轉(zhuǎn)角度,進(jìn)而識(shí)別出模擬體系的局部區(qū)域中所有符合晶體有序排布的原子/離子.最后,采用所提算法對Al、Mg、Fe原子分別構(gòu)成的3種金屬單質(zhì)聚集體以及4種鐵的氧化物、氫氧化物、羥基氧化物進(jìn)行結(jié)構(gòu)識(shí)別.
從模擬體系點(diǎn)集P={p1,p2,…,pN}中識(shí)別排列方式符合晶體結(jié)構(gòu)(點(diǎn)集Q={q1,q2,…,qM})原子/離子的過程,可視為結(jié)構(gòu)的相似度比對匹配過程.通過平移與旋轉(zhuǎn)2種空間變換操作,使模擬體系能夠最大程度地與晶體結(jié)構(gòu)相重合.
在模擬體系點(diǎn)集P中指定一點(diǎn)po,將模擬體系中每個(gè)點(diǎn)pi以向量-po平移,使得點(diǎn)po與三維空間坐標(biāo)原點(diǎn)重合.同時(shí),po也作為平移后模擬體系的旋轉(zhuǎn)中心,將整個(gè)模擬體系按照x、y、z三個(gè)方向先后旋轉(zhuǎn)θx、θy、θz,得到變換后的點(diǎn)p′i,即
p′i=RzRyRx(pi-po) 1≤i≤N,po∈P
(1)
在點(diǎn)集P中選擇一個(gè)與點(diǎn)po所對應(yīng)原子/離子類型相同的點(diǎn)qo,將晶體點(diǎn)集中每個(gè)點(diǎn)qj以向量-qo平移,得到變換后的晶體結(jié)構(gòu)點(diǎn)q′j,此時(shí)點(diǎn)qo也與三維空間坐標(biāo)原點(diǎn)重合,即
q′j=qj-qo1≤j≤M,qo∈Q
(2)
式中,點(diǎn)p′i和點(diǎn)q′j分別構(gòu)成空間變換后的新點(diǎn)集P′={p′1,p′2,…,p′N}和Q′={q′1,q′2,…,q′M}.
兩點(diǎn)集間的幾何相似度常以基于歐氏距離的均方根誤差表示.定義點(diǎn)集Q′中距離點(diǎn)p′i最近的點(diǎn)為與點(diǎn)p′i相對應(yīng)的點(diǎn)q′i,即
(3)
定義函數(shù)h(p′i,q′i)來判定模擬體系點(diǎn)集P′中的點(diǎn)與晶體結(jié)構(gòu)點(diǎn)集Q′中相對應(yīng)的點(diǎn)是否重合,即
(4)
式中,δ為閾值參數(shù).
當(dāng)點(diǎn)p′i與點(diǎn)q′i的偏差值不大于閾值參數(shù)δ時(shí),認(rèn)為模擬體系中點(diǎn)p′i和晶體結(jié)構(gòu)中點(diǎn)q′i基本重合.通過設(shè)置閾值參數(shù)δ來修正輕微熱運(yùn)動(dòng)對結(jié)構(gòu)的影響,通常將其設(shè)為配位鍵長的10%~50%.
以晶體結(jié)構(gòu)排布的原子/離子一般集中在局部范圍,為了防止模擬體系中其他區(qū)域的原子/離子排布對識(shí)別結(jié)果產(chǎn)生影響,需要將模擬體系中的原子分割為若干子集分別進(jìn)行比對.根據(jù)原子/離子間的拓?fù)浣Y(jié)構(gòu)判定其所屬的局部區(qū)域,識(shí)別出屬于同一區(qū)域且與晶體結(jié)構(gòu)點(diǎn)集重合的點(diǎn).因此,將模擬體系視為無向圖G(P′,E),其頂點(diǎn)集合即為點(diǎn)集P′,邊與點(diǎn)集P′和Q′的相似度以及點(diǎn)集P′代表的原子/離子配位情況相關(guān),即E={ei,j|h(p′i,q′i)=1,h(p′j,q′j)=1,且p′i與p′j間存在配位鍵/共價(jià)鍵}.在確定無向圖中的頂點(diǎn)與邊的基礎(chǔ)上,采用并查集算法[7]分析該無向圖的連通性.
點(diǎn)p′o與點(diǎn)q′o分別為點(diǎn)集P′和點(diǎn)集Q′的三維空間坐標(biāo)原點(diǎn),即p′o與q′o完全重合,因此僅考慮與點(diǎn)p′o處于同一局部區(qū)域的原子/離子排布情況即可.點(diǎn)p′i與點(diǎn)p′o是否存在路徑相連通可表示為
(5)
則模擬體系P′中與點(diǎn)p′o處于同一區(qū)域且符合晶體結(jié)構(gòu)的原子/離子數(shù)量為
(6)
模擬體系中局部區(qū)域與晶體結(jié)構(gòu)間重合度的目標(biāo)函數(shù)為
(7)
由此可知,識(shí)別到的符合晶體結(jié)構(gòu)排布的原子/離子數(shù)越多,相應(yīng)原子/離子的均方根誤差越小,則當(dāng)前空間變換操作更為合理.
不同晶胞中同一位置的原子/離子具有等效性.為了減少搜索空間,將目標(biāo)函數(shù)中的點(diǎn)qo替換為一個(gè)晶胞中與點(diǎn)po所代表的原子/離子類型相同的索引I,則
(8)
選用由Storn等[8]提出的基于種群的差分進(jìn)化算法,求解式(8).該算法主要包含種群初始化、種群適應(yīng)度評估、變異操作、交叉操作、選擇操作5個(gè)部分.
目標(biāo)函數(shù)中的4個(gè)參數(shù)可被視為一個(gè)四維向量X={I,θx,θy,θz}.其中,I取為[1,m]范圍內(nèi)的整數(shù),m為晶胞中與點(diǎn)po所表示原子/離子類型相同的原子數(shù)目;θx,θy,θz取為[0,2π)間的實(shí)數(shù).
種群初始化是在整個(gè)參數(shù)空間中生成NP=1 200個(gè)X向量構(gòu)成的初始種群.初始種群中第t個(gè)個(gè)體表示為
Xt,0={It,0,θxt,0,θyt,0,θzt,0}t=1,2,…,NP
(9)
It,0=1+mrand(0,1)θxt,0,θyt,0,θzi,0=2πrand(0,1)
式中,隨機(jī)數(shù)生成函數(shù)rand(0,1)表示在[0,1)之間生成一個(gè)均勻分布的隨機(jī)數(shù).若I不為整數(shù),則對其向下取整.
將第G代所有個(gè)體依次代入目標(biāo)函數(shù)中,計(jì)算目標(biāo)函數(shù)值f(Xt,G)并將其作為適應(yīng)度.在此之前,需對向量X中的4個(gè)參數(shù)進(jìn)行預(yù)處理.旋轉(zhuǎn)角度具有周期性,若θx、θy、θz超過[0,2π)的范圍,則需按照下式將其映射在[0,2π)的范圍:
θ=θ-2kπk∈{…,-2,-1,0,1,2,…}, 0≤θ-2kπ<2π
(10)
采用下式將I映射為[1,m]范圍內(nèi)的整數(shù):
I=I-kmk∈{…,-2,-1,0,1,2,…}, 1≤I-km≤m
(11)
為結(jié)合多種變異策略的優(yōu)勢,采用多種群差分進(jìn)化算法[9].每次迭代更新時(shí),將種群隨機(jī)劃分為3個(gè)大小相等的子種群,各子種群采用不同的變異策略.第1個(gè)子種群采用DE/rand/1變異策略,即
Vt,G=Xr1,G+F(Xr2,G-Xr3,G)
(12)
第2個(gè)子種群采用DE/best/2變異策略,即
Vt,G=Xbest,G+F(Xr1,G-Xr2,G)+F(Xr3,G-Xr4,G)
(13)
第3個(gè)子種群采用DE/rand-to-best/1變異策略,即
Vt,G=Xi,G+F(Xbest,G-Xi,G)+F(Xr1,G-Xr2,G)
(14)
式中,Vt,G為第G代變異得到的新個(gè)體;Xr1,G、Xr2,G、Xr3,G、Xr4,G為從各子種群中隨機(jī)選取的4個(gè)個(gè)體;下標(biāo)t,r1、r2、r3、r4為向量索引值,且t≠r1≠r2≠r3≠r4;Xbest,G為第G代種群中的最優(yōu)個(gè)體;F為縮放因子,本文中由均值為0.9、標(biāo)準(zhǔn)差為0.2的正態(tài)分布產(chǎn)生,被截?cái)嘣赱0.75, 1.25]范圍內(nèi)[10-11].此外,每次迭代結(jié)束后,重新對所有個(gè)體進(jìn)行隨機(jī)分組.
差分進(jìn)化算法還引入了交叉操作,即將差分變異后的向量與上一代向量進(jìn)行交叉,得到新的向量Ut,G.向量第s維度的數(shù)值ut,s,G為
(15)
式中,CR為交叉操作參數(shù),本文中由均值為0.5、標(biāo)準(zhǔn)差為0.2的正態(tài)分布產(chǎn)生,被截?cái)嘣赱0.1, 0.9]范圍內(nèi)[11];srand為[1,4]內(nèi)的隨機(jī)整數(shù),用于確保交叉操作后的向量中存在元素來自變異向量,避免算法停滯.
DE算法采用貪婪選擇策略,即將本次迭代新生成向量的適應(yīng)度與上一代向量的適應(yīng)度進(jìn)行逐一對比.若新生成向量Ut,G擁有更高的適應(yīng)度,則該向量取代上一代向量進(jìn)入后續(xù)迭代,否則繼續(xù)保留上一代向量Xt,G,即
(16)
利用本文算法分別對多種金屬單質(zhì)聚集體和金屬化合物聚集體進(jìn)行識(shí)別,以驗(yàn)證所提方法.金屬單質(zhì)聚集體選用fcc結(jié)構(gòu)的Al[12]、hcp結(jié)構(gòu)的Mg[13]和bcc結(jié)構(gòu)的Fe[14],其原子數(shù)分別為2 916、4 860、3 456.由于鐵的化合物結(jié)構(gòu)多樣,截取鐵的氧化物、羥基氧化物、氫氧化物晶體作為金屬化合物聚集體,即α-Fe2O3[15]→2 880 Fe3++4 320 O2-,F(xiàn)e3O4[16]→ 2 000 Fe3++1 000 Fe2++4 000 O2-,α-FeOOH[17]→ 2 496 Fe3++2 496 O2-+2 496 OH-,F(xiàn)e(OH)2[18]→ 3 024 Fe2++6 048 OH-.
采用Lammps(version 22 Aug 2018)軟件包實(shí)現(xiàn)模擬[3].體系耦合了恒溫恒體積的NVT系綜,溫度通過Nose-Hoover恒溫器控制.模擬體系的盒子尺寸比截?cái)嗪蟮木w塊尺寸大4 nm,以確保體系中任何離子都不會(huì)受到周期性擴(kuò)展離子的影響.
對于金屬單質(zhì)模擬體系,選擇EAM勢作為力場參數(shù)[19-21].時(shí)間步長設(shè)為1 fs.Al、Mg和Fe體系能量最小化后,先分別在1 000、 600、1 050 K高溫下進(jìn)行50 ps的模擬,再在300 K下進(jìn)行300 ps的模擬.圖1給出了弛豫后的金屬原子聚集體結(jié)構(gòu),其初始晶體結(jié)構(gòu)扭曲為多個(gè)長程有序區(qū)域組成的多晶結(jié)構(gòu).選擇每個(gè)區(qū)域的中心原子為點(diǎn)po,尋找與該點(diǎn)屬于同一區(qū)域的局部晶體結(jié)構(gòu).Al與Mg聚集體閾值參數(shù)δ設(shè)為0.075 nm,F(xiàn)e聚集體閾值參數(shù)δ設(shè)為0.05 nm.
(a) 2 916個(gè)Al原子聚集體
(b) 4 860個(gè)Mg原子聚集體
(c) 3 456個(gè)Fe原子聚集體
對于鐵的化合物模擬體系,選擇Coulombic-Buckingham勢作為力場參數(shù)[22].其中,非化學(xué)鍵相互作用的截?cái)嗑嚯x設(shè)為1.5 nm.時(shí)間步長設(shè)為0.5 fs.每個(gè)離子聚集體能量最小化后,在300 K溫度下進(jìn)行50 ps的模擬,結(jié)果見圖2.由圖可知,弛豫后的離子聚集體表面會(huì)因欠配位而產(chǎn)生結(jié)構(gòu)扭曲,但其內(nèi)部仍存在與晶體類似的有序結(jié)構(gòu).選擇每個(gè)聚集體中心的離子為點(diǎn)po,尋找與該點(diǎn)屬于同一區(qū)域的局部晶體結(jié)構(gòu).2 880 Fe3++ 4 320 O2-聚集體、2 000 Fe3++ 1 000 Fe2++ 4 000 O2-聚集體與3 024 Fe2++ 6 048 OH-聚集體的閾值參數(shù)設(shè)為0.05 nm,2 496 Fe3++ 2 496 O2-+ 2 496 OH-聚集體的閾值參數(shù)設(shè)為0.075 nm.
對Al、Mg、Fe構(gòu)成的3種金屬單質(zhì)聚集體,分別采用CNA算法、PTM算法以及本文算法進(jìn)行結(jié)構(gòu)識(shí)別,結(jié)果見圖3.CNA算法中,Al、Mg、Fe聚集體的截?cái)喟霃椒謩e為0.345 7、0.387 0、0.346 4 nm,PTM算法中閾值均設(shè)為0.015 nm.由圖可知,3種算法得到的結(jié)果基本一致.由于CNA算法與PTM算法均基于原子周圍配位情況來判定結(jié)構(gòu)類型,處于聚集體表面或不同取向晶體結(jié)構(gòu)交界處的原子即使呈明顯長程有序排布,仍無法被認(rèn)定為相應(yīng)晶體結(jié)構(gòu).本文算法能直接比較聚集體中的原子與給定晶體結(jié)構(gòu)的相似性,因此可識(shí)別出更多的邊界原子.此外,本文算法還包含了對連通域的計(jì)算,可將聚集體直接分割為多個(gè)獨(dú)立的晶體區(qū)域.相互獨(dú)立的晶體區(qū)域通過顏色進(jìn)行區(qū)分;在同一區(qū)域中,原子的排布方式及取向均相同.
(a) 2 880 Fe3+ + 4 320 O2-聚集體
(b) 2 000 Fe3+ + 1 000 Fe2+ + 4 000 O2-聚集體
(c) 2 496 Fe3+ + 2 496 O2- + 2 496 OH-聚集體
(d) 3 024 Fe2+ + 6048 OH-聚集體
(a) 2 916個(gè)Al原子聚集體
(b) 4 860個(gè)Mg原子聚集體
(c) 3 456個(gè)Fe原子聚集體
在對2 880 Fe3++4 320 O2-聚集體、2 000 Fe3++ 1 000 Fe2++ 4 000 O2-聚集體、2 496 Fe3++ 2 496 O2-+ 2 496 OH-聚集體與3 024 Fe2++ 6 048 OH-聚集體的局部有序結(jié)構(gòu)識(shí)別中,種群平均適應(yīng)度與最優(yōu)個(gè)體適應(yīng)度隨迭代次數(shù)的變化曲線見圖4.由圖可知,最優(yōu)個(gè)體適應(yīng)度呈階躍上升,這是因?yàn)橹挥挟?dāng)新產(chǎn)生的個(gè)體比上一代最優(yōu)個(gè)體更優(yōu)時(shí),最優(yōu)個(gè)體適應(yīng)度才可能顯著提升.在迭代初期,最優(yōu)個(gè)體的更新頻率與適應(yīng)度提升幅值均較高;隨著迭代次數(shù)的增加,更新頻率與提升幅值逐漸減少,最終最優(yōu)個(gè)體的適應(yīng)度曲線趨于水平.鑒于初始產(chǎn)生個(gè)體的隨機(jī)性,進(jìn)化方向尚未明確,因此在迭代初期,平均適應(yīng)度曲線上升較為平緩.隨著迭代次數(shù)的增加,較優(yōu)個(gè)體的主導(dǎo)作用逐漸顯現(xiàn),平均適應(yīng)度曲線逐漸陡峭.最終,種群的平均適應(yīng)度逼近最優(yōu)個(gè)體適應(yīng)度,表明多種群差分進(jìn)化算法在解決本文提出的目標(biāo)函數(shù)最大化問題上是收斂的.
4個(gè)離子聚集體的識(shí)別結(jié)果見圖5.將算法識(shí)別出的離子標(biāo)記為大尺寸顆粒.整體而言,使用大尺寸顆粒標(biāo)記的離子排列方式與其對應(yīng)的晶體結(jié)構(gòu)相似,使用小尺寸顆粒表示的離子則呈現(xiàn)出明顯無序的排布.此外,算法識(shí)別出的局部有序結(jié)構(gòu)的范圍略大于人工框選出的范圍,這是因?yàn)樵诰奂w較為無序的表面附近,仍可能存在排列方式與晶體結(jié)構(gòu)相似的少量離子,該算法可以同樣對其進(jìn)行識(shí)別.
上述結(jié)果驗(yàn)證了本文算法的有效性.在數(shù)次迭代后,該算法不僅能夠從模擬體系中識(shí)別出fcc、hcp、bcc等簡單晶體結(jié)構(gòu),得到與CNA、PTM經(jīng)典算法相似的結(jié)果,也可識(shí)別出排布較為復(fù)雜的晶體結(jié)構(gòu),如鐵的氧化物、羥基氧化物、氫氧化物.此外,該算法是基于模擬體系與晶體結(jié)構(gòu)相似性進(jìn)行比對的,故僅提供用于比對的晶體文件即可,無需對數(shù)據(jù)進(jìn)行預(yù)處理或預(yù)訓(xùn)練.
(a) 2 880 Fe3+ + 4 320 O2-聚集體
(b) 2 000 Fe3+ + 1 000 Fe2+ + 4 000 O2-聚集體
(c) 2 496 Fe3+ + 2 496 O2- + 2 496 OH-聚集體
1) 結(jié)合模擬體系的幾何結(jié)構(gòu)與拓?fù)浣Y(jié)構(gòu)定義目標(biāo)函數(shù),用于表征模擬體系與模板間重合度.通過多種群差分進(jìn)化算法,搜索出目標(biāo)函數(shù)最大時(shí)的平移距離與旋轉(zhuǎn)角度,從而確定模擬體系中排列方式與晶體結(jié)構(gòu)相似的原子/離子.
2) 采用本文算法,對由Al、Mg、Fe原子分別
(b) 2 000 Fe3+ + 1 000 Fe2+ + 4 000 O2-聚集體
(c) 2 496 Fe3+ + 2 496 O2- + 2 496 OH-聚集體
(d) 3 024 Fe2+ + 6 048 OH-聚集體
構(gòu)成的3種金屬單質(zhì)聚集體進(jìn)行結(jié)構(gòu)識(shí)別,識(shí)別結(jié)果與CNA、PTM經(jīng)典算法分類結(jié)果基本一致.此外,本文算法還可將聚集體直接分割為多個(gè)獨(dú)立的晶體區(qū)域.
3) 對由Fe3+、Fe2+、O2-、OH-離子組成的4種離子聚集體進(jìn)行結(jié)構(gòu)識(shí)別.結(jié)果表明,采用本文算法均能搜索出最優(yōu)的空間變換參數(shù),進(jìn)而識(shí)別出模擬體系中的局部晶體結(jié)構(gòu).