Skip to content

SeqHBase #
Find similar titles

Structured data

Category
Programming

시퀀싱 데이터의 처리 #

개요 #

WGS, WES와 같은 차세대 시퀀싱 기술(NGS)을 바탕으로 방대한 데이터가 쏟아지고 있다. 인간, 동물, 식물 및 미생물 등 다양한 분야에서 의료, 건강, 식량 등 다양한 이유를 바탕으로 매년 엄청난 양의 데이터가 생산된다. 문제는 이렇게 생산된 데이터의 활용이다. 기하급수적으로 생산되는 데이터 처리를 위해서는 고성능의 컴퓨팅 파워가 필요하고 이를 저장할 엄청난 양의 디스크 공간이 필요로 한다. 그러나 이러한 모든 파일은 일반적으로 스토리지에 저장하고 필요한 파일만을 바탕으로 빠르게 처리할 필요가 있다. 일반적인 유전체의 경우를 보면 로우 파일(FASTQ)와 얼라인먼트 파일(BAM), 유전변이 파일(VCF) 및 가공된 결과 파일(CSV)을 생산한다. 여기서 .FASTQ, .BAM 파일은 백업 용도로 별도로 보관하고 우리가 필요로 하는 .VCF 및 .CSV 파일만을 별도로 가공 처리하여 필요로 하는 목적에 사용하고자 한다.

특히 의료분에서는 질병 또는 약물 관련 유전 변이종을 확인하기 위한 생물 의학적 연구 및 의학적 진료를 목적으로 분석이 진행되고 있다. 요즘 대두되고 있는 정밀 의학이라는 개념을 비추어 볼 때 개개인의 특정 질병에 대한 치료 및 예방 접근법을 효과적으로 작동시킬 수 있는 방법을 그들의 유전적 구성, 생활 습관, 환경적 요인에 기초한 환자들의 하위 그룹의 연구를 통해 제공하는 것이다. 이를 바탕으로 유전 형질에 대한 연관 연구(GWAS)를 통해 질병의 근본 원인을 규명하고자 하는 연구가 전 세계적으로 진행 중이다.

국내에서도 각 정부 부처별로 이와 같은 데이터를 수집하고 있다. 보건복지부, 농림축산식품부, 전 산업자원부, 환경부, 해양수산부 등 부처별로 별도의 시스템을 통해 이들 데이터를 수집하고 저장하고 있다. 그러나 이렇게 수집된 데이터를 활용함에 있어서는 아직도 걸음마 단계를 벗어나지 못하고 있다.

2012년 농림축산분야의 농업 생명공학정보센터가 데이터 수집을 시작한 지도 약 6여 년의 세월이 흘렀다. 실제 수집된 양을 보면 벼의 경우 약 700여 품종의 정보가 등록되어 있거나 이를 활용한 응용 데이터의 생산은 요원한 수준이다. 또한, 보건복지부의 CODA 경우도 많은 데이터가 등록되어 있다. WGS 557건, WES3,478건(2019.1 기준) 등록되어 있으나 이를 활용하는 단계는 아직 정의되지 않고 있다.

외국의 경우 이러한 데이터와 의료 데이터(EHR)의 연계를 통해 보다 적극적으로 활용하는 예를 보면 부러울 따름이다. 따라서 이러한 데이터를 활용하기 위한 기술 자료 정리를 위해 다음과 같이 정리한다.

SeqHBase: a big data toolset for family based sequencing data analysis #

먼저 참고할 문서로는 다음 논문을 참고하고자 한다. 하둡 기술을 기반으로 서열 데이터베이스를 구축하여 실제 활용하는 예로 HBase 기술을 활용/변용하여 SeqHBase라는 툴을 개발하였다 한다. 관련된 기술은 아래에 나열하였다.

아파치 하둡(Apache Hadoop) #

아파치 하둡 (Apache Hadoop, High-Availability Distributed Object-Oriented Platform)은 대량의 자료를 처리할 수 있는 큰 컴퓨터 클러스터에서 동작하는 분산 응용 프로그램을 지원하는 프리웨어 자바 소프트웨어 프레임워크이다. 원래 너치의 분산 처리를 지원하기 위해 개발된 것으로, 아파치 루씬의 하부 프로젝트이다2. 분산처리 시스템인 구글 파일 시스템을 대체할 수 있는 하둡 분산 파일 시스템(HDFS: Hadoop Distributed File System)과 맵리듀스를 구현한 것이다.

맵리듀스(MapReduce) #

맵리듀스(MapReduce)는 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작하여 2004년 발표한 소프트웨어 프레임워크다.1 이 프레임워크는 페타바이트 이상의 대용량 데이터를 신뢰도가 낮은 컴퓨터로 구성된 클러스터 환경에서 병렬 처리를 지원하기 위해서 개발되었다. 이 프레임워크는 함수형 프로그래밍에서 일반적으로 사용되는 Map과 Reduce라는 함수 기반으로 주로 구성된다.

아파치 스쿱(Apache Sqoop) #

프로그래밍 언어: JAVA 스쿱(Sqoop)은 구조화된 관계형 데이터베이스와 아파치 하둡 간의 대용량 데이터들을 효율적으로 변환하여 주는 명령 줄 인터페이스(Command-Line Interface) 애플리케이션이다.1 오라클 또는 MySQL같은 관계형 데이터베이스에서 하둡 분산 파일 시스템으로 데이터들을 가져와서 그 데이터들을 하둡 맵리듀스로 변환을 하고, 그 변환된 데이터들을 다시 관계형 데이터베이스로 내보낼 수 있다. 스쿱은 데이터의 가져오기와 내보내기를 맵리듀스를 통해 처리하여 장애 허용 능력뿐만 아니라 병렬 처리가 가능하게 한다. 스쿱은 2012년 3월 최상위 아파치 프로젝트가 되었다.1

아파치 피그(Apache Pig) #

프로그래밍 언어: JAVA 피그(Pig)는 대용량 데이터 집합을 분석하기 위한 플랫폼으로 아파치 하둡(Apache Hadoop)을 이용하여 맵리듀스(MapReduce)를 사용하기 위한 높은 수준의 스크립트 언어와 이를 위한 인프라로 구성되어 있다. 현재, 피그의 인프라 구조 계층은 컴파일러로 구성되어 있으며 대용량 병렬처리를 위한 맵리듀스 프로그램의 데이터 변환 순서를 만든다. 피그의 언어 계층은 현재 피그 라틴이라 불리는 텍스트 기반의 언어로 이루어져 있다. 이것의 주요 특징은 프그래밍하기가 쉬우며, 최적화할 수 있는 방법을 제공하고 사용자가 특수 목적을 위한 자신의 함수를 만들 수 있는 확장성을 제공한다는 것이다.2

아파치 하이브(아파치 하이브(Apache Hive) #

프로그래밍 언어: JAVA 아파치 하이브(Apache Hive)는 하둡에서 동작하는 데이터 웨어하우스(Data Warehouse) 인프라 구조로서 데이터 요약, 질의 및 분석 기능을 제공한다. 아파치 하이브는 아파치 HDFS이나 아파치 HBase와 같은 데이터 저장 시스템에 저장되어 있는 대용량 데이터 집합들을 분석한다. HiveQL 이라고 불리는 SQL같은 언어를 제공하며 맵리듀스의 모든 기능을 지원한다. 쿼리를 빠르게 하기 위해 비트맵 인덱스를 포함하여 인덱스 기능을 제공한다.3 현재 TEXTFILE, SEQUENCEFILE, ORC 그리고 RCFILE등 4개의 파일 포맷을 지원한다.3

아파치 HBase(Apache HBase) #

프로그래밍 언어: JAVA 아파치 HBase(Apache HBase)는 하둡 플랫폼을 위한 공개 비관계형 분산 데이터베이스다. 구글의 빅테이블(BigTable)을 본보기로 삼았으며 자바로 쓰였다. 아파치 소프트웨어 재단의 아파치 하둡 프로젝트 일부로서 개발되었으며 하둡의 분산 파일 시스템인 HDRS 위에서 동작을 한다. 대량의 흩어져 있는 데이터 저장을 위한 무정지 방법을 제공하는 구글의 빅테이블과 비슷한 기능을 한다. HBase는 압축, 인메모리 처리, 초기 빅테이블에 제시된 Bloom 필터 기능을 제공한다.1 HBase에 있는 테이블들은 하둡에서 동작하는 맵리듀스 작업을 위한 입출력을 제공하며 자바 API나 REST, Avro 또는 Thrift 게이트웨이를 통하여 접근할 수 있다.4

참고문헌 #

1 - 4. 위키 백과

Suggested Pages #

0.0.1_20140628_0