최근에 graph network쪽에 관심이 많았는데
마침AI-BIO 교육 6주차 때 대략적인 graph network의 개념과 더불어 어떻게 연구에 쓰이는지에 대해서 배워서 정리 할겸 이를 정리하고자 한다!
김선 교수님네 박사님 중에 drug, gene, disease간의 network embedding 방식으로 nature communication에 논문 publish하셨는데 너무 멋있고 부러웠따...ㅠ 나도 이런 기회가 언제 올까..?
Network analysis
- [1] network centralities
- [2] network clustering - K-means, Hierachical
- [3] Network propagation - PropaNEt, MLDEG
Network 분석 관련해서 centrality와 clustering은 정말 자주 듣는 개념인데 어떤 방향성으로 분석할 것인지에 따라 다른 분석 방법을 한다.
[1] centrality는 network 상에 여러 개의 node가 있다면 어떤 것이 우선순위에 있는 node인가를 어떤 관점에서 볼 것인가에 따라 method(degree, betweenness, pagerank)를 선정해 본다.
[2] network clustering은 network가 있을 때 어떤 집단으로 모여있는가를 표현할 수 있는 method 방법으로 k-means/hierachical/network propagation 방법이 있다.
[3] Network propagation은 많이 쓰이는 방법 중에 하나로 node의 연결관계를 prioritization시켜주는 방식으로 random walk를 강화시킨 방법이다.
위의 개념을 자세히 이해해보고자 찾아보았다.
-
- degree centrality - 하나의 node가 몇개의 다른 node와 연결되어 있는가?로 해당 노드가 얼마만큼의 중심성을 가진 노드인지 표현하는 것
- weighted degree centrality
- closeness centrality - 해당 node가 모든 node간의 shorest path(distance)으로 가는 길이들의 평균에 해당한다
- betweenness centrality - node와 node간의 최소거리를 지나는 데 있어서 지나가는 node가 몇회씩인지 세는 것
- eigenvector centrality & pagerank
pagerank는 구글의 검색 방식에서 쓰이는 것으로도 유명한 방법이고 어떤 분석을 할 것인지에 따라 centrality를 선택하거나 feature들로 이 모든 centrality값들을 활용할 수 있지 않을까 싶다!
[2] Network Clustering 종류들 :
-
- k-means clustering
: centroid(중심점)을 정해서 node와의 거리를 eucledian distance를 구해서 clustering을 구하는 방식
-
- hierarchical clustering
[3] network propagation
network propagation는 system biology에서 많이 쓰이는 방법으로 예를 들어 위의 그래프 상에서 유전자간의 관계를 graph로 표현한 것이라면 어느 유전자(node)가 우선순위가 높게 중요한지 알 수 없다. 이 방법은 쉽게 말해서 random walk를 여러 번 실행 한 것인데, seed node(무작위로 아무 node)를 선택해서 random walk를 실행 한 것이라 보면 된다.
network propagation가 주는 효과는 예를 들어 node에서 node까지 가는 10개의 path가 있다고 할 때shorest path로 가는 4개의 path들이 존재 할 때 이 4개 중에 가장 중요한 path를 얻어낼 수 있게 해준다.
string을 word2vec시켜서 model에 넣기 쉬운 format으로 만드는 것처럼 network도 동일하게 model에 넣기 쉬운 format으로 represent한다.
Network representation learning
-
- word2vec - DeepWalk, node2vec, DREAMwalk
- Graph Neural network
graph network도 컴퓨터가 이해 할 수 있는 방법으로 representation해야 되는데 그에 대한 방법으로 word2ve, graph neurl network 방식이 있다.
생물학에 있어서 graph 분석을 통해 할 수 있는 연구들의 주제에 대해서도 언급해 주셨는데, 가장 크게 drug repurposing에 관해 말씀해주셨다. Drug repurposing의 대표적인 약물로 비아그라가 있는데 원래는 협심증 치료제로 개발된 것이었으나 부작용으로 발기 부전에 도움이 되는 것으로 밝혀지면서 약의 용도를 달리 쓰이게 되었다. 이런식으로 drug의 다른 용도를 발견 할 수 있는 indication을 발견하는 연구라 볼 수 있다.
Drug repurposing
: drug/ disease/ gene network간의 관계를 봐서 disease와 drug와 연결 될 수 있는 결과물을 얻어낼 수 있다. 그 둘을 이어 주는 것을 gene과의 관계를 통해서 얻어 낼 수 있다고 보면 된다.
실습으로 실행한 코드 논문 내용은
Biomedical knowledge graph learning for drug repurposing by extending guilt-by-association to multiple layers
방동민 (Nature Communication)
이에 대해 다음 글에 코드와 논문의 자세한 내용을 정리하고자 한다,,,