상세 컨텐츠

본문 제목

SNA 활용 연구사례 소개① 한의학 분야

본문



안녕하세요. (주)사이람입니다.

소셜 네트워크 분석은 현재 사회학 분야 뿐만 아니라 다양한 학문에서 연구가 활발히 진행되고 있습니다.

어떤 분야에서 어떻게 활용되고 있는지, 다양한 연구사례들을 앞으로 블로그를 통해 소개하고자 합니다.

많은 관심 부탁드리며, 궁금한 분야가 있으신 분들은 언제든 의견을 보내주시기 바랍니다. ^^


대망의 첫 번째 "분야별 SNA 활용 연구사례"는 바로 한의학입니다.

 



한의학 분야에서 SNA를 이용하여 다양한 네트워크를 생성하고 분석하는 연구들이 시도되고 있습니다. 동일한 증상을 치료하는 약재들 간의 관계, 약의 성분 간 유사 관계, 유사한 증상들 간의 관계, 또는 약의 효과가 나타나는 인체 단백질 상호작용 등을 분석하는데 활용되고 있습니다.

 

(자료출처 : Li Shao & Zhang Bo. 2013. Traditional Chinese medicine network pharmacology: theory, methodology and application. Chinese Journal of Natural Medicines 2013, 11(2). pp 110-120.)


SNA는 수많은 질병과 약들 간의 관계를 전체적인 시각에서 분석할 수 있도록 도와줍니다. 약의 효과를 증명하기 위해 실험이나 임상을 거치려면 많은 비용이 들 수 있는데, 많은 연구자들은 네트워크 분석을 이용하여 방대한 문헌 자료들을 통합하고 질병과 약의 관계에 대한 이해를 확장할 수 있으며, 비용을 줄이고 효과적으로 약의 효과 및 질병을 예측하는 것이 가능할 것으로 보고 있습니다.




SNA를 이용한 한의학 분야 네트워크 분석의 절차는 다음과 같습니다. 데이터는 주로 다양한 문헌 자료에서 증상이나 질병, 처방, 약재에 대한 기록을 추출하여 생성합니다. 특정 증상의 치료에 쓰이는 약재, 처방에 등장하는 약재 등의 정보는 SNA의 관점에서 노드와 링크로 이루어진 네트워크 데이터로 표현될 수 있습니다. 그리고 여러 가지 분석을 통해 약재가 우선적으로 치료의 효과를 나타낼 수 있는 질병이나 증상의 순위를 파악하거나, 특정 증상에 대해 우선적으로 처방해야 할 약재가 무엇인지 등을 파악할 수 있습니다. 

 




대표적인 논문의 내용을 살펴보면서 구체적으로 어떻게 분석이 이루어졌는지 알아보겠습니다. 

논문: 홍대기 외. (2011). 네트워크 모델을 통한 상한론 구조분석 연구: 태양병 증상-본초를 중심으로. 대한한의학회지 32(1). pp 56-66.


① 데이터

홍대기 외. (2011)에서는 상한론정해(증상을 치료하는 본초에 대해 기록된 조문들) 중에서 ‘태양병’ 부분을 데이터로 활용했습니다. 상한론의 조문에는 증상과 증상에 대해 처방하는 약재 및 용량이 나열되어 있습니다. 각 조문으로부터 증상과 증상에 관련된 약재들을 추출하였습니다. 그리고 증상을 상위의 범주로 통합하거나, 유사한 약재의 명칭을 통합하는 등의 정제 작업을 거쳤습니다.


② 모델링

네트워크는 ‘노드’와 ‘링크’의 집합이므로, 수집한 데이터에서 ‘노드’와 ‘링크’를 정의합니다. 이 논문에 활용된 데이터에는 2가지 종류의 노드 집합이 있었습니다. ‘증상’이라는 노드의 집합과, ‘약초’라는 노드의 집합입니다. 2종류의 노드 사이의 관계들, 즉 ‘특정 증상에 대한 약초’들은 링크의 집합이라고 할 수 있습니다. 이러한 형태의 네트워크 데이터를 ‘2모드 네트워크’라고 지칭합니다. 이 논문에서 활용한 데이터에는 증상에 대해 약초가 어느 정도 필요한지 ‘용량’이 함께 기록되어 있습니다. 약초의 용량을 증상과 약초가 함께 조문에 등장한 빈도수와 합하여 링크의 가중치로 활용했습니다. 


노드: 증상, 약초

링크: 증상-약초 관계

Weight: 증상에 대한 약초의 용량, 조문 상에 증상-약초가 동시 출현하는 횟수


③ 주요 시사점

네트워크 분석 결과, 약초별로 우선적으로 치료 효과가 나타날 수 있는 증상의 순위를 예상할 수 있었고, 증상별로 연관성이 높은 약초의 순위를 알 수 있었다고 밝히고 있습니다. 또한 이러한 한의학 문헌 분석을 통해 데이터에 기반한 객관적인 의사결정을 할 수 있고, 신약개발 및 임상가들에게 유용한 정보를 제공해줄 수 있다고 보았습니다.




그렇다면, 네트워크 데이터 분석 툴인 NetMiner를 이용하여 위에서 소개한 논문의 내용과 같은 결과를 얻기 위해 어떻게 분석을 하면 되는지 방법을 알아보겠습니다. 가상으로 제작한 증상과 약초 간 2모드 네트워크 데이터를 활용하여 분석을 진행해 보겠습니다.


① 데이터 코딩

 문헌 자료에서 추출된 데이터는 NetMiner에 입력하기 위해 링크 데이터의 형식을 갖추어야 합니다. 위의 논문에서는 아래 그림과 같이 엑셀 시트의 각 행마다 증상-약초-용량을 기입하였습니다. 링크 데이터의 관점에서 보면 증상이 위치한 첫 번째 열은 링크의 시작 점인 ‘Source Node’가 되고, 약초가 위치한 열은 링크의 도착 점인 ‘Target Node’, 용량이 위치한 열은 링크의 가중치인 ‘weight’가 됩니다. 

 



이러한 모양새를 갖춘 데이터를 ‘2-mode Edge List’라고 지칭합니다. 동일한 링크 정보를 아래 그림의 오른쪽과 같이 ‘2-mode Linked List’로도 표현할 수 있습니다. ‘2-mode Linked List’ 형식에서는 링크의 가중치를 넣을 수 없지만, 1가지 증상에 해당하는 약초들을 한꺼번에 나열하여 데이터를 쉽게 입력할 수 있습니다. 


 (그림을 클릭하면 크게 볼 수 있습니다.)


② 데이터를 NetMiner에 입력하기

2모드 네트워크 데이터의 형식을 갖추어 엑셀 파일로 저장한 후, NetMiner로 가져옵니다. NetMiner메뉴에서 File > Import > Excel 을 실행하면 아래와 같은 창이 열립니다. Browse를 클릭하여 저장된 데이터의 경로를 지정하고, 미리보기를 통해 데이터 형태를 확인합니다. Data Type은 2-mode Network와 Edge List를 체크하고(Linked List 형태의 데이터라면, ‘Linked List’에 체크) OK를 클릭합니다. 

 

(그림을 클릭하면 크게 볼 수 있습니다.)


데이터가 성공적으로 입력되었습니다. Main Nodeset에는 증상명이 입력되었고, Sub Nodeset에는 약초명이, 2mode Network에는 증상과 약초 간의 링크가 입력되었습니다. weight는 증상에 대한 약초의 용량이 입력되었고, 데이터 상에 동일한 증상-약초 쌍이 복수로 나타났다면 weight는 복수 개의 증상-약초 쌍의 용량을 모두 합한 값이 됩니다. 

 

(그림을 클릭하면 크게 볼 수 있습니다.)


③ 데이터 시각화

데이터 입력 후 증상과 약초 간 관계를 2-mode spring KK(Kamada & Kawai) 방법으로 네트워크 맵을 그려볼 수 있습니다. NetMiner 메뉴에서 Visualize > Two Mode > Spring 을 선택하고, Run Process를 클릭합니다. 


 

(그림을 클릭하면 크게 볼 수 있습니다.)


 증상과 연관된 약초들을 연결한 네트워크 맵을 통해 전체적인 데이터의 구조를 확인할 수 있습니다. 약초B와 약초H는 동일한 증상과 여러 번 함께 연결되고 있으므로 서로 유사성이 높을 것으로 예상해 볼 수 있고, 18, 10, 8, 9번 증상은 동일한 약초와 여러 번 함께 연결되고 있으므로 유사성이 높은 증상들이라는 것을 생각해볼 수 있습니다.


④ 분석하기

증상별로 연관된 약초의 수를 파악하거나, 약초별로 연관된 증상의 수를 파악하려면 2-mode Degree분석을 수행합니다. NetMiner 메뉴에서 Analyze > Two mode > Degree를 클릭하고 Main process에서 링크의 수(# of links)로 degree를 산출하는 방법을 선택한 후, Run Process를 클릭합니다.

 

(그림을 클릭하면 크게 볼 수 있습니다.)


 2-mode degree 분석 결과에서 증상과 약초의 degree 값을 확인할 수 있습니다. ‘증상’ 노드에 대해서는 각 증상과 연결되어 있는 약초의 총 수, ‘약초’ 노드에 대해서는 각 약초에 연결된 증상의 총 숫자가 나타납니다.




한의학 문헌에서 질병이나 처방에 자주 함께 등장하는 약재들 간의 유사성 네트워크를 생성하여 질병에 대해 자주 처방하는 약재들을 그룹화 해 볼 수 있습니다. 질병이나 증상에 대해 다양한 관점으로 접근하는 처방 자료들을 통합하여 분석하면, 필수적이거나 일반적인 처방 및 약재를 예측하고 전체적인 관점에서 유사한 증상, 처방, 약재를 분류하는 것이 가능할 것입니다.

 

(그림을 클릭하면 크게 볼 수 있습니다.)


 이러한 분석에서는 증상 간의 유사한 정도, 약재 간의 유사한 정도에 대해 무엇을 근거로 판단할 것인가가 가장 중요한 이슈일 것입니다. 여기서는 증상-약초 연관 관계에 따라 약초 간에 유사한 정도를 측정하는 기본적인 방법을 한가지 소개합니다. 

서로 다른 여러 증상에 대해 약초 3가지가 지속적으로 등장했다면 이 3가지 약초는 서로 유사한 약초들인 것으로 볼 수 있을 것입니다. 반면, 증상마다 겹치지 않는 약초들은 유사성이 낮다고 할 수 있습니다. 이처럼 증상에 대한 데이터를 근거로 약재 간의 유사성을 판단해 볼 수 있습니다. 

 

(그림을 클릭하면 크게 볼 수 있습니다.)


앞서 생성했던 증상과 약초 간의 2모드 네트워크 데이터에서 여러 증상들에 약초 쌍이 출현하는 패턴을 분석하여 유사한 정도를 측정하는 방법으로 Jaccard 유사성 계수가 있습니다. 모든 약초 쌍에 대해 Jaccard 유사성 계수를 구하여 약초 간 1모드 네트워크 데이터로 변환해 줍니다. 수치가 클수록 약초 쌍이 서로 유사하다는 것을 의미하므로, 유사성이 높은 값(예, 0.4 이상)을 가진 약초 쌍을 추출합니다. 

 

(그림을 클릭하면 크게 볼 수 있습니다.)


 이러한 과정을 거치면 증상-약초 간의 네트워크는 유사한 약초들을 서로 연결한 약초 간 네트워크로 바뀌게 됩니다. 약초 네트워크에 대해 중심성 분석을 수행함으로써 다양한 증상에 처방하는 핵심 약초를 파악할 수 있고, 커뮤니티 분석을 수행함으로써 서로 유사성이 높은 약초 그룹을 분류해 볼 수 있습니다. 



이상으로 한의학 분야 SNA 활용 연구사례 소개를 마치겠습니다.

다음 포스팅도 기대해 주시기 바랍니다.


감사합니다.




관련글 더보기

댓글 영역