陳善達(dá) 梁 昊 李 亮
(1 湖南中醫(yī)藥大學(xué),長沙,410208; 2 湖南中醫(yī)藥大學(xué)中醫(yī)診斷學(xué)湖南省重點實驗室,長沙,410208; 3 湖南中醫(yī)藥大學(xué)中醫(yī)心肺病證辨證與藥膳食療重點研究室,長沙,410208)
冠狀動脈粥樣硬化性心臟病(冠心病)是冠狀動脈發(fā)生粥樣硬化引起管腔狹窄或閉塞,導(dǎo)致心肌缺血、缺氧或壞死而引起的心臟病,屬于中醫(yī)學(xué)“胸痹”范疇。冠心病嚴(yán)重危害著人們的生命健康,2018年我國冠心病患者已達(dá)1 100萬,近年來發(fā)病呈上升、年輕化的趨勢[1]。中醫(yī)藥在冠心病防治中有獨到的優(yōu)勢,因此深入挖掘中醫(yī)藥治療冠心病的證候與用藥規(guī)律有重要意義。本文通過運用Python語言編寫程序腳本對從3個學(xué)術(shù)數(shù)據(jù)庫收集到的冠心病中醫(yī)病案進(jìn)行數(shù)據(jù)挖掘,以期為Python語言在中醫(yī)藥領(lǐng)域的運用提供思路與方法。
1.1 文獻(xiàn)來源 所有病案數(shù)據(jù)來源于國家知識基礎(chǔ)設(shè)施數(shù)據(jù)庫(China National Knowledge Infrastructure,CNKI)、中國學(xué)術(shù)期刊數(shù)據(jù)庫(China Science Periodical Database,CSPD)、中文科技期刊數(shù)據(jù)庫(Chinese Citation Database,CCD)等數(shù)據(jù)庫。
1.2 檢索策略 運用CNKI、CSPD、CCD數(shù)據(jù)庫,以“冠心病驗案”“冠心病舉隅”或“胸痹驗案”“胸痹舉隅”為檢索式,檢索2010年1月1日至2020年1月1日的所有期刊文獻(xiàn),共檢索出610篇;篩選并剔除重復(fù)文獻(xiàn),最終納入222篇,共計醫(yī)案343個。
1.3 納入標(biāo)準(zhǔn) 1)符合西醫(yī)“冠心病”或中醫(yī)“胸痹”診斷標(biāo)準(zhǔn)且證候、證型、方藥完整的中醫(yī)診治文獻(xiàn),診斷標(biāo)準(zhǔn)參照《內(nèi)科學(xué)》以及《中醫(yī)內(nèi)科學(xué)》[2-3];2)使用中藥內(nèi)服法治療。
1.4 排除標(biāo)準(zhǔn) 1)學(xué)術(shù)思想探討與綜述類的文獻(xiàn);2)單味藥、藥對及復(fù)診處方。
1.5 數(shù)據(jù)規(guī)范與數(shù)據(jù)庫建立
1.5.1 數(shù)據(jù)庫的建立 運用Excel 2019收集每個病案的證型和用藥構(gòu)建冠心病用藥數(shù)據(jù)庫,采用雙人分別錄入模式,錄入完成后進(jìn)行雙人交叉核對,若存在不一致處則協(xié)商解決,以確保數(shù)據(jù)的準(zhǔn)確性和規(guī)范性。
1.5.2 數(shù)據(jù)規(guī)范 參照中國中醫(yī)藥出版社出版的新世紀(jì)第4版《中藥學(xué)》以及朱文鋒教授主編的《證素辨證學(xué)》[4-5],對其中涉及的證候、證型、藥物的名稱進(jìn)行規(guī)范化處理并將證型中包含的病性證素提取出來,例如,心慌→心悸,大便干結(jié)→便秘,炙甘草→甘草,山萸→山茱萸,氣虛夾瘀→氣虛血瘀→氣虛+血瘀等。見表1。
表1 部分證素、中藥規(guī)范
1.6 數(shù)據(jù)分析 運用Excel 2019分別對證候、證素和用藥進(jìn)行頻數(shù)統(tǒng)計,按降序處理并計算相應(yīng)的頻率。提取頻率≥10%的所有證素、證候、中藥以及頻次≥10的證素組合。在PyCharm Community Edition 2020.1.1中運行Python 3.8.3,運用xlwings工具包將Excel文件內(nèi)容提取到TXT文件中,運用Python內(nèi)置函數(shù)對數(shù)據(jù)進(jìn)行處理,運用itertools工具包對所有高頻證素組合的高頻證候或高頻用藥進(jìn)行排列組合,設(shè)置最小組合數(shù)為2,最大組合數(shù)為6,其中包含證素與證候或中藥的組合,也包含沒有證素只有證候或中藥的組合,篩選出既包含證素組合又包含證候或中藥的所有組合,進(jìn)行頻數(shù)分析,篩選出頻率≥7%的“證素-證候”以及“證素-中藥”組合,并計算各組合的權(quán)值。根據(jù)朱文鋒教授的雙層頻權(quán)剪叉算法確定的權(quán)值計算方式為:某一“證素-證候”或“證素-中藥”組合的頻數(shù)/出現(xiàn)該證候或使用該中藥組合的所有“證素-證候”或“證素-中藥”組合的頻數(shù)[6-10]。例如,“氣虛+血瘀,苔白,乏力”這一“證素-證候”組合的權(quán)值=“氣虛+血瘀,苔白,乏力”這一“證素-證候”組合的頻次/所有包含“苔白,乏力”這一證候組合的“證素-證候”組合的頻次。權(quán)值越高則說明特異性越強。篩選出所有權(quán)值≥0.8的組合,再將篩選的結(jié)果取并集得出每一證素組合的高頻證候或高頻用藥,并用Python繪圖工具包Pyecharts繪制關(guān)聯(lián)圖。
2.1 頻數(shù)分析 本研究錄入的343個冠心病醫(yī)案處方中,涉及17個單一證素,累計頻次815次,頻率≥10%的有8個,分別為血瘀、痰、氣虛、氣滯、陽虛、陰虛、火(熱)、濕;涉及94種證素組合,累計頻次288次,頻次≥10次的組合有6個,分別為“氣虛+血瘀”“氣滯+血瘀”“痰+血瘀”等。見表2。涉及證候218個,累計頻次4 418次,出現(xiàn)頻率≥10%的證候共30個,分別為胸悶、胸痛、氣短、苔白、舌暗、乏力、脈弦、心悸、舌紅、脈細(xì)等。見表3。涉及313味中藥,累計頻次4 852次,使用頻率≥10%的中藥共37味,分別為丹參、甘草、川芎、半夏、茯苓、當(dāng)歸、黃芪、薤白、赤芍、瓜蔞等。見表4。
表2 343個冠心病醫(yī)案處方高頻證素分布
表3 343個冠心病醫(yī)案高頻證候分布
表4 343個冠心病醫(yī)案高頻中藥分布
2.2 權(quán)值計算與篩選 對包含高頻證素的127個病案進(jìn)行排列組合后,篩選出頻率≥7的組合,其中“證素-證候”組合共計377個,“證素-中藥”組合共計245個。對所有組合進(jìn)行權(quán)值計算,其中權(quán)值≥0.8的“證素-證候”組合183個,權(quán)值≥0.8的“證素-中藥”組合153個。見表5~6。取交集后得到4個“證素-證候”組合,5個“證素-中藥”組合,其中中藥藥味≥5味的有3個。見表7~8?!白C素-證候”與“證素-中藥”組合的關(guān)聯(lián)圖見圖1~2。
表5 343個冠心病醫(yī)案部分“證素-證候”權(quán)值分布
表6 343個冠心病醫(yī)案部分“證素-中藥”權(quán)值分布
表7 343個冠心病醫(yī)案高頻“證素-證候”組合
圖1 343個冠心病醫(yī)案“證素-證候”與“證素-中藥”關(guān)聯(lián)
表8 343個冠心病醫(yī)案高頻“證素-中藥”組合
圖2 343個冠心病醫(yī)案“氣虛+血瘀”與證候、中藥關(guān)聯(lián)
冠心病屬于中醫(yī)學(xué)“胸痹”的范疇。中醫(yī)學(xué)認(rèn)為胸痹的發(fā)生多與寒邪內(nèi)侵、飲食失調(diào)、情志失節(jié)、勞倦內(nèi)傷、年邁體虛等因素有關(guān)。其病機有虛實2方面,實性病機有寒凝、血瘀、氣滯、痰濁痹阻胸陽,阻滯心脈;虛性病機有氣虛、陰虛、陽虛,肺、脾、肝、腎虧虛,心脈失養(yǎng)。在本病證的形成和發(fā)展過程中,大多因?qū)嵵绿?,亦有因虛致實者。本研究通過對343個冠心病中醫(yī)病案頻數(shù)分析得出,與冠心病關(guān)聯(lián)度較高的實性證素為血瘀、痰、氣滯、濕、火(熱),出現(xiàn)頻次總計531次,虛性證素為氣虛、陽虛、陰虛,出現(xiàn)頻次總計230次,可見冠心病發(fā)病主要以因?qū)嵵绿摓橹?。從頻次與頻率來看,病機主要與血瘀、痰濁、氣虛所致的心脈痹阻有關(guān)。通過對343個冠心病病案的挖掘分析發(fā)現(xiàn),血瘀為冠心病的基本證素,多與氣虛、氣滯、痰、陰虛等證素相結(jié)合形成氣虛血瘀、氣滯血瘀、痰瘀互結(jié)、氣陰兩虛夾瘀、氣虛血瘀夾痰等證型。從“證候-證素”分布可以看出,4個證型的共同證候為胸悶、胸痛與舌暗,因瘀血痹阻心脈所致;心悸為氣虛血瘀、痰瘀互結(jié)與氣滯血瘀共有的證候,由于瘀血痹阻,心脈失養(yǎng)所致;失眠為氣虛血瘀、氣滯血瘀和氣陰兩虛夾瘀共有的證候,由于瘀血不去、心血不生、心神失養(yǎng)所致;脈細(xì)為氣虛血瘀與氣陰兩虛夾瘀共有的證候,由于體虛,運血無力所致;脈弦為痰瘀互結(jié)與氣滯血瘀共有的證候,是痰與氣滯的特征性證候;乏力為氣虛血瘀與痰瘀互結(jié)共有的證候,由于機體陽氣不運所致;氣虛血瘀特有的證候有苔白、舌淡、脈沉、汗出與氣短,由于血運不暢、宗氣不足、衛(wèi)表不固所致;痰瘀互結(jié)特有的證候有苔膩、納呆、苔厚、脈滑與舌胖,由于痰濁內(nèi)阻、脾胃運化失常、濁氣上泛所致;氣滯血瘀特有的證候有瘀點(斑)舌與苔黃,由于氣血運行不暢、郁而化熱所致。從“證素-中藥”分布可以看出,氣虛血瘀證用藥可歸納為補陽還五湯合八珍湯加減,具有益氣活血通絡(luò)的功效;氣滯血瘀證用藥可歸納為柴胡疏肝散合桃紅四物湯加減,具有疏肝解郁、理氣活血的功效;痰瘀互結(jié)證用藥可歸納為溫膽湯合瓜蔞薤白白酒湯加減,具有理氣化痰、通陽散結(jié)的功效。前3個組合中都用到了丹參和郁金,二味藥均為活血化瘀藥。丹參中的丹酚酸A、丹酚酸B、丹參素和丹參多酚酸鹽等主要水溶性成分可以通過保護(hù)血管內(nèi)皮、舒張冠狀動脈、促進(jìn)血管再生、抗血小板聚集、抑制炎癥反應(yīng)、抗細(xì)胞凋亡和清除自由基等多角度對缺血性心臟病起防治作用[11-14]。郁金中的莪術(shù)二酮能夠提高cAMP水平,抑制胞內(nèi)Ca2+調(diào)動,從而抑制血小板凝集,同時也能增強血管舒張能力以減少血栓的形成[15]。郁金中的柚皮素具有抗氧化、預(yù)防動脈粥樣硬化和降血脂的作用[16]。網(wǎng)絡(luò)藥理學(xué)研究表明,郁金能通過參與調(diào)節(jié)脂質(zhì)代謝、氧化應(yīng)激、免疫調(diào)節(jié)等來發(fā)揮清心涼血的功效[17]。
與傳統(tǒng)的運用軟件進(jìn)行中醫(yī)藥數(shù)據(jù)挖掘比較,選擇編程語言可以根據(jù)自身的需求編寫代碼實現(xiàn)個性化的結(jié)果,使挖掘過程更具靈活性。例如,可以編寫程序腳本對TXT、Word或Excel等進(jìn)行數(shù)據(jù)批量處理,根據(jù)需求設(shè)計算法,也可以進(jìn)行個性化繪圖[18]。運用編程語言最大的特點是具有先進(jìn)性,傳統(tǒng)的軟件維護(hù)更新較慢,許多功能比較落后,編程便可以彌補這一缺陷。與C語言、Java等代碼冗雜、格式繁瑣的編程語言比較,Python語言是目前最接近自然語言的高級語言,其代碼簡潔、可讀性高的特性適合初學(xué)者學(xué)習(xí),并且學(xué)習(xí)投入與產(chǎn)出比高于其他語言[19-20]。Python還有許多開源免費、功能強大的工具包,在數(shù)據(jù)分析方面,Python有可以用于矩陣運算的NumPy包,用于數(shù)據(jù)處理的Pandas包,用于統(tǒng)計分析的SciPy包,用于機器學(xué)習(xí)的Scikit-Learn包,用于深度學(xué)習(xí)的Keras包、TensorFlow包和PyTorch包等,以及用于數(shù)據(jù)可視化的Matplotlib包和Pyecharts包等。
自2018年以來,Python的使用人數(shù)整體呈上升趨勢,在TIOBE發(fā)布的2020年11月編程語言排行榜中顯示,Python首次超越Java成為排名第2的編程語言。如今Python的發(fā)展勢頭強勁,日后在各大學(xué)科領(lǐng)域?qū)兄T多用武之地,同樣地,Python也將在中醫(yī)藥領(lǐng)域出現(xiàn)更多的創(chuàng)新與突破。