KR20080102006A - 공간분할 방식을 이용한 유전자 서열 정렬 방법 - Google Patents

공간분할 방식을 이용한 유전자 서열 정렬 방법 Download PDF

Info

Publication number
KR20080102006A
KR20080102006A KR1020070048253A KR20070048253A KR20080102006A KR 20080102006 A KR20080102006 A KR 20080102006A KR 1020070048253 A KR1020070048253 A KR 1020070048253A KR 20070048253 A KR20070048253 A KR 20070048253A KR 20080102006 A KR20080102006 A KR 20080102006A
Authority
KR
South Korea
Prior art keywords
block
algorithm
matrix
optimal alignment
alg
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
KR1020070048253A
Other languages
English (en)
Inventor
노희영
안희국
박진식
Original Assignee
강원대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 강원대학교산학협력단 filed Critical 강원대학교산학협력단
Priority to KR1020070048253A priority Critical patent/KR20080102006A/ko
Publication of KR20080102006A publication Critical patent/KR20080102006A/ko
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B15/00ICT specially adapted for analysing two-dimensional or three-dimensional molecular structures, e.g. structural or functional relations or structure alignment
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B40/00ICT specially adapted for biostatistics; ICT specially adapted for bioinformatics-related machine learning or data mining, e.g. knowledge discovery or pattern finding

Landscapes

  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Medical Informatics (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Biology (AREA)
  • Biotechnology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Public Health (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Evolutionary Computation (AREA)
  • Epidemiology (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

공간분할 방식을 이용한 유전자 서열 정렬 방법이 제공된다. 본 발명의 일 실시예에 따른 공간분할 방식을 이용한 유전자 서열 정렬 방법은, 유전자 서열의 정렬 방법에 있어서, DPA 매트릭스를 행과 열에 대한 임의의 정수로 분할함으로써 부분 매트릭스 및 블록 매트릭스를 생성하는 단계, 생성된 각각의 블록 매트릭스에 대해 DPA를 시행함으로써 블록 내 부분 최적 정렬을 구하는 단계 및 구해진 각각의 블록 내 부분 최적 정렬에 대한 역추적 알고리즘을 이용하여 전체 최적 정렬을 구하는 단계를 포함한다.
공간분할, 유전자 서열, 최적 정렬, LSA, DPA, Global Alignment, Pairwise Alignment

Description

공간분할 방식을 이용한 유전자 서열 정렬 방법{DNA Sequence Alignment Algorithm using Space Division Technique}
도 1 내지 도 13은 본 발명의 실시예에 따른 공간분할 방식을 이용한 유전자 서열 정렬 방법을 설명하기 위한 개념도들이다.
본 발명은 공간분할 방식을 이용한 유전자 서열 정렬 방법에 관한 것으로, 더욱 상세하게는, 공간분할 기법을 이용하여 분할면의 정보만을 테이블로 유지하면서, 최적정렬을 얻을 수 있는 O(m*n) 시간 복잡도와 O(m+n) 공간 복잡도를 갖는, 공간분할 방식을 이용한 유전자 서열 정렬 방법에 관한 것이다.
서열정렬이라 함은 두 개의 서열을 순서를 유지하고, 공백(space)을 허용하면서 나열하는 것을 말하며, 두 서열간의 각 심벌들을 점수 함수(일치, 불일치, 갭일 때 값을 부여하기위한 함수)를 기준으로 1:1로 점수화 시켰을 때, 점수값의 합 이 최대가 되는 서열을 최적정렬이라 한다.
생물서열(DNA, amino acid)에서 최적정렬의 중요성은 공통조상으로부터 분화된 상동유전자(homologous gene)는 구조적 기능적면에서 서로 유사성을 갖는다는데 있다.
즉, 새로운 유전자 A와 이미 알려진 유전자 B가 유사성을 갖는다면, 두 유전자는 서로 구조와 기능면에서 비슷하다는 결론을 추론할 수가 있으며, 이러한 유사성을 판단하기 위한 방법으로 사용되는 것이 최적정렬이다.
2006년 8월 현재 NCBI(National Center for Biotech nology Institute)의 유전자은행에 저장된 서열정보는 61,132,599개의 서열에 65,369,091,950개의 염기가 저장되어 있고, 그 수는 계속적으로 증가되고 있는 상황이다.
또한, 최근에는 서열의 길이가 수십억 개까지 될 수 있는 두 개의 전체 게놈을 비교하는 것이 연구자들 사이의 초점이 되고 있다. 즉, 큰 서열로부터 최적정렬을 찾는 요구가 증대됨에 따라 컴퓨터를 이용한 최적정렬 계산 시, 요구되는 시간 및 공간 비용이 증가되고 있으며, 이를 효율적으로 감소시킬 방법 및 필요성이 증대되고 있는 상황이다.
최적정렬을 구하는 문제는 Needleman & Wunsch의 동적 프로그래밍 알고리즘(Dynamic Programming Algorithm: DPA)을 통해 효과적으로 구해질 수 있다.
하지만, 2차원의 전체 매트릭스를 구성해야하기 때문에 O(m*n)의 시간과 공간 복잡도를 갖게 된다(m=|S1|, n=|S2|). 예를 들어, 길이 10,000의 서열 S1, S2는(계수: 1μs/operation, 1Byte/symbol) 100sec 시간과 100M 공간이 필요하다. 즉, 서열의 크기가 커질 경우, 시간보다는 공간 비용이 제한요소로써 작용하게 되어 문제를 풀 수 없게 된다.
정방형의 공간 비용를 선형공간으로 줄이기 위해 Hirschberg는 O(m+n)의 선형공간 알고리즘(Linear Space Algorithm: LSA)을 제안하였다. 비록, 시간비용면에서는 약 2배 정도의 시간을 필요로 하지만, 여전히 O(m*n)의 범위 안에 포함된다.
예를 들어, DPA의 경우처럼, 길이 10,000의 서열 S1, S2는(계수: 1μs/operation, 1Byte/symbol) 200sec 시간을 소요하지만, 10K 공간만을 사용한다. 즉, 서열간의 최적정렬을 구하는 문제에 있어서 제한요소로 작용했던, 공간비용 문제는 LSA를 통해 해결되었다.
그리고 이로 인해 현재 더욱 긴 서열들이 일반 워크스테이션 상에서 정렬될 수 있다.
LSA의 장점은 (m+n)의 공간비용만을 사용한다는 것을 들 수 있지만, 이론적으로 항상 2*m*n에 가까운 시간 비용을 소요한다는 것이다.
그런데, 오늘날에는 컴퓨터의 속도향상과 함께, 기억장소에 대한 가용성도 증가하여 추가적인 공간 비용을 지불하더라도 시간적 이득을 얻을 수 있다면, 훨씬 실용적인 알고리즘이 될 수 있다.
따라서, DPA와 LSA 방식의 장점만을 취합한 새로운 방식의 최적정렬 알고리즘을 제공할 수 있도록 하기 위한 방안이 요구되고 있다.
본 발명이 이루고자 하는 기술적 과제는, 공간분할 기법을 이용하여 분할면의 정보만을 테이블로 유지하면서, 최적정렬을 얻을 수 있는 O(m*n) 시간 복잡도와 O(m+n) 공간 복잡도를 갖는 알고리즘을 제공하는 것이다. 예를 들어, 길이 10,000의 서열 S1, S2는(계수: 1μs/operation, 1Byte/symbol, d=100: 분할수) 제안된 방법을 통하여 2.01M의 공간만을 사용하고, 최악의 경우를 고려하더라도 102초 정도 만을 소요하며 최적정렬을 얻을 수 있도록 하기 위한, 공간분할 방식을 이용한 유전자 서열 정렬 방법에 관한 것이다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해되어질 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 공간분할 방식을 이용한 유전자 서열 정렬 방법은, 유전자 서열의 정렬 방법에 있어서, DPA 매트릭스를 행과 열에 대한 임의의 정수로 분할함으로써 부분 매트릭스 및 블록 매트릭스를 생성하는 단계, 생성된 각각의 블록 매트릭스에 대해 DPA를 시행함으로써 블록 내 부분 최적 정렬을 구하는 단계 및 구해진 각각의 블록 내 부분 최적 정렬에 대한 역추적 알고리즘을 이용하여 전체 최적 정렬을 구하는 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있을 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것으로, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
서열정렬은 스트링매칭의 특수한 경우로써, 생물서열의 관점에서는 진화적 변화를 표현하는 두 스트링간의 편집 거리를 결정하는 과정이라 볼 수 있다. 편집 거리는 편집연산(삽입, 삭제, 치환)에 의해 결정되며, 각각에 대한 점수화를 통해 결정된다.
길이가 m과 n인 두 서열을 S=s1, s2, ..., sm, T=t1, t2, ..., tn이라 하고, S와 T의 원소 쌍을 (si, tj)로 놓자. (단, i=1... m, j=1... n.)
[정의 1] S와 T의 원소간의 관계, (si, tj), (-, tj), (si, -)를 정의하는 함수를 점수함수라 하며, σ로 표기한다(단, ‘-’는 공백).
예) σ(si, tj)=+2(match), -1(mismatch)
σ(-, tj)=-1(gap),
σ(si, -)=-1(gap)
[정의 2] 두 서열 S와 T를 구성하는 원소들의 순서는 유지하되, 공백을 포함하면서 쌍을 구성하였을 때, 순서쌍의 집합을 정렬
Figure 112007036456601-PAT00001
라 하며, 모든 쌍에 대한 σ합을 정렬 값(A)이라 한다.
예) S=abcdab, T=abdb. → S'=abcdab, T'=ab-d-b
Figure 112007036456601-PAT00002
= (a,a), (b,b),(c,-),(d,d),(a,-),(b,b)}
Figure 112007036456601-PAT00003
두 서열간의 유사도는 정렬 값, [식 1]으로 표현되며, 생물서열의 경우 두 서열간의 구조 및 기능, 상동성 등을 추측하기위해 사용하게 된다.
[정의 3] 서열 S와 T의 최적정렬(Å)은 두 서열에 대한 모든 가능한 정렬 중 최대정렬 값(A)을 갖는 정렬을 말한다.
위 예에서 최적정렬 Å는 S'=abceab, T'=ab-d-b가 되며, 최적정렬 값 A는 6이다.
두 서열로부터 최적정렬을 찾는 문제는 모든 가능한 정렬에 대해 정렬 값을 구하는 것이다. 이는 단순히, 다음 알고리즘으로 찾을 수 있다.
[알고리즘 1] 최적정렬을 위한 단순한 알고리즘
for all i, 0≤ i≤ n, do
for all subsequence A of S with |A|= i do
for all subsequence B of T with |B|= i do
Form an alignment that matches A[k] with
B[k], 1≤ k≤ i, & matches all other characters
with space.
Determine the value of this alignment;
Retain the alignment with maximum value;
end ;
end ;
end ;
상기한 [알고리즘 1]의 시간분석을 보면, 길이 n의 서열은 길이가 i인 부서열
Figure 112007036456601-PAT00004
개를 가지므로,
Figure 112007036456601-PAT00005
개의 (A, B)쌍을 갖는다. 이때, S에는 n의 문자가 있고, 그 중, i개만이 T의 문자들과 일치하고, n-i개의 문자들은 일치하지 않는다. 따라서, 정렬은 길이 n+(n-i)=2n-i를 갖는다. 정렬시, 각 쌍의 점수를 더하고, 참조해야 하므로, 기본 연산의 총합은 최소한 다음과 같다.
Figure 112007036456601-PAT00006
예를 들어, n=20일 때, [알고리즘 1]은 최소 22n=240이상의 연산을 수행한다. 즉, 시간비용으로 인해 최적정렬 문제는 이 알고리즘으로 접근할 수가 없게 된다.
이러한 문제는 DPA를 통해 O(m*n) 시간과 공간 비용으로 풀 수 있으며, 실제 제한요소로 작용하는 공간 복잡도는 LSA를 통해 O(m*n)시간과 O(m+n)공간 비용으로 해결될 수 있다. 좀 더 정확히, 2*m*n 에 가까운 시간과 2*m의 공간으로 해결된다.
즉, 본 발명에서 제안하는 알고리즘은 LSA처럼, O(m*n) 시간과 O(m+n) 공간 복잡도를 갖지만, 정확히는 d*(m+n)의 공간과 m*n에 가까운 시간을 갖는다.
따라서, LSA보다 공간은 더 소모하지만, 시간적인 측면에서는 훨씬 빠르게 최적정렬을 얻을 수 있게 되는 것이다.
이하, 본 발명에 적용된 공간분할기법을 이용한 유전자 서열의 짝정렬 알고 리즘의 상구성에 대해 기술하도록 하는데, 이에 앞서, 상기한 [알고리즘 1] 외에 본 발명의 설명에 필요한 몇몇 알고리즘을 정리하면 다음과 같다.
[알고리즘 2] 동적프로그래밍 알고리즘
(1) Initialization: A(i,0)← i*σ(i,-) [i=0, ..., m];
A(0,j)← j*σ(-, j) [ j=0, ..., n];
(2) for i←1 to m do
begin
(3) for j←1 to n do
Diagonal ← A(i-1, j-1) + σ(S[ i],T[ j]),
Vertical ← A(i-1,j) + σ(S[i],-),
Hor………izontal ← A(i, j-1) + σ(-,T[j])
A(i,j)←max(Diagonal, Vertical., Horizontal)
end
(4) write A(m,n)
(5) recovering (m, n, A(m, n), C)
[알고리즘 2]의 (5)는 (4)를 통해 얻은 전체 매트릭스 A(m, n)와 두 서열 m, n으로부터 역추적과정을 통해 최적정렬 C를 얻는다. 이러한 과정은 엔트리 (m, n)의 경우, 그 이전 엔트리(m-1, n-1), (m-1, n), (m, n-1)들 중에서 A(m,n)에 영향 을 준 엔트리를 찾아감으로서 얻어진다. (단, i=0 , j=0까지)
[알고리즘 2]의 시간과 공간비용은 (3)이 정확히 m*n번 시행되며, 입력과 출력 배열은 (m+ n) + (m+1)*(n+1) 공간을 필요로 하므로, O(m*n) 시간과 O(m*n) 공간을 필요로 한다.
[알고리즘 3] 선형공간 순방향 알고리즘
(1) Initialization: A(1, j) ←j*σ(-, j) [j=0 , ..., n];
(2) for i←1 to m do
begin
(3) A(0, j)← A(1, j) [j=0, ..., n];
(4) for j←1 to n do
Diagonal ← A(0, j-1) + σ(S[i],T[j]),
Vertical ← A(0, j) + σ(S[i],-),
Horizontal ← A(1, j-1) + σ(-,T[j])
A(1, j)←max(Diagonal, Vertical., Horizontal)
end
(5) AA(j)← A(1, j) [j=0, ..., n]
선형공간 순방향 알고리즘의 결과는 최종적으로 (5)의 출력벡터 AA(j)로서 A(1,j)의 엔트리 집합이며, 최적정렬 값은 A(1, n)이 된다. [알고리즘 3]은 (4)에 서 for문이 정확하게 m* n번 실행된다. 입출력 배열은 m+n+(n+1)을 필요로 하고, 매트릭스는 2(n+1)을 필요로 한다. 따라서, O(m*n)시간과 O(m+ n)공간 복잡도를 갖는다.
[알고리즘 3]은 다음의 [알고리즘 4]와 같이 역으로도 구해질 수 있다.
[알고리즘 4 ] 선형공간 역방향 알고리즘
(1) Initialization: A(0, j) ←(n-j)*σ(-, j) [j=0, ..., n];
(2) for i← m-1 down to 0 do
begin
(3) A(1, j)← A(0, j) [j= n, ..., 0];
(4) for j← n-1 down to 0 do
Diagonal ← A(1, j+1) + σ(S[ i],T[j]),
Vertical ← A(1, j) + σ(S[i],-),
Horizontal ← A(0, j-1) + σ(-,T[j])
A(0, j)←max(Diagonal, Vertical., Horizontal)
end
(5) AA(j)← A(0, j) [j= n, ..., 0]
[알고리즘 4]의 최종결과는 (5)의 출력벡터 AA(j)로써, A(0,j)의 엔트리 집합이며, 최적정렬 값은 A(0,0)이 된다.
[알고리즘 3]과 [알고리즘 4]를 이용하여 LSA는 전체 서열의 최적정렬(Å)를 구할 수가 있다.
[알고리즘 5] 최적정렬을 위한 선형공간 알고리즘
(1) If problem is trivial, solve it:
if n=0
then C← e(e: empty string)
else if m=1
then if ∃j≤n such that A(1)=B(j)
then C←A(1)
else C←e
(2) Otherwise, split problem:
else begin i←└m/2┘;
(3) Evaluate L(i, j) and L*(i, j) [j=0…n]:
ALG 3 (i, n, A1i, B1n, L1);
ALG 4 (m-i, n, Am,i+1, Bn1, L2);
(4) Find j such that L(i, j)+L*(i, j)=L(m, n):
M←max{L1(j)+L2(n-j)} ;(where, 0≤j≤n)
k←min j such that L1(j)+L2(n-j)=M;
(5) Solve simpler problems:
ALG 5(i, k, A1i, B1k, C1);
ALG 5(m-i, n-k, Ai+1.m, Bk+1.n, C2);
(6) Give output:
C←C1||C2;
End
[알고리즘 5]는 길이 m과 n의 서열 A, B를 입력받아 최적정렬을 내놓는다. 상기 [알고리즘 3 내지 5]에서 사용된 인수들 가운데 첫 번째와 두 번째는 두서열의 각각의 길이를, 세 번째와 네 번째는 해당길이에 해당하는 위치의 부분서열을 의미하고, 다섯 번째 인수는 출력값을 의미한다.
예를 들어, [알고리즘 3]은 입력스트링으로 A1m, B1n을 받고, 출력으로 벡터 L1을 내놓는다. 최종적으로 최적정렬 C는 (5)의 자신의 함수를 재귀적으로 호출함으로써 얻어지는 부분서열들을 연결하여 구해진다.
T를 원래 길이로 놓으면, 모든 재귀단계에서 하위 문제들의 총 크기는 최대, T+1/2T+1/4T…=2T이다. 즉, O(m+n) 공간 복잡도를 갖는다.
계산 시간은 직접적으로 문제의 크기에 비례하므로, 단순히 최적점 수를 계산하는데 필요한 시간의 2배정도를 소요한다. 즉, O(m*n)의 시간 복잡도를 갖게 되는 것이다.
[정의 4] 서열 Si(i=1…m)와 Tj(i=1…n)에 대해 DPA의 과정에서 생성된 매트릭스 A 의 특정 엔트리를 A (i, j)라 할 때, 도 1과 같이, A (i-1, j-1), A (i, j-1), A (i-1, j)를 각각 분면 q1, q2, q3라하며, A (i, j)를 분면 q4로 정의한다.
[알고리즘 2]로부터, A (i, j)는 A (i-1, j-1), A (i, j-1), A (i-1, j)로부터 계산된 최대값을 가지므로, q4는 q1, q2, q3에 의해서만 결정된다.
[정의 5] DPA 매트릭스 A를 행과 열에 대해 정수 d로 분할함으로써 생성된 부분 매트릭스(block, B)의 행과 열 크기를 βR, βC라하며, B={B (k, l)|k≤d, l≤d}를 블록 매트릭스로 정의한다. (단, k, l은 I, j로부터 d에 의해 축소된 인덱스)
[정의 6] 블록 B(k, l)의 상, 하, 좌, 우 면을 각각 상선, 하선, 좌선, 우선이라 하며, 이전 블록 B(k-1, l-1), B(k, l-1), B(k -1, l)과 자신 B(k, l)를 각각 분면 Q1, Q2, Q3, Q4로 정의한다.
[정리 1] 블록 매트릭스 B의 특정 엔트리 Q4는 이전 엔트리 Q1의 우선과 좌선의 마지막 엔트리와 Q2의 좌선, Q3의 하선에 의해서만 결정된다.
왜냐하면, 블록 매트릭스 B의 구하고자 하는 특정 엔트리 집합은 Q4 = {A (i, j)| i=i+ki, j=j+kj, 단, 0≤ki,kjRC}이다. Q4를 계산하기 위해 필요한 엔트리 집합은 R={A (i, j)| i=i+ki-1, j=j+κj-1, 단, 0≤ki,kjRC}이다.
여기서 [알고리즘 2]에 의하여, 엔트리 집합 R'={A (i, j)|i=i+ki, j=j+kj, 0<ki,kjRC}⊂Q4이며, R'⊂R이므로 블록 내에서 이전 엔트리 값들로부터 계산될 수 있다.
하지만, R-R'={A (i,j)|i=i+ki, j=j+kj,(단, ki또는 kj=0)}인 경우에는 Q4를 계산하기 위해 다음 엔트리를 요구한다. 즉, ki=0, kj=0일 때, Q1의 마지막 엔트리를, ki=0, kj≠0일 때, Q3의 하선을, ki≠0, kj=0일 때, Q2의 우선을 요구한다.
따라서, 특정 블럭 B의 모든 엔트리를 구하기 위해서는 Q1의 마지막 엔트리, Q2의 우선, Q3의 하선만 요구한다.
본 발명에서는 DPA가 최적정렬을 구하기 위해 전체 매트릭스를 유지해야 하는 문제를 [정리 1]을 이용하여 해결한다. 즉, 전체 문제를 분할하여 작은 문제에 대해 최적정렬을 구하고, 해결된 문제들을 연결함으로써 전체 문제를 해결한다. 작은 문제들을 해결하기 위하여 먼저, 요구되는 최소 엔트리들만을 분할 수 d로 나눠진 행과 열 테이블에 저장하고, 문제를 해결할 때, 이를 참조한다.
이때, DPA는 고정된 크기의 블록을 이용하여 마지막 블록부터 시작 블록까지 연결되는 모든 블록들에 대해서 순차적으로 시행된다. 서로 다른 길이의 서열을 정 수 d로 분할할 때, 정수로 나눠지지 않을 경우, 고정된 크기의 블록 안에서 문제를 해결할 수 없는 경우가 발생한다.
이를 위해 본 발명에서는 다음의 일반화 정리를 적용할 수 있다.
[정리 2] 서열 S의 길이를 m, 분할수를 정수 d, 블록테이블의 크기를 ?R라 할 때, m/d≤m%d이면, 블록 크기 βR=(m/d +1)이고, 그렇지 않으면, βR=m/d이다. (단, /=몫, %=나머지)
왜냐하면, m=N(단, N≥0정수), d≤m(단, d>0정수)로 놓으면, 블록 크기 ?R=m/d라 할 때, 마지막 블록 크기는 βlast=m%d이고, m/d≤m%d인 경우, BR<Blast가 된다.
따라서, 블록 BR 안에서 Blast는 해결될 수 없으므로, βR=m/d +1로 놓으면, 항상 m/d>m%d 가 되어 블록크기 βR 안에서 모든 블록의 최적정렬을 구할 수 있다.
유지해야 하는 분할 테이블 D는 행 테이블(R_table)과 열 테이블(C_table)로 구분하여 저장된다. 이때, 행 테이블의 열 크기(D_col_i)와 열 테이블의 행 크기(D_row_j)는 다음의 식으로 구해진다.
(1) D_col_i=Length_one/Block_size_one+1
(2) D_row_j=Length_two/Block_size_two+1
공간비용 축소를 위해 분할테이블을 작성하는 과정은 상기 [알고리즘 3]의 H_Table을 통하여 전체 최적 정렬 값을 구하는 과정에서 필요한 엔트리들만을 선택함으로써 진행된다.
[알고리즘 6] 행 테이블 작성을 위한 엔트리 선택
begin
R_Table[i][col]←H_Table[1][j], [j=j+βC,0≤j≤n]
col++;
end
[알고리즘 7] 열 테이블 작성을 위한 엔트리 선택
begin
if i% βR=0
row++;
C_Table[row][j] ←H_Table[1][j], [j=0,...,n ];
end
여기서, 가령 |S|=36, T=|17|, d=5인 경우를 예로 들어 살펴보면 도 3과 같 음을 알 수 있다.
[정리 2]로부터 DPA를 통해 구해야 할 블록의 크기는 7*3이며, [정리 1]로부터 Q1의 마지막 엔트리와 Q2의 우선, Q3의 하선을 필요로 하므로, 도 4와 같은 8*4 블록을 갖게 됨을 알 수 있다.
그리고, [알고리즘 3]으로부터 생성된 중간테이블은 도 5와 같으며, [알고리즘 7]로부터 생성되는 열 테이블은 도 6과 같음을 알 수 있다.
제안하는 알고리즘의 분할 테이블 및 블록 테이블을 생성하는 전체 과정을 기술하면 다음과 같다.
[알고리즘 8] 분할 및 블록테이블 생성
(1) Calculate : βR, βC.
(2) Create table :
R_table, C_table, B_table, H_table
(3) Initialization: H_Table(1,j) ←j*σ(-, i)[j=0,...,n ];
(4) for i←1 to m do
begin
(5) H_Table (0,j)←H_Table(1,j) [j=0,...,n ];
(6) for j←1 to n do
Diagonal ←H_Table (0,j-1) + σ(S[i],T[j]),
Vertical ←H_Table(0,j) + σ(S[i],-),
Horizontal ←H_Table(1,j-1 ) + σ(-,T[j])
A(1,j)←max(Diagonal, Vertical, Horizontal)
(7) ALG 6 , ALG 7
end
(8) Give output: D', B'
[알고리즘 8]은 길이가 m과 n인 서열, S와 T, 그리고 분할수 d를 입력으로 받아, 분할(D') 및 블록 테이블(B')을 생성하는 과정을 나타낸 것이다.
생성된 블록과 분할 테이블로부터 역추적 과정을 통해 전체 최적 정렬을 구하기 위해 다음을 정의한다.
[정의 7] 분할로 생성된 블록 테이블(B_Table) 내에서 역추적 과정이 시작되는 노드를 입구노드(In-node)라 하며, 종결되는 노드(Bi=0 or Bj=0)를 출구노드(Out-node)라 한다.
[정리 3] 특정 블록(Bp2)의 입구노드는 연결되는 이전 블록의 출구노드 Bp1(i,j)이며, i=0이면, i=βR, j=0이면, j=βC이다.(단, 마지막 블록은 i=m%βR, j=n%βC) 왜냐하면, Q4→Q2로 블록이 이동한다고 가정할 때, 블록 엔트리 집합 Q4={B(i, j)|0≤i≤βR, 0≤j≤βC}, Q2={B(i, j)|0≤i≤βR, -βC≤j-βC≤0}이다.
B(a, 0)(단, 0≤a≤βR)이 Q4의 출구노드라면, [알고리즘 2]의 (3)에 의해 Q2'={B(i, j)|0≤i≤a, -βC≤j-βC≤0}만이 Q4 엔트리값에 기여한다. 따라서, Q2'의 입구노드는 B(a, βC)이 된다. 마지막 블록의 경우, m%βR=0, n%βC=0이면, 행과 열 크기 i와 j의 최대값은 βR과 βC이며, 그렇지 않으면, i=m%βR, j=n%βC이므로, 입구노드는 i이다.
여기서, 주어진 문제가 정확하게 d(단, d>0정수)로 분할되지 않을 때, In-node와 Out-node는 도 7과 같이, B(i, j)에서 i=2, j=2가 된다. 도 7의 왼쪽 그림의 우측 하단, 빗금 부분은 실제로 마지막 블록값을 계산하기 위해 필요한 엔트리들이며, 오른쪽 그림은 블록(B)를 나타낸다. 블록에서 실선으로 된 부분만이 DPA가 실행되는 부분이다.
역추적 과정에서 Q4의 Out-node가 Q2의 B(1,3)로 들어가면, Q2의 In-node는 B(1,3)이 된다.
도 9는 마지막 블록(Bp1)에서 중간블록(Bp2)로의 블록이동에 따른 입/출구 노드의 연결을 보여준다. 블록크기 β(실선)는 4*4로 고정되지만, 블록 내에서 구해 야하는 엔트리는 Bp1의 경우, 3*3이고, Bp2의 경우, 2*4이 되어, 블록 간 In-node와 Out-node연결을 통해 전체 최적정렬 계산에서 불필요한 부분이 삭제된다.
본 발명에서 서열의 전체 최적정렬을 얻기 위한 역추적 과정 알고리즘은 다음과 같다.
[알고리즘 9] 블록 DPA 시행 및 최적정렬 추출
(1) Set : In-node position y, x
i=m, j=n
(2) while i≥0 and j≥0
begin
(3) Initialization :
B'[0,..,y][0]←R_table[i-y,...,i][D_row_j]
B'[0][0,...,x]←C_table[D_col_i][j-x,...,j]
(4) Reconstruct :
ALG 2 (y, x, S', T', C'): (2 )~(5 )
(5) Concatenate :
C←C||C'
(6) Block Shift :
if y=0 and x=0 t h e n i=i-βR, j=j-βC
else if y=0 and x≠0 then i=i-βR
else if y≠0 and x=0 then j=j-βC
(7) if i=0 or j=0 then break
end
(8) Give output: C
전체 최적정렬을 위해 분할수 d로부터 생성된 부분 블록들 중에서 마지막 블록부터 최초 블럭까지 순차적으로 연결되는 블록들에 대해 DPA를 시행한다. [알고리즘 9]의 (4)로부터 블록 내 부분 최적정렬을 구하고, 다음으로 계산할 블록을 선택하기위해 (6)에서 현재 블록에서 out-node의 위치가 0일 때를 고려한다.
좌선에 위치(x=0)할 때 Q2로, 상선에 위치(y=0)할 때 Q3으로, 첫 번째 엔트리에 위치(x=0, y=0)할 때, Q1 블록으로 이동하고, 이동된 블록에서의 in-node는 이전 블록의 out-node가 된다. 블록 선택이 끝나면, 다시 in-node에 해당하는 블록의 엔트리 값들을 R_table과 C_table로부터 가져와 DPA를 시행한다.
이러한 과정을 비교하는 서열의 첫 번째 서열까지 진행한다.
[알고리즘 8]과 [알고리즘 9]가 수행되는 전체 과정을 모식도로 표현하면 도 10과 같다.
도 10에서 역추적 과정이 시작되는 곳은 #16이며ㆍ(dot)이 블록이동을 통하 여 단어 단위로 비교가 시작되는 지점이다. 실선은 전체 최적정렬이며, 이는 블록 내 최소한의 엔트리들만을 계산하며 구해진다.
두 서열의 첫 번째 문자까지 블록계산이 되는 경로는, #16→#15→#11→#10→#6→#1이다.
기존 DPA에서는 최적정렬을 구하기 위해 비교하고자 하는 심벌 이후의 모든 심벌에 대해 엔트리 값을 계산하지만, 본 발명의 실시예에 따른 알고리즘에서는 단어 단위로 엔트리 값을 계산하게 된다.
그리고, 이때 필요한 추가적 공간은 블록크기(βR*β) 만큼의 공간이 된다.
본 발명에서 제안하는 알고리즘의 공간 복잡도는 비교하고자 하는 두 서열 S, T의 길이를 m과 n, 분할수를 정수 d라 할 때, 다음과 같다.
분할 테이블(C_table, R_table)을 위해, (m+n)*(d+1)을 요구하고, 중간 테이블(H Table)을 위해 (m+1)*2를 필요로 한다. 블록테이블의 경우, [정리 2]에 의해 최대 (m/d +1)*(n /d +1)이다.
즉, 총 공간비용은 (m+n)(d+1)+(m+1)*2+(m*n)/d2+(m+n)/d+1 이다. 이는 축약하면, (m+n)d+(m*n)/d2+(m+n)/d이며, d를 크게 하면(단, 1≤d≤m,n), (m+n)*d에 가깝게 되어 O(m+n)의 범위를 만족한다.
d를 1로 하였을 경우, DPA와 동일한 O(m*n)의 공간복잡도를 갖지만, 본 알고리즘은 d≥2인 경우를 고려하므로, 최소한 DPA 보다 적은 공간을 사용하게 됨을 알 수 있다.
본 알고리즘의 시간비용은 분할테이블 작성을 위해 필요한 m*n, 블록 계산을 위해 C*(m*n)/d2 의(단, C=블록수) 시간을 소모한다. 이때 계산해야 하는 블록크기는 최악의 경우, 블록 전체를 계산해야 하므로, (m*n)/d2이 되며, 최선의 경우, 블록의 가장 작은 라인만 요구하는 경우로, C*(m*n/d2*β,(단, β는 블록크기)이다.
[정리 2]에 의해 β=m/d이므로, C*(n/d)의 추가 시간을 요구한다. 블록 수는 최선의 경우 d이며, 최악의 경우, 2d-1이 된다. 즉, 전체 시간비용은 최악의 경우, (m*n)+C(m*n)/d2 이 되며, d를 m 또는 n보다 작은 범위 안에서 크게 할 경우, 시간비용은 m*n에 가까워지게 된다. 즉, O(m*n )의 알고리즘이 된다.
아래에서는, 이상에서 설명한 본 발명의 실시예에 따른 공간분할기법을 이용한 유전자 서열의 짝정렬 방법과, 종래의 DPA 및 LSA를 각각 적용한 경우에 대한 비교 실험을 통해 본 발명의 방법에 대한 효과를 입증해 보이도록 한다. 실험조건은 다음과 같다.
-Hardware: Intel Pentium Processor 1.73GHz, 1G RAM.
-Operating System: Windows XP Professional.
-구현도구: Microsoft C++.
테스트를 위한 데이터는 잘 알려진 NCBI(National Center for Biotechnology Information)의 Entrez 검색 시스템에서 질의어 “nucleotide”를 통해 각각 100, 200, 400, 800, 1600, 3200, 6400, 12800개의 데이터를 추출하였으며(오차범위: ±5%), 테스트의 처리시간은 각 샘플에 대해 10회 시행하고 평균시간을 대표 값으로 하는 것으로 하였다.
도 11은 길이 800 미만의 서열에 대해 각각 DPA, LSA, d-LSA(d=10)의 방법으로 최적정렬을 찾을 때, 처리시간 결과를 보여준다.
길이 200 미만의 데이터는 산출시간이 0초로써 방법들 간의 구분이 안되지만, 서열의 길이가 길어질수록 실선으로 표시된 d-LSA의 처리시간이 Hirschberg의 LSA보다 빠르게 수행되어, 대략 DPA 요구 시간과 LSA 요구 시간의 중간에 위치함을 알 수 있다.
본 실험에서는 서열의 길이가 더욱 긴 경우에 대해서는 DPA가 공간문제로 인한 적용의 곤란함으로 인해, 긴 서열에 대해서는 LSA와 d-LSA만을 비교하였다.
도 12는 서열의 길이를 12,800까지 확대하여 LSA와 d-LSA를 통해 얻은 결과로, 서열크기가 커지더라도 수행속도에 있어서는 여전히 LSA보다 빠름을 알 수 있다.
결과 데이터는 정확히 12,800개 서열에 대해 LSA가 11.6초를, d-LSA는 7.6초를 소요한다.
도 13은 각 엔트리 당 1Byte의 공간을 필요로 한다고 하였을 때, 서열 길이에 따른 요구공간을 로그 스케일로 표현한 것이다. 본 발명에 따른 방법이 LSA보다 공간은 더 요구하지만, DPA보다는 훨씬 적은 공간을 요구함을 알 수 있는데, 이를 표로 나타내면 다음과 같다.
Figure 112007036456601-PAT00007
즉, 12,800개의 서열을 비교할 때, DPA가 163MByte를 필요로 하는데 비해, d -LSA는 1.89M만 갖고, 데이터를 처리할 수 있다. 하지만, 처리시간에 있어서는 도 11 및 도 12에서와 같이 DPA와 가까운 시간으로 처리됨을 알 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해되어야만 한다.
상기한 바와 같은 본 발명의 공간분할 방식을 이용한 유전자 서열 정렬 방법에 따르면, 기억 공간의 일부 증대를 통해 유전자 서열 정렬의 처리 속도를 현저히 향상시킬 수 있게 되었다.
이에 따라, 유전자의 최적정렬을 찾는 문제에 있어서 LSA가 2*m*n의 시간에 가깝게 수행하는데 비해, 이 보다 공간은 조금 더 사용하더라도 m*n에 가까운 시간으로 최적정렬을 구할 수 있도록 한다는 장점을 제공한다.
또한, 입출구의 노드 개념을 적용함으로써 유전자 서열 정렬 과정에 있어 불필요한 연산을 제거할 수 있게 되었다는 등의 추가적인 장점도 제공한다.

Claims (5)

  1. 유전자 서열의 정렬 방법에 있어서,
    DPA 매트릭스를 행과 열에 대한 임의의 정수로 분할함으로써 부분 매트릭스 및 블록 매트릭스를 생성하는 단계;
    상기 생성된 각각의 블록 매트릭스에 대해 DPA를 시행함으로써 블록 내 부분 최적 정렬을 구하는 단계; 및
    상기 구해진 각각의 블록 내 부분 최적 정렬에 대한 역추적 알고리즘을 이용하여 전체 최적 정렬을 구하는 단계를 포함하는 공간분할 방식을 이용한 유전자 서열 정렬 방법.
  2. 제 1 항에 있어서,
    상기 DPA 매트릭스를 행과 열에 대한 임의의 정수로 분할함에 있어, 상기 DPA 매트릭스가 임의의 정수로 나누어지지 않는 경우 하기의 [정리]를 적용하는 단계를 더 포함하는 공간분할 방식을 이용한 유전자 서열 정렬 방법.
    [정리]
    서열 S의 길이를 m, 분할수를 정수 d, 블록테이블의 크기를 βR라 할 때, m/d≤m%d이면, 블록 크기 βR=(m/d +1)이고, 그렇지 않으면, βR=m/d이다. (단, /=몫, %=나머지
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 부분 매트릭스 및 블록 매트릭스에 대응되는 분할 테이블(D') 및 블록 테이블(B')은 다음의 [알고리즘]을 통해 구해지는 것을 특징으로 하는 공간분할 방식을 이용한 유전자 서열 정렬 방법.
    [알고리즘]
    (1) Calculate : βR, βC.
    (2) Create table :
    R_table, C_table, B_table, H_table
    (3) Initialization: H_Table(1,j) ←j*σ(-, i)[j=0,...,n ];
    (4) for i←1 to m do
    begin
    (5) H_Table (0,j)←H_Table(1,j) [j=0,...,n ];
    (6) for j←1 to n do
    Diagonal ←H_Table (0,j-1) + σ(S[i],T[j]),
    Vertical ←H_Table(0,j) + σ(S[i],-),
    Horizontal ←H_Table(1,j-1 ) + σ(-,T[j])
    A(1,j)←max(Diagonal, Vertical, Horizontal)
    (7) [ALG A], [ALG B]
    end
    (8) Give output: D', B'
  4. 제 3 항에 있어서,
    상기 [알고리즘]에 사용되는 [ALG A]와 [ALG B]는 각각 행 테이블 작성을 위한 엔트리 선택 알고리즘([ALG A]) 및 열 테이블 작성을 위한 엔트리 선택 알고리즘([ALG B])으로써, 다음과 같이 구성되는 것을 특징으로 하는 공간분할 방식을 이용한 유전자 서열 정렬 방법.
    [ALG A]
    begin
    R_Table[i][col]←H_Table[1][j], [j=j+βC, 0≤j≤n]
    col++;
    end
    [ALG B]
    begin
    if i% βR=0
    row++;
    C_Table[row][j] ←H_Table[1][j], [j=0,...,n ];
    end
  5. 제 4 항에 있어서,
    상기 각각의 블록 내 부분 최적 정렬을 구하는 단계는, 단어 단위의 엔트리 값 계산을 통해 이루어지는 것을 특징으로 하는 공간분할 방식을 이용한 유전자 서열 정렬 방법.
KR1020070048253A 2007-05-17 2007-05-17 공간분할 방식을 이용한 유전자 서열 정렬 방법 Ceased KR20080102006A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070048253A KR20080102006A (ko) 2007-05-17 2007-05-17 공간분할 방식을 이용한 유전자 서열 정렬 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070048253A KR20080102006A (ko) 2007-05-17 2007-05-17 공간분할 방식을 이용한 유전자 서열 정렬 방법

Publications (1)

Publication Number Publication Date
KR20080102006A true KR20080102006A (ko) 2008-11-24

Family

ID=40287986

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070048253A Ceased KR20080102006A (ko) 2007-05-17 2007-05-17 공간분할 방식을 이용한 유전자 서열 정렬 방법

Country Status (1)

Country Link
KR (1) KR20080102006A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101322123B1 (ko) * 2013-06-14 2013-10-28 인하대학교 산학협력단 교환 연산을 포함한 확장편집거리의 계산을 병렬적으로 수행하기 위한 방법
KR20180130755A (ko) 2017-05-30 2018-12-10 단국대학교 산학협력단 Dna 샷건 시퀀싱 또는 rna 전사체 어셈블리를 위한 콘티그 프로파일의 업데이트 방법 및 콘티그 형성 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101322123B1 (ko) * 2013-06-14 2013-10-28 인하대학교 산학협력단 교환 연산을 포함한 확장편집거리의 계산을 병렬적으로 수행하기 위한 방법
KR20180130755A (ko) 2017-05-30 2018-12-10 단국대학교 산학협력단 Dna 샷건 시퀀싱 또는 rna 전사체 어셈블리를 위한 콘티그 프로파일의 업데이트 방법 및 콘티그 형성 방법

Similar Documents

Publication Publication Date Title
Gupta et al. RAPID: A ReRAM processing in-memory architecture for DNA sequence alignment
Sato et al. RNA secondary structural alignment with conditional random fields
Matsui et al. Pair stochastic tree adjoining grammars for aligning and predicting pseudoknot RNA structures
CN112735528A (zh) 一种基因序列比对方法及系统
US8965935B2 (en) Sequence matching algorithm
Cheetham et al. Parallel clustal w for pc clusters
Knudsen Optimal multiple parsimony alignment with affine gap cost using a phylogenetic tree
Garrison Graphical pangenomics
KR20080102006A (ko) 공간분할 방식을 이용한 유전자 서열 정렬 방법
Kaghed et al. Multiple sequence alignment based on developed genetic algorithm
Ecker et al. A machine-learning-based alternative to phylogenetic bootstrap
Christodoulakis et al. Computation of repetitions and regularities of biologically weighted sequences
Wheeler et al. Optimizing reduced-space sequence analysis
Nath et al. A survey on longest common subsequence
Myoupo et al. Time-efficient parallel algorithms for the longest common subsequence and related problems
Yanovsky et al. Read mapping algorithms for single molecule sequencing data
Moyer et al. Motif identification using CNN-based pairwise subsequence alignment score prediction
WO2007025800A1 (en) Global alignment of sequence data
Marcolin et al. Efficient k-mer Indexing with Application to Mapping-free SNP Genotyping.
Zhang et al. Parallel divide and conquer bio-sequence comparison based on Smith-Waterman algorithm
Bannai et al. Finding optimal pairs of patterns
US20090325820A1 (en) Hardware acceleration for thermodynamically constrained DNA code generation
Frid et al. A Simple, Practical and Complete-Time Algorithm for RNA Folding Using the Four-Russians Speedup
Blassel From sequences to knowledge, improving and learning from sequence alignments
Menolascina et al. A multi-objective genetic algorithm based approach to the optimization of oligonucleotide microarray production process

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20070517

PA0201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20081028

Patent event code: PE09021S01D

PG1501 Laying open of application
E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20090507

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20081028

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I

J201 Request for trial against refusal decision
PJ0201 Trial against decision of rejection

Patent event date: 20090707

Comment text: Request for Trial against Decision on Refusal

Patent event code: PJ02012R01D

Patent event date: 20090507

Comment text: Decision to Refuse Application

Patent event code: PJ02011S01I

Appeal kind category: Appeal against decision to decline refusal

Decision date: 20091030

Appeal identifier: 2009101006397

Request date: 20090707

AMND Amendment
PB0901 Examination by re-examination before a trial

Comment text: Amendment to Specification, etc.

Patent event date: 20090805

Patent event code: PB09011R02I

Comment text: Request for Trial against Decision on Refusal

Patent event date: 20090707

Patent event code: PB09011R01I

E801 Decision on dismissal of amendment
PE0801 Dismissal of amendment

Patent event code: PE08012E01D

Comment text: Decision on Dismissal of Amendment

Patent event date: 20090813

Patent event code: PE08011R01I

Comment text: Amendment to Specification, etc.

Patent event date: 20090805

B601 Maintenance of original decision after re-examination before a trial
PB0601 Maintenance of original decision after re-examination before a trial
J801 Dismissal of trial

Free format text: REJECTION OF TRIAL FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20090707

Effective date: 20091030

PJ0801 Rejection of trial

Patent event date: 20091030

Patent event code: PJ08011S01D

Comment text: Decision on Dismissal of Request for Trial (Dismissal of Decision)

Decision date: 20091030

Appeal kind category: Appeal against decision to decline refusal

Appeal identifier: 2009101006397

Request date: 20090707