신호 전달 경로의 3차원 동적 시각화 시스템 개발工學碩士學位請求論文...

55
工學碩士學位請求論文 신호 전달 경로의 3차원 동적 시각화 시스템 개발 Development of a system for 3-dimensional dynamic visualization of signal transduction pathway 20058仁荷大學校 大學院 컴퓨터·情報工學科

Upload: others

Post on 24-Feb-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

  • 工學碩士學位請求論文

    신호 전달 경로의

    3차원 동적 시각화 시스템 개발

    Development of a system for 3-dimensional

    dynamic visualization of signal transduction

    pathway

    2005年 8月

    仁荷大學校 大學院

    컴퓨터·情報工學科

    李 東 勳

  • 工學碩士學位請求論文

    신호 전달 경로의

    3차원 동적 시각화 시스템 개발

    Development of a system for 3-dimensional

    dynamic visualization of signal transduction

    pathway

    2005年 8月

    指導敎授 韓 庚 淑

    이 論文을 碩士學位 論文으로 提出함

    仁荷大學校 大學院

    컴퓨터·情報工學科

    李 東 勳

  • 이 論文을 李東勳의 碩士學位 論文으로 認准함

    2005 年 8 月

    主審 (印)

    副審 (印)

    委員 (印)

  • 요 약

    생물학적 기술의 발달은 분자간 상호작용 데이터의 양을 빠르게

    증가시키고 있다. 결과적으로, 생물학적 네트워크의 시각화는 상호작용

    데이터를 분석하기 위해 중요한 논점이 되고 있다. 신호전달 경로와 같은

    생물학적 네트워크에는 여러 가지 형태가 있다. 단백질 상호작용 네트워크,

    신진 대사회로 경로, 그리고 유전자 정규화 네트워크 등이 있다. 생물학적

    네트워크의 여러 형태들은 다른 생물학적인 관계를 나타낸다. 그리고

    그들의 이러한 생물학적인 부분이 명확히 의미하는 것들을 알기 위해서는

    시각화가 필요하다.

    종종 많은 상호작용을 가진 non-planar digram들은 상당히 복잡하게

    나타나기 때문에 신호전달 경로의 동적 시각화는 도전해볼 만한 분야이다.

    대부분의 데이터베이스에서 제공되는 신호전달 경로는 정적인 이미지를

    사용하고 있다. 따라서 자료의 수정과 업데이트가 용이하지 않다.

    우리는 신호전달 경로를 3차원 계층형 그래프로 동적 시각화 시키는

    알고리즘을 개발했다. 실험에 의거한 결과는 그 알고리즘이 깨끗하고,

    심미적으로 뛰어난 대규모의 신호전달 경로의 표현을 생성시킴을 보여준다.

  • Abstract

    Advances in biological technology have produced a rapidly expanding volume

    of molecular interaction data. Consequently, the visualization of biological

    networks is becoming an important challenge for analyzing interaction data.

    There are several types of biological networks, such as signal transduction

    pathways, protein interaction networks, metabolic pathways, and gene

    regulatory networks. Different types of network represent different biological

    relationships, and are visualized in different formats in order to convey their

    biological meaning clearly.

    The automatic generation of signal transduction pathways is challenging

    because it often yields complicated, non-planar diagrams with a large number

    of intersections. Most signal transduction pathways available in public

    databases are static images and thus cannot be refined or changed to reflect

    updated data.

    We have developed an algorithm for visualizing signal transduction

    pathways dynamically as three-dimensional layered digraphs. Experimental

    results show that the algorithm generates clear and aesthetically pleasing

    representations of large-scale signal transduction pathways.

  • 목 차

    제 1 장 서 론 ............................................................. 1

    1.1. 연구 배경 및 필요성 ............................................................... 1

    1.2. 연구 목적 및 범위 ................................................................... 5

    제 2 장 신호전달 경로 시각화 알고리즘 ..................... 6

    2.1. 계층 배정 및 사이클 처리 ...................................................... 7

    2.2. 더미 노드 생성 ........................................................................ 10

    2.3. 에지 교차 최소화 .................................................................... 11

    2.4. Z – 좌표 변환 ........................................................................... 18

    제 3 장 경로 데이터의 시각화 .................................. 22

    3.1. 신호전달 경로지도의 입력 데이터 형식 .............................. 22

    3.2. 프로그램 구성 및 클래스 구성 ............................................. 24

    3.3. PathwayViewer ....................................................................... 27

    제 4 장 실험 결과 ....................................................... 29

    4.1. 동적 시각화 ........................................................................... 29

    4.2. 타 프로그램과의 비교 ........................................................... 37

  • 제 5 장 결론 ................................................................ 39

    참고문헌 ......................................................................... 42

    부록 ................................................................................ 44

  • 그 림 목 차

    [그림 1] MAPK(Mitogen – Activated Protein Kinases) 신호전달

    경로지도 시각화 ................................................................ 3

    [그림 2] 노드에 레이어를 배정하는 과정 ............................ 8

    [그림 3] 노드들의 레이어 배정 전/후의 비교 ...................... 9

    [그림 4] Dummy 생성 전/후 비교 ..................................... 10

    [그림 5] 에지 교차 최소화 전 ........................................ 13

    [그림 6] 에지 교차 최소화 후 ........................................ 14

    [그림 7] 2차원 평면상에서 에지 교차 최소화 된 상태 .... 16

    [그림 8] Z – 좌표 변환을 이용한 그룹화 ........................ 20

    [그림 9] 본 프로그램의 클래스 구성도 ........................... 26

    [그림 10] PathwayViewer ............................................... 27

  • [그림 11] 시스템 구성도 ................................................. 28

    [그림 12] Tyrosine kinase-linked receptor and G-protein

    coupled receptors의 신호 전달 경로를 본 프로그램으로 시각화한

    그림 ................................................................................ 30

    [그림 13] Tyrosine kinase-linked receptor and G-protein

    coupled receptors의 신호 전달 경로를 hippron 社에서 제공하는

    그림 ................................................................................ 30

    [그림 14] Tyrosine kinase-linked receptor and G-protein coupled

    receptors의 신호 전달 경로를 본 프로그램에서 다른 레이아웃으로

    시각화한 그림 ................................................................. 30

    [그림 15] 여러 형태의 신호전달 경로를 시각화한 예제 ... 31

    [그림 16] T Cell의 신호전달 경로를 시각화한 그림 ......... 32

    [그림 17] NodeList를 이용한 검색 .................................. 34

    [그림 18] 다수의 노드 선택 및 이동 .............................. 34

    [그림 19] 마우스를 이용한 화면 축소 ............................. 35

  • [그림 20] 마우스를 이용한 화면 확대 .............................. 35

    [그림 21] E. coli 신호전달 경로 ...................................... 36

    [그림 22] Notch 신호전달 경로 ...................................... 37

    [그림 23] Bioactive Peptide induced 신호전달 경로 ......... 38

    [그림 24] 일반적인 그래프 레이아웃 규칙 ...................... 40

  • 표 목 차

    [표 1] 두 레이어 간의 에지 교차 최소화 단계 ................ 13

    [표 2] 다중 레이어의 계산 ............................................. 15

    [표 3] 본 프로그램에서 지원하는 pnm, pid, stp file의 예 .. 23

  • - 1 -

    제 1 장 서 론

    1.1. 연구 배경 및 필요성

    종래의 분자생물학 연구의 대부분은 개별적인 유전자 또는 유전자군(gene

    gamily)의 기능이나 구조를 규명하는 것에 치중해 왔으나, 여러

    유전자들과 단백질들의 기능과 상호작용을 총체적인 네트워크에서

    조명하고 이해하려는 것이 최근의 연구 추세이다. 이에 따라 세계적인

    연구소와 기업에서는 유전체에 대한 연구 결과물이 쏟아지고 있고,

    유전체에서 발현되는 단백질체와 이들의 생체 내에서의 역할과 상호

    관계를 총체적으로 표현한 생물학적 네트워크(biological network)를

    연구의 핵심으로 하는 post-genome 시대가 시작되었다.

    생물학적 네트워크 또는 생물학적 경로지도에는 대사회로도(metabolic

    pathway), 유전자 조절 경로지도(gene regulatory pathway), 신호전달

    경로지도(signal transduction pathway), 단백질 상호작용

    네트워크(protein-protein interaction network) 등 여러 종류가 있다.

    이들 생물학적 네트워크를 계산학적으로 분석하려는 연구는

    박테리아에서의 생화학적 반응경로(biochemical pathway)에서 가장 먼저

    시작되었고 현재까지 가장 많이 연구된 분야이다. 그에 따라, 지금까지

    개발된 생물학적 경로의 시각화 프로그램의 대부분은 박테리아와 같은

    원핵생물(prokaryote)의 대사회로도(metabolic pathway)를 대상으로 하는

    것이어서 다른 유형의 생물학적 네트워크를 시각화하거나 분석하는데 직접

    이용되기 어려운 실정이다[1, 2, 3, 4, 5, 6].

  • - 2 -

    기존의 대사회로도 시각화 프로그램이 신호전달 경로를 시각화 하는데

    직접 이용되기에 부적합한 이유는 다음과 같다. 원핵생물에서의

    대사회로도와 달리 진핵생물(eukaryote)의 신호전달 경로는 그 표현에

    있어서 이중적 특성(duality)을 가진다. 우선 분자간의 상호작용이

    생화학적 측면(예를 들면, 인산화), 논리적 측면(예를 들면, 활성화) 두

    가지 독립된 측면에서 표현될 수 있다. 신호전달 경로지도의 대부분의

    기질(substance)의 상태 또한 논리적 측면(활성 또는 비활성), 생화학적

    측면(인산화, 탈 인산화, 메틸화, 탈 메틸화 등) 두 가지의 측면에서

    표현할 수 있다. 따라서, 신호전달 경로는 각각의 조절 사건과 기질에

    대하여 논리적 측면과 생화학적 측면의 두 가지 측면에서 표현하는 것이

    이상적이다. 그러나, 세포 내에서 실제의 신호전달 경로 자체가 완전히

    알려져 있지 않고, 각 조절 사건과 기질이 논리적 측면이나 생화학적 측면

    중에서 어느 한 측면의 특성만 알려져 있는 경우가 많다. 게다가,

    박테리아와 달리 다세포 생물은 여러 유형의 조직, 복잡한 개체발생과

    구조를 취하기 때문에 이 모든 정보가 경로지도에 포함되어야 한다.

    그래프 시각화의 이론적인 측면에서 보았을 때, 대사회로도와

    신호전달 경로지도는 둘 다 에지의 방향이 있는 directed graph 라는

    면에서는 비슷하지만 에지 방향에 대한 제약 사항이 아주 다르다.

    대사회로도의 시각화에서는 에지의 방향에 대하여 특별한 제한이 없기

    때문에, [그림 1] (A)와 같이 하나의 대사회로도에서 여러 방향의 에지가

    존재한다. 그러나, 신호전달 경로지도는 세포 외부의 신호가 세포막을 거쳐

    핵으로 전달되는 과정을 충실하게 표현하려고 하기 때문에 하나의

    신호전달 경로지도에서는 [그림 1] (B)와 같이 모든 에지의 방향이 위에서

    아래로 향하거나, 왼쪽에서 오른쪽으로 향하게 그리는 것이 일반적이다.

  • - 3 -

    (A)

    (B)

    [그림 1] (A) 포유류의 MAPK(Mitogen-Activated Protein Kinases) 신호

    전달 경로지도로서, spring force를 기반으로 하여 레이아웃 한 그림이다.

    에지간의 교차가 없고, 레이아웃 규칙을 비교적 충실하게 적용하였으나, 에

    지의 방향이 일률적이지 않아서 신호 경로를 파악하는 것이 그림 B만큼

    용이하지 않다. (B) 그림 A와 동일한 포유류의 MAPK 신호전달 경로를

    layered graph로 시각화 한 것이다. 세포막에 있는 객체를 가장 상위 레이

    어에 배치하고 핵에 있는 객체들이 가장 하위 레이어에 배치하였으며, 모

    든 에지의 방향이 위에서 아래로 향하도록 시각화하였다.

  • - 4 -

    본 논문은 생물학적 네트워크 중에서도 세포내의 신호전달

    경로(signal transduction pathway)를 시각화하고 분석하기 위한 모델링

    시스템의 개발에 관한 논문이다. 생체를 이루고 있는 대부분의 세포의

    표면은 온도 변화 등 끊임없이 외부의 자극과 호르몬에 노출되어 있어서

    이 외부 신호(extra-cellular signal)를 감지하여 반응함으로써 세포는

    성장(proliferation)하고, 분화(differentiation)하고, 사멸(apoptosis)하게

    된다. 세포 외부의 신호는 여러 가지 방법을 통해 세포 내 반응 경로를

    매개하는데, 대부분 세포막을 통과하여 수용체(receptor)를

    활성화시킴으로써 세포 내부에 존재하는 많은 신호전달 단백질들을

    포함하는 세포 내부의 반응 경로를 활성화시키게 된다. 세포막 외부에

    도착한 다양한 신호는 수용체를 활성화시키고, 활성화된 수용체는

    지속적인 세포반응을 일으키기 위해 핵 내로 전달되며, 그 신호에 따른

    해당 유전자의 발현에 영향을 미치게 된다. 이 신호전달 경로는 외부의

    신호를 단순히 내부로 보내는 수동적인 역할을 할 수도 있지만, 여러

    정보를 가공하기도 하는 매우 복합적인 역할을 할 수도 있다. 암을 비롯한

    많은 질병이 이 신호전달 체계에 문제가 생기는 것에서 비롯된다.

    신호전달 경로를 구성하는 여러 유전자들과 그 산물의 기능을 총체적인

    네트워크에서 새롭게 조명하고, 신호전달 체계를 조절하는 새로운

    유전자나 경로를 탐색하는 것은 세포내의 여러 반응 기전을 이해하고

    궁극적으로 질병 치료법을 개발하는데 아주 유용하다.

  • - 5 -

    1.2. 연구 목적 및 범위

    세포 내에서의 신호전달 경로지도에 관한 정보는 여러 종류의 경로지도를

    연구하는데 관하여 가치 있는 통찰력을 제공한다. 현재 생물정보학과

    더불어 대량의 실험 데이터를 빠르게 처리하는 기술은 많은 신호전달

    경로지도 데이터를 양산하고 있다. 하지만, 이를 동적으로 제공해주는

    데이터베이스는 찾아보기 어렵다. 대부분의 데이터베이스는 정적인

    이미지를 제공하기 때문이다. 이와 같은 방법으로 제공된 경로지도들은

    확장의 폭이 낮을 수 밖에 없다. 그러므로 신호전달 경로지도의 동적

    시각화는 관련 연구의 발전에 있어서 중요한 요소라고 할 수 있다.

    본 논문에서는 신호전달 경로지도의 동적 시각화 알고리즘에 초점을

    맞추어 분석해 보았다. 2장에서는 신호전달 경로지도를 동적으로 시각화

    하기 위한 알고리즘을 제안한다. 그리고 3장에서 경로지도를 시각화하는

    시스템에 대해 나타내고 있다. 마지막으로 본 논문에서 제안하는

    알고리즘에 따른 경로지도의 예를 보여준다.

  • - 6 -

    제 2 장 신호전달 경로 시각화 알고리즘

    신호전달 경로는 생물학적 작용을 개체(node)와 상호작용(edge)으로 표현

    하며 directed graph로 시각화 한다. 신호전달 경로는 에지의 방향과 레이

    어를 통해서 의미를 나타낸다. 그러므로 그래프 레이아웃이 신호전달 경로

    를 시각화는 데 있어서 가장 중요한 문제라고 할 수 있다.

    레이아웃 알고리즘을 설명하기 위해 약간의 용어 정의가 필요하다.

    G=(V, E)를 비순환식 그래프라 가정한다. 그래프 G는 L1, L2, ..., Lh를 원소

    로 갖는 V와 (u, v)를 원소로 갖는 E로 구분된다. (u, v) ∈ E에서 u ∈ Li

    이고 v ∈ Lj이면 i > j이다. layered graph의 높이는 레이어의 숫자 h이고,

    넓이는 가장 많은 노드를 가지고 있는 레이어의 폭이다. 에지 (u, v)의 길

    이는 u ∈ Li이고 v ∈ Lj이면 i - j이다.

    우리는 신호 전달 경로를 layered graph로 시각화한다. 시각화 알고리

    즘은 다음의 4단계로 구성된다[7, 8, 9].

    (1) 계층 배정 및 사이클 처리

    (2) 더미 노드 생성

    (3) 에지 교차 최소화

    (4) Z – 좌표 변환

    마지막 단계의 경우 이전 단계까지의 결과에 따라 선택적으로 수행한

    다. 3단계에서 모든 에지 교차가 제거되면 마지막 단계를 수행하지 않고,

    에지 교차가 남아 있을 경우 마지막 단계를 수행하도록 한다.

  • - 7 -

    2.1. 계층 배정 및 사이클 처리

    이 과정은 모든 노드에 레이어를 배정해 줌으로써 y-좌표를 지정해 주는

    것이다. 같은 레이어에 있는 노드는 같은 y-좌표를 갖는 것이다.

    우선 노드와 에지들을 모두 읽어온 후 임의의 위치에 배정시킨다. 이

    과정에서는 각각의 노드의 위치 좌표에 임의의 값이 들어가기 때문에 에지

    교차가 생길 수 있다. 하지만 모든 단계를 마치면 에지 교차가 최소화된다.

    배정이 끝나면 부모 노드가 없는 노드들을 선택해서 1을 배정한다. 여기서

    1은 노드가 배정될 레이어의 숫자이다. 1이 배정된 노드에서부터 연결된

    에지를 따라 이동하면서 숫자를 1씩 증가시킨다. 2개 이상의 에지가 있을

    경우 각각에 같은 숫자를 부여하면 된다. 더 이상 연결된 에지가 없으면

    다른 노드에 숫자를 부여한다. 모든 에지에 숫자가 배정 될 때까지 이 과

    정을 반복한다.

    여기서 주의할 점은 중복된 노드에 서로 다른 숫자가 배정될 경우의

    처리이다. 이 경우에는 더 큰 수를 배정하도록 한다. 그리고 큰 수를 배정

    받은 노드에 연결된 에지를 따라 이동하면서 숫자 배정 작업을 한 번 더

    해준다. [그림 2]에서 노드 L은 3과 4를 배정받게 된다. 이런 경우에는 큰

    수인 4를 배정하도록 한다. 단, 하나의 노드에서 시작하고, 이미 레이어를

    배정받은 경우에는 cycle로 간주한다. 이 때에는 다음 배정작업을 시작한

    다.

  • - 8 -

    [그림 2] 노드에 레이어를 배정하는 과정

    숫자를 부여하는 과정이 끝나면 레이어에 모든 노드를 배정한다. 그리

    고 각 노드에 연결된 에지의 길이를 검사한다. 각 노드에 연결된 에지들

    중 길이가 가장 짧은 에지의 길이가 2 이상인 노드는 에지 길이가 1이 될

    때까지 하향이동 시킨다. 왜냐하면 다음의 2-4단계를 수행할 때에 작업량

    을 줄이기 위해서이다[10]. 예를 들어 [그림 3] (B)에서 노드 C의 경우에

    는 2개의 에지 중 짧은 에지의 길이가 1이기 때문에 이동시키지 않아도

    된다. 노드 D의 경우에는 에지의 길이가 2이기 때문에 레이어 2로 이동시

    켜서 에지의 길이가 1이 되도록 한다. 모든 노드는 배정된 레이어에 위치

    하게 되며, 같은 레이어에 배정된 노드들의 y-좌표는 동일하다. 그리고 같

    은 레이어에서 노드간의 거리는 균일하다.

  • - 9 -

    [그림 3] (A) 모든 노드가 무작위로 배치되어 있는 그래프 (B) 레이어가

    배정된 그래프

    Algorithm 1 AssignLevel ()

    for each node n ∈ V

    n.nodeLayerLvl = -1;

    for each node n ∈ V

    if(not (n has parent) )

    AssignNodeLevel(n, 0);

    AlignBottom();

    Algorithm 2 AssignNodeLevel (node, nodeLvl)

    if(node.nodeLayerLvl < nodeLvl) {

    node.nodeLayerLvl = nodeLvl;

    for each downward edge e of node

    if(e is node’s child) {

    if(node’s child is not count) {

    AssignNodeLevel(child node, nodeLvl + 1);

    }

    else return;

    }

    }

  • - 10 -

    Algorithm 3 AlignBottom ()

    for each node n ∈ V) {

    if(n.nodeLayerLvl != n.minChildLvl – 1)

    n.nodeLayerLvl = n.minChildLvl – 1;

    }

    2.2. 더미 노드 생성

    모든 노드의 레이어 배정이 끝나면 dummy 노드를 만든다. 길이가 2 이상

    인 모든 에지에 대해서 에지의 길이를 1로 만드는 과정이다. 길이를 1로

    만들기 위해서는 [그림 4] (B)와 같이 에지가 지나가는 레이어에 임의의

    노드를 생성한다. 단, dummy 노드는 논리상으로만 존재할 뿐 시각적으로

    는 보이지 않는다.

    [그림 4] (A) Dummy 노드 생성 전. (B) Dummy 노드 생성 후

  • - 11 -

    Algorithm 4 AddDummy ()

    for each node n ∈ V {

    for each downward edge e of n {

    if(n.nodeLayerLvl + 1 < child(n).nodeLayerLvl + 1)

    CreateDummyNodes;

    }

    }

    2.3. 에지 교차 최소화

    두 레이어 사이의 에지 교차 최소화 문제는 NP-complete이다[11].

    우리는 각 레이어의 노드 배치에 barycenter method를 사용하였다[12,

    13]. 두 레이어간의 에지 교차 최소화 방법은 다음과 같다.

    1) 그래프를 2차원 행렬로 만든다.

    가) 상위 레이어의 요소들을 좌측에 위치시킨다.

    나) 하위 레이어의 요소들을 상단에 위치시킨다.

    다) 연결된 경우 1, 연결되지 않은 경우 0을 지정한다.

    2) 각 row, column에 대해 다음과 같이 계산한다.

    가) row : ∑ {값(0 or 1) * 줄 수} / 1의 수

    나) column : ∑ {값(0 or 1) * 칸 수} / 1의 수

    3) 2)에서 계산된 값에 따라 오름차순으로 정렬한다.

    4) row, column 모두 정렬될 때까지 2), 3)의 과정을 반복한다.

  • - 12 -

    그래프에서 총 에지 교차의 수는 행렬에서 값이 1인 요소의 좌측

    하단 값들과 우측 상단 값들의 합이다. 수식 1은 이차원 행렬 M에 대하여

    특정 요소 Mkl을 구하는 식이다. [표 1] (A)에서 노드 A와 노드 1은

    연결되었기 때문에 값이 1이고, 노드 A와 노드 2는 연결되지 않았기

    때문에 값이 0이다.

    =otherwise

    Evvifm lkikl ,0

    ),(,1)( (1)

    수식 2와 수식 3은 이차원 행렬 M에 대하여 row값 ϒk와 column값 ρl

    의 계산식이다. [표 1] (B)에서 노드 A의 row값 ϒA를 계산하면

    [(1*1)+(2*0)+(3*1)+(4*0)+(5*1)] / (1+0+1+0+1) = 3이 나온다. 같은

    방식으로 노드 4의 column값 ρ4를 계산하면 다음과 같다. ρ4는

    [(1*0)+(2*1)+(3*1)+(4*0)] / (0+1+1+0) = 2.5 가 나온다.

    ∑∑==

    ⋅=q

    lkl

    q

    lklk mml

    11

    /γ (2)

    ∑∑==

    ⋅=p

    kkl

    p

    kkll mmk

    11/ρ (3)

  • - 13 -

    수식 4는 임의의 에지 k와 에지 l의 에지 교차를 계산하는 수식이다.

    [표 1] (A)에서 노드 4와 노드 C를 수식 4에 대입해 보면 (A, 5)와 (D, 2)

    의 값을 더해서 총 2가 나온다. (C, 4)의 에지 교차는 2개이다.

    kl

    p

    k

    l

    lk mmvvC ⋅= ∑ ∑+=

    =1

    1

    1),(

    α βαβ

    (4)

    다음의 [그림 5], [표 1], [그림 6]은 에지 교차를 최소화하는 과정을

    나타낸 것이다.

    [그림 5] 에지 교차 최소화 전(crossing: 17)

    [표 1] 두 레이어 간의 에지 교차 최소화 단계

  • - 14 -

    [그림 6] 에지 교차 최소화 후(crossing: 6)

    이와 같은 계산방법을 확장하여 다중 레이어의 계산에 활용할 수 있다.

    [표 2]는 [그림 4] (B)를 계산하는 과정이다.

  • - 15 -

    [표 2] 다중 레이어의 계산

  • - 16 -

    다중 레이어의 오름차순 정렬까지 끝마치면 2차원 평면상의 에지 교

    차가 최소화 된 노드의 배치가 완료된다. [그림 7]은 배치가 완료된 상태

    이다.

    [그림 7] 2차원 평면상에서 에지 교차 최소화 된 상태

  • - 17 -

    Algorithm 5 baryCenter(sourceLayer, targetLayer)

    for each node n ∈ sourceLayer n.calculateBCValue_source(targetLayer);

    for each node n ∈ targetLayer n.calculateBCValue_target(sourceLayer);

    if(isNeedSort) {

    sourceLayer.sort_by_BCValue;

    return true;

    } else return false;

    Algorithm 6 calculateBCValue_target(targetLayer)

    BCValue = 0;

    edge_cntSub = 0;

    for each node n ∈ targetLayer if(n has upward edge) {

    BCValue += n.rowIdx;

    edge_cntSub++;

    }

    }

    BCValue /= edge_cntSub;

  • - 18 -

    Algorithm 7 calculateBCValue_source(sourceLayer)

    BCValue = 0;

    Node_layer_cntSub = 0;

    for each node n ∈ sourceLayer { if(n has downward edge) {

    BCValue += n.colIdx;

    edge_cntSub++;

    }

    }

    BCValue /= edge_cntSub;

    2.4. Z – 좌표변환

    2차원 평면상에서 노드의 위치를 변경시키는 것 만으로는 에지 교차를 최

    소화 시키는데 한계가 있다. 따라서, 3차원 공간상의 좌표변환이 필요하다.

    기본적으로 2차원 좌표 변환과정을 한 후, 에지 교차가 남아있을 경우 추

    가적으로 z-좌표 변환과정을 진행한다. Z-좌표 변환 과정은 다음과 같다.

    1) 최하위 레이어를 하나의 그룹으로 묶는다.

    2) 한 레벨 위의 레이어의 노드들을 다수 개의 그룹으로 나눈다.

    가) 두 레이어 사이에 연결된 에지에 교차가 있는지 검사한다.

    나) 특정 에지와 교차가 생기는 노드의 숫자를 카운트 한다.

    다) 숫자들 중에서 가장 큰 수 + 1이 그 레이어의 그룹 수로

    지정된다.

    3) 레이어의 그룹이 모두 나뉜 후, 한 레벨 위의 레이어와 교차

  • - 19 -

    검사를 반복한다. 단, 최하위 레이어를 제외한 모든 레이어는 그룹

    별로 에지 교차를 검사하여 최대값을 구한다.

    4) 그룹에 노드를 배정한다.

    가) 첫 노드는 첫 번째 그룹에 배정한다.

    나) 두 번째 이후 노드는 자신의 앞 번째 노드와 교차가 있는지

    검사 후, 없으면 앞 노드와 같은 그룹에 배정하고, 있으면

    다음 그룹에 배정한다.

    다) 마지막 그룹까지 가면 다시 첫 그룹으로 배정한다.

    5) 최상위 레이어까지 배정 후 종료한다.

    위의 방법대로 계산하기 위해서는 두 레이어간의 연결 관계를 표현한

    이차원 행렬에서 leftCrossing과 rightCrossing을 계산하여야 한다. 다음

    수식 5와 수식 6은 leftCrossing과 rightCrossing을 구하는 식이다.

    ==

    =

    ∑−

    =

    +=

    otherwise

    mlf

    wherelfengleftCrossi

    l

    p

    k

    :1

    0:0),(

    ),,()(

    1

    1

    1

    β

    α

    αβα

    α

    (5)

    ==

    =

    +=

    =

    otherwise

    mlf

    wherelfeingrightCross

    q

    l

    k

    :1

    0:0),(

    ),,()(

    1

    1

    1

    β

    α

    αβα

    α

    (6)

  • - 20 -

    [그림 8]에서 최상위 레이어는 중간 레이어와 에지 교차가 있음에도

    불구하고 같은 그룹에 있다. 이는 중간 레이어의 group1, group2, group3이

    서로간에 에지 교차가 없기 때문이다.

    [그림 8] Z-좌표 변환을 이용한 그룹화

    Algorithm 8 getGroupCnt()

    groupCnt = 0;

    for each group g in targetLayer

    for each node n ∈ g for each upward edge e of n {

    if(leftCrossing(e) > groupCnt) groupCnt = leftCrossing(e);

    if(rightCrossing(e) > groupCnt) groupCnt = rightCrossing(e);

    }

    groupCnt++;

  • - 21 -

    Algorithm 9 AssignGroupCnt()

    for each upward node nij connected to group gi of targetLayer {

    assign node nil to group g1; // nij: j-th upward node of gi

    for each node nij {

    assign node nij to group gx+y, where

    x = group number to which (j-1)th node is assigned.

    y = 1. if there is an edge crossing between (j-1)th node and j-th node.

    y = 0. otherwise.

    if (x+y > total number of groups)

    the group number of the j-th node is 1;

    }

    }

  • - 22 -

    제 3 장 경로 데이터의 시각화 이 장에서는 신호전달 경로를 사용자의 요구에 따라 다양한 형태로

    제공하는 프로그램을 소개한다. 가장 용이한 방식의 레이아웃을 제공하기

    위해 본 논문에서 제시하는 알고리즘도 이용하였다. 신호전달 경로 시각화

    시스템은 웹 기반의 .net 버전으로 만들었고, 여러 형태로 신호전달 경로를

    표현 가능하다.

    3.1. 신호전달 경로지도의 입력 데이터 형식

    본 프로그램은 다음 형식의 신호전달 경로 데이터를 지원한다.

    pnm: Source_Node와 target_Node 정보로 구성되어 있고,

    구분자로 “tab”을 사용한다. 기타 추가 정보가 없기 때문에

    공간상의 위치는 자동으로 지정되며, edge_Type과 node_Type의

    지정은 지원되지 않는다.

    pid: Source_Node와 target_Node정보로 구성되어 있다. 노드들은

    숫자로 저장되어 있으며 구분자로 “tab”을 사용한다. 추가정보는

    pid_Label, pid_Pos를 호출해서 받는다. pid_Label은 pid의

    노드들의 label이 저장되어 있다. node_No와 node_Label 정보로

    구성되어 있고, 구분자로 “tab”을 사용한다. pid_Pos는 각 노드의 x,

    y, z 좌표를 가지고 있다.

    stp: Node_No와 x, y, z 좌표, node_Type, node_Label이 한 단락을

    이루고 있고, source_Node, target_Node, edge_Type이 한 단락을

    이루고 있다. 단일 파일 내에 모든 정보를 포함하고 있으며

    pnm과는 달리 edge_Type과 node_Type을 지정할 수 있다.

  • - 23 -

    [표 3]은 pnm, pid, stp file의 예를 나타내는 표이다.

    [표 3] pnm, pid, stp file의 예

    //source Target

    A B

    A C

    B D

    C D

    C F

    D F

    … …

    *.pnm

    //source target id label id x y Z

    1 2 1 A 1 1.1 3.2 7.8

    1 3 2 B 2 1.2 3.2 1.0

    2 3 3 C 3 1.2 3.2 1.0

    2 4 4 D 4 1.2 1.6 6.8

    3 7 5 E 5 1.3 2.9 4.1

    3 9 6 F 6 8.3 6.4 8.6

    … … …

    *.pid *.pid_Label *.pid_Pos

  • - 24 -

    //node section

    //id x y z node_Type Label

    1 -1.5 1 -0.5 0 A

    2 -1 0 0 0 B

    3 0 0 0 1 C

    4 -0.5 1 0 2 D

    //edge section

    //source target edge_Type

    1 2 1

    1 3 1

    2 4 16

    *.stp

    3.2. 프로그램 구현 및 클래스 구성

    Windows와 웹 기반 애플리케이션 프로그램의 개발이 용이하도록

    Microsoft C#을 이용하여 구현하였다. 클래스는 크게 세 부분으로 구분되고

    클래스간의 구성은 [그림 9]와 같다.

    첫 번째 부분: 가장 기본이 되는 클래스는 CS_3dPt로서, 3D 좌표

    값을 저장하기 위한 클래스이며 이를 상속받아서 CS_Node

    클래스가 구성된다.

  • - 25 -

    두 번째 부분: CS_NodeList는 각 노드와 에지의 추가 삭제를

    관리하는 클래스이다. 또한 이 클래스에서는 Sugiyama

    algorithm의 계산을 위한 barycenter 값을 검사하는 부분이

    포함된다. CS_Graph는 CS_NodeList를 상속받아서 구성되며

    전체적인 그래프의 관리와 실제 레이아웃과 load, save 기능을

    연결하여 수행한다.

    세 번째 부분: CS_Panel class는 사용자의 조작에 따라 CS_Graph

    클래스로 필요한 정보를 보내주는 기능을 수행한다. 또한

    CS_Graph의 자료를 화면에 그려주기 위하여 drawStrList라는

    객체를 통하여 화면에 그려지는 정보를 관리하며 노드등의 선택

    시 반응과 그리는 역할을 수행한다.

  • - 26 -

    +rotate(in rx : double, in ry : double, in rz : double)+shift(in dx : double, in dy : double, in dz : double)

    +x : double+y : double+z : double

    CS_3dPt

    +addEdge(in targetNode : CS_Node, in edgeType : int) : CS_Edge+removeEdge(in edgeIndex : int)+getEdge() : CS_Edge

    +nodeState : int+nodeShape : int+nodeLabel : string+nodeIndex : int+nodeEdgeList : ArrayList+nodeVisible : bool

    CS_Node

    +addNode(in nodeLabel : string, in nodeShape : int) : CS_Node+removeNode(in node : CS_Node)+getNode(in index : int) : CS_Node+addEdge(in sourceNode : CS_Node, in targetNode : CS_Node, in edgeType : int) : CS_Edge+removeEdge(in sourceNode : CS_Node, in targetNode : CS_Node)+getEdge(in node : CS_Node, in edgeIndex : int) : CS_Edge+baryCenter(in nodeList : CS_NodeList) : bool

    +nodeArray : ArrayListCS_NodeList

    -addDummyNode() : CS_Node-removeDummyNodes(in nodeIndex : int)+deform(in deformStyle : int)+selectNode(in node : CS_Node)+shiftGraph(in dx : double, in dy : double, in dz : double, in bSelectedOnly : bool)+rotateGraph(in rx : double, in ry : double, in rz : double, in bSelectedOnly : bool)+layout(in layoutMethod : int)+savetoFile(in fileName : string) : bool+loadfromFile(in fileName : string) : bool+addInteraction(in sourceNode : string, in targetNode : string, in edgeType : int)

    -labelHash-layerList : CS_LayerList

    CS_Graph

    +getMru(in mruIndex : int) : string+addMru(in mru : string)

    +mruList : ArrayList+bShowLabel : bool+bShowNode : bool+bShowEdge : bool+layoutMethod : int

    CS_Option

    +edgeTargetNode : CS_Edge+edgeType : int

    CS_Edge

    +addLayer(in node : CS_NodeList) : int+removeLayer(in index : int)+getLayer(in index : int) : CS_NodeList+alignbyBaryCenter(in index1 : int, in index2 : int) : bool

    -layerList : ArrayListCS_LayerList

    -canAccess(in fileName : string) : bool+loadStpFile(in fileName : string) : bool+loadPidFile(in fileName : string) : bool+loadPnmFile(in fileName : string) : bool+loadfromFile(in fileName : string) : bool+saveStpFile(in fileName : string) : bool+savePidFile(in fileName : string) : bool+savePnmFile(in fileName : string) : bool+savetoFile(in fileName : string) : bool

    -graph : CS_GraphCS_File

    -fdLayout(in iteration : int, in r : double)-fdLayoutbyStep(in r : double)-fdLayoutSub(in pt1 : CS_Node, in g : double)-syLayout()+Layout(in layoutMethod : int)

    -graph : CS_GraphCS_Layout

    -drawNode(in nodeIndex : int)-drawEdge(in nodeIndex : int, in edgeIndex : int)-drawInternal()-updateScrPt()-updateScrRect()-updateScrLabel()-updateScrSize()+loadfromFile(in fileName : string)+savetoFile(in fileName : string)+layout(in layoutMethod : int)+fitScale()

    -graph : CS_Graph-mouseState : int-lastSelection : CS_Node-drawStrList : ArrayList

    CS_Panel

    -pt : Point-rect : Rect-nodeSize : int-nodeLabel : string-nodeWIdthHeight : SizeF

    CS_DrawStr

    [그림 9] 본 프로그램의 클래스 구성도

  • - 27 -

    3.3. PathwayViewer

    PathwayViewer는 Microsoft C#으로 구현된 프로그램으로서 Windows

    2000/XP/Me/98/NT 4.0 시스템에 설치하여 사용하는 신호전달 경로 시각

    화 프로그램이다. [그림 10]은 테스트용으로 임의로 만든 신호전달 경로

    데이터베이스에 접속하여 파일을 여는 그림이다. [그림 11]은 본 시스템의

    구성도이다.

    [그림 10] PathwayViewer( http://interviewer.inha.ac.kr/mPv/)

  • - 28 -

    [그림 11] 시스템 구성도

    PathwayViewer는 다중 문서 인터페이스 (MDI)를 사용하였고 여러

    가지 기능도 구현되도록 하였다.

    PathwayViewer에서 구현한 기능의 예:

    - 각 좌표의 기본 좌표를 생성해 준다.

    - 선택된 노드들만의 이동이 가능하다.

    - 노드의 위치를 랜덤하게 또는 구 모양으로 배치시킬 수 있다.

    - 신호전달 경로 데이터베이스에서 직접 데이터를 시각화할 수 있다.

    - 그래프를 확대하거나 축소, 회전, 이동이 마우스 조작만으로

    자유롭게 된다.

    - 계층형의 레이아웃을 계산·생성한다.

    - 각각의 노드를 노드 또는 label로 표현할 수 있다.

    - 경로지도에 표현되어 있는 노드들의 리스트를 제공함으로써

    어디에 어떤 노드가 있는지 빠르게 찾을 수 있다.

  • - 29 -

    제 4 장 실험 결과

    본 연구에서는 신호전달 경로의 지도를 시각화하는데 있어서 타 프로그램

    과 비교해 보았다. 본 시스템은 경로지도의 다양한 수정을 가능하게 함으

    로써 활용도를 높이고자 하였다.

    4.1. 동적 시각화

    본 논문에서 가장 강조하고자 하는 부분이 동적 시각화 부분이다. 우선 동

    적 시각화를 위해서는 위에서 언급한 것과 같은 시각화 알고리즘이 필요하

    다. 또한, 그 알고리즘을 이용할 프로그램과 웹 서비스를 제공할 시스템이

    필요하다. 마지막으로 실시간으로 수정이 가능하도록 다양한 기능들이 제

    공되어야 한다.

    [그림 12], [그림 13]과 [그림 14]는 tyrosine kinase-linked

    receptor and G-protein coupled receptors를 시각화한 그림이다. [그림

    12]는 본 논문에서 제안한 알고리즘과 시스템을 이용해 시각화한 그림이

    다. 미적으로 떨어지지 않는 이미지를 제공하며, 각각의 노드와 에지를 선

    택할 수 있고 다양한 형태로 변형이 가능하다. [그림 13]은 단순히 한 장

    의 이미지로 제공되기 때문에 수정이 불가능하다. [그림 14]는 다른 형태

    의 레이아웃으로 같은 경로지도를 시각화한 그림이다.

  • - 30 -

    [그림 12] Tyrosine kinase-linked receptor and G-protein coupled

    receptors 의 신호 전달 경로를 본 프로그램으로 시각화한 그림

    [그림 13] Tyrosine kinase-linked receptor and G-protein coupled

    receptors의 신호 전달 경로를 hippron 社(www.hippron.com)에서

    제공하는 그림

  • - 31 -

    [그림 14] Tyrosine kinase-linked receptor and G-protein coupled

    receptors의 신호 전달 경로를 본 프로그램에서 다른 레이아웃으로

    시각화한 그림

    [그림 15]는 본 프로그램에서 여러 형태의 경로지도 파일을 열어 본

    그림이다. 계층형, 구형, 랜덤형의 경로지도가 가능함을 알 수 있다.

    우측에는 각 경로지도에 표현된 모든 노드가 나타나있다. 리스트에서

    임의의 노드를 선택하면 경로지도 상에서 선택된 노드의 색상이 반전된다.

    노드의 수가 많을 경우 빠른 찾기가 가능하다.

  • - 32 -

    [그림 15] 여러 형태의 신호전달 경로를 시각화한 예제

    [그림 16]은 T Cell의 신호전달 경로를 시각화한 그림이다. [그림 16]

    (B)는 [그림 16] (A)를 옆에서 본 그림이다. 위의 알고리즘을 통해서 z-

    좌표가 변화된 것을 알 수 있다. 사용자는 마우스를 이용해서 다양한

    각도에서 경로지도를 바라 볼 수 있다.

  • - 33 -

    [그림 16] (A) T Cell의 신호전달 경로를 시각화한 그림 (B) 옆에서 본

    그림

    PathwayViewer는 마우스를 이용하여 시점(view point)을 변화시킬

    수 있다. [그림 17]은 화면 우측의 NodeList에서 원하는 노드를 찾는

    그림이다. 사용자가 찾고자 하는 노드의 이름을 더블클릭하면, 해당 노드는

    노랑색으로 반전되고 그 노드를 중심으로 화면이 이동된다. 하나의 노드를

    선택 후 마우스의 드래그 앤 드롭을 이용하여 위치를 변경할 수 있다.

  • - 34 -

    [그림 17] NodeList를 이용한 검색

    [그림 18]은 일부분의 노드들을 이동시키는 그림이다.

    컨트롤키(Ctrl)를 이용하여 다수 개의 노드를 선택 후 이동시킬 수 있다.

    [그림 18] 다수의 노드 선택 및 이동

  • - 35 -

    [그림 19]와 [그림 20]은 마우스를 이용하여 화면을 확대·축소하는

    그림이다. 마우스 좌·우 버튼을 동시에 누르고 위·아래로 이동시키면

    화면이 확대·축소 된다.

    [그림 19] 마우스를 이용한 화면 축소

    [그림 20] 마우스를 이용한 화면 확대

  • - 36 -

    [그림 21]은 E. coli의 신호전달 경로지도이다. 그림과 같은 많은

    노드와 에지를 포함한 경로지도의 경우에도 보기 좋은 레이아웃을

    제공하고 있음을 알 수 있다. 전체 경로는 몇 단계인지를 한 눈에 알 수

    있고, 원하는 노드를 선택 후 경로를 따라가며 어떤 노드들을 지나는지도

    알 수 있다.

    [그림 21] E. coli 신호전달 경로

  • - 37 -

    4.2. 타 프로그램과의 비교

    최근 신호전달 경로지도의 관심이 높아지면서 다수의 데이터베이스가

    생겨나고 있다. 그러나 대부분의 단순한 이미지의 제공으로 끝나고,

    사용자의 요구에 따른 경로지도의 수정은 불가능한 실정이다.

    [그림 22]은 KEGG에서 제공하는 Notch의 신호전달 경로지도이다.

    KEGG(Kyoto Encyclopedia of Genes and Genomes)는 현재 전세계적으로

    가장 많이 사용되는 데이터베이스이다[14]. 그림에서 보면 좌에서 우로

    계층을 이뤄서 에지가 진행되는 것을 볼 수 있다. 이는 신호전달

    경로지도의 경로를 탐색하기에 적절하다. 하지만 단지 GIF 이미지

    하나로만 제공되기 때문에 사용자의 요구에 따른 이미지의 수정이

    불가능하다. 또한, 생물학적 네트워크 데이터를 데이터베이스에서 직접

    추출하여 동적으로 시각화하는 프로그램도 지원되지 않는다.

    [그림 22] Notch 신호전달 경로

  • - 38 -

    [그림 23]는 BioCarta에서 제공하는 Bioactive Peptide Induced

    Signaling Pathway이다[15]. KEGG의 흑백으로 표현된 경로지도와 달리,

    다국적 회사인 BioCarta의 여러 유형의 경로지도는 화려한 색을 사용한

    이미지이지만, 신호전달 경로지도 자체를 탐색하거나 수정, 확대, 축소 할

    수 없다는 점에서 KEGG와 같이 정적인 시각화이고, 사용자의 신호전달

    경로데이터를 시각화하는 데에도 사용할 수 없다는 단점이 있다.

    [그림 23] Bioactive Peptide Induced 신호전달 경로

  • - 39 -

    제 5 장 결 론

    최근 기술의 발달로 생물정보학 분야도 빠른 속도로 발전해 나가고

    있다. 특히 시각화 부분은 바이러스 또는 단백질의 경로 분석, 신약개발,

    다양한 형태로의 산업발전에 기여하며 많은 관심을 보이고 있는 분야이다.

    초기의 생물정보학 시각화 분야는 metabolic pathway에 국한되어

    연구되어 왔다. 최근에는 신호전달 경로부분으로 연구 이슈가 옮겨가고

    있는 추세이다. 그러나 이러한 경로 데이터를 제공해주는 대부분의

    데이터베이스들은 정적인 이미지를 제공하고 있다. 장비의 발달로 인해

    무수히 많은 양의 데이터가 쏟아져 나오지만 이를 전산화하는 데는 한계를

    보이고 있다. 많은 데이터베이스가 수작업으로 그려진 경로지도를

    제공하기 때문이다. 미적으로 뛰어나기는 하지만 노드의 수가 많아지거나

    수정을 하려 할 경우 어려움이 따르는 것은 피할 수 없는 문제이다. 이런

    문제를 해결하기 위해 동적 시각화가 필요한 것이다. 본 논문에서는

    컴퓨터를 이용하여 각각의 노드와 상호작용 정보만 입력해주면 다양한

    형태의 레이아웃을 자동으로 제공해주는 알고리즘을 제안했다. 이를

    활용한 시스템은 신호전달 경로 지도를 활용하는데 있어서 크게 공헌할

    것으로 기대된다.

    현재, 그래프의 시각화라는 부분은 하나의 큰 카테고리로서

    연구분야로 자리잡고 있다. 이 분야에서 공통적으로 적용하고 있는

    레이아웃 규칙은 [그림 24]과 같다. 본 논문에서 제안하고 있는 알고리즘

    또한 이 규칙의 대부분을 포함하고 있다.

  • - 40 -

    BASIC RULES

    SEMANTIC RULES

    STRUCTURAL RULES

    STRUCTURAL RULES

    Avoid overlapping among vertices

    Avoid overlappingamong edges

    Avoid overlappingamong vertices and edges

    Place specifiedvertices on

    a straight line

    Place specifiedvertices on

    a curve

    Drawn verticeswith specified

    sizes

    Place specifiedvertices at

    the boundary

    Place specifiedverticesnearly

    Place specifiedvertices near

    the center

    Central placementof high degree

    vertices

    Identical layout of isomorphic subgraphs

    Minimizeaverage length

    of edges

    Uniformplacement

    Draw facesas convexpolygons

    Symmetricallayout

    Minimizeedge crossings

    Hierarchicallayout

    Minimizeedge bends

    Balance oflength and

    breadth

    Place childrensymmetrically

    Minimizedrawing area

    Avoid crossingsamong outlines

    Minimizedifference in

    sizes of vertices

    Minimizetotal edge

    length

    [그림 24] 일반적인 그래프 레이아웃 규칙

  • - 41 -

    웹 기반의 신호전달 경로 시각화 시스템은 다양한 형태의 레이아웃을

    제공하며 사용자에게 여러 방면으로 도움을 줄 것으로 기대한다. 하지만

    사용자가 직접 노드와 상호작용 정보를 입력하여 새로운 신호전달 경로를

    작성하는 기능이 제공되지 않는다. 향후 이러한 기능을 추가한다면 본

    시스템은 더 편하게 신호전달 경로 데이터를 연구할 수 있게 될 것이다.

    또한 본 연구에서는 컴퓨터 공학이 타 분야 문제해결 응용에 어느

    정도 도움이 되고 있는지를 보여주고 있으며, 컴퓨터 공학의 학문적

    영역과 응용 분야가 나날이 증대되고 있다는 사실도 인지시켜주고 있다.

  • - 42 -

    참 고 문 헌

    [1] Alves and M. A. Savageau, “Systemic properties of ensembles of

    metabolic networks: application of graphical and statistical methods to

    simple unbranched pathways,” Bioinformatics, vol. 16, pp. 534-547, 2000.

    [2] M. Y. Becher and I. Rojas, “A graph layout algorithm for drawing metabolic

    pathways,” Bioinformatics, vol. 17, pp. 461-467, 2001.

    [3] A. Goesmann, M. Haubrock, F. Meyer, J. Kalinowski, and R. Giegerich,

    “PathFinder: reconstruction and dynamic visualization of metabolic

    pathways,” Bioinformatics, vol. 18, pp. 124-129, 2002.

    [4] P. Karp, X. Paley, and P. Romero, “The pathway tools software,”

    Bioinformatics, vol. 18, pp. 225-232, 2002.

    [5] F. Kose, W. Weckwerth, T. Linker, and O. Fiehn, “Visualizing plant

    metabolomic correlation networks using clique0metabolite matrices,”

    Bioinformatics, vol. 17, pp. 1198-1208, 2001.

    [6] R. Kuffner, R. Zimmer, and T. Lengauer, “Pathway analysis in metabolic

    databases via differential metabolic display (DMD),” Bioinformatics, vol.

    16, pp. 825-836, 2000.

    [7] 이동훈, 주병현, 한경숙, “신호 전달 경로 데이터의 시각화,” 데이터마이

    닝 학회, pp. 139-153, 2004

    [8] Donghoon Lee, Byoung-Hyun Ju, and Kyungsook Han, “Dynamic

    Visualization of Signal Transduction Pathways from Database

    Information,” Artificial Intelligence and Simulation, vol. 3397, pp. 663-672,

  • - 43 -

    2004

    [9] Donghoon Lee, Byoung-Hyun Ju, and Kyungsook Han, “A Layout

    Algorithm for Signal transduction Pathways as Two-Dimensional Drawings

    with Spline Curves,” LNCS 3514, pp. 711-718, 2005

    [10] Gansner E. R., Koutsofios E., North S. C., “A technique for drawing

    directed graphs,” IEEE Transactions on Software Engineering 19, pp.

    214-230, 1993.

    [11] Garey M. R., Johnson D. S., “Crossing Number is NP-Complete,” SIAM J.

    Algebraic Discrete Methods 4, pp. 312-316, 1983.

    [12] Sugiyama K., Tagawa S., Toda M., “Method for visual understanding of

    hierarchical system structures,” IEEE Transaction on Systems, Man, and

    Cybernetics SMC-11, pp. 109-125, 1981.

    [13] Sugiyama K., “Graph Drawing and Applications for Software and

    Knowledge Engineering.” Singapore, 2002.

    [14] KEGG, http://www.genome.ad.jp/kegg/

    [15] BioCarta, http://www.biocarta.com

  • - 44 -

    부 록

    원핵생물

    진핵생물에 대응되는 말이다. 원핵생물은 모두 단세포로 되어 있으며, 원핵

    균류와 남조식물 등이 이에 해당된다. 원핵생물에서는 핵산(DNA)이 막으

    로 둘러쌓이지 않고, 분자 상태로 세포질 내에 존재하며, 미토콘드리아 등

    의 구조체가 없는 것이 특징이다.

    진핵생물

    원핵생물에 대응되는 말이다. 핵막으로 둘러 쌓인 핵을 가지며, 유사분열을

    하는 세포로 형성된 생물로서, 단세포·다세포 동물, 남조류를 제외한 식물,

    그리고 진핵균류가 이에 해당된다. 진핵생물의 세포에서는 핵산·히스톤 단

    백질·핵소체로 이루어지는 핵이 핵막에 둘러 쌓여 있으며, 유사분열을 할

    때에는 핵이 일정한 수의 염색체를 만들어낸다. 또, 세포질에는 소포체와

    미토큰드리아 등의 구조체가 분화·발달하여 존재한다.

    목차제 1 장 서 론 1.1. 연구 배경 및 필요성 1.2. 연구 목적 및 범위

    제 2 장 신호전달 경로 시각화 알고리즘 2.1. 계층 배정 및 사이클 처리 2.2. 더미 노드 생성 2.3. 에지 교차 최소화 2.4. Z – 좌표 변환

    제 3 장 경로 데이터의 시각화 3.1. 신호전달 경로지도의 입력 데이터 형식 3.2. 프로그램 구성 및 클래스 구성 3.3. PathwayViewer

    제 4 장 실험 결과 4.1. 동적 시각화 4.2. 타 프로그램과의 비교

    제 5 장 결론 참고문헌 부록

    표목차[표 1] 두 레이어 간의 에지 교차 최소화 단계 [표 2] 다중 레이어의 계산 [표 3] 본 프로그램에서 지원하는 pnm, pid, stp file의 예

    그림목차[그림 1] MAPK(Mitogen – Activated Protein Kinases) 신호전달 경로지도 시각화 [그림 2] 노드에 레이어를 배정하는 과정 [그림 3] 노드들의 레이어 배정 전/후의 비교 [그림 4] Dummy 생성 전/후 비교 [그림 5] 에지 교차 최소화 전 [그림 6] 에지 교차 최소화 후 [그림 7] 2차원 평면상에서 에지 교차 최소화 된 상태 [그림 8] Z – 좌표 변환을 이용한 그룹화 [그림 9] 본 프로그램의 클래스 구성도 [그림 10] PathwayViewer [그림 11] 시스템 구성도 [그림 12] Tyrosine kinase-linked receptor and G-protein coupled receptors의 신호 전달 경로를 본 프로그램으로 시각화한 그림 [그림 13] Tyrosine kinase-linked receptor and G-protein coupled receptors의 신호 전달 경로를 hippron 社에서 제공하는 그림 [그림 14] Tyrosine kinase-linked receptor and G-protein coupled receptors의 신호 전달 경로를 본 프로그램에서 다른 레이아웃으로 시각화한 그림 [그림 15] 여러 형태의 신호전달 경로를 시각화한 예제 [그림 16] T Cell의 신호전달 경로를 시각화한 그림 [그림 17] NodeList를 이용한 검색 [그림 18] 다수의 노드 선택 및 이동 [그림 19] 마우스를 이용한 화면 축소 [그림 20] 마우스를 이용한 화면 확대 [그림 21] E. coli 신호전달 경로 [그림 22] Notch 신호전달 경로 [그림 23] Bioactive Peptide induced 신호전달 경로 [그림 24] 일반적인 그래프 레이아웃 규칙

    목차제 1 장 서 론 1 1.1. 연구 배경 및 필요성 1 1.2. 연구 목적 및 범위 5

    제 2 장 신호전달 경로 시각화 알고리즘 6 2.1. 계층 배정 및 사이클 처리 7 2.2. 더미 노드 생성 10 2.3. 에지 교차 최소화 11 2.4. Z – 좌표 변환 18

    제 3 장 경로 데이터의 시각화 22 3.1. 신호전달 경로지도의 입력 데이터 형식 22 3.2. 프로그램 구성 및 클래스 구성 24 3.3. PathwayViewer 27

    제 4 장 실험 결과 29 4.1. 동적 시각화 29 4.2. 타 프로그램과의 비교 37

    제 5 장 결론 39

    참고문헌 42부록 44

    표목차[표 1] 두 레이어 간의 에지 교차 최소화 단계 13

    [표 2] 다중 레이어의 계산 15

    [표 3] 본 프로그램에서 지원하는 pnm, pid, stp file의 예 23

    그림목차[그림 1] MAPK(Mitogen – Activated Protein Kinases) 신호전달 경로지도 시각화 3

    [그림 2] 노드에 레이어를 배정하는 과정 8

    [그림 3] 노드들의 레이어 배정 전/후의 비교 9

    [그림 4] Dummy 생성 전/후 비교 10

    [그림 5] 에지 교차 최소화 전 13

    [그림 6] 에지 교차 최소화 후 14

    [그림 7] 2차원 평면상에서 에지 교차 최소화 된 상태 16

    [그림 8] Z – 좌표 변환을 이용한 그룹화 20

    [그림 9] 본 프로그램의 클래스 구성도 26

    [그림 10] PathwayViewer 27

    [그림 11] 시스템 구성도 28

    [그림 12] Tyrosine kinase-linked receptor and G-protein coupled receptors의 신호 전달 경로를 본 프로그램으로 시각화한 그림 30

    [그림 13] Tyrosine kinase-linked receptor and G-protein coupled receptors의 신호 전달 경로를 hippron 社에서 제공하는 그림 30

    [그림 14] Tyrosine kinase-linked receptor and G-protein coupled receptors의 신호 전달 경로를 본 프로그램에서 다른 레이아웃으로 시각화한 그림 30

    [그림 15] 여러 형태의 신호전달 경로를 시각화한 예제 31

    [그림 16] T Cell의 신호전달 경로를 시각화한 그림 32

    [그림 17] NodeList를 이용한 검색 34

    [그림 18] 다수의 노드 선택 및 이동 34

    [그림 19] 마우스를 이용한 화면 축소 35

    [그림 20] 마우스를 이용한 화면 확대 35

    [그림 21] E. coli 신호전달 경로 36

    [그림 22] Notch 신호전달 경로 37

    [그림 23] Bioactive Peptide induced 신호전달 경로 38

    [그림 24] 일반적인 그래프 레이아웃 규칙 40