KR102594625B1 - K-부정합 검색을 위한 필터를 생성하는 시스템 및 방법 - Google Patents
K-부정합 검색을 위한 필터를 생성하는 시스템 및 방법 Download PDFInfo
- Publication number
- KR102594625B1 KR102594625B1 KR1020197030833A KR20197030833A KR102594625B1 KR 102594625 B1 KR102594625 B1 KR 102594625B1 KR 1020197030833 A KR1020197030833 A KR 1020197030833A KR 20197030833 A KR20197030833 A KR 20197030833A KR 102594625 B1 KR102594625 B1 KR 102594625B1
- Authority
- KR
- South Korea
- Prior art keywords
- filters
- filter
- combinations
- search
- combination
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 66
- 230000008569 process Effects 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 7
- 230000000875 corresponding effect Effects 0.000 description 23
- 238000013459 approach Methods 0.000 description 14
- 238000013507 mapping Methods 0.000 description 14
- 108090000623 proteins and genes Proteins 0.000 description 10
- 102000004169 proteins and genes Human genes 0.000 description 9
- 238000007781 pre-processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 108010054050 Plectin Proteins 0.000 description 4
- 239000013260 porous coordination network Substances 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 230000036961 partial effect Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000010899 nucleation Methods 0.000 description 2
- 239000002773 nucleotide Substances 0.000 description 2
- 125000003729 nucleotide group Chemical group 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 241000289581 Macropus sp. Species 0.000 description 1
- 241000124008 Mammalia Species 0.000 description 1
- 241001632422 Radiola linoides Species 0.000 description 1
- 125000003275 alpha amino acid group Chemical group 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9035—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B30/00—ICT specially adapted for sequence analysis involving nucleotides or amino acids
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B40/00—ICT specially adapted for biostatistics; ICT specially adapted for bioinformatics-related machine learning or data mining, e.g. knowledge discovery or pattern finding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Biotechnology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- Analytical Chemistry (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Epidemiology (AREA)
- Chemical & Material Sciences (AREA)
- Public Health (AREA)
- Proteomics, Peptides & Aminoacids (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
Abstract
k-부정합(mismatch) 검색을 실행하기 위한 컴퓨터 시스템으로서, 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 검색어의 크기를 수신하고; 유사도 임계를 수신하며; 및 필터들의 세트를, 유사도 임계에 따라, 검색어의 크기에 대한 정합(match) 및 갭의 위치의 조합들의 세트에 기반하여, 필터들의 세트를 형성하는 것에 의하여 생성하도록 구성되며, 상기 조합들의 각각의 조합은 상기 필터들의 세트 중 적어도 하나의 필터를 보유하는, 컴퓨터 시스템.
Description
본 발명은 일반적으로 근사 문자열 정합(k-부정합)에 관한 것이고, 이용가능한 컴퓨터 리소스를 최적화하기 위한 필터들의 세트를 생성하는 것에 관한 것이다.
발명의 명칭이 "K-부정합 검색을 위한 필터들의 세트를 생성하는 시스템 및 방법"이고 2017 년 3 월 19 일에 출원된 가출원 제 62473400이, 그 전체 내용이 본원에 원용에 의해 포함된다.
대량 데이터베이스에서 문자열을 검색하는 것은 시간이 많이 걸리는 작업이다. 직접 검색하는 "단순 알고리즘(naive algorithm)"은 수 일, 수 주, 또는 그 이상이 걸릴 수 있다. 지놈 데이터베이스 또는 단백질 데이터베이스와 같은 생물학적 데이터베이스는 대량의 지놈 시퀀스 또는 단백질을 수집하고, 이들에 주석을 붙이고 분석한다. 다른 대량 데이터베이스는 픽쳐, 오디오 레코드, 비디오, 3D-구조체 등을 저장한다.
뉴클레오티드 및 아미노 산 시퀀스에서 유사도를 발견하면 관심 시퀀스에 주석을 붙이는 것이 수월해진다. 예를 들어, 시퀀스가 유전자라면, 유사한 시퀀스들은 단백질 산물의 3-차원의 구조에서, 또는 공통된 진화적 기원에서, 다른 분자와 상호작용하여 규칙적인 기능상의 유사도를 나타낼 수 있다.
주어진 텍스트 내에서 근사적으로 정합되는 패턴 문자열의 출현을 찾아내는 기법은 "k-부정합 문제"라고 알려져 있다. 이러한 기법은 "근사 패턴 정합", "근사 문자열 정합", 또는 "퍼지 문자열 검색"이라고도 알려져 있다. k-부정합 문제를 풀어내는 여러 알고리즘이 당업계에 공지되어 있다. 이러한 알고리즘은, 하나 이상의 패턴의 전-처리 후에 검색이 수행되는 2-스테이지 프로세스를 수행한다.
Landau 및 Vishkin은 문헌 G. M. Landau, U. Vishkin, "Efficient string matching in the presence of errors", Proc. 26th IEEE FOCS, pp. 126-136, 1985에서, 캥거루 방법이라고도 알려지며, 전-처리 단계에 대해서 O(n+m) 및 텍스트 내에서 패턴을 검색하기 위한 O(nk)의 시간 복잡도를 가지는 K-부정합 문제를 해결하는 방법을 개시한다.
Fischer 및 Paterson은 "String matching and other products", Proceedings of the 7th SIAM- AMS Complexity of Computation, R. Karp, editor, pp. 113-125, 1974에서 의 시간 복잡도를 가지는 k-부정합 문제를 위한 알고리즘을 개시한다.
Abrahamson 및 Kosaraju는, "Generalized string matching", SIAM journal on Computing, 16(6):1039-1051, 1987에서 의 런타임을 사용하는, K-부정합 문제를 위한 방법을 개시한다.
Amir, Lewenstein 및 Porat는 "Faster algorithms for string matching with k mismatches", journal of Algorithms, Volume 50, Issue 2, pp 257-275, February 2004에서 의 런타임을 가진 다른 알고리즘을 개시한다. Landau 및 Vishkin의 방법과 Amir, Lewenstein 및 Porat의 방법 모두는 작은 k에 대해서 선형이다.
필터링 접근법은 근사 문자열 정합 프로세스의 런타임을 빠르게 할 수 있다. 필터링-타입 알고리즘은, 잠재적인 정합을 보유하는 중요 부분을 유지하기 위해서, 텍스트의 많은 부분을 폐기한다. 하나의 공통적인 필터링 접근법은 q-그램(q-grams)에 기반한다. 이들은 길이 q인 하위문자열이다. 시퀀스의 q-그램은 모두 그의 길이 q인 중첩하는 하위문자열이다. 이러한 분야에서의 대부분의 연구는 무간격(non-gapped)(즉, 보통의) q-그램 필터에 중점을 둔다.
필터링 접근법을 적용하는 것은 선택된 임계에서의 단어 유사도에 대한 충분 조건이 아니라 필요 조건을 고려함으로써 최적으로 수행될 수 있다. 예를 들어, 포유류인 것은 인간으로 식별되기 위한 필요 조건이지만 충분 조건은 아니다.
필터링 접근법을 적용하면 단순 알고리즘보다 개선되게 된다. 후속하는 두 예들은, 오직 하나의 부정합(즉 k=1)이 있는 20 글자의 주어진 단어 W와 유사한, 주어진 텍스트 내의 모든 단어를 검색하는 작업에 대한 단순 알고리즘으로부터 개선된 것들이다.
제 1 예에서, 필요(충분은 아님) 유사도 조건은 다음과 같이 부과된다: 단어 W를 W1(위치 1-10) 및 W2(위치 11-20)인 두 개의 부분으로 분할할 때, 부정합은 W1(W2는 정합됨) 내에 또는 W2(W1은 정합됨) 내에 있을 수 있다. 이러한 경우에 유사도를 위한 필요 조건은 W1 또는 W2와의 정확한 정합이다. 1-부정합 임계를 가진 검색의 경우, 텍스트 내에서 W1과 정확하게 정합하거나 W2와 정확하게 매칭하는 단어를 찾을 수 있다. 그러면, W1에 대한 각각의 정확한 정합에 대하여, 정확한 정합에 대한 열 개의 후속 글자가 W2와 비교된다. 이와 유사하게, W2와의 정확한 정합을 위하여, 열 개의 이전의 글자가 W1과 비교된다(하나의 부정합을 허용함). W1 및 W2의 정확한 검색은 텍스트를 전-처리함으로써 0(1)의 시간 복잡도로 이루어질 수 있다. 그러면, 열 글자 단어들 전부가 매핑되는데, 크기 복잡도 O(n)의 메모리가 필요하고 n은 텍스트의 크기이다. 텍스트 내의 W1 및 W2의 출현 확률은(1/d)10인데, d는 알파벳의 크기이다. 검색 시간은(n/d)10 x p인데, p는 두 개의 부정합을 가지는 랜덤 비교의 기대된 양이다.
제 2 예는 더 낮은 런타임을 가지지만, 전-처리 스테이지를 위하여 훨씬 더 큰 크기의 메모리, 즉 랜덤 액세스 메모리("RAM")가 요구된다. 모든 19-글자 단어를 모든 가능한 위치 내의 하나의 "와일드카드(wildcard)"와 매핑한 후. 맵의 크기는 대략 19xn이고, 하나의 와일드카드를 가진 모든 19-글자 단어의 W로부터 추출한 후에 솔루션을 찾는 속도는 O(1)이다. 이러한 접근법의 단점은, 유사도의 더 낮은 임계에 대해서는 적용될 수 없다는 것이다. 예를 들어, 8 개의 부정합 및 20-글자 단어의 임계에 대하여, 이러한 많은 와일드카드를 보유할 수 있는 단어의 개수는 매우 많다(20:8). 그러면 전-처리 텍스트를 저장하기 위하여 매우 많은 메모리 리소스(105xn보다 많음)가 요구된다. 이것은 n의 값이 더 커지면 실현가능하지 않다.
미국 특허 7,756,847은, 많은 긴 문자열 또는 하나의 긴 문자열로 이루어진 데이터베이스 내에서 질의 문자열을 가진 부분 또는 정확한 정합을 각각 가지는 여러 출력 문자열을 검색하기 위한 반복적 접근법을 개시한다.
미국 특허 7,444,326은, 데이터베이스 내의 각각의 문자열을 중첩하는 "위치 q-그램"인, 미리 결정된 길이 q의 시퀀스로 분해하고, 문자열 내의 각각의 q-그램의 "위치"에 관련된 정보(즉, 제 1 q-그램, 제 4 q-그램 등)를 보유함으로써, 근사 하위문자열 인덱싱을 개시한다.
미국 특허 7,584,173은 검색 문자열에 대하여, 텍스트 목록 내의 어떤 문자열이 (존재한다면) 검색 문자열로부터 임계 미만의 편집 거리를 가지는지를 결정한다. 이러한 프로세스는, 검색 문자열 글자가 행에 대응하고 텍스트 글자가 열에 대응하는 격자에서 동적 프로그래밍을 사용한다.
q-그램 필터의 일반화는, 유간격(gapped) q-그램("이격된 q-그램"이라고도 알려짐), 즉 고정된 비접경 형상의 글자의 서브세트를 사용한다. 후속하는 참고 문헌은 이러한 방법이 어떻게 적용되는지를 설명한다.
무작위로 선택된 형상은 Califano A., Rigoutsos I., FLASH: A fast look-up algorithm for string homology, in: Proc. 1st Intemational Conference on Intelligent Systems for Molecular Biology (ISMB), pp. 56-64 (1993)에 개시된다. 반면에 정규 형상을 사용하는 것은 Pevzner, P. A., Waterman, M. S., Multiple Filtration and Approximate Pattern Matching, Algorithmica, 13 (1/2), 135-154 (1995); 및 Lehtinen, O., Sutinen, E., Tarhio, J., Experiments on Block lndexing, Proceedings of the 3rd South American Workshop on String Processing(WSP'96), Carleton University Press (1996)에 개시된다.
무간격에 대한 유간격 q-그램의 장점이 고려되고, 유손실 필터화에 이들을 적용하는 것이 Ma, B., Tromp, J., Li, M.: PatternHunter: Faster and More Sensitive Homology Search, Bioinformatics, 18, 440-445 (2002); 및 Buhler, J., Keich, U., Sun, Y.: Designing Seeds for Similarity Search in Genomic DNA, Proceedings of the 7th Annual International Conference on Computational Molecular Biology (RECOMB-03) (April 2003)에 개시된다.
그램 개발에 대한 일부 접근법이 작은 수의 오차의 경우에 대해 다음에서 제안된다: Farach-Colton M., Landau G., Sahinalp S., Tsur D., Optimal spaced seeds for faster approximate string matching, J. Comput. System Sci. 73 (7) 1035-1044 (2007); , Eric Rivals, Hardness of optimal spaced seed design, J. Comput. System Sci. 74 (5) 831-849 (2008); 및 Egidi L., Manzini G.: "Better spaced seeds using quadratic residues", journal of Computer and System Sciences 79(7), pp. 1144-1155 (2013).
개시된 기법의 목적은, 주어진 검색 작업에 대한 필터들의 최적의 세트를, 기초하여, 컴퓨터 리소스의 이용가능한 양을 고려하는 형상의 조합 속성(combinatorial properties)에 기반하여 생성하는 신규한 방법을 제공하는 것이다.
따라서, 개시된 기법에 따르면, k-부정합(mismatch) 검색을 실행하기 위한 컴퓨터 시스템으로서, 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 검색어의 크기를 수신하고; 유사도 임계를 수신하며; 및 필터들의 세트를, 유사도 임계에 따라, 검색어의 크기에 대한 정합(match) 및 갭의 위치의 조합들의 세트에 기반하여, 필터들의 세트를 형성하는 것에 의하여 생성하도록 구성되며, 상기 조합들의 각각의 조합은 상기 필터들의 세트 중 적어도 하나의 필터를 보유하는, 컴퓨터 시스템이 제공된다.
일부 실시예들에서, 프로세서는, 필터들의 최소 세트를, 상기 필터들의 세트의 각각의 필터에 대하여, 상기 필터들의 세트 중에서 상기 필터만을 보유하는, 상기 조합들의 세트 중 적어도 하나의 조합이 존재하는 경우, 상기 필터가 유지가능 필터라고 결정하는 것, 및 상기 필터가 유지가능 필터가 아닌 경우, 상기 필터들의 세트로부터 상기 필터를 삭제하는 것에 의하여 생성하도록 더 구성된다.
일부 실시예들에서, 조합들의 세트의 각각의 조합은, 각각의 조합의 제 1 위치에서 정합을 포함한다.
일부 실시예들에서, 조합들의 세트의 각각의 조합은, 각각의 조합의 마지막 위치에서 정합을 포함한다.
일부 실시예들에서, 프로세서는, 상기 필터들의 세트를, 상기 필터들의 세트를 초기화하는 것, 상기 조합들의 세트의 각각의 선택된 조합에 대하여, 상기 선택된 조합 내에서 상기 필터들의 세트 중 하나의 필터의 출현(occurrence)을 검색하는 것, 상기 필터들의 세트 중 하나의 필터의 상기 출현이 상기 선택된 조합 내에서 발견되지 않으면, 상기 선택된 조합으로부터 신규 필터를 유도하는 것, 및 상기 신규 필터를 상기 필터들의 세트에 추가하는 것에 의하여 형성하도록 구성된다.
일부 실시예들에서, 신규 필터는 선택된 조합의 세그먼트이다.
일부 실시예들에서, 신규 필터 및 상기 신규 필터의 정합들의 개수 중 임의의 것은 무작위화 프로세스로 결정된다.
일부 실시예들에서, 정합의 개수는 미리 결정된 양이다.
일부 실시예들에서, 프로세서는, 상기 선택된 조합으로부터 다수의 신규 필터를 유도하고, 상기 다수의 신규 필터의 각각에 점수를 부여하며, 상기 신규 필터의 상기 점수가 상기 다수의 신규 필터 중 임의의 다른 신규 필터의 상기 점수 보다 높으면, 상기 신규 필터를 상기 필터들의 세트에 추가하도록 구성된다.
일부 실시예들에서, 프로세서는, 상기 필터를 각각 적용하는 것, 상기 검색어와 텍스트 사이의 기대된 비교 횟수; 상기 조합들의 세트 내의 상기 필터의 출현 빈도; 상기 필터 내의 정합들의 개수; 및 상기 필터의 스팬(span)으로 이루어진 군으로부터 선택된 파라미터에 따라서, 상기 필터들의 세트의 각각의 필터에 상기 점수를 부여하도록 더 구성된다.
일부 실시예들에서, 프로세서는, 필터들의 제 2 세트를, 상기 필터들의 세트로부터 필터를 선택하는 것, 각각의 상기 선택된 필터를 적어도 하나의 상이한 필터로 교체하는 것 - 상기 선택 및 교체는, 상기 선택된 필터의 상기 점수들 중 최고 점수로부터 상기 선택된 필터의 상기 점수들 중 최저 점수로 정렬된 시퀀스에 따라 수행되고, 상기 조합들의 각각의 조합은 필터들의 상기 제 2 세트 중에서 적어도 하나의 필터를 보유함 -, 및 맞춤 점수(fitness score)에 따라, 상기 필터들의 세트들에 걸쳐 필터들의 상기 제 2 세트를 선택하는 것에 의하여 생성하도록 더 구성된다.
일부 실시예들에서, 상기 맞춤 점수는, 상기 필터들의 세트 내의 모든 상기 필터들에 대한 기대된 비교 횟수의 합의 함수로서 결정되는, 검색의 기대된 계산 속도; 및 상기 필터들의 세트 각각에 검색을 수행하기 위해 요구되는 메모리의 양으로 이루어지는 군으로부터 선택되는 파라미터를 사용하여 연산된다.
일부 실시예들에서, 프로세서는, 상기 필터들의 세트의 다수 개를 생성하도록 더 구성되고, 상기 검색어 내의 각각의 위치는, 상기 필터들의 세트의 상기 다수 개 중 적어도 하나에 대응하며, 상기 조합들 중 각각의 조합은, 상기 각각의 하나의 조합 내의 위치에서, 상기 필터들의 세트의 상기 다수 개 중 적어도 하나로부터의 적어도 하나의 필터를 보유하고, 상기 검색어의 위치는 상기 각각의 하나의 조합 내의 상기 위치에 대응한다. 즉, 프로세서는 필터들의 다수의 세트를 생성한다. 검색어 내의 각각의 위치는 필터들의 세트들 중 적어도 하나에 대응한다.
각각의 조합은 필터들의 다수의 세트 중 하나로부터의 적어도 하나의 필터를 보유한다. 조합 내에 상기 필터가 발견되는 위치는, 상기 필터, 즉 상기 조합 내의 필터를 보유하는 필터들의 세트에 대응하는 검색어 내의 위치에 대응한다.
일부 실시예들에서, 프로세서는, 상기 필터들의 세트의 상기 다수 개의 각각을, 상기 조합들의 세트를 조합의 현재 세트로 지정하고, 필터의 상기 세트를 상기 조합들의 현재 세트에 기반하여 필터들의 현재 세트로 지정하며, 상기 검색어 내의 위치들의 시퀀스를 획득하는 것, 각각의 상기 위치에 대하여, 상기 시퀀스에 따라,
상기 위치와 연관된 필터들의 세트를 생성하는 것, 상기 조합들의 현재 세트 중 하나의 조합을, 상기 조합이 상기 위치와 연관된 필터들의 생성된 세트 중 하나의 세트를 보유하고 상기 필터가 해당 위치에서 상기 조합 내에 존재하면, 업데이트하는 것, 상기 필터가 상기 조합들의 현재 세트에 대하여 유지가능하지 않은 경우, 상기 필터들의 현재 세트 중 하나의 필터를 삭제하는 것에 의하여 형성하도록 구성되고, 상기 필터만을 보유하는, 상기 조합들의 현재 세트 중 적어도 하나의 조합이 존재하는 경우, 상기 필터는 상기 조합들의 현재 세트에 대하여 유지가능하다.
일부 실시예들에서, 프로세서는, 위치와 연관된 상기 필터들의 세트를, 상기 조합들의 세트, 상기 필터들의 현재 세트 및 상기 위치를 획득하는 것; 상기 필터들의 현재 세트의 각각의 필터에 대하여: 필터가 상기 위치에서 상기 조합들의 세트의 상기 조합들 중 적어도 하나에서 발견되면, 상기 필터를 상기 위치와 연관된 상기 필터들의 세트에 추가하는 것, 및 상기 조합들의 세트로부터 이러한 조합을 삭제하는 것에 의하여 형성하도록 구성된다.
일부 실시예들에서, 프로세서는, 유손실(lossy) 임계를 수신하고, 상기 검색어 및 상기 유사도 임계 각각의 상기 유손실 임계에 따라서, 상기 조합들의 서브세트를 생성하도록 더 구성되고, 상기 필터들의 세트를 생성하는 것은, 상기 조합들의 상기 서브세트의 각각에 상기 필터를 생성하는 것을 포함한다.
일부 실시예들에서, 상기 검색어의 상기 크기는 상기 검색어에 대한 다수의 가능한 크기에 대응하고, 상기 유사도 임계는 다수의 유사도 임계에 대응하며, 각각의 유사도 임계는 상기 검색어에 대한 상기 다수의 가능한 크기 중 하나의 크기에 대응한다.
일부 실시예들에서, 프로세서는, 필터들의 세트들의 복수 개의 세트를 형성하도록 더 구성되고, 필터들의 세트들의 상기 복수 개의 세트들 중 각각의 세트는, 상기 검색어 내의 상기 위치들의 복수 개의 시퀀스 중 상이한 시퀀스에 대응한다.
일부 실시예들에서, 프로세서는, 필터들의 세트들의 상기 복수 개의 세트로부터, 필터들의 세트들 중 하나의 세트를, 필터들의 세트들 중 상기 선택된 세트가 상기 k-부정합 검색을 실행하기 위하여 적용될 때 수행되는 기대된 비교 횟수에 따라 선택하도록 더 구성되고, 상기 기대된 비교 횟수는 주어진 텍스트 및 주어진 검색용 단어의 함수이다.
일부 실시예들에서, 프로세서는, 텍스트의 복수 개의 단어를 클러스터링하기 위하여 상기 k-부정합 검색의 상기 실행을 적용하도록 더 구성된다.
일부 실시예들에서, 프로세서는, 상기 k 부정합 검색의 텍스트 인덱싱 단계를 가속화하게끔, 상기 클러스터링을 적용하도록 더 구성된다.
개시된 기법은 후속하는 발명을 실시하기 위한 구체적인 내용을 도면과 고려함으로써 더 완전하게 이해되고 인정될 것이다:
도 1은 필터들의 세트를 생성하는 방법의 단계를 설명하는 흐름도이다;
도 2는 필터들의 세트를 채우는 추가적인 방법의 단계를 설명하는 흐름도이다;
도 3은 필터들의 세트를 사용하는 한 예이다;
도 4는 본 발명의 실시예에 의해 획득된 필터들의 최소 세트의 예들인 단순 알고리즘에 대한 장점의 한 예이다;
도 5a는 필터들의 복수 개의 생성된 세트로부터 필터들의 세트를 생성하고 선택하기 위한 k-부정합 검색 시스템에 대한 방법의 단계를 설명하는 흐름도이다;
도 5b는 필터들의 복수 개의 생성된 세트로부터 필터들의 세트를 생성하고 선택하기 위한 k-부정합 검색 시스템에 대한 방법의 단계를 설명하는 흐름도이다;
도 6은 필터들의 위치-관련 세트를 생성하기 위한 k-부정합 검색 시스템에 대한 단계를 설명하는 흐름도이다;
도 7a 내지 도 7C는 필터들의 위치-연관 세트의 생성을 예시한다; 그리고
도 8a 내지 도 8b는, 개시된 기법의 일 실시예에 따라 구성되고 동작하는, 본 명세서에 개시된 단계들 중 임의의 것을 실행하기 위한 컴퓨터 시스템을 각각 예시한다.
도 1은 필터들의 세트를 생성하는 방법의 단계를 설명하는 흐름도이다;
도 2는 필터들의 세트를 채우는 추가적인 방법의 단계를 설명하는 흐름도이다;
도 3은 필터들의 세트를 사용하는 한 예이다;
도 4는 본 발명의 실시예에 의해 획득된 필터들의 최소 세트의 예들인 단순 알고리즘에 대한 장점의 한 예이다;
도 5a는 필터들의 복수 개의 생성된 세트로부터 필터들의 세트를 생성하고 선택하기 위한 k-부정합 검색 시스템에 대한 방법의 단계를 설명하는 흐름도이다;
도 5b는 필터들의 복수 개의 생성된 세트로부터 필터들의 세트를 생성하고 선택하기 위한 k-부정합 검색 시스템에 대한 방법의 단계를 설명하는 흐름도이다;
도 6은 필터들의 위치-관련 세트를 생성하기 위한 k-부정합 검색 시스템에 대한 단계를 설명하는 흐름도이다;
도 7a 내지 도 7C는 필터들의 위치-연관 세트의 생성을 예시한다; 그리고
도 8a 내지 도 8b는, 개시된 기법의 일 실시예에 따라 구성되고 동작하는, 본 명세서에 개시된 단계들 중 임의의 것을 실행하기 위한 컴퓨터 시스템을 각각 예시한다.
본 발명은, 주어진 검색 작업에 대해 사용가능한 랜덤 액세스 메모리("RAM")인 이용가능한 컴퓨터 메모리를 고려하여, 이러한 동작에 대한 필터들의 최적 세트를 생성하는 방법을 제공한다.
본 발명은 단백질 연결망("PCN")의 전체 또는 부분 계산을 위하여 적용될 수 있다. PCN은, 주로 단백질 구조 및 기능성을 예측하는 것을 돕기 위한, 계산 생물학의 상이한 문제들을 해결하기 위해 사용될 수 있는 그래프이다. PCN은 단백질 시퀀스의 작은 단편인 노드로 이루어지고, 노드들 사이의 에지는 단편들 사이의 높은 유사도를 반영한다.
충분히 큰 단백질 데이터베이스를 위한 PCN의 전체 또는 부분 계산은 많은 양의 계산 리소스를 요구하는 중요한 프로세스이다. 그러므로, 효과적인 알고리즘으로 이러한 프로세스를 개선하는 것이 매우 중요하다. 이러한 그래프에 대한 모든 에지를 발견하는 것이 k-부정합 검색 문제의 일 예이다.
"k-부정합 문제"의 작업은 대량 데이터베이스에서의 단어 검색을 지원하는 많은 시스템에 대해서 중요하다. 생물정보학(즉 DNA 및 단백질 서브시퀀스의 검색)에 추가하여, 본 발명은 픽쳐, 사운드, 비디오, 및 3D구조체와 같은 정보를 대응하는 알파벳으로부터 구축된 선형 텍스트로 표현함으로써 문서 또는 인터넷 검색에 적용될 수 있다.
본 발명의 실시예는 상이한 타입의 대량 데이터베이스를 포함하는 시스템에 적용될 수 있다. 예를 들어, 데이터베이스는 다수의 서버에 걸쳐 분산될 수 있고, 또는 대안적으로 데이터베이스는 대량으로 파티셔닝될 수 있다. 저장된 정보의 양이 기하급수적으로 증가하고 있기 때문에, 대량 데이터베이스에서 신속한 검색을 하기 위한 효과적인 알고리즘을 개발하는 것이 점점 중요해진다.
이하, "텍스트"라는 용어는 수기로 작성된 텍스트의 전자 버전인 디지털 텍스트를 가리킨다. 텍스트는 전자 미디어를 통해 벌크로서 주어질 수 있거나, 네트워크를 거친 온라인 스트리밍을 통해 원격으로 액세스될 수 있다.
이하, "유사도"란 용어는, 부정합의 규정된 임계로 검색어가 검색된 텍스트 또는 데이터의 스트림 내에서 정합되는 것을 가리킨다.
이하, "해밍 거리(Hamming distance)"라는 용어는, 문자열, 또는 대안적으로 하위문자열, 및 패턴 사이의 거리를 가리킨다.
근사 문자열 정합은, 텍스트 내의 모든 위치에 대하여 해당 위치에 있는 서브-문자열과 어떤 패턴 사이의 거리가 경계 k 이하인 위치를 검색함으로써, 이러한 패턴에 근사적으로 정합하는 문자열을 찾기 위한 기법이다.
이하, "문자열"이란 용어는 본 명세서에서 글자들의 임의의 시퀀스를 가리킨다. 비트들의 시퀀스는 비트들의 다른 시퀀스의 일부일 수 있고, 예를 들어 문자열이라는 용어는 어떤 문자열의 임의의 하위문자열을 더 포함한다.
이하, "형상"이란 용어는 필터의 형태를 가리킨다. 형상은 정합의 위치들을 포함하고, 크기 및 스팬(span)을 가진다. 크기는 정합의 양, 또는 개수이고, 스팬은 정합 및 존재한다면 그들 사이의 갭의 위치를 포함하는 형상의 길이이다. 형상 {0,1,3,6}, ##-#--#을 예로 든다. 이것의 크기는 4 이고 그 형상은 7 이다. 갭은 정합이 출현하지 않을 수 있는 위치를 나타낸다. 갭이 없는 형상인 정합의 시퀀스는 시드라고도 불리고, 갭은 공백이라고도 불린다.
이하, "유간격 q-그램 필터"라는 용어는, q인 크기를 가지는 규정된 형상의 필터를 가리키고, 즉 정합의 양 또는 개수는 q이다. 유간격 필터는 이격된 시드라고도 불린다.
이하, "필터"란 용어는 유간격 q-그램 필터를 가리킬 수 있다.
이하, "인덱싱"이란 용어는 주어진 텍스트 내의 각각의 용어의 모든 유사한 용어에 대한 검색을 가리킨다.
이하, "필터들의 최소 세트"란 용어는, 유사도의 주어진 임계에 대한 필요 조건인 필터들의 세트를 가리키고, 검색어를 위해 사용될 수 있다. 다르게 말하면, 세트로부터 삭제될 수 있는 필터는 존재하지 않는다.
이하, "단어들의 유사도 그래프"란 용어는, 노드들이 텍스트로부터 얻어진 선택된 크기의 다수의 단어들이고(중첩을 포함함), 에지는 유사도의 규정된 임계 이상인 연결된 단어들 사이의 유사도를 반영한다.
이하, "조합"이란 용어는 본 명세서에서, 주어진 크기의 검색어에 대한 유사도 임계의 조건을 만족시키는 정합 및 갭의 위치의 가능한 조합이고, '0'과 '1'의 시퀀스로 표시되며, 시퀀스의 주어진 위치에 대하여, 대응하는 위치에서 '0'은 부정합을 표시하고 '1'은 정합을 표시한다.
일반적으로, "고갈된"이란 용어는 반복 프로세스에서 계속할 입력이 떨어졌다는 것을 나타내고, 이러한 입력은 필터들의 세트 또는 조합들의 세트이다. 예를 들어, "모든 조합들의 세트가 고갈된다"라는 말은 앞으로 모든 조합들의 세트가 비어 있거나 리뷰됨으로 완전히 마킹되는 상황을 가리킨다.
이하, 용어 "조합의 세그먼트"는 조합의 어떤 위치에서 시작한 정합 및 부정합의 시퀀스를 가리킨다. 어떤 조합으로부터의 세그먼트로서 취해진 필터는 정합된 위치에서 시작하여 미리 규정된 개수의 정합이 발견될 때까지 연속된다(즉, 어떤 세그먼트의 끝에는 정합이 존재해야 함). 예를 들어, 조합 10011010100111에 대해서, 4 개의 정합을 가지는 필터는: 1001101, 110101, 10101001, 1010011 및 100111 이다. 또는, 정합들의 개수는 규정되지 않을 수 있고, 또는 사용자 입력으로서 수신될 수 있다. 이러한 경우에 정합들의 개수는 미리 규정된 간격으로부터 무작위로 선택될 수 있다.
큰 텍스트(예를 들어 1G를 넘는 텍스트)는 RAM 사용에 일부 제한을 둘 수 있다. 본 발명의 실시예는 상이한 계산 환경에서 구현될 수 있는데, 예컨대 총괄하여 큰 메모리 리소스(예를 들어 검색될 텍스트보다 10 배 내지 100 배)를 가지는 하나 이상의 컴퓨터에 걸쳐 분산되거나, 실질적으로 제한된 메모리 리소스(예를 들어 검색되는 텍스트의 크기보다 작거나 비슷한 리소스)를 각각 가지는 컴퓨터(노드)의 네트워크에 걸쳐 분산될 수 있다.
본 명세서에 개시된 기법은: 몇 가지 예를 들면 검색 텍스트 콘텐츠, 알파벳, 부정합의 허락된 개수, 및 단어 크기와 같은 조건들의 범위에서 종래 기술을 메모리 사용 및 검색 시간에 있어서 개선한다.
본 발명의 예시적인 실시예는 어떤 텍스트에 걸쳐 하나 이상의 k-부정합 검색을 실행하기 위한 필터들의 세트를 생성하는 컴퓨터 시스템을 제공한다. 컴퓨터 시스템은 적어도 하나의 하드웨어 프로세서를 포함한다. 컴퓨터 시스템은: 다수의 하드웨어 프로세서의 분산형 네트워크; 다수의 하드웨어 프로세서의 로컬 네트워크; 또는 독립형 컴퓨터 중 임의의 것일 수 있다. 컴퓨터 시스템은 다음 파라미터: 검색어의 크기, 유사도 임계 및 어떤 필터에 대한 정합들의 개수를 수신한다. 필터 내의 정합들의 개수는, 예컨대 검색되는 중인 텍스트의 크기, 및 이용가능한 RAM의 양에 기반하여 자동으로 규정될 수 있다.
컴퓨터 시스템은, 검색어의 크기에 대한 정합 및 갭의 위치에 대한 가능한 조합의 완전한 세트에 기반하여 그리고 유사도 임계에 따라서 필터들의 세트를 생성한다. 예를 들어, 4 개의 정합이란 유사도 임계(예를 들어 다섯 개의 비트 중 적어도 네 개가 정합도어야 하고, 따라서 1 개의 비트가 부정합될 수 있음)를 가지는 길이 5의 검색에 대하여, 완벽한 정합(예를 들어 제로 부정합)에 추가하여, 부정합이 검색어의 위치 1 내지 5 중 임의의 것에서 출현할 수 있기 때문에 5 개의 가능한 조합이 존재한다. 이렇게 생성된 필터들의 세트는 메모리 사용을 증가시키고 계산 효율을 높이기 위해서 후속하여 감소될 수 있다.
더 공식적으로 말하면, 컴퓨터 시스템은 필터들의 세트를 줄여서 최소 세트를 얻기 위하여, 즉 필터들의 최소 세트를 산출하기 위하여 다음 단계들을 반복할 수 있다: a) 필터들의 세트로부터 필터를 선택하는 것 및 b) 해당 필터가 필터들의 세트 중에서 조합들의 세트 내의 조합 중 적어도 하나 내에 보유된 유일한 필터라면 해당 필터를 유지가능 필터라고 결정하는 것.
그렇지 않으면, 필터가 유지가능 필터라고 결정되지 않으면, 컴퓨터 시스템은 해당 필터를 필터들의 세트로부터 제거한다. 비록 필터들의 세트가 최소 세트로 축소되었지만, 모든 용어가 텍스트 내에서 발견되도록, 유손실이 아닌 검색에 여전히 적용될 수 있다.
본 명세서에 개시된 기법을 구현하기 위한 메모리 요구 사항은 다른 파라미터들 중에서 필터들의 개수에 의해 결정된다. 다음 설명은, 모든 가능한 조합을 커버하지만 그 이상은 커버하지 않는 필터들의 최소 세트, 즉 필터들의 충분한 개수를 결정하기 위한 기법에 관한 것이다. 필터들의 최소 세트를 결정하기 위한 유효성은 다음 파라미터에 의해 결정한다:
1) 매핑 단계를 구현하기 위한 메모리 요구 사항. 이것은 최소 필터 세트(minimal filter set; MCS) 내의 필터들의 개수의 함수로서 평가된다. 이러한 파라미터의 복잡도는 검색 텍스트의 크기 n에 대하여 O(n * |MCS|)로 추정될 수 있고, 최소 세트 내의 필터들의 개수는 |MCS|으로 주어질 수 있다.
2) 검색 속도는, 검색 질의와 검색 텍스트 사이의 비교 횟수, 및 "유휴(idle)" 필터 비교의 횟수의 적어도 두 개의 인자에 따라서 결정될 수 있다. 후자는 필터의 서브-시퀀스가 검색 텍스트 내에서 발견되지 않는 경우에 관련된다. 큰 검색 텍스트 및 필터들의 대응하도록 큰 출현 횟수의 경우, 검색 속도를 대략적으로 결정하는 인자는 비교 횟수에 대응한다. 반대로, 검색 텍스트의 크기가 상대적으로 작고 필터의 출현 빈도가 대응하여 낮으면, 검색 속도를 결정하는 한계 인자는 우선적으로 "유휴" 점검의 개수이다.
검색 질의와 검색 텍스트의 비교 횟수는 다음과 같이 주어지는 MCS 내의 각각의 필터에 대해서 추정된 비교들의 합으로서 계산될 수 있다:
비교 횟수 = P* L* n
여기에서 P는 필터에 대한 출현 확률이고, L은 필터가 존재하는 검색 질의 내의 위치의 개수이며, n은 검색 텍스트의 크기이다.
필터에 대한 출현 확률 P는 다음과 같이 추정될 수 있다:
여기에서 m은 필터 내의 정합들의 개수이다.
"유휴" 점검의 개수는 다음과 같이 추정될 수 있다:
유휴 점검의 개수 =(1 - P)n* L* |MCS|
여기서, L =(질의의 크기) -(필터의 스팬)+ 1 이다.
통상적으로, 요구된 정합(임계)의 개수가 많아지면 최소 필터 세트(MCS)가 더 커지는 것에 대응된다. 따라서, 매우 낮은 출현 확률을 가지는(예를 들어 상대적으로 많은 개수의 요구된 정합을 가짐) 필터를 선택하면 비교 횟수가 감소되지만, 그러면 더 큰 MCS를 고려하기 위해서 더 큰 메모리 리소스가 요구되고, "유휴" 점검의 개수가 증가된다. 메모리 이용가능성을 고려하여, 주어진 문제에 대한 가장 적합한 MCS들을 선택하는 것을 최적화할 필요가 있다. 출현 확률 P 및 |MCS|를 결정하는, 필터(m) 내의 정합들의 최적 개수는 애플리케이션마다 실험적으로 결정될 수 있다. 메모리가 불충분한 경우를 다루기 위하여, 전체 크기의 검색 텍스트가 섹션들로 분할될 수 있고, 검색이 섹션마다, 직렬적으로 또는 병렬적으로 구현될 수 있다. 각각의 섹션의 크기인 ns는 각각의 해당 섹션을 위한 MCS에 대한 매핑을 수행하기 위하여 요구되는 RAM에 따라서 선택될 수 있다
상대적으로 작은 검색 텍스트의 경우, 또는 검색 텍스트가 더 작은 섹션으로 분할되고 별개로 검색될 수 있는 경우, 다음 기법이 사용될 수 있다:
1) 검색 질의의 크기 및 유사도 임계(부정합의 최대 개수)와 같은 주어진 검색 요구 사항에 각각 따르는 다수의 MCS를 생성한다. 세트들을 필터 내의 정합들의 개수에 따라서 정렬한다. 일반적 규칙은: 정합들의 개수가 많아질수록 검색 질의 및 검색 텍스트 사이의 비교 횟수가 적어져서, 매핑을 수행하기 위해서 더 많은 메모리(RAM)가 필요하고, 더 많은 메모리(RAM)"유휴" 점검의 개수가 많아지는 것이다.
2) 각각의 MCS에 대한 검색 속도를 측정한다.
3) 가장 빠른 시간량, 즉 최대 속도를 나타내는 검색 결과를 제공하는 MCS를 선택한다.
다음 표는 10 글자의 크기인 질의 단어에 대한 최소 필터 세트(MCS)를 계산하기 위한, 전술된 기법을 예시한다. 이러한 표는 다섯 네 개 이상의 부정합을 보유하지 않는, 텍스트 내의 모든 유사한 단어들을 찾기 위해서 전술된 기법을 채용하는 것을 예시한다.
우선, 정합 및 부정합에 대한 모든 조합들이 고려되고, 필터의 최소 세트(MCS)는 각각의 조합이 세트 중에서 적어도 하나의 필터를 보유하도록 생성된다. 정합을 "1"로, 부정합(또는 돈케어)을 "0"으로 표시하고:
ABCDEFGHIJ - 질의
1111110000 - 정합 및 부정합의 조합
ABCDEFQQQQ - 텍스트이다
다음 표 1은 위에서 주어진 기준에 대응하는 MCS를 생성하는 것을 예시하는데, 필터들은 굵게 표시된다. 필터가 조합 중에서 선택되면, 네 개의 정합을 보유한 제 1 필터를 취한다:
공집합 { }으로부터 시작하여, 제 1 필터는 조합으로부터, 검색어와의 네 개의 정합의 첫 번째 출현인, 이러한 경우에는 {"1111"}로서 유도되고, MCS 세트에 추가된다. 이러한 필터는 다음 두 개의 조합에서 나타나고, 따라서 다시 추가된다. 제 4 조합은 필터들의 현재 세트로부터의 임의의 필터를 보유하지 않는다(예를 들어 필터들의 현재 세트는 필터 "1111"만을 보유하는데, 이것은 제 4 조합 "1110111000"에서 발견되지 않는다). 따라서, 각각의 조합이 적어도 하나의 필터를 포함하도록(예를 들어, 이에 의해 "커버되도록") 보장하기 위하여 신규 필터가 유도된다. 예를 들어, 신규 필터는, 필터 내의 정합들의 개수를 규정하는 임계에 대응하는 정합들의 개수를 가지는, 커버되지 않는 조합의 제 1 세그먼트를 취함으로써, 해당 조합으로부터 유도될 수 있다. 위의 예에서, 이러한 세그먼트는 시퀀스 "11101"에 대응하는데, 이것은 네 개의 정합인 임계에 대응하고 제 4 조합의 비트 1 내지 5(비트 4에 1 개의 부정합이 있음)에 위치된 네 개의 1을 가진다. 이러한 세그먼트는 필터들의 세트에 제 2 필터로서 추가된다. 이러한 다음 네 개의 조합들은, MCS 내에 이미 포함되고 따라서 "커버되는" 필터를 포함한다. 마지막에서 두 번째 조합은, 아직 MCS 내에 포함되지 않은 제 3 필터 "101101"을 제공한다. 이러한 필터는 제 3 필터로서 추가된다. 마지막 조합은 MCS에 이미 포함된 필터, 즉 "1111"의 출현을 포함하고, 따라서 무시된다. 결과는 표 내에서 고려된 모든 조합을 커버하는 세 개의 필터이다.
본 발명의 다른 실시예에 따르면, 조합들의 전체 세트는 제 1 위치에, 또는 제 1 및 마지막 위치에 정합을 가지는 조합들로 이루어진다. 이러한 세트는 관련된 정합들 중 어느 것도 손실하지 않으면서 전체 세트보다 훨씬 작을 수 있기 때문에 유리하다.
본 발명의 다양한 실시예가 첨부된 도면을 참조하여 설명될 것이다.
도 1은 필터들의 최소 세트를 생성하기 위한 방법(100)의 흐름도이다. 필터들의 최소 세트의 생성은, 주어진 텍스트 내의 검색어의 검색에 선행하는 전-처리 스테이지이다. 필터들의 세트는 미리 결정된 임계에서의 단어 유사도에 대하여 충분 조건이 아닌 필요 조건만을 고려함으로써 축소될 수 있다.
컴퓨터 시스템은 다음 단계를 수행하기 위해서 사용된다:
필터들의 빈 세트가 규정된다(102). 적어도 하나의 검색어의 각각의 검색어에 대한 정합 및 갭의 모든 조합의 세트가 생성된다(104). 메모리의 크기 제한 때문에, 조합은 즉시 생성된 후 메모리로부터 제거될 수 있다.
모든 조합들의 세트를 생성한 후에, 세트 내의 각각의 조합은 필터들의 현재 세트로부터의 필터를 보유하고 있는지를 보기 위하여 검사된다(106).
필터들의 업데이트된 세트로부터 필터가 조합 내에서 발견되지 않으면, 필터는 조합으로부터 유도되고 새롭게 유도된 필터가 필터들의 세트에 추가된다(108). 새롭게 유도된 필터는 조합의 세그먼트일 수 있거나 무작위로 유도될 수 있다. 검사된 조합이 필터들의 세트로부터의 적어도 하나의 필터를 보유하면, 다음 조합이 검사된다. 필터의 크기는, 입력으로서 수신될 수 있는 정합들의 개수에 기반할 수 있다. 또는, 정합들의 개수는 무작위로 선택될 수 있다. 조합의 세그먼트는 형상이라고도 불릴 수 있다.
전-처리된 텍스트를 위하여 필요한 메모리의 크기는 검색되는 중인 텍스트의 크기 곱하기 필터들의 세트의 크기에 비례한다. 전-처리된 텍스트의 크기가 너무 크면, 더 작은 형상 크기, 즉 정합들의 더 적은 개수가 고려될 수 있다. 정합들의 개수가 많을수록, 필터들의 세트가 커지고, 이것이 전-처리된 텍스트 스테이지를 위하여 요구되는 메모리의 양을 증가시킨다.
또는, 텍스트는 더 작은 부분으로 분할될 수 있고 각각의 부분은 병렬 계산 환경에서 처리될 수 있다(예를 들어 두 개 이상의 컴퓨터 프로세서가 동시에 사용될 수 있다).
모든 조합의 세트로부터의 조합들 모두가 점검된 후에, 필터들의 세트는 다음 단계에 따라서 축소된다: 필터들의 세트 내의 각각의 필터는, 필터가 조합 내의 특이 출현(singular occurrence)이라는 것을 검증하기 위하여 모든 조합의 세트 내의 각각의 조합을 검사(112)함으로써 검사된다(110). 특이 출현이란, 이 동일한 필터의 다수의 출현을 보유할 수 있지만, 필터들의 세트로부터의 상이한 필터의 출현이 모든 조합 내에 있으면, 검사된 필터는 특이 출현이 아니라는 것을 의미한다. 검사된 필터가 특이 출현이 아니라면, 이것은 필터들의 세트로부터 삭제된다(114). 그러면, 필터들의 세트 내의 현재 필터 모두가 검사될 때까지 필터들의 업데이트된 세트 내의 다음 필터가 검사된다. 결과적으로 얻어지는 필터들의 세트는 조합들 중 적어도 하나 내에서 특이 출현인 필터들만을 포함한다. 이것이 필터들의 최소 세트이다(116).
본 발명의 실시예는, 도 1의 단계(106-108)에서 전술된 바와 같은, 필터들의 세트에 대한 상세한 단계를 제공한다. 이러한 단계에 대한 다른 방법이 도 2에서 세부적으로 예시되고 다음과 같이 설명된다. 각각의 조합으로부터의 필터들의 모든 출현이 식별된다(202). 모든 가능한 필터의 개수가 너무 크면, 이것은, 가능한 제한 중 일부를 들면, 정합들의 고정된 상한, 최대 스팬과 같은 추가 조건에 의해서 한정될 수 있고, 필터들의 선택은 조합 중의 세그먼트로 한정될 수 있다. 가중치, 또는 점수가 각각의 필터에 부여된다. 예를 들어, 점수는 필터가 출현된 조합들의 총합에 따라서 결정된다(204). 최고 점수가 있는 필터가 필터들의 세트에 추가된다(206). 이러한 필터를 보유한 조합은 리뷰된 것으로 마킹되거나(208) 검사되는 중인 조합들의 세트로부터 제거될 수 있다. 프로세스(200), 즉 단계(202-208)는, 필터들의 양호한 세트가 발견될 때까지, 제거되지 않은 임의의 마킹되지 않은 조합에 대해서 반복될 수 있다. 필터들의 "양호한" 세트는 더 빠른 검색을 수행하거나 선행 기술 방법과 비교할 때 더 높은 품질의 결과를 산출하기 위하여 사용될 수 있는 필터들의 세트이다. 일부 검색 조건의 경우, 프로세스(200)를 실행하면 필터들의 효과적인 세트가 선행 기술 방법과 비교할 때 더 짧은 시간 내에 제공된다. 필터들의 최소 세트를 생성하기 위하여, 만족스러운 필터 세트가 구축되거나, 또는 조합들의 세트가 비거나 리뷰된 것으로 완전히 마킹될 때까지, 임의의 마킹되지 않은(또는 제거되지 않은) 조합에 대하여 단계(202-206)가 반복될 수 있다.
도 3을 참조하면, 필터들의 세트의 용도의 예시도가 도시된다. 검색 단어 W = "AARRCCDDEE", 및 MCS에 대하여, S = {XXX, XX-X}가 두 개의 필터에 대응한다. 제 1 필터는 세 개의 순차적인 정합(XXX)에 대응하고, 제 2 필터는 두 개의 순차적인 정합, 하나의 부정합, 및 제 3 정합(XX-X)에 대응한다.
추출된 세트 Sw는 표(300)에 나열된 15 개의 단어를 포함하고, 이들 중 12번째 단어는 RC-D이다. 텍스트의 일부: "GGGGGGGRCGDGGGGGGGGG"가 주어지면, 이러한 부분은 구성 XX-X에 대응하는 단어 RC-D의 오직 하나의 인스턴스를 보유하고, 다른 단어를 보유하지 않는다. 따라서, 단어 RC-D와의 비교는 하나의 위치에서만 일어나고, 텍스트 내의 글자 "G"가 검색 단어 내의 글자 "C"와 정렬되며, 결과적으로 하나의 부정합이 얻어진다:
본 발명의 다른 실시예에 따르면, 필터들의 세트는 각각의 사용자에 대해서 생성되거나 계산되지 않을 수 있고, 오히려 필터들의 세트는 광범위한 파라미터에 걸쳐 계산되고 액세스가능한 공용 데이터베이스 내에 저장될 수 있다.
이제 본 발명의 실시예에 의해 얻어진 필터들의 여러 예시적인 최소 세트의 예시인 도 4를 참조한다. 단순 알고리즘에 대한 이러한 최소 세트의 장점이 후술된다.
단어의 크기 |W| = 20, 유사도 임계 T = 60%(즉 8 개까지의 부정합이 허락됨). |S|= 필터들의 최소 세트 S의 크기, nC = S의 모든 필터 내의 검색용 용어로부터의 생성된 단어들의 개수, M = 필터 내의 정합들의 개수.
단순 알고리즘과 비교한 장점(A)은 dM/nC라고 계산된다,
여기에서 d = 알파벳의 크기이고, d = 20 이다.
개시된 기법의 다른 실시예에 따르면, 필터들의 양호한 세트를 찾기 위해서 발견 접근법(heuristic approach)이 사용된다. 발견 접근법은, 미리 규정된 순서에 따라 필터들의 복수 개의 세트를 형성하고, 필터들의 각각의 세트에 점수를 부여함으로써 적용된다. 점수는 (i) 그 크기, 즉 세트 내의 필터들의 양; 및/또는 (ii) 효과, 즉 필터들의 해당 세트로부터 생성된 단어들의 양에 기반하여 필터들의 각각의 세트에 부여될 수 있다. 일반적으로, 필터의 길이는 그로부터 생성되는 단어들의 개수에 영향을 준다. 즉, 필터의 길이가 길어질수록, 단어의 개수는 감소되어, 검색 속도가 증가된다.
도 5a를 참조하면, 필터들의 양호한 세트는 필터들의 다수의 세트 각각에 부여된 점수를 비교함으로써 획득될 수 있다. 필터들의 각각의 세트는 우선 다음 두 개의 액션을 수행한 후에 형성될 수 있다: i) 필터들의 완전한 세트를 생성하고 가중치, 또는 점수를 각각의 필터에 부여하는 것(502) 및 ii) 양도된 점수에 따라 필터들을 정렬하는 것(504). 정렬은 내림 차순일 수 있다.
필터들의 각각의 세트는: 필터들의 세트가 생성되고, 개시됨의 단계들에 의하여 형성될 수 있다(506). 이것이 필터들의 제 1 세트가 아니면, 필터들의 완전한 세트 중 하나 이상의 필터가 무시된다(508). 최고 점수의 필터가 필터들의 생성된 세트에 추가된다. 최고 점수의 필터를 보유한 임의의 조합은 리뷰된 것으로 마킹되고, 검사될 조합들의 세트로부터 제거될 수 있다. 앞선 내용이 만족스러운 필터 세트가 구축될 때까지, 또는 조합들의 세트가 비거나 조합들의 세트가 고갈될 때까지(모두 리뷰된 것으로 마킹될 때까지), 마킹되지 않은 조합에 대해서 반복된다(510). 모든 비-유지가능 필터는 필터들의 세트로부터 제거되고, 맞춤 점수가 하나 이상의 미리 규정된 기준들에 따라서 필터들의 세트에 부여된다(512). 최선의 맞춤 점수를 가지는 필터들의 세트는 보유된다(514). 최선의 맞춤 점수는 최적화 기준들에 따라서 최고 점수 또는 최저 점수일 수 있다. 필터들의 세트를 형성하기 위한 위의 단계가, 단계(508)의 하나 이상의 필터를 무시하는 것이 최고 점수를 가진 필터를 제외하고 모든 필터를 삭제하는 것을 포함할 때까지 반복될 수 있다. 일부 조건에서는, 이러한 사이클은, 무시될 수 있는 필터들의 가능한 조합의 수가 많기 때문에 종결되지 않을 수도 있다. 이러한 경우에, 단계들은 이용가능한 컴퓨터 파워 및 시간에 따라 반복되어 만족스러운 솔루션을 얻을 수도 있다.
필터들의 각각의 세트에 점수를 부여하기 위한 미리 규정된 기준들은, 필터들의 세트 내의 필터들의 개수 및 주어진 검색어에 대하여 필터들의 세트로부터 생성된 단어들의 개수일 수 있다.
508에서 하나 이상의 필터 중 임의의 것을 포함/배제하기 위한 기준은, 미리 규정된 일련의 산술적 시퀀스 내의 요소에 따라서 수행될 수 있다. 미리 규정된 일련의 산술적 시퀀스는, 시리즈 내의 각각의 원수가 d의 공차를 가지는 산술적 시퀀스가 되게 하는 것일 수 있다. 비한정적인 예에서, 필터들의 제 2 세트를 형성하는 것은 단계 508에서 두 번째로 높은 필터를 배제할 수 있고, 필터들의 제 3 세트를 형성하는 것은 단계 508에서 두 번째 및 세 번째로 높은 필터를 배제할 수 있으며, 필터들의 제 4 세트를 형성하는 것은 단계 508에서 두 번째, 세 번째, 및 네 번째로 높은 필터를 배제할 수 있는 등이다. 그러므로, 이러한 예에 따르면 d=1 이고 일련의 산술적 시퀀스 내의 요소는({2}, {2,3}, {2,3,4} 등)이다.
이제, 개시된 기법의 다른 실시예에 따라 구성되고 동작하는, 필터들의 만족스러운 세트를 찾기 위한 발견 접근법을 예시하는 도 5b를 참조한다. 컴퓨터 시스템은 다음 단계를 수행한다:
A. 필터들의 완전한 세트 C가 생성된다.
i. 가중치(또는 점수)가 각각의 필터에 부여된다; 그리고
ii. 필터들은 그들의 각각의 가중치에 따라 내림 차순으로 정렬된다(502b). C 내의 각각의 필터 i에 대하여(가장 빈번한, 즉 최고 가중치로부터 시작함)(504b)
a. C 내의 필터(필터 i보다 덜 빈번함)는 선택된 순서에 따라서 마킹된다(후술됨)(506b).
b. 필터들의 최소 세트는 도 2에 예시된 방법에 따라 생성되고, 단계(206-208)는 i로부터 시작하여 마킹되지 않은 필터에 대해서 반복된다(508b).
c. 필터들의 최소 세트의 유효성이 계산된다.
d. 유효성이 필터들의 최선의 최소 세트에 대한 유효성보다 양호하면, 필터들의 최소 세트는 필터들의 최선의 최소 세트로서 예약된다(510b).
e. C 내의 필터가 마킹되지 않고, 다음 마크된 필터가 검사된다(512b).
f. 위의 단계가 다음 필터 i에 대하여 반복된다(514b). 이러한 단계의 출력은 필터들의 최선의 최소 세트이다(516b).
이제, 개시된 기법의 다른 실시예에 따라 구성되고 동작하는, 필터들의 세트로부터의 생성된 단어들의 개수를 줄이기 위한 발견 접근법을 예시하는 도 6을 참조한다. 필터들의 세트로부터 생성된 단어의 개수를 줄이면 검색 속도가 증가될 수 있다. 이러한 접근법은, 단어 내의 상이한 위치에서 필터의 존재 또는 부재에는 상관성이 있다는 사실을 고려하여, 검색 단어의 각각의 위치에 대한 하나 이상의 필터를 구축한다. 따라서, 필터들의 위치-관련 세트가 형성되고 필터들의 각각의 세트는 주어진 검색어 내의 특정 위치에 연관된다. 필터는 상이한 크기일 수 있다. 개시된 하나의 최적화는, 검색 단어 내의 특정한 위치 각각에서 실제로 발견된 필터만을 포함시키는 것이다.
컴퓨터 시스템은 다음 단계를 수행한다: 필터들의 세트(MCS)가 형성된다(602)(예를 들어 모든 가능한 조합을 커버하는 필터들의 세트를 생성하기 위한, 전술된 알고리즘 중 하나를 구현함으로써). 현재 위치가 제 1 위치로서 설정된다(604). 필터들의 형성된 세트는 현재 위치와 연관된다(606). 제 1 위치는 주어진 검색어의 최좌측위치일 수 있거나, 후술되는 것처럼 '저-출현' 위치일 수 있다. 또는, 위치들의 일부 시퀀스 S가 검색된 용어 내에서 선택된다(가장 단순한 시퀀스는 S = {1,2,..., n k+1} 일 수 있음(k - 최소 필터의 스팬)). 본 발명에 따르면, 임의의 다른 순서가 사용될 수 있고, S 내의 제 1 위치는 현재 위치로서 설정된다(604).
현재 위치에 필터를 보유하는 모든 조합들의 세트 내의 모든 조합이 제거되거나, 리뷰된 것으로 마킹된다(608). S 내의 다음 위치가 현재 위치로 설정된다(610). 현재 위치는 우측으로 1 만큼 천이될 수 있다. 전술된 바와 같은 단계 610 이후에, 필터들의 세트의 크기는 최소로 감소되고, 즉 필터들의 최소 세트를 산출한다. 제거되지 않거나 마킹되지 않은 조합들의 세트 내에 유지가능 필터라고 결정되지 않는 임의의 필터가 제거되거나 리뷰된 것으로 마킹되고, 업데이트된 세트 필터가 필터들의 현재 세트로 설정된다(611). 단계 606 내지 611은 조합들의 세트가 고갈될 때까지 반복될 수 있다. 필터들의 획득된 세트는 단어의 제 1 위치에서 최대이고, 시퀀스 S 내의 좌측 위치로부터 우측으로 감소한다.
도 6에 도시된 방법의 출력은 세트들의 세트이다. 세트의 각각의 세트는 검색어 내의 일부 위치와 연관된다. 하나의 세트(시작 위치와 연관됨)는 최대이다(그리고 이러한 세트의 형태가 매핑을 위하여 사용되어야 함).
필터들의 위치 관련 세트의 유효성은, 각각의 위치와 연관된 필터들의 비교(nC)들의 합으로서 계산될 수 있다. 필터들의 위치 관련된 세트를 적용하는 것은, 다음 단계에 의하여 수행될 수 있다; 텍스트 내의 모든 필터 내의 모든 단어를 매핑하는 것; 용어의 각각의 위치에 대하여, 필터들의 이러한 위치 세트와 연관된 관련성에 따라 모든 단어를 추출하는 것; 용어를 추출된 단어의 매핑에 따라 텍스트 내의 대응하는 위치와 비교하는 것.
다음 표 2는 필터들의 세트에 점수를 부여한 결과를 예시한다. 점수는 주어진 검색어에 대해서 필터들의 세트로부터 생성된 단어의 개수에 따라 부여된다. 도 4의 제 1 세트를 고려한다: S = {XXX, XX-X}. 이러한 세트는 검색어 크기 |W| =20에 대하여 발견되었고, 유사도 임계 T = 60%이다(즉, 8 개까지의 부정합이 허용됨). 주어진 검색어에 대한 필터들의 세트로부터 생성된 단어들의 개수는 35 이다.
다음 검색어를 고려한다: 다음 표는 필터 XXX에 대하여, 단어가 다음이 될 것을 보여준다:
각각의 필터에 대한 단어들의 개수 nc(i)는 다음과 같이 계산될 수 있다:
여기에서: |W| = 검색어 W의 크기, |C(i)| = 공백을 포함하는 필터i의 스팬이다.
이제 개시된 기법의 다른 실시예에 따라 구성되고 동작하는, 필터들의 여러 위치 관련 세트를 예시하는 도 7a 내지 도 7C를 참조한다. 알고리즘의 유효성은 규정된 검색어에 대해 적합한 필터들의 위치 관련된 세트를 사용함으로써 크게 증가될 수 있다. 이것은 텍스트 내에서의 필터들의 형성된 위치 관련된 세트 내의 각각의 추출된 단어의 출현을 고려할 수 있다. 따라서, 특정된 검색어의 '낮은-출현' 위치는 최대 세트와 연관될 수 있는 반면에, '높은-출현' 위치는 최소 세트와 연관될 수 있다. 필터들의 세트는 도 4에 설명된 검색 조건(검색어 크기 |W| =20, 및 유사도 임계 T = 60%(즉, 8 개까지의 부정합이 허용됨))에 대해서 연산되었다. 위치의 시퀀스는 S = { 1, 2, 3,... }이다.
시작 세트는 도 4에 주어진 세트이다.
도 7a를 참조하면, 필터들의 위치-관련 세트의 일 예가, 도 4의 표(400)의 상단 행에 대응하는 필터 내의 정합들의 개수 M = 3에 대해서 도시된다. 이것은, 검색 단어 중 형태 "XXX"와의 비교를 13번째 위치까지만 하여야 한다는 것을 의미한다. 도 7b를 참조하면, 필터들의 위치-관련 세트의 일 예가, 도 4의 표(400)의 위에서 두 번째 행에 대응하는 필터 내의 정합들의 개수 M = 4에 대해서 도시된다. 도 7C의 표 3을 참조하면, 위치-연관 세트의 점수는 도 4에 제공된 필터 세트에 대한 점수와 비교되는데, 점수들은 주어진 검색어에 대하여 필터들의 세트로부터 생성된 단어들의 개수에 따라 결정된다.
본 발명의 다른 예시적인 실시예에 따르면, 세트들의 세트들의 어레이가 다음과 같이 준비될 수 있다: 주어진 검색 단어에 대하여, 상이한 위치로부터 시작하며 최저 출현 위치가 선택되는 것. 이러한 최저 출현 위치로부터 시작하는 세트들의 세트가 사용된다. 이와 유사하게, 세트들의 세트의 어레이는 S 내의 다음 위치에 대하여 상이한 할당을 가지는 세트들의 세트를 보유할 수 있다. 후자의 경우, 가장 낮은, 그리고 두 번째로 낮은 출현 위치가 선택될 수 있고, 대응하는 최저 또는 두 번째로 낮은 출현 위치를 가지는 세트들의 세트가 사용된다. 프로시저는 더 많은 개수의 위치에 대해서 계속된다.
'낮은-출현' 위치는, 이러한 위치와 연관된 필터들의 세트로부터의 모든 필터에 대해서 이러한 위치로부터 시작하여 모든 단어의 출현의 합으로서 계산된다. 단어 출현은 필터들의 세트로부터의 모든 필터에 대한 모든 단어의 텍스트 내의 매핑으로부터 제공될 수 있다(텍스트 사전-진행(pre-proceeding)).
본 발명의 실시예는 여러 구현형태에 대해서 채택될 수 있다: (i) 주어진 텍스트 내의 하나의 단어 또는 단어들의 세트에 대한 모든 유사한 단어의 검색; (ii) 온라인 스트림 내에서의 하나의 단어 또는 단어들의 세트에 대한 모든 유사한 단어의 검색; 및 (iii) 제 2 텍스트 내에서의 제 1 텍스트 유사 단어 내의 각각의 단어에 대한 검색; (iv) 인덱싱, 즉 동일한 텍스트 내에서의 텍스트 유사 단어의 각각의 단어에 대한 검색(이것은 주어진 텍스트의 단어의 유사도 그래프를 구축하는 것으로 간주될 수 있음).
검색을 위한 모든 필터의 전체 세트의 사용은 Frenkel, Z. M. 및 Trifonov, E. N. Evolutionary networks in the formatted protein sequence space. Journal of Computational Biology, 14(8):1044-57, Oct. 2007에 기술된다. 모든 필터의 전체 세트는 소모적 조합론(exhaustice combinatorics)에 의해서 생성된다.
본 발명의 예시적인 실시예는, 주어진 텍스트 내의 하나의 단어 또는 단어들의 세트에 유사한 단어들을, 전술된 필터들의 최소 세트를 사용하여 검색하고, 이를 통하여 소모적 접근법을 개선하는 방법을 제공한다. 텍스트 인덱싱은 텍스트에 대한 유사도 그래프를 구성하는 것과 유사하다. 유사도 그래프는 복수 개의 에지에 의해 연결되는 복수 개의 노드에 의해 특징지어진다. 노드는, 검색어의 크기에 대응하는 글자 시퀀스의 복수 개의 반복을 나타낸다; 각각의 에지는 노드들의 쌍을 노드들 사이의 각각의 유사도 임계에 기반하여 연결한다. 유사도 그래프는 [PCT/IL2016/051220]에서 기술된 방법과 같은 종래의 방법에 따라서 압축될 수 있다. 단어의 클러스터링은 검색을 완료하기 위해 필요한 시간을 크게 줄일 수 있다.
이것은 다음과 같이 설명될 수 있다. 다음의 부명제(Lemma)를 고려한다:
다음 조건들이 만족된다면:
1. 단어 A, B, C, D는 각각 크기 m이다
2. 단어 A는, 부정합의 최대 개수 x를 가지고 단어 B와 유사하고, 즉 A와 B 사이의 거리 d는 (d(A, B) ≤x)이다
3. 단어 C는, 부정합의 최대 개수 y를 가지고 단어 D와 유사하고, 즉, C와 D 사이의 거리 d는 (d(C, D) ≤y)이다
단어 A는 단어 C와 다르고, 정합들의 최대 개수 z를 가지며, 즉 적어도 m - z 개의 부정합을 가진다. 따라서 A와 C 사이의 거리 d는 (d(A, C) ≥ m - z)이다
그러면, 단어 B는 다음으로 주어지는 부정합의 최대 개수 내에서 D와 유사하고:
max{O; m - (x + y + z)}, 다음 관계가 성립한다:
d(B, D) ≤ max{O; m - (x + y + z)}
이러한 결과의 증명은 다음과 같다. 두 개의 원을 고려할 수 있는데, 제 1 원은 반경 x를 가지고 중심에 A가 있고 에지에 B가 있다. 제 2 원은 반경 y를 가지고, 중심에 C가 있고 에지에 D가 있다. 원들은 A 및 C 사이의 최소 거리가 최소인 경우 중첩할 수 있고, A 및 C의 거리가 최대인 경우에는 분리되어 확산될 수 있다. 두 개의 가능한 케이스들은 다음과 같다: 1) B 및 D 사이의 최소 거리는: m - (x + y + z)로 주어지고, 2) B 및 D 사이의 최소 거리는 0이다(즉 원들이 중첩함).
위의 부명제들은 다음과 같이 검색에 적용될 수 있다. 두 개의 클러스터가 60% 유사도 내로 정합되면(즉 20 글자의 시퀀스의 경우, 여덟 개까지의 부정합, 또는 적어도 12 개의 정합), 클러스터들은 유사도 기준에 따르도록 구축된다. 예를 들어, 이러한 기준 중 하나는, 각각의 클러스터 내의 모든 시퀀스가 적어도 90% 유사도 척도(즉 최대 두 개의 부정합) 내에서 대응 클러스터-시딩(seeding) 시퀀스와 유사하다는 것일 수 있다.
시딩 시퀀스가 35%(즉 7 개 이하의 정합)의 최대 유사도를 가지면, 두 개의 클러스터들의 임의의 두 개의 시퀀스들 사이의 최대 유사도는 11 개의 정합(즉 55%)을 초과할 수 없다. 다르게 말하면, 클러스터들 사이의 최소 거리는 적어도 9 개의 부정합이다(20-7+2+2 = 9). 이러한 경우에, 두 개의 클러스터들 사이에서 60% 유사도 요건을 만족하는 연결은 불가능하다. 따라서, 클러스터들의 이러한 쌍은 점검될 필요가 없어서, 메모리, 시간 및 계산 리소스를 최적화한다. 제 1 클러스터가 m 개의 시퀀스를 가지고 제 2 클러스터가 n 개의 시퀀스를 가지면, 경제적으로는 m*n - 1 회의 비교가 된다. 데이터베이스 내에서 35% 유사도 시퀀스 프래그먼트를 찾을 가능성은 상대적으로 낮다는 것에 주의할 수 있다(20-글자 알파벳의 경우 약 10-5).
다음 인덱싱 알고리즘이, 인덱싱을 위해 필요한 정합들의 최소 개수에 대한 임계를 나타내는 th1 에 대하여, 그리고 클러스터링을 위해 필요한 부정합들의 최대 개수를 나타내는 th2 에 대하여 적용될 수 있다:
1) 텍스트를 단어들의 클러스터들의 세트로 분할한다. 클러스터는 다음과 같이 형성된다:
a) 클러스터 내에 존재하지 않는 각각의 단어에 대하여:
b) 전술된 k-부정합 검색을 사용함으로써 선택된 임계 th2 에서 모든 유사한 단어를 검색한다;
c) 단어를 클러스터 내에서 정렬한다: 시드 단어에 더 유사한 단어에는 더 작은 인덱스가 부여된다;
2) 클러스터들 사이의 연결이 다음 조건(들)에 따르는지 점검한다: 제 1 클러스터 중에서, 유사도 임계 th1인 제 2 클러스터 중 적어도 하나의 단어와 유사한 적어도 하나의 단어가 존재하면 클러스터는 연결된다
a) 시드 단어에 대하여(전술된 k-부정합 검색 기법에 따라 결정됨), 적어도(K1 = th1 - 2*th2) 개 이하의 정합에 유사한 모든 시드 단어를 검색한다. 즉, 유사한 단어는 이러한 클러스터에서 한 번만 출현할 수 있다;
b) 클러스터의 인덱스 i 및 j의 단어들만을 비교하는데, Ki+Ki+Kj >= th1 이다(즉 K1은 시드 단어들 사이의 정합들의 개수들의 개수이고, ¾ 및 Kj는 대응하는 시드 단어와의 단어 i 및 j 각각의 부정합의 개수이다).
c) 연결이 검출되면, 프로시저는 끝난다.
3) 인덱싱을 완료한다. 많은 애플리케이션의 경우, 클러스터들 사이의 연결을 식별하면 충분하기 때문에 이러한 단계는 선택적이다.
a) 각각의 클러스터 내의 모든 노드들을 비교한다;
b) 연결된 클러스터의 단어들(이와 유사하게, 클러스터의 인덱스 i 및 j의 단어들만) 비교하는데, 여기에서 Ki+Ki+Kj ≥ th1이고, K1, Ki, 및 Kj는 전술된 바와 같다,
이제 텍스트 인덱싱 알고리즘이 다음과 같이 주어진다: i) 모든 필터 내에 존재하는 모든 단어가 텍스트 내에 매핑된다. ii) 각각의 검색 단어에 대하여, 모든 필터 내의 모든 단어가 추출되고, 용어가 추출된 단어의 매핑에 따라서 검색 텍스트와 비교된다. 고속 액세스를 위하여, 추출된 단어의 어드레스가 사용될 수 있다.
본 발명의 다른 예시적인 실시예에 따르면, 특정 조건에서, 검색어 내의 모든 필터 내의 단어들은 검색어들의 세트에 대한 접미사 트리 데이터 구조체 내에 매핑되고 저장된다. 필터들의 전체 세트와의 비교는 선형 시간에서 수행된다. 이러한 조건은, 텍스트의 전-처리가 구현될 수 없는 경우를 포함할 수 있다. 예를 들어: 텍스트를 사용할 수 없거나, 또는 온-라인 텍스트 스트림 또는 이용가능한 메모리의 양이 충분하지 않은 경우이다.
예시적인 일 실시예에서, 특정된 검색어의 '낮은-출현' 위치는 최대 세트와 연관될 수 있는 반면에, '높은-출현' 위치는 최소 세트와 연관될 수 있다. 따라서 필터들의 두 개의 위치-연관 세트가 위치 S1 및 S2의 두 순서들에 대하여 계산된다.
다음 표 3을 참조하면, 필터들의 두 개의 위치-연관 세트들이 검색어 내의 위치의 두 개의 가능한 시퀀스 S1, S2에 대해서 표시되는데, XXX는 세 개의 순차적인 정합을 나타내고, XX-X는 두 개의 순차적인 정합, 다음에 하나의 와일드 카드, 및 하나의 정합을 가리킨다:
S1 = {1, 2,3,4,..., 15,16,17, 18} | S2= { 14,15,3,4,..., 12,13,1,2,16,17, 18} | ||
위치 | 세트 | 위치 | 세트 |
1 | XXX, XX-X | 1 | XXX, XX-X |
2 | XXX, XX-X | 2 | XX-X |
.. ... |
... | 3 | XXX, XX-X |
12 | XXX, XX-X | 4 | XXX, XX-X |
13 | XXX, XX-X | .. ... |
... |
14 | XX-X | 14 | XXX, XX-X |
15 | XX-X | 15 | XXX, XX-X |
16 | XX-X | 16 | XX-X |
17 | XX-X | 17 | XX-X |
18 | - | 18 | - |
검색용 단어 W = 'ABCDEFGHIJKLMNOPQRST'를 고려한다. 각각 1000 회의 출현과 같은 'BCD'(즉 XXX) 및 'BC-E'(즉 XX-X)를 제외하고, 텍스트 내의 모든 3-글자 단어의 출현이 동일하다 - 0과 같다고 가정한다. 텍스트 내에서 세트들의 좌측 세트(S1으로 계산됨)에 따라 검색 단어 W에 유사한 모든 단어를 찾기 위하여(60% 유사도 임계로), 2000 회의 비교를 요구하는 시퀀스 'BCD' 및 'BC-E'가 사용되는 반면에, 세트들의 우측 세트(S2로 계산됨)를 사용하여 60% 유사도로 W에 유사한 모든 단어를 찾는 것은('BC-E'가 사용되지 않음) 1000 회의 비교를 수행하는 것을 요구할 것이다. 따라서 이러한 검색 단어 및 이러한 텍스트에 대해서는 우측 세트가 더 효율적이다.
필터들의 세트의 위치 연관 세트가 본 명세서에서 설명된 바와 같이 준비되는 경우, 결과적으로 얻어지는 위치 연관 세트는, 앞의 표 3에서 예시되는 것과 같은 검색어 내의 위치의 순서 또는 "시퀀스"에 따라 달라진다).
기대된 비교 횟수가 필터들의 세트의 상이한 세트를 사용하는 것과 같을 수 있지만, 특정한 위치에 대응하는 필터들의 개수는 실질적으로 달라서, 성능에 영향을 줄 것이다. 검색을 위해서 필터를 특정한 텍스트 내에 매핑한 후에, 모든 필터의 형태인 검색 단어의 출현이 알려지고, 검색을 더욱 최적화하기 위하여 사용될 수 있다. 예를 들어, 검색용 텍스트 내의 'BCD', 'BC E', 및 검색어 중 임의의 다른 단어의 출현이 이러한 예에서 알려진다. 따라서, 주어진 검색 단어에 대하여, 텍스트와의 최소 비교 횟수를 제공하는 세트들의 대응하는 세트가 검색 속도를 개선하기 위하여 선택될 수 있다. 검색어와의 비교들의 최소를 가지는 세트들의 세트를 제공하는 위치들의 시퀀스가 선택된다. 그러나, 필터들의 "일반적" 세트, 또는 필터들의 세트의 모든 세트에 대한 필터들의 초기 세트는 동일하다. 그러면, 필터들의 세트의 모든 가능한 위치 세트에 대해서 동일한 매핑을 사용할 수 있다.
본 발명의 또 다른 예시적인 실시예에 따르면, 단어 또는 그 이상에 대한 검색은 우선 주어진 텍스트의 유사도 그래프를 구성함으로써 수행될 수 있다. 유사도 그래프는 더 높은 유사도 임계에 따라서 압축될 수 있는데, 여기에서 "슈퍼-노드들" 사이의 연결은 일차 그래프 내에서 대응하는 서브그래프들 사이에 적어도 하나의 연결이 존재한다는 것을 나타낸다. 필터들의 최소 세트는 슈퍼-노드들 사이의 연결을 찾는 프로세스에 적용될 수 있다.
다음은 인덱싱을 위하여 압축된 유사도 그래프를 사용하는 일 예이다:
작업: 텍스트 T에 대하여, 유사도 그래프를 구축한다, 즉 각각의 단어에 대하여, 적어도 임계 thr1을 가지는 모든 단어를 찾는다
i. 서브그래프로서 클러스터(선택된 최대 크기를 가짐)를 생성하는데, 연결 조건은 thr1보다 높은 thr2이다. 예를 들어, thr1이 60% 정합이면, thr2는 정합의 80-90%일 수 있다. 필터들의 훨씬 적은 세트가 요구된다는 것, 즉 계산을 위하여 훨씬 적은 시간과 RAM이 요구된다는 것이 시연될 수 있다.
ii. 클러스터들 사이의 연결을 계산한다(이것도 전체 네트워크 계산보다 훨씬 빠르다). 이것은, 하나의 클러스터로부터 첫 번째 그리고 다른 클러스터로부터 두 번째인 연결되는(thr1으로) 노드들의 적어도 하나의 쌍이 존재한다면, 클러스터가 "연결된다"고 불린다는 것을 의미한다.
iii. 계산된 연결된 클러스터에 기반하여 유사도 그래프를 계산한다. 또한, 이러한 작업은 직접 계산보다 훨씬 빠르다(비교가 클러스터 내에서 그리고 연결된 클러스터들 사이에서만 수행되어야 하기 때문임).
본 발명의 또 다른 예시적인 실시예에 따르면, k-부정합 검색은, 정합하는 단어가 텍스트 안에서 확률 임계 내에서 발견될 것이라는 점에서, 손실이 있을 수 있다. 전술된 알고리즘은 "무손실"이고, 즉 조합들의 고려된 세트가 주어진 임계 및 검색어 크기에 대하여 정합 및 갭의 위치의 모든 가능한 조합을 보유한다면, 선택된 임계 내에서 검색 단어에 유사한 임의의 단어가 손실되지 않는다. 그러나, 개시된 기법은 "유손실" 알고리즘으로서도, 즉 적어도 일부의 미리 규정된 확률 내에서 유사한 단어를 찾기 위해서 사용될 수 있다. 이러한 접근법의 하나의 장점은 검색 속도가 증가되고 사전 진행을 위한 RAM 요건이 감소된다는 것이다.
"유손실" 알고리즘에 대하여 이러한 기법을 채택하기 위하여, 정합 및 갭의 위치의 조합들의 완전한 세트의, 전체 세트의 일부, 즉 서브세트만을 커버하는, 필터들의 세트가 구축된다. 전체 세트에 대한 서브세트 크기의 비율은 검색 단어를 찾을 미리 규정된 확률 이상이다. 이러한 경우에, 알고리즘은, 조합들의 전체 세트가 고갈될 때까지 알고리즘을 수행하는 것과 반대로, 정합 및 갭의 위치의 조합들의 완전한 세트의 서브세트가 마킹되거나 제거될 때까지 반복된다.
일부 애플리케이션에서, 검색어는 선택된 크기(허락된 부정합들의 대응하는 개수)에 의해 한정되지 않을 수 있다. 오히려, 검색어는, 예를 들어 미리 규정된 하한(SL)과 일부 미리 규정된 상한(SU) 사이에서 변동할 수 있는 허락된 크기(들)를 가질 수 있다. 허락된 부정합의 개수는 높은 그리고 낮은 부정합 임계들 사이에서 역시 변할 수 있다.
예를 들어, 허락된 부정합의 개수는 일부 예를 들어 검색어의 크기, 애플리케이션의 콘텍스트, 텍스트의 특성 등에 비례할 수 있다. 이러한 경우에, 검색 단어 크기 및/또는 부정합의 개수의 범위 내에서 다양한 상이한 콘텍스트에 적용될 수 있는 필터들의 "범용" 세트를 생성한다면 유용할 수 있다.
허락된 검색어 크기 S에 대하여, 필터들의 대응하는 세트가 최적의 검색 속도를 제공하도록 요구되지만, RAM 리소스를 요구하는 매핑은 S에 대한 허용가능 크기의 범위 내의 각각의 별개의 크기에 대해서 반복되어서는 안 된다. 필터들의 이러한 "범용" 세트를 계산하기 위한 알고리즘의 구현예가 다음과 같이 제공된다:
i. SL에 대하여 필터들의 세트를 구성한다(위의 알고리즘 중 하나에 의하여);
ii. 이러한 세트를 매핑용 필터들의 세트(set of filters for mapping; SFM)에 추가한다;
iii. SL+l 내지 Su 중 각각의 Si에 대하여, 예를 들어 청구항의 문단 1에 기술된 알고리즘에 의하여, SFM을 초기 세트로서 사용하여(즉, 알고리즘에서 사용된 빈 초기 세트 대신에) 필터들의 세트를 구축한다.
iv. 신규 필터가 세트에 추가되면, "필터가 유지가능한지"의 점검이 신규 필터에서부터 시작하여 수행되어야 한다.
v. 새로운(유지가능) 필터를 SFM에 추가한다.
결과적으로, 검색어의 각각의 가능한 크기에 대한 세트(대응하는 유사도 조건을 가짐)를 보유한, 필터들의 세트의 세트가 구축된다. 그러나, SFM으로부터의 필터들만이 이러한 세트 내에 존재한다. 따라서, 이러한 필터만이 사전 진행에서 매핑되어야 한다.
검색어의 크기 |W|가 Su보다 큰 경우, 검색어는 동일한 크기인 두 단어 Wleft 및 Wright으로 분할될 수 있고, 각각의 단어에 대하여 모든 유사한 단어(동일한 유사도 임계를 가짐(% 단위))가 텍스트 내에서 검출되어야 한다. Wright에 유사한 단어들의 업스트림 텍스트는 Wleft와 비교되어야 하고, Wleft와 유사한 단어들의 다운스트림 텍스트는 Wright와 비교되어야 한다.
본 명세서에서 설명된 기법들은 여러 콘텍스트들에 적용될 수 있다. 예를 들어, 사전에서 단어를 검색하는 경우, 검색어는 흔히 맞춤법, 시제, 단수/복수 등을 고려하기 위하여 "정규화" 스테이지를 거쳐야 한다. 따라서 본 명세서에 개시된 기법은 더 양호한 결과를 제공하도록 이러한 정규화 스테이지 대신에, 또는 정규화와 공동으로 사용될 수 있다.
전술된 바와 같이 얻어진 필터들의 세트는 단어들의 목록(사전) 내에서의 검색을 위하여 적응될 수 있다. 이러한 경우에, 각각의 필터 내의 각각의 단어의 위치가 매핑 시에 고려되어야 한다. 검색어와 동일한 위치에서 대응하는 필터를 보유한, 사전 내의 단어들만이 검색어와 비교되도록 선택되어야 한다.
당업계에 공지된 추가적인 기법들이 성능을 향상시키기 위하여 본 명세서에서 개시된 시스템 및 방법들과 함께 사용될 수 있다. 어떤 조건에서는, 알파벳의 크기가 성능, 또는 알고리즘의 유효성에 영향을 준다. 알파벳이 작을수록 검색의 조합론적 복잡도가 감소될 수 있고, 따라서 일부 콘텍스트에서 두 개 이상의 글자를 하나의 글자로 클러스터링하여, 알파벳의 크기를 줄이고 알고리즘의 유효성을 증가시키는 것이 가능할 수 있다. 하나의 가능한 대체예는, 최초 알파벳으로부터의 두 개 이상의 글자를 새로운 알파벳의 하나의 글자에 클러스터링하는 것일 수 있다. 또는, 일부 경우에, 알파벳의 크기가 증가되면 각각의 필터의 출현 횟수가 감소될 수 있다. 예를 들어, DNA에 대한 텍스트는 DNA에 있는 네 개의 뉴클레오티드에 대응하는 4-글자 알파벳 {a, t, c, g}를 가진다. 임의의 3-글자 단어의 출현 확률은 따라서 1/4*1/4*1/4 = 1/64 이다. 새로운
크기가 16(=42)인 신규 알파벳이 모든 2-글자 조합으로부터 다음과 같이 구축될 수 있다: {aa, at, ac, ag, ta, tt, tc, tg,...}. 임의의 3-글자 단어의 출현 확률은 이제 1/16*1/16*1/16 = 1/4096 이고, 훨씬 작아진다. 그러면 검색 효율이 크게 증가될 수 있다. 알파벳 크기가 이에 따라 증가되거나 감소될 수 있다.
추가적 구현형태: 필터에 대한 데이터베이스가 상이한 애플리케이션에 대하여 생성될 수 있다. 필터들의 세트의 품질(효과)을 개선하기 위하여 유전학 알고리즘이 사용된다.
이제, 개시된 기법의 일 실시예에 따라 구성되고 동작하는, 본 명세서에 개시된 단계들 중 임의의 것을 실행하기 위한 컴퓨터 시스템(800)을 예시하는 도 8a를 참고한다. 컴퓨터 시스템(800)은 적어도 하나의 프로세서(802)(예를 들어 CPU), 랜덤 액세스 메모리(RAM) 유닛(804), 디스크 스토리지 유닛(806), 송수신기(808), 및 파워 서플라이(810)를 포함한다. 적어도 하나의 프로세서(802), RAM 유닛(804), 디스크 스토리지 유닛(806) 및 송수신기(808)는 파워 서플라이(810)에 전기적으로 커플링된다. RAM 유닛(804), 디스크 스토리지 유닛(806) 및 송수신기(808)는 적어도 하나의 프로세서(802)에 통신하도록 커플링된다. 송수신기(808)는, 본원에서 개시된 k-부정합 검색 기법에 따르는 적어도 하나 이상의 프로그램 코드 명령, 및 데이터를 전송하고 수신하도록 동작한다. 송수신기(808)는 임의의 적합한 유선 또는 무선 프로토콜을 사용하여, 예컨대 일부 예를 들자면 전기 또는 광학 케이블, 근거리 및 중간거리 통신 수단(예를 들어 블루투스, Wifi, IR), 및 장거리 통신 수단(예를 들어 RF 및 셀룰러)을 통해 추가적 컴퓨터 시스템(미도시)과 통신할 수 있다.
RAM 유닛(804) 및 디스크 스토리지 유닛(806)은 본원에서 개시된 k-부정합 검색 기법에 따른, 송수신기(808)를 통해 수신될 수 있는 임의의 것과 같은 하나 이상의 프로그램 코드 명령 및 데이터를 저장하도록 각각 동작한다. 적어도 하나의 프로세서(802) k-부정합 검색 기법에 따른 하나 이상의 프로그램 코드 명령 및 데이터를 판독하고, 데이터에 프로그램 코드 명령을 실행하며, 이를 통하여 본 명세서에서 설명되는 단계들 중 임의의 것을 실행하도록 동작한다. 적어도 하나의 프로세서(802)는 실행 결과를 RAM 유닛(804) 및 디스크 스토리지 유닛(806)에 기록하도록 동작한다. 적어도 하나의 프로세서(802)는 송수신기(808)를 통해 추가적 컴퓨터 시스템(미도시)로부터 데이터를 요청하고 및 데이터를 제공하도록 동작한다. 적어도 하나의 프로세서(802)는 실행 결과를, 예컨대 사용자 인터페이스(미도시)를 통해 사용자에게 제공하도록 동작한다.
이제, 개시된 기법의 다른 실시예에 따라 구성되고 동작하는, 본 명세서에 앞서 개시된 단계들 중 임의의 것을 실행하기 위한 네트워킹된 컴퓨터 시스템(820)을 예시하는 도 8b를 여전히 도 8a를 참조하면서 참고한다. 컴퓨터 시스템(820)은 다수의 노드(800A, 800B,... 800N), 및 통신 네트워크(822)를 포함한다. 노드(800A, 800B,... 800N) 각각은 도 8a의 컴퓨터 시스템(800)에 대응한다. 따라서, 노드(800A, 800B, … 800N) 각각은 도 8a에서 앞서 언급된 적어도 컴포넌트, 예를 들어 적어도 하나의 프로세서(802)(예를 들어 CPU), 랜덤 액세스 메모리(RAM) 유닛(804), 디스크 스토리지 유닛(806), 송수신기(808), 및 파워 서플라이(810)를 포함한다. 노드(800A, 800B,... 800N)는 통신 네트워크(822) 및 노드(800A, 800B,... 800N) 각각의 개별 송수신기(808)를 통해 서로 통신하도록 동작한다. 컴퓨터 시스템(820)은 본 명세서에서 설명된 단계들 중 임의의 것을 노드(800A, 800B,... 800N)에 걸쳐서, 종래의 기법을 사용하여, 분산 컴퓨팅 분야에 공지된 바와 같은 분산 방식으로 실행하도록 동작한다. 단계들은 병렬 및 직렬 컴퓨팅의 임의의 조합에서 수행될 수 있다.
컴퓨터 시스템(800) 및 컴퓨터 시스템(820)은 적어도 다음 단계를 수행하도록 각각 구성된다:
검색어의 크기 및 유사도 임계가 수신된다. 필터들의 세트가 생성된다. 필터들의 세트는 유사도 임계에 따라, 정합 및 갭의 위치의 조합들의 세트에 기반하여 검색어의 크기에 대해서 형성된다. 조합들의 각각의 하나는 필터들의 세트 중 적어도 하나의 필터를 보유한다. 일부 실시예들에서, 조합들의 세트의 각각의 조합은, 각각의 조합의 제 1 위치에서 정합을 포함한다. 일부 실시예들에서, 각각의 조합들의 세트는 각각의 조합의 마지막 위치에서 정합을 더 포함한다. 도 8a를 참조하면, 프로세서(802)는, 예컨대 송수신기(808)를 통해 검색어 및 유사도 임계를 수신한다. 프로세서(802)는, 유사도 임계에 따라서, 검색어의 크기에 대해, 정합 및 갭의 위치의 조합들의 세트에 기반하여 필터들의 세트를 형성한다. 조합들의 각각의 하나는 필터들의 세트 중 적어도 하나의 필터를 보유한다.
필터들의 세트의 각각의 필터에 대하여, 해당 필터만을 보유한, 조합들의 세트 중 적어도 하나의 조합이 존재한다면 각각의 필터가 유지가능 필터라고 결정된다. 필터가 유지가능 필터가 아니면, 해당 필터는 필터들의 세트로부터 삭제된다. 도 8a를 참조하면, 프로세서(802)는, 조합들의 세트 중 적어도 하나의 조합이 해당 필터만을 포함한다면 해당 필터를 유지가능 필터라고 결정한다. 필터가 유지가능 필터가 아니라고 프로세서(802)가 결정하면, 프로세서(802)는 해당 필터를 필터들의 세트로부터 삭제한다.
필터들은 다음 단계에 따라서 형성된다: 필터들의 세트가 초기화된다. 조합들의 세트의 각각의 선택된 조합에 대하여: 필터들의 세트 중 한 필터의 출현이 선택된 조합 내에서 검색된다; 필터의 출현이 선택된 조합 내에서 발견되지 않으면, 신규 필터가 선택된 조합으로부터 유도된다. 신규 필터가 필터들의 세트에 추가된다. 일부 실시예들에서, 신규 필터는 선택된 조합의 세그먼트이다. 일부 실시예들에서, 신규 필터 및 상기 신규 필터의 정합들의 개수 중 임의의 것은 무작위화 프로세스로 결정된다. 일부 실시예들에서, 정합의 개수는 미리 결정된 양이다. 일부 실시예들에서, 다수의 신규 필터가 선택된 조합으로부터 유도되고, 다수의 신규 필터들 각각에 점수가 부여된다. 신규 필터의 점수가 다수의 신규 필터 중 임의의 다른 신규 필터의 점수보다 높으면, 신규 필터는 필터들의 세트에 추가된다. 일부 실시예들에서, 점수는 다음 파라미터들의 임의의 조합에 따라 각각의 필터에 부여될 수 있다: 필터를 적용하는 것 각각의, 검색어와 텍스트 각각의 사이의 기대된 비교 횟수; 조합들의 세트 내의 필터의 출현 빈도; 필터 내의 정합들의 개수; 및 필터의 스팬. 도 8a를 참조하면, 프로세서(802)는 다음과 같이 필터들의 세트를 형성한다: 프로세서(802)는 필터들의 세트를 초기화한다. 조합들의 세트 중 각각의 선택된 조합에 대하여: 프로세서(802)는 선택된 조합에서, 필터들의 세트의 필터의 출현을 검색한다. 프로세서(802)가 선택된 조합 내의 필터의 출현을 찾지 않으면, 프로세서(802)는 선택된 조합으로부터 신규 필터를 유도하고, 신규 필터를 필터들의 세트에 추가한다.
필터들의 제 2 세트는 다음 단계에 따라 생성될 수 있다: 하나 이상의 필터가 필터들의 세트로부터 선택될 수 있다. 선택된 필터 각각은 적어도 하나의 상이한 필터로 교체될 수 있는데, 선택 및 교체는 선택된 필터의 최고 점수로부터 선택된 필터의 최저 점수로 정렬된 시퀀스에 따라 수행되고, 조합의 각각의 하나는 필터들의 제 2 세트 중 적어도 하나의 필터를 보유할 수 있다. 필터들의 제 2 세트는 맞춤 점수에 따라 필터들의 세트에 걸쳐서 선택된다. 맞춤 점수는 다음 파라미터 중 하나 이상을 사용하여 계산될 수 있다: 상기 필터들의 세트 내의 모든 상기 필터들에 대한 기대된 비교 횟수의 합의 함수로서 결정되는, 검색의 기대된 계산 속도; 및 상기 필터들의 세트 각각에 검색을 수행하기 위해 요구되는 메모리의 양. 도 8a를 참조하면, 프로세서(802)는 전술된 단계에 따라 필터들의 제 2 세트를 생성한다. 프로세서(802)는 필터들의 원래의 세트들 중 필터들의 제 2 세트를 맞춤 점수에 따라 선택한다.
필터들의 다수의 세트는 다음과 같이 생성될 수 있다. 검색어 내의 각각의 위치는 필터들의 다수의 세트들 중 적어도 하나에 대응한다. 조합들 각각의 하나는, 각각의 조합 내의 위치에서, 필터들의 다수의 세트 중 적어도 하나의 필터로부터의 적어도 하나의 필터를 보유한다. 필터들의 다수의 세트 중 적어도 하나에 대응하는 검색어의 위치는 각각의 조합 내에서의 위치에 대응한다. 도 8a를 참조하면, 프로세서(802)는 전술된 단계에 따라 필터들의 다수의 세트를 생성한다.
필터들의 다수의 세트 각각은 다음과 같이 형성된다: 조합들의 세트는 조합들의 현재 세트라고 지정되고, 조합들의 현재 세트에 기반한 필터들의 세트가 터들의 현재 세트로서 설정된다. 검색어 내의 위치들의 시퀀스가 획득된다. 시퀀스에 따라서, 각각의 위치에 대해, 필터들의 세트가 위치와 연관되어 생성된다. 조합들의 현재 세트로부터의 조합은, 조합이 해당 위치와 연관된 필터들의 생성된 세트 중 한 필터를 보유한다면 업데이트된다. 도 8a를 참조하면, 프로세서(802)는 필터들의 다수의 세트를 생성한다. 검색어 내의 각각의 위치는 필터들의 세트들 중 적어도 하나에 대응한다. 각각의 조합은 필터들의 다수의 세트 중 하나로부터의 적어도 하나의 필터를 보유한다. 조합 내에 상기 필터가 발견되는 위치는, 상기 필터, 즉 상기 조합 내의 필터를 보유하는 필터들의 세트에 대응하는 검색어 내의 위치에 대응한다.
필터가 조합들의 현재 세트에 대하여 유지가능하지 않으면, 필터는 필터들의 현재 세트로부터 삭제되는데, 해당 필터만을 보유한 조합들의 현재 세트의 적어도 하나의 조합 이 존재하면, 필터는 조합들의 현재 세트에 대해서 유지가능하다. 도 8a를 참조하면, 프로세서(802)는 필터가 유지가능하지 않으면 필터들의 현재 세트로부터 해당 필터를 삭제한다.
위치와 연관된 필터들의 세트는 다음과 같이 형성된다: 조합들의 세트 및, 필터들의 현재 세트 및 위치가 획득된다. 필터들의 현재 세트의 각각의 필터에 대하여: 필터는 해당 필터가 위치에서 조합들의 세트 중 조합들의 적어도 하나에서 발견되면, 해당 위치와 연관된 필터들의 세트에 추가되고, 따라서, 적어도 하나의 조합이 조합들의 세트로부터 삭제되거나, 제거되거나, 그렇지 않으면 마킹된다. 도 8a를 참조하면, 프로세서(802)는 전술된 단계에 따라 필터들의 세트를 위치와 연관시킨다.
일부 실시예들에서, 필터들의 세트들의 복수 개의 세트가 형성되고, 필터들의 세트들의 복수 개의 세트들 중 각각의 세트는, 검색어 내의 위치들의 복수 개의 시퀀스 중 상이한 시퀀스에 대응한다. 필터들의 세트들의 세트는, 필터들의 세트들의 선택된 세트가 k-부정합 검색을 실행하기 위하여 적용될 때 수행되는 기대된 비교 횟수에 따라서, 필터들의 세트들의 다수의 세트로부터 선택될 수 있다. 기대되는 비교 횟수는 주어진 텍스트 및 주어진 검색용 단어의 함수이다.
일부 실시예들에서, 유손실 임계가 수신된다. 조합들의 서브세트가 검색어 및 유사도 임계 각각에서 유손실 임계에 따라서 생성되는데, 필터들의 세트를 생성하는 것은, 조합들의 서브세트의 각각에 필터를 생성하는 것을 포함한다. 도 8a를 참조하면, 프로세서(802)는, 예컨대 송수신기(808)를 통해 유손실 임계를 수신한다.
일부 실시예들에서, 상기 검색어의 상기 크기는 상기 검색어에 대한 다수의 가능한 크기에 대응하고, 상기 유사도 임계는 다수의 유사도 임계에 대응하며, 각각의 유사도 임계는 상기 검색어에 대한 상기 다수의 가능한 크기 중 하나의 크기에 대응한다.
일부 실시예들에서, k-부정합 검색의 실행은 텍스트의 복수 개의 단어를 클러스터링학 위하여 적용된다. 클러스터링은 k-부정합 검색의 텍스트 인덱싱 단계를 가속화하기 위하여 적용될 수 있다.
본 발명은 전술된 실시예로 한정되지 않고, 후속하는 청구항의 범위 내의 임의의 실시예 및 모든 실시예를 망라한다. 개시된 기법이 앞서 특정하게 도시되고 설명된 것으로 한정되지 않는다는 것이 당업자에게는 이해될 것이다. 오히려, 개시된 기법의 범위는 청구항들에 의해서만 규정되고, 그 가능한 대표적인 근사적 표현들이 후속된다:
Claims (21)
- k-부정합(mismatch) 검색을 실행하기 위한 컴퓨터 시스템으로서,
적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는,
검색어의 크기를 수신하고;
유사도 임계를 수신하며; 및
상기 유사도 임계에 따라 상기 검색어의 상기 크기에 대한 정합(match) 및 갭의 위치의 조합들의 세트에 기반하여 필터들의 세트를 형성하는 것에 의하여, 상기 필터들의 세트를 생성하도록 구성되며,
상기 조합들의 각각의 조합은 상기 필터들의 세트 중 적어도 하나의 필터를 보유하고,
상기 적어도 하나의 하드웨어 프로세서는,
상기 필터들의 세트를 초기화하는 것;
상기 조합들의 세트의 각각의 선택된 조합에 대하여,
상기 선택된 조합 내에서 상기 필터들의 세트 중 하나의 필터의 출현(occurrence)을 검색하고,
상기 필터들의 세트 중 하나의 필터의 출현이 상기 선택된 조합 내에서 발견되지 않으면, 상기 선택된 조합으로부터 신규 필터를 유도하고,
상기 신규 필터를 상기 필터들의 세트에 추가하는 것에 의하여, 상기 필터들의 세트를 형성하도록 구성되고,
상기 적어도 하나의 하드웨어 프로세서는,
상기 선택된 조합으로부터 다수의 신규 필터를 유도하고, 상기 다수의 신규 필터의 각각에 점수를 부여하며, 상기 신규 필터의 점수가 상기 다수의 신규 필터 중 임의의 다른 신규 필터의 점수 보다 높으면, 상기 신규 필터를 상기 필터들의 세트에 추가하도록 구성되며,
상기 적어도 하나의 하드웨어 프로세서는,
상기 필터를 각각 적용하는 것, 상기 검색어와 텍스트 사이의 기대된 비교 횟수; 상기 조합들의 세트 내의 상기 필터의 출현 빈도; 상기 필터 내의 정합들의 개수; 및 상기 필터의 스팬(span)으로 이루어진 군으로부터 선택된 파라미터에 따라서, 상기 필터들의 세트의 각각의 필터에 상기 점수를 부여하도록 더 구성되는, 컴퓨터 시스템. - 제 1 항에 있어서,
상기 적어도 하나의 하드웨어 프로세서는,
상기 필터들의 세트의 각각의 필터에 대하여, 상기 필터들의 세트 중에서 상기 필터만을 보유하는, 상기 조합들의 세트 중 적어도 하나의 조합이 존재하는 경우, 상기 필터가 유지가능 필터라고 결정하는 것, 및
상기 필터가 유지가능 필터가 아닌 경우, 상기 필터들의 세트로부터 상기 필터를 삭제하는 것에 의하여, 필터들의 최소 세트를 생성하도록 더 구성되는, 컴퓨터 시스템. - 제 1 항에 있어서,
상기 조합들의 세트의 각각의 조합은, 상기 각각의 조합의 첫 번째 위치에서 정합을 포함하는, 컴퓨터 시스템. - 제 3 항에 있어서,
상기 조합들의 세트의 각각의 조합은, 상기 각각의 조합의 마지막 위치에서 정합을 포함하는, 컴퓨터 시스템. - 삭제
- 제 1 항에 있어서,
상기 신규 필터는 상기 선택된 조합의 세그먼트인, 컴퓨터 시스템. - 제 1 항에 있어서,
상기 신규 필터 및 상기 신규 필터의 정합들의 개수 중 임의의 것은 무작위화(randomization) 프로세스로 결정되는, 컴퓨터 시스템. - 제 7 항에 있어서,
상기 정합들의 개수는 미리 결정된 수량인, 컴퓨터 시스템. - 삭제
- 삭제
- 제 1 항에 있어서,
상기 적어도 하나의 하드웨어 프로세서는,
상기 필터들의 세트로부터 필터를 선택하는 것,
각각의 상기 선택된 필터를 적어도 하나의 상이한 필터로 교체하는 것 - 상기 선택 및 교체는, 상기 선택된 필터의 점수들 중 최고 점수로부터 상기 선택된 필터의 상기 점수들 중 최저 점수로 정렬된 시퀀스에 따라 수행되고, 상기 조합들의 각각의 조합은 필터들의 제 2 세트 중에서 적어도 하나의 필터를 보유함 -, 및
맞춤 점수(fitness score)에 따라, 상기 필터들의 세트들에 걸쳐 필터들의 제 2 세트를 선택하는 것에 의하여, 필터들의 제 2 세트를 생성하도록 더 구성되는, 컴퓨터 시스템. - 제 11 항에 있어서,
상기 맞춤 점수는, 상기 필터들의 세트 내의 모든 상기 필터들에 대한 기대된 비교 횟수의 합의 함수로서 결정되는 검색의 기대된 계산 속도; 및 상기 필터들의 세트 각각에 검색을 수행하기 위해 요구되는 메모리의 양으로 이루어지는 군으로부터 선택되는 파라미터를 사용하여 연산되는, 컴퓨터 시스템. - 제 1 항에 있어서,
상기 적어도 하나의 하드웨어 프로세서는,
상기 필터들의 세트의 다수 개를 생성하도록 더 구성되고,
상기 검색어 내의 각각의 위치는, 상기 필터들의 세트의 상기 다수 개 중 적어도 하나에 대응하며,
상기 조합들 중 각각의 조합은, 상기 각각의 하나의 조합 내의 위치에서, 상기 필터들의 세트의 상기 다수 개 중 적어도 하나로부터의 적어도 하나의 필터를 보유하고,
상기 필터들의 세트의 상기 다수 개 중 상기 적어도 하나에 대응하는 상기 검색어의 위치는 상기 각각의 하나의 조합 내의 위치에 대응하는, 컴퓨터 시스템. - 제 13 항에 있어서,
상기 적어도 하나의 하드웨어 프로세서는,
상기 필터들의 세트의 상기 다수 개의 각각을,
상기 조합들의 세트를 조합의 현재 세트로 지정하고, 필터의 상기 세트를 상기 조합들의 현재 세트에 기반하여 필터들의 현재 세트로 지정하며, 상기 검색어 내의 위치들의 시퀀스를 획득하는 것,
각각의 상기 위치에 대하여, 상기 시퀀스에 따라,
상기 위치와 연관된 필터들의 세트를 생성하는 것,
상기 조합들의 현재 세트 중 하나의 조합을, 상기 조합이 상기 위치에서 상기 위치와 연관된 상기 필터들의 생성된 세트 중 하나의 필터를 보유하는 경우, 업데이트하는 것,
상기 필터가 상기 조합들의 현재 세트에 대하여 유지가능하지 않은 경우, 상기 필터들의 현재 세트 중 하나의 필터를 삭제하는 것에 의하여 형성하도록 구성되고,
상기 필터만을 보유하는, 상기 조합들의 현재 세트 중 적어도 하나의 조합이 존재하는 경우, 상기 필터는 상기 조합들의 현재 세트에 대하여 유지가능한 것인, 컴퓨터 시스템. - 제 14 항에 있어서,
상기 적어도 하나의 하드웨어 프로세서는,
위치와 연관된 상기 필터들의 세트를,
상기 조합들의 세트, 상기 필터들의 현재 세트 및 상기 위치를 획득하는 것;
상기 필터들의 현재 세트의 각각의 필터에 대하여:
필터가 상기 위치에서 상기 조합들의 세트의 상기 조합들 중 적어도 하나에서 발견되면, 상기 필터를 상기 위치와 연관된 필터들의 세트에 추가하는 것, 및
상기 조합들의 세트로부터 상기 조합들 중 상기 적어도 하나를 삭제하는 것에 의하여 형성하도록 구성되는, 컴퓨터 시스템. - 제 1 항에 있어서,
상기 적어도 하나의 하드웨어 프로세서는,
유손실(lossy) 임계를 수신하고,
상기 검색어 및 상기 유사도 임계 각각의 상기 유손실 임계에 따라서, 상기 조합들의 서브세트를 생성하도록 더 구성되고,
상기 필터들의 세트를 생성하는 것은, 상기 조합들의 서브세트의 각각에 상기 필터를 생성하는 것을 포함하는, 컴퓨터 시스템. - 제 1 항에 있어서,
상기 검색어의 크기는 상기 검색어에 대한 다수의 가능한 크기에 대응하고,
상기 유사도 임계는 다수의 유사도 임계에 대응하며, 각각의 유사도 임계는 상기 검색어에 대한 다수의 가능한 크기 중 하나의 크기에 대응하는, 컴퓨터 시스템. - 제 15 항에 있어서,
상기 적어도 하나의 하드웨어 프로세서는,
필터들의 세트들의 복수 개의 세트를 형성하도록 더 구성되고,
필터들의 세트들의 상기 복수 개의 세트들 중 각각의 세트는, 상기 검색어 내의 상기 위치들의 복수 개의 시퀀스 중 상이한 시퀀스에 대응하는, 컴퓨터 시스템. - 제 18 항에 있어서,
상기 적어도 하나의 하드웨어 프로세서는,
상기 필터들의 세트들의 복수 개의 세트로부터, 필터들의 세트들 중 하나의 세트를, 상기 필터들의 세트들 중 선택된 세트가 상기 k-부정합 검색을 실행하기 위하여 적용될 때 수행되는 기대된 비교 횟수에 따라 선택하도록 더 구성되고,
상기 기대된 비교 횟수는 주어진 텍스트 및 주어진 검색용 단어의 함수인, 컴퓨터 시스템. - 제 1 항에 있어서,
상기 적어도 하나의 하드웨어 프로세서는,
텍스트의 복수 개의 단어를 클러스터링하기 위하여 상기 k-부정합 검색의 실행을 적용하도록 더 구성되는, 컴퓨터 시스템. - 제 20 항에 있어서,
상기 적어도 하나의 하드웨어 프로세서는,
상기 k부정합 검색의 텍스트 인덱싱 단계를 가속화하기 위해, 상기 클러스터링을 적용하도록 더 구성되는, 컴퓨터 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020237036301A KR20230152172A (ko) | 2017-03-19 | 2018-03-19 | K-부정합 검색을 위한 필터를 생성하는 시스템 및 방법 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762473400P | 2017-03-19 | 2017-03-19 | |
US62/473,400 | 2017-03-19 | ||
PCT/IL2018/050311 WO2018173042A1 (en) | 2017-03-19 | 2018-03-19 | System and method for generating filters for k-mismatch search |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237036301A Division KR20230152172A (ko) | 2017-03-19 | 2018-03-19 | K-부정합 검색을 위한 필터를 생성하는 시스템 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190139227A KR20190139227A (ko) | 2019-12-17 |
KR102594625B1 true KR102594625B1 (ko) | 2023-10-25 |
Family
ID=63584300
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237036301A KR20230152172A (ko) | 2017-03-19 | 2018-03-19 | K-부정합 검색을 위한 필터를 생성하는 시스템 및 방법 |
KR1020197030833A KR102594625B1 (ko) | 2017-03-19 | 2018-03-19 | K-부정합 검색을 위한 필터를 생성하는 시스템 및 방법 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237036301A KR20230152172A (ko) | 2017-03-19 | 2018-03-19 | K-부정합 검색을 위한 필터를 생성하는 시스템 및 방법 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11250064B2 (ko) |
EP (1) | EP3602350A4 (ko) |
KR (2) | KR20230152172A (ko) |
CN (1) | CN110892401B (ko) |
WO (1) | WO2018173042A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11449914B2 (en) * | 2020-08-31 | 2022-09-20 | Coupang Corp. | Systems and methods for visual navigation during online shopping using intelligent filter sequencing |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067108A1 (en) * | 2005-03-03 | 2007-03-22 | Buhler Jeremy D | Method and apparatus for performing biosequence similarity searching |
US20150186471A1 (en) * | 2014-01-02 | 2015-07-02 | The George Washington University | System and method for approximate searching very large data |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6551784B2 (en) * | 1989-06-07 | 2003-04-22 | Affymetrix Inc | Method of comparing nucleic acid sequences |
US5168147A (en) * | 1990-07-31 | 1992-12-01 | Xerox Corporation | Binary image processing for decoding self-clocking glyph shape codes |
US20020099702A1 (en) * | 2001-01-19 | 2002-07-25 | Oddo Anthony Scott | Method and apparatus for data clustering |
WO2003081507A1 (en) * | 2002-03-27 | 2003-10-02 | Gene-It | Method for filtering nucleic or proteic sequence data |
JP3630414B2 (ja) * | 2002-05-21 | 2005-03-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 塩基配列のクラスタ生成システム、塩基配列のクラスタ生成方法、該クラスタ生成方法を実行するためのプログラム、および該プログラムを記憶したコンピュータ可読な記録媒体、および塩基配列情報提供システム |
US7010522B1 (en) | 2002-06-17 | 2006-03-07 | At&T Corp. | Method of performing approximate substring indexing |
US7111000B2 (en) * | 2003-01-06 | 2006-09-19 | Microsoft Corporation | Retrieval of structured documents |
US7584173B2 (en) | 2003-02-24 | 2009-09-01 | Avaya Inc. | Edit distance string search |
EP1602039A2 (en) * | 2003-03-03 | 2005-12-07 | Koninklijke Philips Electronics N.V. | Method and arrangement for searching for strings |
US7574305B2 (en) * | 2003-07-15 | 2009-08-11 | Bioarray Solutions Ltd. | Concurrent optimization in selection of primer and capture probe sets for nucleic acid analysis |
US8090678B1 (en) * | 2003-07-23 | 2012-01-03 | Shopping.Com | Systems and methods for extracting information from structured documents |
US8280640B2 (en) * | 2003-08-11 | 2012-10-02 | Eloret Corporation | System and method for pattern recognition in sequential data |
US20050089916A1 (en) * | 2003-10-28 | 2005-04-28 | Xiongwu Xia | Allele assignment and probe selection in multiplexed assays of polymorphic targets |
US7640256B2 (en) * | 2004-06-18 | 2009-12-29 | Real Time Genomics Inc. | Data collection cataloguing and searching method and system |
US20070038381A1 (en) * | 2005-08-09 | 2007-02-15 | Melchior Timothy A | Efficient method for alignment of a polypeptide query against a collection of polypeptide subjects |
US8131722B2 (en) * | 2006-11-20 | 2012-03-06 | Ebay Inc. | Search clustering |
US8738486B2 (en) * | 2007-12-31 | 2014-05-27 | Mastercard International Incorporated | Methods and apparatus for implementing an ensemble merchant prediction system |
US8666976B2 (en) * | 2007-12-31 | 2014-03-04 | Mastercard International Incorporated | Methods and systems for implementing approximate string matching within a database |
US7925652B2 (en) * | 2007-12-31 | 2011-04-12 | Mastercard International Incorporated | Methods and systems for implementing approximate string matching within a database |
US7996369B2 (en) | 2008-11-14 | 2011-08-09 | The Regents Of The University Of California | Method and apparatus for improving performance of approximate string queries using variable length high-quality grams |
KR20190002733A (ko) * | 2010-12-30 | 2019-01-08 | 파운데이션 메디신 인코포레이티드 | 종양 샘플의 다유전자 분석의 최적화 |
JP5710317B2 (ja) * | 2011-03-03 | 2015-04-30 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 情報処理装置、自然言語解析方法、プログラムおよび記録媒体 |
US9916538B2 (en) * | 2012-09-15 | 2018-03-13 | Z Advanced Computing, Inc. | Method and system for feature detection |
EP2780835B1 (en) * | 2011-11-15 | 2019-08-07 | Ab Initio Technology LLC | Data clustering, segmentation, and parallelization |
WO2014036167A1 (en) * | 2012-08-28 | 2014-03-06 | The Broad Institute, Inc. | Detecting variants in sequencing data and benchmarking |
US9461876B2 (en) * | 2012-08-29 | 2016-10-04 | Loci | System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction |
US9081076B2 (en) * | 2012-11-12 | 2015-07-14 | Isolynx, Llc | System and method for object tracking anti-jitter filtering |
US9665641B1 (en) * | 2013-04-09 | 2017-05-30 | Guangsheng Zhang | System, methods, and user interface for automated job search |
US9477748B2 (en) * | 2013-12-20 | 2016-10-25 | Adobe Systems Incorporated | Filter selection in search environments |
EP3132418B1 (en) * | 2014-11-13 | 2019-10-09 | Huawei Technologies Co. Ltd. | Non local image denoising |
JP2016157290A (ja) * | 2015-02-25 | 2016-09-01 | 富士通株式会社 | 文書検索装置、文書検索方法、および文書検索プログラム |
CN105095522B (zh) * | 2015-09-22 | 2018-09-25 | 南开大学 | 基于最近邻搜索的关系表集合外键识别方法 |
US20180336311A1 (en) | 2015-11-11 | 2018-11-22 | Ofek-Eshkolot Research And Development Ltd | Restorable lossy compression method for similarity networks |
WO2017096385A1 (en) * | 2015-12-04 | 2017-06-08 | Biome Makers Inc. | Microbiome based identification, monitoring and enhancement of fermentation processes and products |
US10331677B1 (en) * | 2016-08-25 | 2019-06-25 | Dazah Holdings, LLC | Contextual search using database indexes |
US20180247016A1 (en) * | 2017-02-02 | 2018-08-30 | Seven Bridges Genomics Inc. | Systems and methods for providing assisted local alignment |
US10545960B1 (en) * | 2019-03-12 | 2020-01-28 | The Governing Council Of The University Of Toronto | System and method for set overlap searching of data lakes |
-
2018
- 2018-03-19 KR KR1020237036301A patent/KR20230152172A/ko active Application Filing
- 2018-03-19 EP EP18770601.5A patent/EP3602350A4/en not_active Withdrawn
- 2018-03-19 US US16/495,397 patent/US11250064B2/en active Active
- 2018-03-19 CN CN201880032748.6A patent/CN110892401B/zh active Active
- 2018-03-19 WO PCT/IL2018/050311 patent/WO2018173042A1/en unknown
- 2018-03-19 KR KR1020197030833A patent/KR102594625B1/ko active IP Right Grant
-
2022
- 2022-02-15 US US17/671,902 patent/US20220171815A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067108A1 (en) * | 2005-03-03 | 2007-03-22 | Buhler Jeremy D | Method and apparatus for performing biosequence similarity searching |
US20150186471A1 (en) * | 2014-01-02 | 2015-07-02 | The George Washington University | System and method for approximate searching very large data |
Also Published As
Publication number | Publication date |
---|---|
EP3602350A1 (en) | 2020-02-05 |
US20220171815A1 (en) | 2022-06-02 |
KR20230152172A (ko) | 2023-11-02 |
US11250064B2 (en) | 2022-02-15 |
KR20190139227A (ko) | 2019-12-17 |
CN110892401B (zh) | 2024-09-24 |
US20200019571A1 (en) | 2020-01-16 |
WO2018173042A1 (en) | 2018-09-27 |
EP3602350A4 (en) | 2021-01-27 |
CN110892401A (zh) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3672242B2 (ja) | パターン検索方法、パターン検索装置、コンピュータプログラム及び記憶媒体 | |
US10521441B2 (en) | System and method for approximate searching very large data | |
CN111801665B (zh) | 用于大数据应用的分层局部敏感哈希(lsh)分区索引 | |
CN107567621B (zh) | 用于执行数字搜索的方法、系统和计算机程序产品 | |
US7467047B2 (en) | Method of discovering patterns in symbol sequences | |
JP5183155B2 (ja) | 大量配列の一括検索方法及び検索システム | |
US20070174261A1 (en) | Database retrieval apparatus, retrieval method, storage medium, and progam | |
US20220171815A1 (en) | System and method for generating filters for k-mismatch search | |
CN113918807A (zh) | 数据推荐方法、装置、计算设备及计算机可读存储介质 | |
WO2005096208A1 (ja) | 塩基配列検索装置及び塩基配列検索方法 | |
Zhang et al. | SMOTIF: efficient structured pattern and profile motif search | |
US20170169159A1 (en) | Repetition identification | |
Lopes et al. | ProGeRF: proteome and genome repeat finder utilizing a fast parallel hash function | |
CN112639761A (zh) | 一种为数据建立索引的方法以及装置 | |
Rossignolo et al. | USTAR: Improved compression of k-mer sets with counters using de Bruijn graphs | |
JP2005528713A (ja) | 多次元アトラクタ・トークンを使用した周波数、周波数分布およびシーケンス・マッチング問題を解決する方法 | |
US10867134B2 (en) | Method for generating text string dictionary, method for searching text string dictionary, and system for processing text string dictionary | |
KR100538451B1 (ko) | 분산 컴퓨팅 환경에서의 유전자 및 단백질 유사서열 검색시스템 및 그 방법 | |
CN109740249B (zh) | 一种mux树逻辑结构优化方法、模块及存储介质 | |
KR102062139B1 (ko) | 지능형 자료구조 기반의 데이터 처리 방법 및 그를 위한 장치 | |
TWI785847B (zh) | 用於處理基因定序資料的資料處理系統 | |
JP7260934B2 (ja) | 生物学的配列に基づく負の配列パターンの類似性分析方法、その実装システム及び媒体 | |
JP7089804B2 (ja) | データ作成装置、データ作成方法及びデータ作成プログラムを記憶した記憶媒体 | |
Ahn et al. | RN+: A Novel Biclustering Algorithm for Analysis of Gene Expression Data Using Protein–Protein Interaction Network | |
US20240355426A1 (en) | Functional protein classification for pandemic research |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
A107 | Divisional application of patent | ||
GRNT | Written decision to grant |