KR101332270B1 - 유전 정보 관리 장치 및 방법 - Google Patents

유전 정보 관리 장치 및 방법 Download PDF

Info

Publication number
KR101332270B1
KR101332270B1 KR1020120036504A KR20120036504A KR101332270B1 KR 101332270 B1 KR101332270 B1 KR 101332270B1 KR 1020120036504 A KR1020120036504 A KR 1020120036504A KR 20120036504 A KR20120036504 A KR 20120036504A KR 101332270 B1 KR101332270 B1 KR 101332270B1
Authority
KR
South Korea
Prior art keywords
genetic
file
data storage
genetic information
storage devices
Prior art date
Application number
KR1020120036504A
Other languages
English (en)
Other versions
KR20130114294A (ko
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 KR1020120036504A priority Critical patent/KR101332270B1/ko
Publication of KR20130114294A publication Critical patent/KR20130114294A/ko
Application granted granted Critical
Publication of KR101332270B1 publication Critical patent/KR101332270B1/ko

Links

Images

Abstract

유전 정보 관리 장치 및 방법이 개시된다. 본 발명은, NoSQL 기반의 데이터베이스를 이용하여 유전 정보를 분산 저장하고, 분산 저장된 유전 정보를 검색한다. 본 발명에 따르면, 적은 비용으로 고성능의 데이터베이스 시스템을 구축할 수 있고, 인덱스 파일을 메타 데이터 파일로 이용함으로써 데이터 파일에 대한 병렬 처리 시간을 줄일 수 있다.

Description

유전 정보 관리 장치 및 방법{Apparatus and method for managing genetic informations}
본 발명은 유전 정보 관리 장치 및 방법에 관한 것으로, 더욱 상세하게는 NoSQL 기반의 데이터베이스를 이용하여 유전 정보를 분산 저장하고, 분산 저장된 유전 정보를 검색하는 장치 및 방법에 관한 것이다.
종래의 스토리지 환경에서 저장되는 데이터의 대부분은 기업이나 기관에서 생성한 업무 관련 데이터이었으나, 최근 인터넷 기술의 비약적인 발전으로 인하여 블로그, 사진, 동영상 등과 같은 다양한 데이터들의 저장 비율도 급속도로 증가하고 있다. 특히, 국내외에서 인터넷 서비스를 실시중인 대형 포탈 업체의 경우에는 매월 테라 바이트(tera byte : TB) 단위의 데이터가 새롭게 생성되어 저장 및 관리되고 있다.
그러나 기존의 저장 구조 환경은 스토리지 확장성 및 관리의 용이성에서 많은 문제점이 있기 때문에 변화무쌍한 서비스 환경에 적절히 대처하기에는 부족한 면이 있다. 이에 따라, 최근 대용량의 데이터를 네트워크를 통해 분산 저장하는 분산 파일 시스템의 이용이 증가하고 있으며, 각종 데이터를 분산 파일 시스템 환경에서 저장 및 관리하는 방법에 대한 연구가 진행되고 있다.
KR 10-0538451 (학교법인 한국정보통신학원) 2005. 12. 16. 특허문헌 1은 분산 컴퓨팅 환경에서의 유전자 및 단백질 유사서열 검색 시스템 및 그 방법으로서, 특허문헌 1에는 다이내믹 알고리즘의 유전자 및 단백질 서열 검색을 분산 컴퓨팅 환경에서 구현하는 내용이 개시되어 있다. KR 10-0681795 (한국정보통신대학교 산학협력단) 2007. 02. 06. 특허문헌 2는 그리드 컴퓨팅 환경에서의 유전체 서열 정렬 방법 및 프로그램 저장 매체로서, 특허문헌 2에는 대용량의 유전체 서열 비교 작업 시 이용되는 기존의 서열 정렬 프로그램들을 그리드 환경에서 효율적으로 적용할 수 있는 내용이 개시되어 있다.
본 발명이 이루고자 하는 기술적 과제는, NoSQL 기반의 데이터베이스를 이용하여 유전 정보를 분산 저장하고, 분산 저장된 유전 정보를 검색하는 유전 정보 관리 장치 및 방법을 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한 본 발명에 따른 유전 정보 관리 장치는, 분산 파일 시스템을 이용하여 유전 정보를 분산 저장하는 유전 정보 관리 장치에 있어서, 유전체 단편 정보가 포함된 유전 단편 파일을 수신하는 수신부; 상기 유전 단편 파일을 사전에 설정된 크기를 가지는 블록 단위로 분할하여 이루어진 블록 각각을 복수의 데이터 저장 장치 각각에 분산 저장하는 저장부; 및 상기 유전 단편 파일의 인덱스 파일을 생성하는 분석부;를 구비하며, 상기 저장부는 상기 복수의 데이터 저장 장치 중에서 사전에 설정된 개수의 데이터 저장 장치에 상기 블록의 복사본을 추가적으로 저장하고, 상기 블록의 복사본의 개수는 상기 블록 각각에 대한 검색횟수에 비례하여 결정된다.
삭제
상기의 기술적 과제를 달성하기 위한 본 발명에 따른 유전 정보 관리 방법은, 분산 파일 시스템을 이용하여 유전 정보를 분산 저장하는 유전 정보 관리 장치에서 수행되는 유전 정보 관리 방법에 있어서, (a) 유전체 단편 정보가 포함된 유전 단편 파일을 수신하는 단계; (b) 상기 유전 단편 파일을 사전에 설정된 크기를 가지는 블록 단위로 분할하여 이루어진 블록 각각을 복수의 데이터 저장 장치 각각에 분산 저장하는 단계; 및 (c) 상기 유전 단편 파일의 인덱스 파일을 생성하는 단계;를 가지며, 상기 (b)단계에서, 복수의 데이터 저장 장치 중에서 사전에 설정된 개수의 데이터 저장 장치에 상기 블록의 복사본을 추가적으로 저장하고, 상기 블록의 복사본의 개수는 상기 블록 각각에 대한 검색횟수에 비례하여 결정되는 것한다.
삭제
상기의 기술적 과제를 달성하기 위한 본 발명에 따른 컴퓨터로 읽을 수 있는 매체는 상기한 방법 중 어느 하나를 컴퓨터에서 실행시키기 위한 프로그램을 기록한다.
본 발명에 따른 유전 정보 관리 장치 및 방법에 의하면, 분산 파일 시스템을 이용하여 대용량의 유전 정보를 분산 저장함으로써, 적은 비용으로 고성능의 데이터베이스 시스템을 구축할 수 있다.
또한, 유전 정보로부터 생성된 인덱스 파일을 병렬 처리 시 이용되는 메타 데이터 파일로 이용함으로써, 데이터 파일에 대한 병렬 처리 시간을 줄일 수 있다.
도 1은 본 발명의 바람직한 실시예에 따른 유전 정보 관리 장치가 포함된 시스템의 구성을 설명하기 위한 블록도,
도 2는 본 발명의 바람직한 실시예에 따른 유전 정보 관리 장치의 구성을 보다 자세히 나타낸 블록도,
도 3은 유전체 단편 정보를 저장하는 과정을 설명하기 위한 도면,
도 4 내지 도 6은 하둡 시스템을 설명하기 위한 도면,
도 7은 HBase의 데이터 모델을 설명하기 위한 도면,
도 8a는 본 발명의 바람직한 실시예에 따른 인덱스 구조를 설명하기 위한 도면,
도 8b는 본 발명의 바람직한 실시예에 따른 인덱스 파일 생성 시 이용되는 배열 인덱스를 획득하는 과정을 설명하는 도면,
도 9는 본 발명의 바람직한 실시예에 따른 유전 단편 파일의 인덱스 파일을 생성하는 과정을 설명하기 위한 도면,
도 10은 본 발명의 바람직한 실시예에 따른 유전 정보를 저장하는 방법을 설명하기 위한 흐름도, 그리고,
도 11은 본 발명의 바람직한 실시예에 따른 유전 정보를 검색하는 방법을 설명하기 위한 흐름도이다.
이하에서 첨부한 도면을 참조하여 본 발명에 따른 유전 정보 관리 장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 유전 정보 관리 장치가 포함된 시스템의 구성을 설명하기 위한 블록도이다.
도 1을 참조하면, 본 발명에 따른 복수의 유전 정보 관리 장치(100-1 내지 100-n) 각각은 통신망(500)을 통해 복수의 데이터 저장 장치(200-1 내지 200-n), 서비스 제공 장치(400) 및 사용자 단말(300)과 연결된다.
복수의 유전 정보 관리 장치(100-1 내지 100-n) 각각은 서로 데이터를 주고받으며 미리 설정된 개수의 유전 정보 관리 장치를 마스터(master) 유전 정보 관리 장치로 지정할 수 있다. 예컨대, 마스터 유전 정보 관리 장치(100-1)는 유전 정보의 저장, 검색 및 관리(이하, 통칭하여 '관리'라 함)에 필요한 동작을 수행하며, 나머지 유전 정보 관리 장치(100-2 내지 100-n)는 대기 상태로 동작할 수 있다. 이하, 복수의 유전 정보 관리 장치(100-1 내지 100-n) 중 제1유전 정보 관리 장치(100-1)가 마스터 유전 정보 관리 장치로 지정된 것으로 가정하고 설명한다.
마스터 유전 정보 관리 장치(100-1)에 저장된 각종 데이터는 제2 내지 제n유전 정보 관리 장치(100-2 내지 100-n) 각각에 복제된다. 이에 따라, 마스터 유전 정보 관리 장치(100-1)가 정상적으로 동작하지 않는 경우, 제2 내지 제n유전 정보 관리 장치(100-2 내지 100-n) 중에서 마스터 유전 정보 관리 장치로 새롭게 지정된 유전 정보 관리 장치는 유전 정보의 관리 동작을 이어서 수행할 수 있다.
마스터 유전 정보 관리 장치(100-1)는 NoSQL(Not Only SQL) 기반의 데이터베이스를 이용하여 유전 정보를 분산 저장한다. 즉, 마스터 유전 정보 관리 장치(100-1)는 서비스 제공 장치(400)를 통해 사용자 단말(300)로부터 수신한 유전 정보를 복수의 데이터 저장 장치(200-1 내지 200-n)에 분산 저장한다. 여기서, 유전 정보(genetic information)는 유전체 정보(genomic information) 등을 포함한다. 유전체(genome)는 디엔에이(deoxyribonucleic acid : DNA)로 구성된 유전 정보의 총합을 나타내는 것으로서, 유전자(gene)와 염색체(chromosome)의 합성어이다. 디엔에이는 당, 연산 및 염기가 결합하고 있는 뉴클레오티드(nucleotide)이고, 염기에는 아데닌(adenine : A), 시토신(cytosine : C), 구아닌(guanine : G), 티민(thymine : T) 등이 있다.
또한, 마스터 유전 정보 관리 장치(100-1)는 분산 파일 시스템을 이용하여 분산 저장된 유전 정보를 검색한다. 즉, 마스터 유전 정보 관리 장치(100-1)는 서비스 제공 장치(400)를 통해 사용자 단말(300)로부터 수신한 유전 정보 검색 질의어에 따라 유전 정보를 검색한다. 그리고, 마스터 유전 정보 관리 장치(100-1)는 검색된 유전 정보를 사용자 단말(300)로 송신한다.
한편, 복수의 유전 정보 관리 장치(100-1 내지 100-n)가 서로 통신하며 마스터 유전 정보 관리 장치를 지정하는 것으로 설명하였으나, 이에 한정되지 않고 실시예에 따라 복수의 유전 정보 관리 장치(100-1 내지 100-n)에 연결된 관리자 단말(도시하지 않음)이 복수의 유전 정보 관리 장치(100-1 내지 100-n) 중에서 마스터 유전 정보 관리 장치를 지정할 수도 있다.
복수의 데이터 저장 장치(200-1 내지 200-n) 각각은 서로 데이터를 주고받으며 미리 설정된 개수의 데이터 저장 장치를 마스터 데이터 저장 장치로 지정하고, 나머지 데이터 저장 장치를 슬레이브(slave) 데이터 저장 장치로 지정할 수 있다. 예컨대, 마스터 데이터 저장 장치(200-1)는 물리적인 저장 매체에 유전 정보를 분산 저장하는 동작을 수행하며, 나머지 데이터 저장 장치(200-2 내지 200-n)는 마스터 데이터 저장 장치(200-1)의 제어에 따라 유전 정보를 자신의 물리적 저장 매체에 저장하는 동작을 수행할 수 있다. 이하, 복수의 데이터 저장 장치(200-1 내지 200-n) 중 제1 및 제2데이터 저장 장치(200-1 및 200-2)가 마스터 데이터 저장 장치로 지정되고, 제3 내지 제n데이터 저장 장치(200-3 내지 200-n)가 슬레이브 데이터 저장 장치로 지정되며, 제1데이터 저장 장치(200-1)가 운영(active) 모드로 동작중인 마스터 데이터 저장 장치이고, 제2데이터 저장 장치(200-1)는 대기(standby) 모드로 동작중인 마스터 데이터 저장 장치인 것으로 가정하고 설명한다.
제1마스터 데이터 저장 장치(200-1)에 저장된 각종 데이터는 제2마스터 데이터 저장 장치(200-2)에 복제된다. 이에 따라, 제1마스터 데이터 저장 장치(200-1)가 정상적으로 동작하지 않는 경우, 제2마스터 데이터 저장 장치(200-2)가 대기 모드에서 운영 모드로 변경되어 동작된다. 그리고, 슬레이브 데이터 저장 장치(200-3 내지 200-n) 중에서 하나의 데이터 저장 장치가 마스터 데이터 저장 장치로 새롭게 지정될 수 있다.
제1마스터 데이터 저장 장치(200-1)는 분산 파일 시스템을 이용하여 마스터 유전 정보 관리 장치(100-1)로부터 제공받은 유전 정보를 슬레이브 데이터 저장 장치(200-3 내지 200-n)에 분산 저장한다. 예컨대, 분산 파일 시스템에는 하둡(hadoop) 등이 있다. 하둡은 대용량 파일의 분산 저장 및 처리를 위한 솔루션으로서, 하둡 분산 파일 시스템(hadoop distributed file system : HDFS), 맵 리듀스(map reduce) 등으로 이루어진다. 즉, 하둡은 하둡 분산 파일 시스템을 통해 데이터를 분산 저장하고 맵 리듀스를 통해 데이터를 분산 처리한다. 이때 분산 저장된 데이터의 로컬리티(locality)를 사용함으로 인해 디시크 입/출력에 대한 부하를 분산시킬 수 있다.
또한, 제1마스터 데이터 저장 장치(200-1)는 슬레이브 데이터 저장 장치(200-3 내지 200-n)에 분산 저장된 유전 정보에서 마스터 유전 정보 관리 장치(100-1)로부터 수신한 유전 정보 검색 질의어에 따른 유전 정보를 검색한다. 그리고, 제1마스터 데이터 저장 장치(200-1)는 검색된 유전 정보를 마스터 유전 정보 관리 장치(100-1)로 송신한다.
한편, 복수의 데이터 저장 장치(200-1 내지 200-n)가 서로 통신하며 마스터 및 슬레이브 데이터 저장 장치를 지정하는 것으로 설명하였으나, 이에 한정되지 않고 실시예에 따라 복수의 데이터 저장 장치(200-1 내지 200-n)에 연결된 관리자 단말이나 마스터 유전 정보 관리 장치(100-1)가 복수의 데이터 저장 장치(200-1 내지 200-n) 중에서 마스터 및 슬레이브 데이터 저장 장치를 지정할 수도 있다.
또한, 제1마스터 데이터 저장 장치(200-1)가 유전 정보를 검색하는 동작을 수행하는 것으로 설명하였으나, 이에 한정되지 않고 실시예에 따라 슬레이브 데이터 저장 장치(200-3 내지 200-n) 중 하나의 데이터 저장 장치가 유전 정보를 검색하는 동작을 수행할 수도 있다. 이 경우, 검색 동작을 수행하는 슬레이브 데이터 저장 장치는 마스터 유전 정보 관리 장치(100-1)나 제1마스터 데이터 저장 장치(200-1)에 의해 지정될 수 있다.
서비스 제공 장치(400)는 복수의 유전 정보 관리 장치(100-1 내지 100-n)와 사용자 단말(300) 사이에 위치하여 유전 정보 저장, 검색 등의 서비스를 사용자 단말(300)에 제공한다. 즉, 서비스 제공 장치(400)는 사용자 단말(300)로부터 수신한 유전 정보를 마스터 유전 정보 관리 장치(100-1)로 송신한다. 아울러, 서비스 제공 장치(400)는 사용자 단말(300)로부터 수신한 유전 정보 검색 질의어를 마스터 유전 정보 관리 장치(100-1)로 송신한다. 그리고, 서비스 제공 장치(400)는 마스터 유전 정보 관리 장치(100-1)로부터 수신한 유전 정보를 사용자 단말(300)로 송신한다.
사용자 단말(300)은 서비스 제공 장치(400)에 접속하여 유전 정보의 저장이나 검색을 요청하는 장치이다. 사용자 단말(300)에는 텔레비전(television), 컴퓨터(computer), 태블릿(tablet) PC, 개인 휴대 정보 단말기(personal digital assistant : PDA), 휴대 멀티미디어 재생기(portable multimedia player : PMP), 휴대폰, 스마트 폰(smart phone), 내비게이션(navigation) 장치 등이 있다.
통신망(500)은 구내 정보 통신망(local area network : LAN), 도시권 통신망(metropolitan area network : MAN), 광역 통신망(wide area network : WAN), 인터넷 등을 포함하는 데이터 통신망뿐만 아니라 방송망, 전화망 등을 포함할 수 있고, 유선과 무선을 가리지 않으며, 어떠한 통신 방식을 사용하더라도 무방하다.
한편, 복수의 유전 정보 관리 장치(100-1 내지 100-n)와 사용자 단말(300) 사이에 위치한 서비스 제공 장치(400)가 유전 정보의 저장, 검색 등의 서비스를 사용자 단말(300)에 제공하는 것으로 설명하였으나, 이에 한정되지 않고 실시예에 따라 서비스 제공 장치(400)가 수행하는 동작을 어플리케이션 형태로 구현하고, 사용자 단말(300)에 설치된 어플리케이션이 유전 정보의 저장, 검색 등의 서비스를 제공할 수 도 있다.
도 2는 본 발명의 바람직한 실시예에 따른 유전 정보 관리 장치의 구성을 보다 자세히 나타낸 블록도이다.
도 2를 참조하면, 마스터 유전 정보 관리 장치(100-1)는 수신부(210), 변환부(220), 저장부(230), 분석부(240), 검색부(250), 송신부(260) 및 제어부(270)를 포함한다.
도 3은 유전체 단편 정보를 저장하는 과정을 설명하기 위한 도면이다.
수신부(210)는 서비스 제공 장치(400)를 통해 사용자 단말(300)로부터 유전체 단편(fragment) 정보가 포함된 유전 단편 파일을 수신한다. 여기서, 유전체 단편 정보는 전체 유전체(whole genome)에서 해독(DNA sequencing)이 된 유전체 단편을 말한다.
이와 같이 유전체 전체 정보가 아닌 유전체 단편 정보를 수신하여 저장하는 이유는 유전체의 모든 염기 서열을 한 번에 읽어내는 것은 현실적으로 어려움이 있기 때문이다. 이에 따라, 도 3에 도시된 바와 같이 전체 유전체(whole genome)에서 해독(DNA sequencing)이 가능한 유전체 단편들(fragments)로 잘라내어 복제한다. 이후, 각 단편들(FGD_1, FGD_2 및 FGD_3)의 서열을 해독(sequencing)하고, 참조 염색체 데이터를 통해 서열 분석된 단편들(FGD_1, FGD_2 및 FGD_3)을 통합하여 전체 유전체 데이터(OGD)를 획득한다.
또한, 수신부(210)는 서비스 제공 장치(400)를 통해 사용자 단말(300)로부터 유전 정보 검색 질의어를 수신한다. 여기서, 유전 정보 검색 질의어는 염색체 번호, 시작 위치 및 끝 위치를 포함한다. 일반적으로 유전 정보에 대한 검색 질의는 특정 염색체의 특정 구간에 대한 정보를 요청하는 것으로 이루어진다.
변환부(220)는 수신부(210)에 의해 수신된 유전 단편 파일의 타입(type)이 유전 정보 저장 기준 타입인 제2타입과 상이한 제1타입인 경우, 미리 설정된 변환 규칙에 따라 유전 단편 파일을 유전 정보 저장 기준 타입인 제2타입으로 변환한다.
유전 단편 파일의 타입에는 [표 1]에 도시된 바와 같이 SAM(sequence alignment map) 타입, BAM(binary alignment map) 타입, CNV(copy number variation) 타입, SNP(single nucleotide polymorphism) 타입, InDel 타입, Generic 타입, Sequence 타입 등이 있다.
파일
타입
필드
BAM
타입
CHRSM, START_POS, END_POS, READNAME, FLAGS, MAPPINGQUALITY, CIGARSTRING,MATEREFERENCENAME, MATEALIGNMENTSTART, INFERREDINSERTSIZE, READSTRING, BASEQUALITYSTRING, BINARYATTRIBUTES
CNV
타입
CHRSM, START_POS, END_POS, MAPPABILITY, LOG2RATIO, COPYNUMBER, NUMWINDOWS, P-VAL, FRACCEPTABILTY
SNP
타입
ID, CHRSM, START_POS, END_POS, SCORE, STRAND, PHASE, ATTRI
InDel
타입
CHRSM, VERSION, INDEL_TYPE, START_POS, END_POS, P-VALUE, NA_1, NA_2, ATTRI
Generic
타입
ID, CHRSM, START_POS, END_POS, STRAND, SCORE, CLSFY, DESCRT, ATTRI
Sequence
타입
CHRSM, POS, SEQ
저장부(230)는 수신부(210)에 의해 수신된 유전 단편 파일을 미리 설정된 크기를 가지는 블록(block) 단위로 나누어 복수의 데이터 저장 장치(200-1 내지 200-n)에 분산 저장한다. 즉, 저장부(230)는 유전 단편 파일을 제1마스터 데이터 저장 장치(200-1)에 제공한다. 그러면, 제1마스터 데이터 저장 장치(200-1)는 유전 단편 파일을 미리 설정된 크기를 가지는 블록(block) 단위로 나누어 슬레이드 데이터 저장 장치(200-3 내지 200-n)에 분산 저장한다. 이때, 제1마스터 데이터 저장 장치(200-1)는 유전 단편 파일에서 획득된 블록의 복사본을 슬레이브 데이터 저장 장치(200-3 내지 200-n) 중 미리 설정된 개수의 데이터 저장 장치 각각에 추가적으로 저장할 수 있다. 한편, 블록의 복사본 개수는 블록이 검색되는 횟수에 비례하여 증가될 수 있고, 블록별로 상이하게 설정될 수 있다. 또한, 슬레이브 데이터 저장 장치(200-3 내지 200-n)는 유전 단편 파일에서 획득된 블록이나 블록의 인덱스 파일을 로컬 스토리지(예컨대, 하드 디스크 등)뿐만 아니라 메모리(memory)에도 저장할 수 있다. 이에 따라, 해당 블록의 검색 요청 시 보다 빠르게 데이터를 제공할 수 있다.
또한, 저장부(230)는 변환부(220)에 의해 유전 단편 파일의 타입이 변환된 경우, 타입이 변환된 유전 단편 파일을 복수의 데이터 저장 장치(200-1 내지 200-n)에 분산 저장할 수 있다.
그러면, 도 4 내지 도 6을 참조하여 하둡 시스템에 대하여 보다 자세하게 설명한다. 도 4 내지 도 6은 하둡 시스템을 설명하기 위한 도면이다.
도 4를 참조하면, 하둡 시스템은 하나의 서버에서만 동작하는 파일 시스템이 아니라 복수의 서버에 설치되어 운영된다. 하둡 시스템은 하나의 네임 노드(name node) 서버, 세컨드리(secondary) 네임 노드 서버 및 복수의 데이터 노드(data node) 서버로 이루어진다. 네임 노드 서버는 디렉토리, 파일명, 파일 블록 등의 파일 시스템 공간을 관리하면서 클라이언트의 파일 접근 요청을 처리한다. 하둡 파일 시스템에서 파일 데이터는 블록 단위로 나뉘어서 복수의 데이터 노드 서버에 분산되어 저장된다. 그리고, 블록들은 가용성을 보장하기 위해 복제되어 다른 데이터 노드 서버에 저장된다. 이에 따라, 특정 데이터 노드 서버에서 장애가 발생된 경우 이를 자동으로 감지하여 장애가 발생되지 않은 데이터 노드 서버에 저장된 복사본을 이용하여 다른 데이터 노드 서버에 복제본을 추가로 생성함으로써, 가용성을 보장할 수 있다.
도 5를 참조하면, 하둡 파일 시스템은 분산된 복수의 슬레이브 서버(데이터 노드 서버)를 관리하는 마스터 서버(네임 노드 서버)와 복수의 슬레이브 서버로 이루어진다. 하둡 파일 시스템의 실제 구현에 있어서 데이터를 저장하는 하둡 분산 파일 시스템 레이어(HDFS layer)와 작업을 수행하는 맵리듀스 레이어(map reduce layer)로 구성된다. 하부 하둡 분산 파일 시스템 레이어(HDFS layer)는 전체 분산 파일 시스템의 메타 정보를 관리하는 네임 노드와 각 데이터를 저장하는 데이터 노드로 구분된다. 그리고, 상부 맵리듀스 레이어(map reduce layer)는 전체 작업을 관리하는 잡 트래커(job tracker)와 개별 작업을 수행하는 태스크 트래커(task tracker)로 구분된다. 마스터 서버는 내부에서 작업을 수행하기 위해 태스크 트래커나 데이터 노드 기능을 수행할 수 있다.
도 6을 참조하면, 일반적으로 맵리듀스(map reduce)가 동작하는 과정은 다음의 두 단계로 이루어진다. 첫 번째 단계는 데이터를 확보하고 자신의 목적에 따라 매퍼(mapper)와 리듀서(reducer)를 구현한 파일을 준비한 후 데이터를 하둡 분산 파일 시스템(HDFS)에 로드(load)하는 과정이다. 이때, 데이터는 미리 설정된 크기(예컨대, 64MB 등)를 가지는 블록 단위로 나누어 분산 저장된다. 두 번째 단계는 데이터의 분산 처리 수행을 위해 매퍼와 리듀서를 구현한 파일을 실행하면, 잡 트래커(job tracker)가 매퍼(mapper)를 각 태스크 트래커(task tracker)로 배분하고, 태스크 트래커(task tracker)는 자신이 보유한 데이터 블록을 대상으로 맵(map) 작업을 수행하여 중간 결과는 로컬 스토리지에 저장하고 중간 결과를 리듀서(reducer)의 입력으로 전달한다. 그러면, 태스크 트래커(task tracker)가 리듀서(reducer)를 수행하여 결과를 저장한다.
도 7은 HBase의 데이터 모델을 설명하기 위한 도면이다.
도 7을 참조하면, 하둡 분산 파일 시스템을 데이터 저장소로 사용하는 분산 데이터 저장소인 HBase의 데이터 모델을 확인할 수 있다. HBase는 분산된 데이터 노드 서버에 RegionServer를 배치한다. RegionServer는 하둡 분산 파일 시스템(HDFS)에 저장된 데이터 파일과 인덱스를 이용하여 데이터의 입력 및 조회 기능을 제공한다.
HBase의 테이블은 n개의 로우(row)를 저장할 수 있고, 각 로우(row)는 복수개의 컬럼 패밀리(column family)로 이루어진다. 여기서, 컬럼 패밀리는 관계형 데이터베이스 시스템(relational database management system : RDBMS)의 컬럼(column)과 비슷한 개념으로 스키마(schema) 정의를 통해 생성된다. 하나의 로우(row) 및 컬럼 패밀리(column family)에는 n개의 데이터를 저장할 수 있으며, 식별자는 컬럼 네임(column name)이라 한다.
HBase는 하나의 테이블에 대해 로우 키(row key) 기준으로 정렬되어 있고, 하나의 로우(row)의 컬럼 패밀리(column family) 내에서는 컬럼 네임(column name) 기준으로 정렬되어 있다. 이에 따라, 인덱스(index)는 로우 키(row key)의 사전적인 순서로의 인덱스를 지원한다. 또한, 검색 질의도 특정 로우 키(row key)를 지정하거나 특정 영역(between)을 검색하는 질의를 지원한다.
분석부(240)는 수신부(210)에 의해 수신된 유전 단편 파일의 인덱스 파일을 생성한다. 즉, 분석부(240)는 수신부(210)에 의해 수신된 유전 단편 파일에 대응되는 타입의 필드(field) 정보를 나타내는 인덱스 필드 정보 및 저장부(230)에 의해 복수의 데이터 저장 장치(200-1 내지 200-n)에 분산 저장된 유전 단편 파일의 저장 경로(path) 정보를 통해 유전 단편 파일의 인덱스 파일을 생성한다. 즉, 분석부(240)는 수신된 유전 단편 파일에 대응되는 인덱스 필드 정보를 통해 유전 단편 파일의 서열을 분석(sequencing)한 결과와 복수의 데이터 저장 장치(200-1 내지 200-n)에 분산 저장된 유전 단편 파일의 저장 경로 정보를 이용하여 유전 단편 파일의 인덱스 파일을 생성할 수 있다. 이때, 분석부(240)는 제1마스터 데이터 저장 장치(200-1)로부터 미리 설정된 크기의 블록 단위로 분산 저장된 유전 단편 파일의 저장 경로에 대한 정보를 제공받는다. 그리고, 분석부(240)는 생성된 인덱스 파일을 저장한다.
도 8a는 본 발명의 바람직한 실시예에 따른 인덱스 구조를 설명하기 위한 도면이고, 도 8b는 본 발명의 바람직한 실시예에 따른 인덱스 파일 생성 시 이용되는 배열 인덱스를 획득하는 과정을 설명하는 도면이며, 도 9는 본 발명의 바람직한 실시예에 따른 유전 단편 파일의 인덱스 파일을 생성하는 과정을 설명하기 위한 도면이다.
도 8a 및 도 8b를 참조하면, 분석부(240)는 인덱스 구조(도 8a 참조)를 기반으로 유전 단편 파일에서 획득된 시작 위치(start position)와 끝 위치(end position)를 이용하여 인덱스 파일 생성 시 이용되는 배열(bin array)의 인덱스를 획득할 수 있다. 도 8b에 도시된 IC_1과 같이, 시작 위치(파라미터 beg)와 끝 위치(파라미터 end)가 같은 영역에 위치하면 전체 배열에서 인덱스를 획득할 수 있다. 예컨대, 시작 위치(파라미터 beg)가 '470535'이고 끝 위치(파라미터 end)가 '470586'이면 배열(bin array)의 인덱스로 '4709'를 이용한다. 또한, 도 8b에 도시된 IC_2와 같이, 시작 위치(파라미터 beg)와 끝 위치(파라미터 end)가 같은 영역에 위치하지 않으면 범위가 넓은 인덱스를 획득할 수 있다. 예컨대, 시작 위치(파라미터 beg)가 '470535'이고 끝 위치(파라미터 end)가 '486970'이면 배열(bin array)의 인덱스로 '588'을 이용한다.
예컨대, 도 9를 참조하면, 분석부(240)는 유전 단편 파일 'test.bam'을 분석하여 획득된 시작 위치와 끝 위치를 이용하여 배열(bin array)의 인덱스 '4681'를 획득한다(과정 ①). 이후, 분석부(240)는 미리 설정된 크기를 가지는 청크(chunk) 단위로 분산 저장된 유전 단편 파일 'test.bam'의 저장 경로 정보를 배열(bin array)의 인덱스 '4681'에 저장한다(과정 ②). 그런 다음, 분석부(240)는 인덱스 '4681'의 최소 청크 시작(min chunk start) 위치를 저장한다(과정 ③). 이후, 분석부(240)는 유전 단편 파일 'test.bam'의 인덱스 파일 'test.bam.idx'을 생성하여 저장한다.
이와 같이 생성된 인덱스 파일을 병렬 처리 시 이용되는 메타 데이터 파일로 이용함으로써, 데이터 파일에 대한 병렬 처리 시간을 줄일 수 있다.
검색부(250)는 기 저장되어 있는 인덱스 파일을 통해 수신부(210)에 의해 수신된 유전 정보 검색 질의어에 대응되는 유전 정보를 복수의 데이터 저장 장치(200-1 내지 200-n)에서 검색한다. 즉, 검색부(250)는 유전 정보 검색 질의어를 제1마스터 데이터 저장 장치(200-1)에 제공한다. 그러면, 제1마스터 데이터 저장 장치(200-1)는 유전 정보 검색 질의어에 대응되는 유전 정보를 슬레이브 데이터 저장 장치(200-3 내지 200-n)에 분산 저장된 유전 정보에서 검색한다. 그리고, 제1마스터 데이터 저장 장치(200-1)는 검색된 유전 정보를 마스터 유전 정보 관리 장치(100-1)로 송신한다.
송신부(260)는 검색부(250)에 의해 검색된 유전 정보를 서비스 제공 장치(400)를 통해 사용자 단말(300)로 송신한다.
제어부(270)는 마스터 유전 정보 관리 장치의 지정, 마스터 데이터 저장 장치의 지정, 유전 정보의 저장, 유전 정보의 검색 등과 같은 마스터 유전 정보 관리 장치(100-1)의 전반적인 동작을 제어한다.
도 10은 본 발명의 바람직한 실시예에 따른 유전 정보를 저장하는 방법을 설명하기 위한 흐름도이다.
마스터 유전 정보 관리 장치(100-1)는 유전체 단편 정보가 포함된 유전 단편 파일을 서비스 제공 장치(400)를 통해 사용자 단말(300)로부터 수신한다(S1010). 이때, 마스터 유전 정보 관리 장치(100-1)는 미리 설정된 변환 규칙에 따라 유전 단편 파일의 타입을 변환할 수 있다(S1020). 즉, 마스터 유전 정보 관리 장치(100-1)는 수신된 유전 단편 파일의 타입이 유전 정보 저장 기준 타입인 제2타입과 상이한 제1타입인 경우, 변환 규칙에 따라 유전 단편 파일을 유전 정보 저장 기준 타입인 제2타입으로 변환할 수 있다.
이후, 마스터 유전 정보 관리 장치(100-1)는 유전 단편 파일을 미리 설정된 크기를 가지는 블록 단위로 나누어 복수의 데이터 저장 장치(200-1 내지 200-n)에 분산 저장한다(S1030). 그런 다음, 마스터 유전 정보 관리 장치(100-1)는 유전 단편 파일의 인덱스 파일을 생성한다(S1040). 즉, 마스터 유전 정보 관리 장치(100-1)는 복수의 데이터 저장 장치(200-1 내지 200-n)에 분산 저장된 유전 단편 파일의 저장 경로 정보를 통해 유전 단편 파일의 인덱스 파일을 생성한다. 그리고, 마스터 유전 정보 관리 장치(100-1)는 생성된 인덱스 파일을 저장한다.
도 11은 본 발명의 바람직한 실시예에 따른 유전 정보를 검색하는 방법을 설명하기 위한 흐름도이다.
마스터 유전 정보 관리 장치(100-1)는 유전 정보 검색 질의어를 서비스 제공 장치(400)를 통해 사용자 단말(300)로부터 수신한다(S1110). 이후, 마스터 유전 정보 관리 장치(100-1)는 복수의 데이터 저장 장치(200-1 내지 200-n)에 미리 설정된 크기를 가지는 블록 단위로 분산 저장된 유전 파일의 저장 경로 정보가 포함된 인덱스 파일을 통해 유전 정보 검색 질의어에 대응되는 유전 정보를 검색한다(S1120). 그런 다음, 마스터 유전 정보 관리 장치(100-1)는 검색된 유전 정보를 서비스 제공 장치(400)를 통해 사용자 단말(300)로 송신한다(S1130).
그러면, 본 발명에 따른 유전 정보 관리 장치 및 방법의 성능에 대해 설명한다. 유전 단편 파일의 인덱스 파일을 생성하는 시간을 통해 본 발명이 종래 기술에 비해 향상된 성능 정도를 살펴본다. 종래 기술은 단일 노드(컴퓨터)를 통해 유전 단편 파일에서 인덱스 파일을 생성하는 방법을 말한다. 성능 비교 시 이용되는 컴퓨터는 중앙 처리 장치(CPU)로 "Intel(R) Xeon(R) E5506"을 이용하고 48GB의 메모리가 장착된다.
종래 기술 본 발명
분산처리 가능 여부 불가능 가능
데이터 크기 98GB (BAM 포맷 파일) 98GB (BAM 포맷 파일)
연산 노드 수 1 30
처리 시간 42분 37초 3분 25초
위의 [표 2]에서 확인할 수 있듯이 본 발명은 인덱싱 속도가 종래 기술의 비해 약 10분의 1로 줄어드는 것을 확인할 수 있다. 이와 같이, 본 발명은 분산 파일 시스템을 이용함으로써 고성능의 데이터베이스 시스템을 구축할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 장치에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 롬(ROM), 램(RAM), CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 유무선 통신망으로 연결된 컴퓨터 장치에 분산되어 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서 본 발명의 바람직한 실시예에 대하여 상세하게 설명하였지만 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 다음의 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
100-1 내지 100-n : 유전 정보 관리 장치,
200-1 내지 200-n : 데이터 저장 장치, 300 : 사용자 단말,
400 : 서비스 제공 장치, 500 : 통신망

Claims (13)

  1. 분산 파일 시스템을 이용하여 유전 정보를 분산 저장하는 유전 정보 관리 장치에 있어서,
    유전체 단편 정보가 포함된 유전 단편 파일을 수신하는 수신부;
    상기 유전 단편 파일을 사전에 설정된 크기를 가지는 블록 단위로 분할하여 이루어진 블록 각각을 복수의 데이터 저장 장치 각각에 분산 저장하는 저장부; 및
    상기 유전 단편 파일의 인덱스 파일을 생성하는 분석부;를 포함하며,
    상기 저장부는 상기 복수의 데이터 저장 장치 중에서 사전에 설정된 개수의 데이터 저장 장치에 상기 블록의 복사본을 추가적으로 저장하고,
    상기 블록의 복사본의 개수는 상기 블록 각각에 대한 검색횟수에 비례하여 증가하도록 결정되는 것을 특징으로 하는 유전 정보 관리 장치.
  2. 제 1항에 있어서,
    상기 분석부는 상기 유전 단편 파일을 복수의 분할크기에 의해 복수의 블록으로 분할한 후 각각의 블록에 대해 순차적으로 번호를 증가시키면서 부여한 인덱스, 상기 유전 단편 파일에 대응되는 타입의 필드 정보를 나타내는 인덱스 필드 정보 및 상기 복수의 데이터 저장 장치에 분산 저장된 상기 유전 단편 파일의 저장 경로 정보를 기초로 상기 유전 단편 파일의 상기 인덱스 파일을 생성하는 것을 특징으로 하는 유전 정보 관리 장치.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 분산 파일 시스템을 이용하여 유전 정보를 분산 저장하는 유전 정보 관리 장치에서 수행되는 유전 정보 관리 방법에 있어서,
    (a) 유전체 단편 정보가 포함된 유전 단편 파일을 수신하는 단계;
    (b) 상기 유전 단편 파일을 사전에 설정된 크기를 가지는 블록 단위로 분할하여 이루어진 블록 각각을 복수의 데이터 저장 장치 각각에 분산 저장하는 단계; 및
    (c) 상기 유전 단편 파일의 인덱스 파일을 생성하는 단계;를 포함하며,
    상기 (b)단계에서, 복수의 데이터 저장 장치 중에서 사전에 설정된 개수의 데이터 저장 장치에 상기 블록의 복사본을 추가적으로 저장하고,
    상기 블록의 복사본의 개수는 상기 블록 각각에 대한 검색횟수에 비례하여 증가하도록 결정되는 것을 특징으로 하는 유전 정보 관리 방법.
  8. 제 7항에 있어서,
    상기 (c)단계에서, 상기 유전 단편 파일을 복수의 분할크기에 의해 복수의 블록으로 분할한 후 각각의 블록에 대해 순차적으로 번호를 증가시키면서 부여한 인덱스, 상기 유전 단편 파일에 대응되는 타입의 필드 정보를 나타내는 인덱스 필드 정보 및 상기 복수의 데이터 저장 장치에 분산 저장된 상기 유전 단편 파일의 저장 경로 정보를 기초로 상기 유전 단편 파일의 상기 인덱스 파일을 생성하는 것을 특징으로 하는 유전 정보 관리 방법.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 제 7항 또는 제 8항에 기재된 유전 정보 관리 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020120036504A 2012-04-09 2012-04-09 유전 정보 관리 장치 및 방법 KR101332270B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120036504A KR101332270B1 (ko) 2012-04-09 2012-04-09 유전 정보 관리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120036504A KR101332270B1 (ko) 2012-04-09 2012-04-09 유전 정보 관리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20130114294A KR20130114294A (ko) 2013-10-18
KR101332270B1 true KR101332270B1 (ko) 2013-11-22

Family

ID=49634356

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120036504A KR101332270B1 (ko) 2012-04-09 2012-04-09 유전 정보 관리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101332270B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017116135A1 (ko) * 2015-12-28 2017-07-06 (주)신테카바이오 개인 유전체의 유전변이정보를 이용한 유전형 분석 시스템 및 방법
WO2017116123A1 (ko) * 2015-12-28 2017-07-06 (주)신테카바이오 개인 유전체의 유전변이정보를 이용한 질병원인 발굴 시스템

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205174B (zh) * 2015-10-14 2019-10-11 北京百度网讯科技有限公司 用于分布式系统的文件处理方法和装置
CN106446254A (zh) * 2016-10-14 2017-02-22 北京百度网讯科技有限公司 文件检测方法和装置
KR102209178B1 (ko) * 2018-07-17 2021-01-29 이윤경 유전체 및 유전체 정보의 보존 및 활용을 위한 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100538451B1 (ko) * 2003-12-23 2005-12-22 학교법인 한국정보통신학원 분산 컴퓨팅 환경에서의 유전자 및 단백질 유사서열 검색시스템 및 그 방법
KR101117603B1 (ko) * 2011-08-16 2012-03-07 (주)신테카바이오 상호 연계 가능한 다중 맵 생성을 통한 바이오메디컬 기능연관정보 제공 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100538451B1 (ko) * 2003-12-23 2005-12-22 학교법인 한국정보통신학원 분산 컴퓨팅 환경에서의 유전자 및 단백질 유사서열 검색시스템 및 그 방법
KR101117603B1 (ko) * 2011-08-16 2012-03-07 (주)신테카바이오 상호 연계 가능한 다중 맵 생성을 통한 바이오메디컬 기능연관정보 제공 시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017116135A1 (ko) * 2015-12-28 2017-07-06 (주)신테카바이오 개인 유전체의 유전변이정보를 이용한 유전형 분석 시스템 및 방법
WO2017116123A1 (ko) * 2015-12-28 2017-07-06 (주)신테카바이오 개인 유전체의 유전변이정보를 이용한 질병원인 발굴 시스템

Also Published As

Publication number Publication date
KR20130114294A (ko) 2013-10-18

Similar Documents

Publication Publication Date Title
Shao et al. Managing and mining large graphs: systems and implementations
US9805079B2 (en) Executing constant time relational queries against structured and semi-structured data
Zhang et al. BioMart: a data federation framework for large collaborative projects
CN101727465B (zh) 分布式列存储数据库索引建立、查询方法及装置与系统
KR101332270B1 (ko) 유전 정보 관리 장치 및 방법
CN104111936B (zh) 数据查询方法和系统
CN103631924B (zh) 一种分布式数据库平台的应用方法和系统
CN103246749A (zh) 面向分布式计算的矩阵数据库系统及其查询方法
CN102915382A (zh) 一种基于索引的数据库的数据查询方法和装置
CN104239377A (zh) 跨平台的数据检索方法及装置
CN104391908B (zh) 一种图上基于局部敏感哈希的多关键字索引方法
CN103678550A (zh) 一种基于动态索引结构的海量数据实时查询方法
US20140229429A1 (en) Database management delete efficiency
CN106055678A (zh) 一种基于hadoop的全景大数据分布式存储方法
CN104834650A (zh) 一种有效查询任务生成方法及系统
JP2001350656A (ja) 異種データソース統合アクセス方法
Li et al. Efficient subspace skyline query based on user preference using MapReduce
Shangguan et al. Big spatial data processing with Apache Spark
Abdalla An efficient approach for data placement in distributed systems
CN103793401B (zh) 建立多个数据库表的共享索引的方法及装置
CN105069101A (zh) 分布式索引构建及检索方法
CN103365923A (zh) 用于评估数据库的分区方案的方法和装置
Rammer et al. Atlas: A distributed file system for spatiotemporal data
KR101301607B1 (ko) 분산 데이터 저장소를 위한 데이터 파티셔닝 장치 및 방법
WO2016206395A1 (zh) 周报信息处理方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee