« Previous : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : Next »
지난 더운 여름, EBS 다큐프라임에서 재밌는 이야기 하나를 보았습니다. "기생충과 우리는 함께 진화해 오고 있다." 그저 징그럽고 혐오스러웠던 하등한 기생충 따위가 월등히 진화된 우리와 함께 라니... 라며 반문 할 수 있겠지만, 생화학적으로나 진화적으로 '제대로' 진화해온 기생충이야 말로 똑똑하게 진화해서 숙주를 조종까지 하게 되었습니다



일례로 의학을 상징하는 카두케우스의 지팡이에 감긴 뱀 두 마리는 메디나충을 의미하는 것으로 예로 부터 알려진 대표적인 숙주를 조종하는 기생충입니다. 아프리카등지에서 오염된 물을 통해 감염된 메디나충은 성충이 되어 숙주 몸 밖으로 안전하게 알을 배출하기 위해 숙주인 사람을 물가로 이끌게 합니다. 중력 때문인지, 물과 근접하기 위함인지 정확하진 않지만, 대부분 물과 쉽게 닳는 발이나 복숭아뼈 근처 피부를 뚫어 수포를 만들고 염증반응을 유발하여 화끈거리는 발을 물가로 인도 하는 메디나 충은 그 긴 몸을 드러내고 본인의 목적을 달성합니다. 다시금 중간 숙주인 물벼룩의 먹이가 되어 보다 많은 종 숙주(사람)에서 삶을 이어갈 수 있도록 말입니다.

기생충은 오로지 자손 번식을 위해서만 살아간다고 합니다. 그렇게 진화된 것이라고 합니다. 회충은 몸의 대부분이 생식기로 구성되어 있으며 암컷 회충은 하루에 20만개의 알을 낳는다는 것도 이런 이유일 것입니다. 유충 상태로 우리 몸 어딘가에 정착된 기생충은 처음 직면하는 어려움이 우리 몸의 면역 세포들과의 소소한 싸움입니다. 면역 세포에 비해 덩치가 워낙 큰 기생충은 사실상 상대가 되지 않을 만큼 면역세포들에게는 큰 적입니다. 그러나 소소한 면역 세포의 끊임없는 괴롭힘은 사실 기생충으로 하여금 '나는 오직 자손 번식만 하면 돼..너 괴롭힐 맘 없으니 잠시 방 하나만 내어주면 조용히 지낼께~' 라며 양해를 구하게 하고, 싸우기 힘든 면역 세포 입장에서는 '그래, 약속만 한다면야...내가 참아주지.' 라며 서로 합의에 이르게 합니다. 그러나 이러한 합의는 성충이된 기생충의 살아가는 목적인 알을 안전하게 다음 숙주로 옮겨주어 자손을 널리널리 퍼뜨려 종족이 사라지지 않도록 하기 위해 위반하게 되고 숙주에게 해를 끼치게 됩니다. (물론, 중간 중간 이상한 물질을 분비하여 신경계를 교란 시키거나 여러 조직을 돌아다니면서 물리적으로 치명적인 해를 입히는 기생충도 많이 있습니다. )

여기서 생물을 연구하는 우리는 의문을 품었습니다. '기생충과 면역 세포간의 합의가 이뤄진 그 기간 동안 민감했던 면역 시스템이 대충 눈감아 줄 정도로 유연해 졌다면, 아토피나 알레르기와 같은 예민한 자가 면역이 호전 되지 않을까?' 전 세계 많은 과학자들은 실험을 했고, 결론은 '기생충이 아토피와 같은 자가 면역 질환에 도움이 된다'를 주장 하는 논문과 '유의한 결과가 없다'를 주장하는 논문이 함께 맞서고 있습니다[1][2][3][4].



이러한 상황을 생물정보학적으로 접근해 보겠습니다. 현재까지의 자가면역 질환에 대한 기생충의 효과는 대부분이 자가면역질환을 유도하는 면역 시스템인 Th2 면역반응에 수반되는 IL-4, IL-5, IL-6, IL-10, IL-13와 같은 cytokine과 IgE와 같은 염증반응을 유도하는 면역 글로빈의 반응을 중심으로 연구 되었습니다. 이를 유전체 전반으로 확장하여 생각해 보면, 실험의 대상이 되는 숙주인 사람은 생김새 부터 식습관, 성격까지 다양한 나름의 특징을 가지고 있고 이는 46 개 염색체 전반에 분포하고 있는 유전체상의 서열변이로 인해 갖는 다양성입니다. 따라서, 본래 태어날 때부터 갖는 외부 자극에 대한 면역 반응이 서로 다를 수 있으며 자라온 환경적인 이유로도(Epigenomics) 그 반응이 상이 할 수 있습니다. 같은 아토피 환자라 할지라도 반응 정도, 반응 물질, 반응 시기까지 모두 다양하게 나타나는 예가 바로 이에 해당된다 할수 있습니다. 따라서 복잡한 면역시스템과 기생충간의 상호 대응 관계를 일반화 시키기 위한 조건을 잡는 것은 쉬운일이 아닐것입니다.

생물정보분야에서는 이러한 복잡한 배경속에서 결론을 얻기 힘든 상황을 해결하기 위해 시맨틱 모델을 적용한 데이터 베이스를 활용하기 시작했습니다. 최대한 다양한 정보를 바탕으로 각각의 경우에 따른 반응정도를 정리하는 데이터 베이스를 구성하는 것으로 다음과 같은 정보들을 정리 할 수 있습니다.

첫번째, 유전체내 서열 변이 정보를 정규화 하여 데이터 베이스화 합니다.
예를 들어 집먼지 진드기에 알레르기를 일으키는 유형과 꽃가루 혹은 견과류에 반응을 보이는 유형 각각의 유전체 정보를 정규화 합니다. 단일염기변이(SNPs) 정보, gene loss 정보와 같은 유전체 전반에 걸친 정보를 데이터베이스화 합니다.

두번째, 이들의 유전자 발현 패턴을 정보화 합니다.
동일한 외부 자극에 대한 반응의 정도를 각각의 유형(집먼지진드기, 꽃가루, 견과류 반응)에 따라 유전자의 발현 패턴을 정규화 합니다. 또한 기생충(유충) 감염 상태에서의 유전자 발현 정도도 함께 체크합니다. (단, 감염 초기 4주 안에는 숙주에 큰 피해를 주지 않는다는 안정성 테스트가 있었습니다[5].) 뿐만 아니라 감염되는 기생충의 종, 감염 기간, 감염량에 따라서도 많은 차이를 보이므로 이들에 대한 적절한 실험 디자인이 필요합니다.

세번째, 기본적인 유전자의 생물학적 기능 정보를 비롯해 현재 알려진 세포내 신호전달 정보를 데이터베이스화 합니다.
KEGG를 비롯한 biocarta의 데이터베이스와 현재까지 업데이트 되지 못한 문헌상의 pathway 정보를 데이터베이스화 합니다(문헌상의 pathway 정보를 텍스트마이닝을 통해 정리해 주는 프로그램은 'PathwayStudio', 'Ingenuity' 등이 있습니다).

네번째, 각 실험 대상인 유형별 표현형을 데이터베이스화 합니다.
나이, 체중, 성별, 가족관계, 혈액형, 성격, 질병이력 등을 비롯해 식습관, 사는곳 등 가능한 많은 표현형 정보와 환경적인 요인을 정보화 합니다.







다섯번째, 현재까지 정리된 데이터들을 서로 연결합니다.
이때, 각각의 정보에 대한 의미론적인 관계(Semantic model)를 맺어주게 되고 이를 통해 기계가 특정 자극에 대한 결과를 통합적으로 살펴볼수 있도록 합니다(이를 위해서는 Biomax사의 'BioXM' 을 이용할수 있습니다).

이렇게 구축된 데이터베이스는 사용자의 질문에 대해 가능한 모든 정보를 배출하게 됩니다. 따라서 사용자는 최대한 많은 경우를 고려한 질문을 데이터베이스에 요구하여 데이터베이스로 하여금 시맨틱모델이 적용된 많은 조건을 모두 통과한 결과를 배출 하도록 하는 것이 필요합니다. 또한 의미있는 결과를 얻기 위해서는 앞서 언급했듯이 이러한 시맨틱 데이터 베이스가 최대한 많은 정보를 담아야 합니다. 따라서 다양한 실험 결과를 생산해 냄과 동시에 이미 공개된 데이터와 세계 각국에서 따로따로 진행된 일부 정보들을 모두 활용하여 세포속 네트워크 처럼 만들어 가는 것이 가장 중요하다 할 수 있습니다.

현재까지는 열거된 정보를 담은 기생충과 숙주와의 관계를 살펴 볼수 있는 데이터베이스를 찾기가 쉽지 않습니다. 그러나 시간이 갈수록 촘촘해지는 네트워크를 구축해 간다면,
"땅콩에 예민한 알레르기 반응을 보이는 반면 집먼지 진드기에는 반응을 보이지 않고있는 10세 이하의 어린이들 중 Heligomosomoides polygyrus 감염후 IgE 항체의 양이 4배이상 증가하는 숙주들의 유전자 loss들이 관여하고 있는 공통된 pathway는 무엇인가?" 라는 질문에 대한 정보에서 재밌는 단서를 찾을 수 있지 않을까 기대해 봅니다.



Reference

  1. Fallon PG, Mangan NE (2007) Suppression of TH2-type allergic reactions by helminth infection. Nat Rev Immunol 7: 220-230.
  2. Yazdanbakhsh M, Kremsner PG, van Ree R (2002) Allergy, parasites, and the hygiene hypothesis. Science 296: 490-494.
  3. Harnett W, Harnett MM (2008) Therapeutic immunomodulators from nematode parasites. Expert Rev Mol Med 10: e18.
  4. Yazdanbakhsh M, van den Biggelaar A, Maizels RM (2001) Th2 responses without atopy: immunoregulation in chronic helminth infections and reduced allergic disease. Trends Immunol 22: 372-377.
  5. Falcone FH, Pritchard DI (2005) Parasite role reversal: worms on trial. Trends Parasitol 21: 157-160

작성자 : Codes 사업부 Research팀
신윤희 선임

Posted by 人Co

2013/11/20 14:10 2013/11/20 14:10
, , , , , , ,
Response
No Trackback , No Comment
RSS :
https://post-blog.insilicogen.com/blog/rss/response/142

열심히 연구한 결과를 논문이나, 포스터, PPT 등으로 발표할 때 연구 결과를 잘 전달 할 수 있는 figure, 소위 이야기 하는 '예쁜 그림'을 이용해 보여주는 것이 중요합니다. 이를 위해 사용되는 다양한 형태의 figure 중에서, 벤다이어그램(Venn diagram)은 몇몇 집합에서 공통되는 원소들의 수를 나타내는데 주로 이용되는 다이어그램 중 하나입니다. 생물정보학에서는 주로 근연종들 사이에서 ortholog gene과 specific gene들의 수를 표현하거나, 공통 발현되는 DEG의 수를 나타내고자 할 때 이용되곤 합니다.


<세상엔 예쁜 벤다이어그램이 참 많지요.. 저걸 일일이 언제 다 그리나... 하아...>

벤다이어그램을 그리는 방법은 어렵지 않습니다. 엑셀의 필터 기능을 이용해 공통집합들에 해당하는 유전자(원소) 수와 각 집합에 유니크한 유전자 수를 각각 알아낸 다음 파워포인트로 타원을 이리저리 교차 시켜 템플릿을 만들고, 겹치는 부분에 해당하는 숫자를 입력하기만 하면 됩니다. 하지만 언제나 그렇듯 우리의 데이터는 수만의 유전자와 최소 3개 이상의 샘플(혹은 그룹)이 있으며 여러가지 실험 조건에 따라 값이 변경된 다양한 버전들로 존재합니다. 게다가 그룹이 4개인 벤다이어그램은 부분집합 수만 16개인데, 그 이상의 그룹을 벤다이어그램으로 그리려면 그룹이 기하급수적으로 늘어나고, 이렇게 번거로운 작업을 매번 반복하기란 여간 귀찮은일이 아닙니다.


<그룹이 5개면 부분집합만 31개.... 엑셀로 하면 부분집합 필터링 하는데만 마우스 클릭만 몇 번을 해야 하나....>

그래서 데이터 테이블만 있으면 자동으로 공통집합의 원소수를 알아내 예쁜 벤다이어그램으로 그려주는 방법을 알아보고자 합니다.

여기서는 통계 계산과 그래픽에 많이 사용되는 R이라는 프로그래밍 언어를 사용해 보겠습니다. 이미 다양한 경로로 R에 대해 들어 보셨을 겁니다. 하지만 많은 연구자들이 R을 사용하는데 많은 장벽을 느끼고 좌절을 하곤 합니다. 저 역시 마찬가지였고요. 하지만 이런 기회를 통해 조금씩 R과 친해져 보는 것도 앞으로 연구를 계속 하는데 많은 도움이 될 것 같습니다. 사실 엑셀과 R이 하는 일은 크게 다르지 않습니다. 두려움과 귀찮음을 잠시 묻어두고 한걸음 나아가봅시다.


R 설치하기


R은 R-Project(http://www.r-project.org/) 웹 페이지의 왼쪽 메뉴에서 'CRAN' =>
'http://cran.nexr.com/' 또는 'http://biostat.cau.ac.kr/CRAN/' (Korea의 미러사이트 중 한군데) =>'Download R for Windows' => 'base' => 'Download R 3.0.2 for Windows' 순서로 클릭을 하면 설치 프로그램을 다운로드 받을 수 있습니다. 다운로드가 완료되면 설치 프로그램을 실행하시고 아무 걱정 없이 '다음'을 쭉 클릭하시면 설치가 완료됩니다. 설치가 완료되면 '시작' => '모든 프로그램' => 'R' => 'R x64 3.0.2'을 마우스 우클릭을 하여 '관리자 권한으로 실행'을 클릭합니다. 32비트 컴퓨터를 사용하시면 'R i386 3.0.2'을 클릭합니다.

Data format, always data format


먼저 벤다이어그램을 그릴 데이터를 준비합니다. 모든 분석 코드들은 정해진 포맷에 맞는 데이터가 입력되어야만 에러 없이 결과를 출력합니다. 분석 코드의 첫부분은 입력 데이터의 어디가 이름(ID, valiable name)이고 어디가 값(value)인지, 어떻게 구분되어 있는지(tab-delimited, comma-separated)를 컴퓨터에게 인지시켜주는 내용들인데, 정해진 포맷의 데이터가 입력되지 않으면 엉뚱한 위치에서 값을 찾아 결국엔 에러 메세지를 출력합니다. 입력된 값에 이상이 있어 에러가 나기도 하지만 대부분의 에러는 입력데이터의 포맷이 사용한 코드에 맞지 않아 발생합니다. 이런 에러를 피하려면 두 가지 방법이 있습니다. 내 데이터 포맷을 분석 코드가 인식할 수 있도록 분석코드를 수정하는 겁니다. 하지만 이런 방법은 쉽지 않습니다. 두 번째 방법은 분석 코드가 인식하는 데이터 포맷에 맞게 내 데이터를 준비하는 겁니다. 준비 단계에서 약간 번거로울 수 있지만 가장 확실한 방법입니다.

먼저 실습해 볼 예제 데이터는 몇몇 근연종에서 ortholog gene을 분석한 데이터입니다.



파일을 다운 받아 주세요.

이 데이터는 각 종의 유전자 서열을 서로서로 BLAST를 돌려 서로 일치하는 유전자들을 각 종의 gene ID로 표기한 테이블입니다. 예를 들어 Species A의 BO16496은 Species D의 BH047N18.
14와 ortholog 관계가 있다고 보여져 한 라인에 각각의 아이디를 표기 하고 Clu8이라는 ID를 부여했습니다. Clu3에 있는 유전자들은 모든 종에서 발견된 ortholog gene이네요. Clu6의 RS007302는 다른 종의 서열에서 일치하는 유전자가 없어 Species B에서의 specifie gene으로 보여집니다. (이 데이터는 예제 데이터로 ID와 ortholog 관계를 무작위로 작명하고 배열한 데이터입니다.)

참! 엑셀로 만들어진 테이블 데이터는 저장할 때 '다른 이름으로 저장'에서 파일 형식을 '텍스트 (탭으로 분리)(*.txt)'로 선택한 후 저장하셔야 합니다.


패키지 불러오기


데이터가 준비 되었으면, 분석 코드가 사용할 패키지 코드를 설치합니다. 패키지는 어떤 분석에 주로 사용되는 분석 코드를 기능 별로 만들어 모아 놓은 것을 말합니다. 여기서는 limma라는 패키지와 gplot이라는 패키지를 사용할 겁니다.

R의 명령행에 아래 코드를 복사하고 붙여넣기를 하면 자동으로 'limma' 패키지가 설치되고 불러들여 집니다.

source("http://bioconductor.org/biocLite.R") biocLite("limma") library(limma)

R의 상단 메뉴 => 패키지들 => 패키지(들) 선택하기 => CRAN mirror: Korea(Seoul) 선택 => Packages: 'gplots' 선택 후 'OK'를 클릭하면 자동으로 'gplots' 패키지가 설치됩니다. 설치가 완료된 후 명령행에서 아래 코드를 입력하면 'gplots' 패키지가 불러들여 집니다.

library(gplots)

자 이제 데이터를 불러와 봅시다. R을 설치하고 실행하면 이런 화면이 나타날 겁니다.



여기에 "getwd()"라고 입력하고 엔터를 치면 이렇게 나타날 겁니다.

> gwtwd() [1] "C:/User/Username/Documents"

이 명령어는 'get working directory', 즉 현재 작업 폴더가 어딘지 출력하라는 명령어입니다. 아까 다운로드한 예제 데이터는 아마도 '바탕화면'이나 '다운로드' 폴더에 있겠죠? 간편하게 실습해 보기 위해 바탕화면에 VennDiagram이라는 새 폴더를 만들고 거기에 예제데이터를 복사해 둡니다. 그리고 'setwd()'라는 명령어로 새로 만든 폴더로 R의 작업 공간을 이동시켜 보겠습니다. 'setwd()'는 아래와 같이 사용하면 됩니다.

> setwd('이동할 폴더 경로')

'이동할 폴더 경로'는 아래와 같은 방법으로 얻을 수 있습니다. 새로 만든 폴더 상단에 주소 입력줄을 클릭해 보면 숨어 있던 상세한 폴더 경로가 나타날 겁니다. 폴더 경로가 전체 선택된 상태에서 'Ctrl+c' 를 눌러 복사를 하고 다시 R로 돌아온 다음 'Ctrl+v'를 눌러 붙여 넣기를 한 키보드의 'Home' 버튼을 눌러 커서를 제일 처음으로 옮겨 명령줄을 아래와 같이 고치고 엔터를 칩니다.



폴더 경로에서 'Users' 다음의 'Username'은 사용자 마다 다릅니다. 붙여 넣기한 그대로 사용하셔야 합니다. 여기서 고쳐져야 하는 것은 역슬레쉬('\') 기호를 하나가 아니라 두개로 입력되어야 하는 점입니다. 윈도우에서는 몇 가지 이유로 R이 역슬레쉬를 그대로 인식하지 못해 이런 방법으로 알려줘야 합니다.

setwd('C:\\Users\\Username\\Desktop\\VennDiagram')

역슬레쉬를 바꿔주지 않으면 이런 에러가 나타날 겁니다.

> setwd('C:\Users\Username\Desktop\VennDiagram')) 에러: "'C:\U"로 시작하는 문자열들 가운데 16진수가 아닌 '\U'가 사용되었습니다


R로 데이터 불러 오기


테이블 형태로 된 데이터를 불러오는 명령어는 'read.table()' 입니다. 먼저 'rfn' 이라는 변수에 파일 이름을 저장합니다. 그리고 'read.table()'을 이용해 데이터를 불러와 'data'라는 변수에 저장하라는 명령어를 사용합니다. 이 때 'read.table()'의 괄호 안에 몇가지 파라메터를 입력해 줍니다.

첫 번째 rfn은 'read.table'이 불러올 파일이름을 나타냅니다. rfn 대신 따옴표 안에 파일이름을 넣어 사용할 수도 있지만 파일 이름은 다른 변수에 저장하여 그 변수명을 바꾸는게 명령형 길이도 줄어들고 여러모로 편리하기 때문에 이런식으로 사용합니다. 두번째 'sep="\t"'는 테이블의 각 셀이 탭문자('\t')로 구분되어 있다고 알려줍니다. 세번째 'header=T'는 첫번째 줄에 column 이름이 있다고 알려줍니다. 여기서는 예제 데이터의 종명이 들어갈 겁니다. 네번째 'row.names=1'은 첫번째 열에 각 데이터의 ID가 있다고 알려주는 파라메터입니다.

테이블 형태의(그리고 탭으로 분리된) 텍스트 파일은 이 명령어를 이용해 R로 불러올 수 있습니다.

> rfn <- "ortholog_example.txt" > data <- read.table(rfn, sep='\t', header=T, row.names=1) > data Species.A Species.B Species.C Species.D Clu8 BO016496 BH047N18.14 Clu9 BO014834 RS013419 AT18397457 Clu3 BO014772 RS018960 AT15242221 BH042D24.27 Clu12 BO009902 Clu1 BO008537 AT15242224 BR143G12.16 Clu5 BO008364 RS038406 BH059G16.7 Clu4 BO008360 RS000136 BH006K11.24 Clu20 BO006059 RS040196 AT79324947 Clu13 BO005849 AT15234929 BH064P04.2 Clu7 BO005339 RS002816 Clu19 RS001238 AT15221666 BH015M19.22 Clu6 RS007302 Clu2 BH059C07.32 Clu18 RS008453 AT18420250 Clu17 AT18412659 BH065N19.8 Clu16 RS002645 AT186503429 Clu15 AT18416334 BH001M22.33 Clu14 RS005812 AT145358042 BH050H15.17 Clu11 AT15219226 Clu10 RS004647 BH027F23_27

데이터가 잘 들어 왔는지 확인해 보기 위해서 명령행에 데이터가 저장된 변수명, 'data'를 입력하고 엔터를 치면 전체 데이터를 볼 수 있습니다. 하지만 만약 데이터가 몹시 클 경우 화면이 가득 차거나 불러오다가 컴퓨터가 멈출 수 있으므로 가급적이면 'head()'와 'tail()' 명령어를 이용해 전체 데이터의 앞과 뒤 6줄씩 출력시켜 확인하는 방법을 권장합니다.

> head(data) Species.A Species.B Species.C Species.D Clu8 BO016496 BH047N18.14 Clu9 BO014834 RS013419 AT18397457 Clu3 BO014772 RS018960 AT15242221 BH042D24.27 Clu12 BO009902 Clu1 BO008537 AT15242224 BR143G12.16 Clu5 BO008364 RS038406 BH059G16.7 > tail(data) Species.A Species.B Species.C Species.D Clu17 AT18412659 BH065N19.8 Clu16 RS002645 AT186503429 Clu15 AT18416334 BH001M22.33 Clu14 RS005812 AT145358042 BH050H15.17 Clu11 AT15219226 Clu10 RS004647 BH027F23_27


데이터 형식 변형 시키기


벤다이어그램을 그리는데 사용할 명령어는 'vennCounts()'와 'venn()' 입니다. 이 명령어들은 'logical value'로 이루어진 'data.frame' 형식의 데이터를 입력 받습니다. 'logical value'는 'True' 또는 'FALSE', 즉 '참이다', '거짓이다', 또는 '있다', '없다'를 표현하는 값이란 의미입니다.

우리가 불러온 데이터는 그냥 요소(factor)들로 구성되어 있습니다. 이 데이터에서 값이 있으면 참, 없으면 거짓으로 바꿔 ld라는 변수에 저장시킵니다.

이 부분이 이해가 안 되시면 일단 아래 코드만 쭉~ 따라해 보시면 됩니다.

> ld <- (data != "") > ld Species.A Species.B Species.C Species.D Clu8 TRUE FALSE FALSE TRUE Clu9 TRUE TRUE TRUE FALSE Clu3 TRUE TRUE TRUE TRUE Clu12 TRUE FALSE FALSE FALSE Clu1 TRUE FALSE TRUE TRUE Clu5 TRUE TRUE FALSE TRUE Clu4 TRUE TRUE FALSE TRUE Clu20 TRUE TRUE TRUE FALSE Clu13 TRUE FALSE TRUE TRUE Clu7 TRUE TRUE FALSE FALSE Clu19 FALSE TRUE TRUE TRUE Clu6 FALSE TRUE FALSE FALSE Clu2 FALSE FALSE FALSE TRUE Clu18 FALSE TRUE TRUE FALSE Clu17 FALSE FALSE TRUE TRUE Clu16 FALSE TRUE TRUE FALSE Clu15 FALSE FALSE TRUE TRUE Clu14 FALSE TRUE TRUE TRUE Clu11 FALSE FALSE TRUE FALSE Clu10 FALSE TRUE FALSE TRUE

이렇게 변환된 데이터 'ld' 를 'as.data.frame' 명령어를 이용해 'data.frame' 이라는 형식으로 변환시켜 'ld.df' 라는 변수에 저장합니다.

> ld.df <- as.data.frame(ld) > ld.df Species.A Species.B Species.C Species.D Clu8 TRUE FALSE FALSE TRUE Clu9 TRUE TRUE TRUE FALSE Clu3 TRUE TRUE TRUE TRUE Clu12 TRUE FALSE FALSE FALSE Clu1 TRUE FALSE TRUE TRUE Clu5 TRUE TRUE FALSE TRUE Clu4 TRUE TRUE FALSE TRUE Clu20 TRUE TRUE TRUE FALSE Clu13 TRUE FALSE TRUE TRUE Clu7 TRUE TRUE FALSE FALSE Clu19 FALSE TRUE TRUE TRUE Clu6 FALSE TRUE FALSE FALSE Clu2 FALSE FALSE FALSE TRUE Clu18 FALSE TRUE TRUE FALSE Clu17 FALSE FALSE TRUE TRUE Clu16 FALSE TRUE TRUE FALSE Clu15 FALSE FALSE TRUE TRUE Clu14 FALSE TRUE TRUE TRUE Clu11 FALSE FALSE TRUE FALSE Clu10 FALSE TRUE FALSE TRUE

특별히 바뀐게 없어 보이지만, 'class()' 명령어를 이용해 data.frame 형식으로 바꾸기 전후를 비교해 보면 무엇이 바뀐지 알 수 있습니다 'data'를 'logical value'로 변환 시키면 그 결과는 'matrix'라는 형식으로 출력됩니다. 이를 'as.data.frame()'이라는 명령어로 'data.frame' 형식으로 바꿔 'ld.df'라는 변수에 저장을 시킨 겁니다.

> class(ld) [1] "matrix" > class(ld.df) [1] "data.frame"


각 집합 및 교집합들의 유전자 수 알아내기


예제 데이터를 보면 어떤 유전자들은 특정 종에서만 나타나는 유전자이고, 어떤 유전자는 다른 종에서도 ortholog 관계의 유전자가 있다고 합니다. 즉 크게 보면 4개의 집합이 있고, 4개의 집합으로 만들어질 수 있는 부분집합(교집합들과 각 집합의 유니크한 원소만 나타내는 부분집합) 16개가 있습니다. 이 부분집합들에 해당하는 유전자 수를 테이블 형태로 확인하는 명령어가 'vennCounts()' 입니다. 이 명령어에 'ld.df' 를 입력하면 아래와 같은 결과가 출력됩니다.

첫번째 줄을 보면 모든 집합(종에서도)에서 없는('0') 원소의 수가 가장 오른쪽 'Counts' 열에 0개 있다고 출력되어 있습니다. 두번째 줄은 다른 종에서는 없고('0') 'Species.D'에서만 있는('1') 원소의 수가 1개 있다고 합니다. 15번째 줄은 'Species.A', 'Species.B', 'Species.C'에서 공통적으로 ortholog 관계의 유전자가 2개 있다고 출력되어 있습니다.

> vennCounts(ld.df) Species.A Species.B Species.C Species.D Counts [1,] 0 0 0 0 0 [2,] 0 0 0 1 1 [3,] 0 0 1 0 1 [4,] 0 0 1 1 2 [5,] 0 1 0 0 1 [6,] 0 1 0 1 1 [7,] 0 1 1 0 2 [8,] 0 1 1 1 2 [9,] 1 0 0 0 1 [10,] 1 0 0 1 1 [11,] 1 0 1 0 0 [12,] 1 0 1 1 2 [13,] 1 1 0 0 1 [14,] 1 1 0 1 2 [15,] 1 1 1 0 2 [16,] 1 1 1 1 1 attr(,"class") [1] "VennCounts"


이제 진짜 벤다이어그램을 그려보자


이렇게 준비된 데이터를 벤다이어그램으로 그려주는 명령어는 'venn()' 입니다. 아래 명령을 실행해 보면 자동으로 카운팅된 교집합에 해당하는 원소들의 수가 알맞는 칸에 배치된 벤다이어그램이 출력됩니다. 이렇게 출력된 그림은 창 크기를 적당히 조절해서 사이즈를 조절한 다음 마우스 오른쪽 버튼으로 클릭하면 그림파일로 저장하거나 복사해서 파워포인트로 붙여 넣어 이용할 수 있습니다.

'venn()'은 최대 5개 집합의 데이터만 받아 벤다이어그램을 그려줍니다.

> venn(ld.df)




마무리


더 찾아보면 R에서 벤다이어그램을 그려주는 패키지는 상당히 많습니다.


이중에서 데이터 조작이 적고, 비교적 간편하게 이용할 수 있는 'gplot'의 'venn()'을 소개해 드렸습니다. 조금더 간편하고 예쁜 벤다이어그램을 그릴 수 있는 방법을 알고 계신 분이 계시면 아래 이메일로 알려주시면 감사하겠습니다. 알려주신 내용으로 업데이트 해서 올리도록 하겠습니다.

가능하면 R이나 코딩에 친숙하지 않은 분들을 위해 작은 부분까지 설명해 드리고자 노력했습니다만, 충분히 전달되지 못한 부분들도 있을 것 같습니다. 이해가 잘 안 되거나, 에러 나는 부분이 있으면 언제든 codes@insilicogen.com 메일 주소로 문의주세요.

여러분의 연구에 작은 도움이 된다면 더할 나위 없이 기쁘겠습니다.



Reference




작성자 : Codes사업부 Research팀
심재영 주임




Posted by 人Co

2013/11/01 17:41 2013/11/01 17:41
Response
No Trackback , No Comment
RSS :
https://post-blog.insilicogen.com/blog/rss/response/141

바이오빅데이터의 작은 이야기

1. 개요
최근 들어 빅데이터가 상당히 큰 이슈가 되고 있다. 박근혜 정부의 가장 큰 흐름 중 하나가 빅데이터라는 이야기를 쉽게 접할 수 있는 상황이다. 신문지상에서도 큰 주제로 빅데이터에 관한 기사가 연일 연제가 되고 있으며, 정부가 새롭게 추진하는 사업에서도 빅데이터라는 키워드가 핵심 이슈로 자리 잡고 있다. 최근 8월 8일자 세계일보에서 “심야버스 노선정책 지원”, “국민건강 주의 예보 서비스, 의약품 안전성 조기경보 서비스, 심실 부정맥 예측 등 보건의료 서비스, 소상공인 창업성공률 제고를 위한 점포이력 분석서비스 등을 주요 시범사업으로 정리한 것을 볼 수 있다. 그러나 빅데이터에 대해서 이름을 알고 간략한 개념을 알고 있었을 뿐 어떻게 현재 바이오데이터에 접목할 수 있는지 현재 상황은 어떠한지 파악하기가 쉽지 않았다. 일반적으로 전산의 다양한 알고리즘들이 바이오분야에 뒤늦게 접목되는 것처럼 아직 바이오데이터를 빅데이터로 접목하는 것은 시기상조일 것이라는 생각이 컸었던 것이 사실이다. 빅데이터의 시대, 바이오분야에서는 어떠한 흐름이 있으며, 어떻게 준비해야 되는지 좀 더 구체적으로 준비를 해야 될 시기가 된 것 같다.

2. 빅데이터란?
‘데이터 data’라는 말은 라틴어로 ‘사실 fact’로서 ‘주어진다 given’는 뜻이다. 오늘날 데이터는 기록되거나 분석되거나 재정리할 수 있는 어떤 것을 가리킨다. 또한 어떤 현상을 ‘데이터화’한다고 하는 것은 표를 만들고 분석이 가능하도록 그 현상을 수량화된 형태로 만든다는 뜻이다. 따라서, 우리가 쉽게 혼동하는 데이터화와 디지털화는 서로 아주 다른 개념이다. 디지털화란 아날로그 정보를 컴퓨터가 처리할 수 있도록 2진법 코드의 0과 1로 만든다는 뜻이다.
15세기 중엽 인쇄기 발명 이후 약 1억 3천만 권의 고유한 책이 출판된 것으로 추산된다. 구글은 세계의 문헌을 데이터화하기 위해서 문헌 자료를 스캔하기 시작하여 2012년까지 2천만권 이상의 문헌을 스캔하였다. 이는 글로 된 세계 유산의 15퍼센트 이상에 해당하는 막대한 양이다. 이로 인해 ‘컬처로믹스(Culturomics)’라고 하는 새로운 학문 분야가 생겨났다. 텍스트의 양적 분석을 통해 인간 행동과 문화 트랜드를 이해하는 컴퓨터 어휘학이 그것이다.
위에서 데이터를 정의한 것처럼 빅데이터를 정의하는 말은 다양하다. 단어 때문에 단순히 양이 많은 데이터라는 것을 먼저 떠올리게 되는데 데이터의 양이라는 것은 빅데이터의 한 측면일 뿐이다. 빅데이터의 가장 많이 알려진 특성은 다음처럼 V로 시작하는 세 가지 키워드로 표시할 수 있다.
• Volume : 데이터양 (현재는 수십 테라바이트 ~ 수 페타바이트 규모)
• Variety : 다양한 데이터 (구조화 데이터 + 비구조화 데이터)
• Velocity : 데이터 발생 빈도, 갱신 빈도 (1초에 수십 건 이상)
[출처:채승병 외, 빅데이터: 산업 지각변동의 진원,SERI CEO Information, 2012. 5]

하지만 빅데이터를 단순히 위 3가지의 특성만으로 정의하기에는 부족한 점이 많다. 따라서 보다 광범위한 의미의 빅데이터란 위에서 언급한 ‘3V (데이터양/다양성/속도) 측면에서 관리가 곤란한 데이터 및 그 데이터를 축적, 처리, 분석할 수 있는 기술, 나아가 그 데이터를 분석해서 유용한 의미와 통찰을 이끌어낼 수 있는 인재와 조직을 포함하는 포괄적인 ’개념‘이다. 빅데이터를 정의하는데 있어 관련 사례를 제시하는 것이 좀 더 쉽게 와 닿을 수 있는데, 구글은 월간 900억 회에 이르는 인터넷 검색을 위해 매월 600 페타바이트의 데이터를 처리한다고 한다. 또한 트위터의 경우 하루에 8 테라바이트나 되는 데이터를 생성하고, 페이스북은 매달 300억 개나 되는 콘텐츠를 생산해 내는데 그 양이 30 페타바이트 이상이라고 한다. 전혀 감이 잡히지 않는 어마어마한 수치인 것이다.
전산학자는 아니지만 생물의 데이터를 다루고 있는 생물정보전문가로서 바이오정보(유전체 데이터)의 규모가 상당하다고 생각을 했었는데 현재 실제로 생성되고 분석 및 서비스에 활용되고 있는 외국의 사례를 알게 되니 크게 놀라지 않을 수 없었다.

3. 오픈데이터 시대
노무현 전 대통령은 국정 운영에 국민의 참여를 중요시하는 참여정부를 이슈로 하여 공공기관의 전자정부화를 적극 추진하였다. 그로 인해 문서화 되어있는 많은 공공기관의 업무들이 전자화, 전산화되어 이를 현재까지도 잘 운영하고 있어, 세계적으로 우수한 전자정부를 갖추고 있다.
현재는 미국 연방정부를 비롯하여, 영국 정부 등 서유럽 국가에서는 열린 정부 정책을 추진하고 있다. 즉 정부나 지자체 등 공공 기관이 보유한 통계 자료, 지리정보, 생명 과학 등의 과학 데이터를 공개하고 이를 모두 연결해 사회 전체가 큰 가치를 만들어내고 공유하려는 움직임을 구축해 나가고 있는 것이다. 이는 WWW (World Wide Web)의 구조를 고안하여 ‘WWW의 아버지’로 불리는 영국의 컴퓨터 과학자인 팀 버너스-리는 미국 캘리포니아주 롱비치에서 ‘TED (Technology Entertainment Design)’ 콘퍼런스에서 ‘Raw Data Now!’라고 호소한 바 있다. 이러한 움직임을 ‘LOD (Linked Open Data)라고 부른다.
미국 연방정부는 오바마 대통령이 ‘투명하고 열린 정부’를 표방하여 ‘투명성’, ‘국민참여’, ‘정부 및 민간 연계 및 협업’을 세 가지 큰 원칙으로 삼고 투명하고 시민에게 열린 협조적 정부가 될 것을 각 정부 기관에 요구했다고 한다. 이 3원칙 중 ‘투명성’을 구현한 것이 국제 정세, 환경, 경제 상황등 연방정부 기관이 보유한 각종 데이터를 시민에게 제공하는 웹 사이트 ‘Data.gov’이다. Data.gov에서는 정부 데이터가 국민의 자산이라는 사고 방식을 바탕으로 연방정부 기관이 소유한 Raw Data Catalog와 지역별 데이터 Geo Data Catalog를 카탈로그 형식으로 제공한다. 덕분에 2009년 5월 47개 데이터에 불과했던 카탈로그는 2012년 5월 시점에서는 39만개 까지 확대되었다고 한다.


영국 정부 또한 2010년 1월부터 정부 소유의 데이터를 모은 ‘Data.gov.uk’를 구축, 이를 공개하여 일반 시민이 범죄, 교통, 교육 등 개인 데이터 이외의 정부 소유 데이터에 접근할 수 있도록 하었다. 공개 직후부터 2,500개의 많은 데이터가 공개되었고, 2012년 5월 시점에 8,400개 이상이 되어 프로젝트가 시작한지 2년 만에 3배 이상 증가하였다.



우리 정부 또한 국가의 다양한 정보를 공개하여 이를 국민의 생활에 유익한 형태로 서비스하고자 하는 정책들이 지속적으로 개발되고 있는 것을 확인할 수 있다. 또 한 정부 뿐만 아니라 정부가 공개한 데이터를 이용하여 상용 서비스를 제공하는 벤처 기업도 속속 등장하고 있어, 이제는 멜론과 같이 음악 스트리밍 사이트에서 온라인 음악을 구매하는 것처럼 정부의 다양한 정보들을 손쉽게 원하는 형태로 구매하여 빅데이터에 활용할 수 있는 시대가 된 것이다.


4. 바이오회사의 빅데이터 시도
빅 데이터 회사들은 제공하는 가치에 따라 세 종류로 나눌 수 있다. 그 가치는 각각 데이터, 기술, 아이디어다.
첫 번째 가치인 데이터 기업들은 데이터를 보유하고 있거나 최소한 데이터에 접근할 수 있는 회사들이다. 이들의 사업 목적은 데이터 자체가 이닐 것이다. 또는 데이터에서 가치를 추출하는 데 필요한 기술이나 창의적 아이디어가 없을 수도 있다. 가장 좋은 예가 트위터인데, 트위터 서버에는 엄청난 양의 데이터가 넘쳐나지만, 트위터는 다른 이들이 이것을 이용할 수 있도록 두 개의 독립적 회사를 통해 데이터 사용을 허가하고 있다.
두 번째 가치는 기술이다. 기술 기업에는 자문 회사나 기술 판매사, 분석 제공 업체 등이 포함될 것이다. 이들은 전문성을 가지고 일하지만 스스로 데이터를 보유하거나 데이터에서 가장 혁신적인 용도를 생각해낼 창의성이 없을 수도 있다.
세 번째 가치는 아이디어, 즉 빅데이터 사고방식이다. 어떤 회사들은 성공의 주된 원인이 데이터나 노하우에 있지 않다. 이들 기업이 두각을 나타내는 것은 설립자나 직원들이 데이터에서 새로운 형태의 가치를 추출할 수 있는 독창적인 아이디어를 보유하고 있기 때문이다.
다양한 분야에서 빅데이터를 이용하여 인간이 원하는 결과를 얻고자 하는 사례들이 끊임없이 전해지고 있다. 미국과 유럽의 경우 이러한 빅데이터에 대한 선점효과를 톡톡히 누리고 있는데, 조만간 바이오 분야의 거대 빅데이터를 선점하는 회사들을 곧 접하게 될 것이다. 우리 회사와 협력을 맺고 있는 해외 파트너사들도 이에 대한 사업 전략을 수정하여 적극적으로 추진하는 것을 확인해 볼 수 있다.

4-1. Elsevier의 Ariadne Genomics 흡수 통합
거대 저널 회사인 Elsevier는 매년 출간하는 저널의 수만 1천여 종이 넘는다고 하며, 전 세계 저널의 40% 가량을 독점하고 있으나, 독과점방지법으로 인해 표면상으로는 25% 정도의 시장을 장악하고 있다고 알려져 있다. 이 수치도 엄청난 수치인 것이다. 전 세계의 전문화되고 검증된 정보의 25%를 독점적으로 관리하고 보유하고 있다는 것은 엄청난 가치를 보유하고 있는 셈이다. Elsevier는 단순히 저널을 배포하고 관리하는 회사에서 자체적으로 보유하고 있는 지식정보를 이용하여 공격적으로 새로운 가치를 추출하는 사업을 추진하고 있다. 즉 텍스트마이닝이라는 기술을 통해서 전문화된 문헌 속에서 질병과 현상, 그리고 유전자 및 관련 약물의 상호 연관관계를 추출하여 새로운 약물 개발 및 질병 진단과 예방, 처리에 새로운 사업 모델을 준비하고 있는 것이다. 이를 위해서 바이오 문헌의 텍스트마이닝에서 가장 우수한 기술을 보유하고 있는 Ariadne Genomics사의 Pathway Studio를 이용하기 위해 2010년 말에 Ariadne Genomics사를 흡수, 통합하였다. 현재는 약 2년간의 통합작업을 거쳐 자체의 바이오 빅데이터를 이용하여 유용한 정보를 제공하는 사업을 준비하고 있는 것이다. Elsevier에서 자체적으로 약물 개발을 할 것인지, 아니면 이런 고급 정보를 제약회사에 판매하는 사업 모델로 갈 것인지는 확인되지 않았지만, 이제 곧 큰 비즈니스 모델화가 출시될 것이라는 것은 쉽게 짐작할 수 있다.




4-2. Biomax Informatics사의 Knowledge Management 시스템

독일의 MIPS의 스핀오프 기업인 Biomax Informatics사는 유전체 분석을 위한 파이프라인을 구축하여 수백여 종 이상의 유전체 기능 분석을 수행한 바 있다. 이 회사는 미국의 국립암센터와 협력하여 암에 관련된 모든 정보를 활용할 수 있는 플랫폼을 개발하게 되었다. 기존의 관계형데이터베이스로는 암에 관련된 복잡하고 난해한 정보에서 연관정보를 등록하고 추출하는 시스템을 구현하는 것이 쉽지 않았다. 따라서, 각 데이터에서 상관관계를 정의할 수 있는 플랫폼을 구축하여 정형화되지 않은 새로운 데이터들도 쉽게 현상을 알면 상관관계를 정의하여 빅데이터를 만들고 여기에서 의미있는 정보를 추출할 수 있는 서비스를 하게 된 것이다. 여기에서 확장하여 최근에는 병원의 다양한 정보를 등록하고 관련 데이터의 의미를 추출할 수 있는 비즈니스 모델을 구축한 바 있다. 아직은 플랫폼이 무거운 편이지만 빅데이터의 가장 큰 특징인 상관관계를 철저히 정의하는 새로운 플랫폼으로서 상당히 일찍 바이오빅데이터 시장에 자연스레 출발하였다고 볼 수 있다.




4-3. 자동화와 수동화가 이룬 업적 : Biobase
Biobase사는 매일 NCBI에 업데이트되는 서열정보와 문헌정보를 자동으로 다운로드 받아서 필터링 과정을 거쳐 등록되는 시스템을 구축하여 이 정보를 가공하여 의미있는 새로운 정보를 만들고 있다. 수년간에 걸친 수정보완을 통해 상당히 정교한 파이프라인을 내부 시스템으로 구축한 상태이다. 이 시스템에서 정보들을 필터링하여 새롭게 데이터를 가공하고 있는데 이 작업은 Biobase사의 인도지사에서 수행하고 있다. 인도지사의 60여명의 바이오전문가들이 추출된 문헌을 일일이 검토하여 새로운 지식 정보를 추출하고 등록을 하는데, 3단계 검증단계를 거쳐서 최종적으로 고객에게 서비스되는 형태로 만들어지는 것이다. 수 년 동안 지속적으로 문헌에서 의미있는 정보를 추출하는 작업을 하는 바이오전문가에 의해서 일일이 확인하고 검증하는 단계를 거치게 되는 것이다. 이렇게 만들어진 지식 정보는 제약회사, 육종회사들과 공동연구를 수행하는데 이용하거나 데이터를 연간 라이선스 형태로 일반 생물을 분석하고자 하는 사람들에게 판매하고 있다.




5. Codes 사업부의 미래
빅데이터를 논할 때 구글과 아마존을 함께 성공사례로 이야기를 하면서도 한편으로는 구글은 올바르게 빅데이터의 전망을 인식하여 사업으로 접근하고 아마존은 반대로 빅데이터를 놓쳐버렸다고 말하고 있다. 그 이유는 데이터에 대한 인식 및 사업화 차이를 두고 말하고 있다. 즉 구글은 구글 북스를 통해 스캐닝된 디지털자료를 데이터화해서 새로운 분석 및 활용에 시도하였으나, 아마존은 단순히 컨텐츠에 활용하였다는 것이다. 즉 1차적인 사업모델에는 적용하였으나, 그 부가적인 정보의 가치를 좀 더 확대하지 못했다는 것이다.
바이오의 모든 아날로그 데이터는 디지털화되고 데이터화하여 새로운 분석과 활용에 시도하겠다는 뜻을 가진 Codes. 최남우사장님이 수년전에 각 사업부의 이름을 정하면서 제안하신 이름이다. 어떻게 보면 몇 년 전에 바이오 빅데이터를 생각해서 미리 알맞은 이름을 제안하셨는지 모르겠지만, 새로운 생물정보 시장의 큰 흐름이 될 바이오 빅데이터를 어떻게 준비하느냐가 앞으로의 미래에 중요한 포석으로 자리 잡을 것이다. 또한 빅데이터는 데이터를 보유하거나 관리할 수 있는 주체가 가장 큰 이익을 얻을 수 있지만, 단순히 아이디어 및 컨텐츠를 발굴하는 사업 아이템도 큰 흐름이 될 것이다. 구글, 아마존, 페이스북과 같이 대량의 빅데이터를 직접 만들어내는 것은 쉽지 않지만, 공개화된 빅데이터에서 우리가 원하는 결과만을 추출할 수 있는 기술 및 아이디어 발굴이 중요하다. 이는 새로운 형태의 지식 유전을 확보하는 것과 동일하다. 최근 미국에서는 ‘데이터는 새로운 석유다’ 라는 말이 나오고 있는데, 이 말은 정제된 원유가 막대한 경제적 가치를 가져온 것처럼 데이터도 적절히 분석하면 큰 가치를 만들어낸다는 의미다. 기계공학을 전공하여 1학년 전공과목 때 교수님이 기계공학도가 되려면 모든 사물에 기계공학적인 관심을 가지고 주의 깊게 살펴보아야 한다고 말씀하신 기억이 떠 오른다. 기억(ㄱ)자 형태로 서있는 신호등이 제대로 지탱하기 위해서 몇 개의 줄이 필요한지 어떤 간격으로 줄이 설치되어야 되는지 등 실생활 속에서 기계공학적인 생각을 해 보라고 하셨다. 바이오빅데이터는 이와 마찬가지로 일반 생활속에서 우리가 원하는 것이 무엇인지 꾸준히 생각하고 정리할 수 있는 마인드가 중요할 것이다. 또한 바이오데이터는 다른 데이터에 비해 훨씬 높은 복잡성과 낮은 일치성으로 인해 가장 적절한 빅데이터의 모델이지만, 활용에 어려움이 있으므로 이를 해결하고자 하는 노력이 무엇보다 중요할 것이다.
데이터의 진짜 가치는 바다 위에 떠 있는 빙산과 같다. 처음에는 아주 조그만 부분밖에 눈에 보이지 않지만 수면 아래에는 많은 부분이 숨겨져 있다. 이것을 이해하는 혁신적 회사는 그 숨은 가치를 추출해 잠재적으로 엄청난 이득을 거둬갈 수 있을 것이다.

6. 참고문헌
• 빅데이터가 만드는 세상(빅토르마이어쇤버거, 케네스 쿠키어 지음, 이지연 옮김-21세기 북스)
• 빅데이터 혁명(권대석지음, 21세기 북스)
• 빅데이터의 충격(시로타 마코토 지음, 김성재옮김, 한빛미디어)



작성자 : Codes 사업부장 박준형

Posted by 人Co

2013/08/28 10:44 2013/08/28 10:44
Response
No Trackback , No Comment
RSS :
https://post-blog.insilicogen.com/blog/rss/response/138

이번 블로그에서는 NGS 데이터로부터 미지의 유전체 크기 (genome size)를 in silico적인 방법으로 예측하는 것에 대해 얘기해보려고 합니다.



Genome size의 다양성

위 그림에 보이는 것처럼 생물종군에 따라서 유전체 사이즈는 상당히 넓은 범위에 걸쳐있는 것을 알 수 있습니다. 주목할 것은 흔히 생각하듯이 그 생물체의 organismal complexity와 유전체 크기는 큰 상관관계가 없을 수도 있다는 것입니다. 예를 들어 human보다 수십배, 수백배 더 큰 유전체 크기를 자랑하는 Protist, Plant, Amphibian 종들도 존재하는것을 확인할 수 있습니다 ("C value paradox"). 생물종의 복잡도와 유전자 개수, 그리고 유전체 크기등의 상관분석도 재미난 연구 topic이 될 수 있을 것 같고 아마 누군가는 열심히 연구 중에 있을 것 같습니다 (아마도 결과가 나와있을지도??).

생물정보학적인 유전체 분석의 제일 첫 스텝은 아무래도 de novo genome assembly가 아닐까 합니다. 만 약에 어떤 생물종의 유전체 de novo assembly를 진행하고자 할때 사전지식이 없어 분석하고자 하는 그 생물종의 유전체 크기를 알지 못한 상태에서 진행한다면 어떨까요? 염색체가 몇개인지 전체 사이즈가 얼마인지 모른다면 상당히 답답할 것입니다. 시퀀싱을 얼마나 어떻게 해야할지도 막막할테구요. 일 반적으로는 실험적인 방법 (일례로 flow cytometry)을 통해서든 아니면 유전체 크기가 알려진 유사성이 높은 다른 종으로부터 어느정도 사이즈를 예상한 상태에서 NGS 분석을 진행합니다 (실험적인 유전체 사이즈 측정방법들에 대해서는 다음 기회에 다뤄보도록 하겠습니다). 하지만 de novo assembly를 통해 만들어낸 draft genome이 맞게 잘 만들어진 것인지 확인하기 위해서라도 대략적인 유전체 크기를 알면 많은 도움이 될 것입니다.

다행히도 이런 고민을 먼저 했던 사람들이 있고 NGS 데이터만 가지고 in silico적인 방법으로 유전체 크기를 예측하는 방법이 고안되었습니다. 오늘은 그중에서 두가지를 소개할까 합니다.


첫번째: BGI 방법

첫번째는 BGI (Beijing Genome Institute)에서 소개한 방법입니다. 이미 여러편의 논문에서 인용이 되었고 저희팀에서 자주 이용하는 방법입니다. 원리는 간단합니다. Genome shotgun NGS를 통해서 100bp 짜리 short reads 3400만개를 얻었다면 총 total base number는 3.4 x 10^9이 됩니다. 만약 그 종의 유전체사이즈가 200Mb라면 이는 17 fold에 해당하는 양입니다.

만약 genomic sequencing library를 유전체 조각의 유실없이 제대로 잘 만들었고 시퀀싱도 충분한 양 (15-fold 이상)이 되어졌다면 특정 시퀀스들을 대상으로 depth frequency를 plotting 했을때 17-fold에서 peak를 그리는 정규분포의 모양을 할 것이라고 예상할 수 있습니다.

-- 수식 (1)

위 수식을 보면, total_read_num, avg_read_length는 이미 알고 있으므로 coverage_depth를 알면 미지의 genome size를 계산할 수 있게 됩니다.

여기서 특정 사이즈의 k-mer시퀀스를 살펴봅시다. NGS data로부터 만들어질수 있는 전체 k-mer 갯수는 다음과 같습니다.



예를 들어 100-mer짜리 Illumina HiSeq read 하나에서 만들어질 수 있는 17-mer (임의의 k-mer를 17로 정했을경우)의 갯수는, 100 - 17 + 1 (= 84)개가 될 것입니다. 이러한 HiSeq reads가 300백만개가 있다면, average read length는 100-mer, k-mer size는 17-mer로 상정할 경우,



이 됩니다. 이 2억5천2백만개의 k-mer들 중에는 동일한 시퀀스들을 가진것들이 있을 것이고 unique한 k-mer들의 리스트를 작성, 각 k-mer가 몇번씩 관찰되었는지 그 frequency를 계산합니다. 그렇게 해서 depth가 같은 k-mer들이 전체 k-mer pool에서 차지하는 비율을 plotting 합니다 (x축은 k-mer depth, y축은 전체에서 차지하는 frequency, k-mer frequency plot의 example은 아래 giant panda 데이터를 참조).

그리고 다음의 수식도 성립합니다.

위에서 작성한 k-mer frequency plot에서 peak을 보이는 depth point가 k-mer_coverage_depth가 되며 아래 수식에 의해 NGS 시퀀스 전체의 genome coverage depth를 구할 수 있게 됩니다.

여기서 구해진 coverage_depth로부터 전체 genome_size를 위 수식 (1)로 부터 구할 수 있습니다.

-- 수식 (2)

JELLYFISH: k-mer frequency distribution 측정
다음으로 NGS data로부터 k-mer frequency plot을 얻는 방법입니다. 여러개의 프로그램이 논문에 나와있는데 그중에서 저희팀은 BGI와 마찬가지로 JELLYFISH를 이용합니다.


Ref. Marcais and Kingsford (2011) A fast lock-free approach for efficient parallel counting of occurrences of k-mers. Bioinformatics 27:764–770


JELLYFISH는 free software로 여기(http://www.cbcb.umd.edu/software/jellyfish/)에서 다운로드 받을 수 있습니다.

JELLYFISH를 이용해 얻은 k-mer frequency plot을 얻은 일례입니다. BGI에서 분석한 Giant Panda의 경우인데, 17-mer짜리를 이용해서 frequency plot을 얻은 결과입니다.


Ref. Li et al, The sequence and de novo assembly of the giant panda genome. Nat. Genet. (2010) 473:311-317


왜 17-mer인가?

이론적으로는 어떤 k-mer를 사용하든 유사한 결과를 얻을 것입니다. 하지만 제대로된 결과를 얻기위한 가정은 최소한 특정 k-mer가 해당 유전체에서 딱 한번 unique하게 발견되어야 합니다. 5-mer 짜리는 확률적으로 1 kb당 한번씩 발견될 수 있고, 10-mer는 1 Mb당 한번씩 발견될 수 있습니다. 이렇게 사이즈가 작은 k-mer들은 시퀀스가 유전체에 여러번 무작위적으로 발견될수 있기 때문에 올바른 결과를 담보할 수 없습니다. 16-mer쯤 되면 4.3 Gb당 한번정도 무작위적으로 발견됩니다. 이정도면 나쁘진 않지만 위 표에서 보시다시피 4.3 Gb 보다 더 큰 사이즈의 유전체도 존재하기 때문에 안심할 수 없겠죠. 17-mer 정도면 (17 Gb당 1번) 현재 진행되는 유전체 프로젝트에서는 안전한 결과를 보장할 수 있다고 하겠습니다. 더 큰사이즈의 k-mer는 안되냐구요? 물론 가능합니다. 하지만 frequency plot을 그리기 위해 더 많은 k-mer를 이용하는 것이 일반적으로 더 안정적인 결과를 얻을 수 있고 또 시퀀스의 base quality가 완벽하지 않기 때문에 시퀀스 에러가 있을 수 있어 큰 k-mer를 사용할 수록 에러율이 높아질 위험이 있습니다. 대략 17~21-mer 정도가 가장 효율적이라 여겨집니다.

두번째: RNA-seq 방법

두번째로 소개할 방법은 BMC Genomics (2011) 논문에 소개된 내용입니다. 버블콘이라 불리는 바다달팽이 (Conus bullatus)의 전사체를 분석한 논문인데요 (Ref. Hu et al. BMC Genomics 2011, 12:60). 기본적인 원리는 위에서 소개한 BGI 방법과 유사합니다. 차이점은 Genome Shotgun NGS data만 이용하는 것이 아니고 RNA-seq data도 함께 이용한다는 것입니다. RNA-seq에서 얻은 sequence reads에 genome NGS reads를 매핑하는 것이죠. Transcriptome을 레퍼런스로 삼아서 genome sequence reads를 붙이고 각 transcript당 평균적으로 몇 fold로 붙었는지 계산해보면 그 genome NGS reads가 genome의 몇 fold를 반영하고 있는지를 판단할 수 있다는 원리입니다. 이 방법의 장점은 genome NGS coverage가 1.5 fold 정도여도 좋은 예측결과를 보여준다는 것입니다.

이 방법을 검증하기 위해 논문에서는 C. elegans와 D. melanogaster의 NGS 데이터로부터 가상의 1.5 fold 짜리 모의데이터를 구성해서 테스트를 해보았는데 다음과 같은 좋은 결과치를 얻을 수 있었다고 합니다.



WU-BLASTN으로 "M = 1 N = -3 Q =3 R = 1 wordmask seg lcmask" 옵션을 사용해서 NGS reads를 RNA-seq 어셈블리로 만들어진 transcript contigs에 매핑합니다. 각 transcript별 coverage depth를 length 기준으로 계산해서 얻은 다음, 위 그래프에서 보는 것처럼 coverage-depth vs transcript percentage plot을 얻습니다. 이때 얻어진 maximum peak coverage가 전체 genomic NGS reads의 coverage가 되며, 수식 (2)를 이용해서 전체 genome size를 예측할 수 있습니다. 만약 소량의 genome NGS data만 있어서 첫번째로 소개한 k-mer 방법을 사용하기 어려운 상황에서 RNA-seq data를 같이 가지고 있다면, 써볼만한 방법이라고 생각됩니다.

 


작성자 : Codes사업부 Research팀 노승재 팀장

Posted by 人Co

2013/06/11 16:27 2013/06/11 16:27
Response
No Trackback , No Comment
RSS :
https://post-blog.insilicogen.com/blog/rss/response/133

우리는 Genomic 데이터를 분석할때, 온라인 데이터베이스를 이용해서 정보를 검색하고 이용하기 위한 여러가지 도구를 사용합니다. 많이 활용되는 온라인 데이터베이스 자체의 좋은 웹인터페이스를 제공하고 있지만, 연속된 분석을 자동화하거나 다양한 통계량을 구하고자할 때는 프로그래밍이 필요합니다.
R 은 오픈 소스 통계 소프트웨어로, 이 작업을 간단하게 할 수 있도록 몇가지 패키지를 제공합니다. 그 중에 NCBI 데이터베이스를 이용할 수 있도록 구성되어 있는 NCBI2R 패키지에 대해서 알아보려고 합니다.

NCBI2R 패키지는 NCBI 데이터베이스에서 SNPs를, 유전자와 microsatellites의 목록에 Annotation 정보를 검색할 수 있는 R 패키지입니다. 이 패키지는 KEGG 경로 (일부 다른 기능들)에 속하는 유전자를 유전자에서 SNP를 검색하거나 정보를 저장할 수 있으며, SNPs를 또는 유전자의 Annotation 정보를  R을 이용해서 필용한 정보를 얻을 수 있는 매우 유용한 기능을 제공합니다. 더 자세한 정보는 NCBI2R 공식 웹사이트인 http://NCBI2R.wordpress.com 을 활용하시면 됩니다.

1. NCBI2R package download & installation
다음 URL에서 다운로드하거나 R 배포판의 특징에 맞춰 설치를 합니다.
 * http://cran.r-project.org/web/packages/NCBI2R/index.html

2. NCBI2R loading
라이브러리가 정상적으로 로딩되는지 확인합니다.
> library("NCBI2R")                # NCBI2R loading
> PrintNCBI2RInfo()               # NCBI2R 패키지 기본정보 확인
NCBI2R package loaded.
Developed by Scott Melville, Christian Fuchsberger,
Cristian Pattaro and Yuri D'Elia
Please check the web for updates, tutorials, manuals etc
http://NCBI2R.wordpress.com
Please read the usage guidelines on the website.
now checking if you have the latest version
[1] "NCBI2R is the current version. 1.4.4"
>

3. dbSNP 데이터베이스 이용하기 (대표적인 함수 따라해 보기)
(1) GetSNPInfo 함수를 이용해서 특정 유전자 영역의 SNPs정보 기본 정보 검색하기
 * GetIDs : 유전자명, KEGG pathway 등의 검색조건에 맞는 유전자 아이디를 가져온다.
 * GetSNPsInGenes : 해당 Gene 위치에 SNP ID 목록을 가져온다.
 * GetSNPInfo : dbSNP 내 SNPs 정보를 가져온다.
> GetIDs("MAPT[sym]")    # MAPT 유전자의 GeneId 정보를 가져온다
[1] "4137"
a <- GetIDs("KEGG pathway:Alzheimer´s disease")     
b <- GetIDs("protein binding[GO]")                        # Gene ontology 를 이용해서 Gene Id 가져옴
c <- GetIDs("ENST00414122")                              # ensembl reference ID를 이용해서 Gene Id 가져옴
> GetGeneInfo(4137)     # Gene Annotation 정보를 가져온다.
                                                          
  locusID org_ref_taxname org_ref_commonname   OMIM                                      synonyms
1    4137    Homo sapiens              human 157140 TAU MSTD PPND DDPAC MAPTL MTBT1 MTBT2 FTDP-17

genesummary
1 This gene encodes the microtubule-associated protein tau (MAPT) whose transcript undergoes complex, regulated alternative splicing, giving rise to several mRNA species. MAPT transcripts are differentially expressed in the nervous system, depending on stage of neuronal maturation and neuron type. MAPT gene mutations have been associated with several neurodegenerative disorders such as Alzheimer's disease, Pick's disease, frontotemporal dementia, cortico-basal degeneration and progressive supranuclear palsy. [provided by RefSeq, Jul 2008]
                            genename phenotypes
1 microtubule-associated protein tau           
                                                                                               pathways GeneLowPoint
1 KEGG pathway: MAPK signaling pathway--- KEGG pathway: Alzheimer's disease--- Reactome Event:Apoptosis     43971748
  GeneHighPoint ori chr genesymbol                               build    cyto approx
1      44105700   +  17       MAPT Homo sapiens Annotation Release 104 17q21.1      0
>mysnps <- GetSNPsInGenes(4137)        # Gene 영역의 SNP 정보를 가져온다.

(2) AnnotationSNPList : 검색하고자 하는 SNP목록의 gene symbol, locusId, chromosome과 그 위치정보, fxn_class(eg intron, exon, UTR) 정보와 종정보등을 파일형태의 결과로 보여준다.
 * AnnotationSNPList : NCBI dbSNP 데이터베이스로부터 snp 위치정보 및 관련 유전자, pathway 등의 정보를 제공한다.
> snplist<-c("rs1234567","rs333","rs848484")
> d<-AnnotateSNPList(snplist) #no HTML file is created
[1] "GetSNPInfo has been performed and information for identified genes will now be found."                                                
Information for genes has been found - AT LEAST one gene listed has  titles that are temporary or unofficial names)
  |=====================================================| 100%
> MakeExcel(d,"results.tab")
[1] "file was created"

(3) GetPathways 함수를 이용해서 특정 SNP에 연관된 Pathway 정보를 확인하기
 * GetPathways : 해당 유전자의 Pathway 정보를 확인할 수 있다.
> mySNPInfo<-GetSNPInfo("rs4294787")
> GetPathways(mySNPInfo$locusID)
  locusID                                                  name                                                       web
1    1139                     KEGG pathway: Cholinergic synapse http://www.genome.jp/dbget-bin/show_pathway?hsa04725+1139
2    1139 KEGG pathway: Neuroactive ligand-receptor interaction http://www.genome.jp/dbget-bin/show_pathway?hsa04080+1139
3    1139               KEGG pathway: Calcium signaling pathway http://www.genome.jp/dbget-bin/show_pathway?hsa04020+1139
4    1139                 KEGG pathway: Chemical carcinogenesis http://www.genome.jp/dbget-bin/show_pathway?hsa05204+1139
5    1139                      KEGG pathway: Nicotine addiction http://www.genome.jp/dbget-bin/show_pathway?hsa05033+1139
>

지금까지 간략하게 NCBI2R 패키지를 이용해서 R에서 NCBI의 데이터를 다루는 예제를 살펴보았습니다. R 언어는 생물정보학을 위한 Bioconductor 프로젝트에서 Ensemble, HGNC, InterPro, Reactome 및 HapMap 등의 여러 데이터베이스에 정보를 이용할 수 있는 인터페이스를 제공하고 있습니다. NCBI에도 dbSNP 이외의 많은 데이터가 있으므로 여러 조합으로 활용할 수 있을 것입니다.


작성자 : KM사업부 기반기술팀
강연경 팀장


Posted by 人Co

2013/04/12 13:33 2013/04/12 13:33
Response
No Trackback , No Comment
RSS :
https://post-blog.insilicogen.com/blog/rss/response/129

돼지를 아시나요?

회식을 할 때 마다 빠지지 않는 터줏대감 삼겹살을 생각하시나요? 아니면 지저분하고 더러운 동물, 이도 아니라면 부와 행운의 상징인 돼지 저금통이 떠오르시나요? 우리가 잘 알고 있다고 생각하지만 막상 잘 모르는 돼지에 대해서 알아보겠습니다.

학명으로는 Sus scrofa domesticus 라고 합니다. 좀더 달리 말하자면 가축화된 멧돼지(Sus scrofa)이죠. 한자로는 돈(豚)이라고 하죠. 전 세계적으로 약 8~9억 마리가 사육되고 있습니다. 사람이 약 50억이라고 하면 사람 숫자의 1/5이 지구상에 존재한다고 보면 되겠습니다. 사람과는 무척 친밀하고 가까이 있는 동물입니다.

먼저 돼지의 어원을 알아보겠습니다. 돼지의 기원은 돌에서 시작합니다. 어미돌이죠. 돌의 새끼를 도아지라고 했고 이것이 발전하여 도야지, 돼지로 발전한 것입니다. 송아지, 망아지, 강아지와 같은 새끼를 의미합니다. 우리가 흔히 부르고 있는 돼지는 돌의 새끼입니다. 돼지 새끼를 말하는 것이죠.


[출처 : 동아일보]

돼지꿈은 용꿈에 이어 길몽으로 해몽되는데 돼지 꿈을 꾸면 복권을 사기도 하고 로또방으로 향하게 하는 근거없는 기대의 원흉이 되기도 합니다. 또한 장사를 하는 집이나 개업을 하는 곳에서는 돼지머리를 올리고 부를 기원하는 고사를 올리기도 합니다. 이는 돼지가 한자로 돈(豚), 우리가 좋아하는 돈(金)과 같아서가 아닐까 합니다.

돼지는 약 1만년전(9천년전) 인간의 손에 길들여짐으로써 야성의 힘과 민첩함을 잃어버리고 게으르고 우둔하며 온순한 동물로 인식되고 있습니다. 개와 양에 이어 인간에 길들여진 세번째 가축으로 개와 마찬가지로 주인과 낯선 사람을 구별할 줄 알고 최근에는 컴퓨터도 사용합니다. 하지만 여전히 우매한 동물로 치부되기엔 마찬가지입니다. 하지만 돼지는 개와 돌고래에 견줄만큼 매우 영리하며 깔끔한 것을 좋아합니다. 돼지는 땀샘이 발달하지 못해서 체내의 수분이 소변으로 배설되기 때문에 항상 주변이 습기가 차고 더러운 경향을 보이지만 배설 장소를 따로 만들어주면 배설물이 있는 곳의 냄새를 맡고 그 장소에서만 배설하며, 누울 곳은 항상 깨끗하게 유지합니다. 우리가 알고 있는 것과는 거의 정반대죠. “똑똑하고 깨끗한 동물, 돼지”, 꼭 기억해 주세요.

돼지에 대한 또 다른 면모를 알아보겠습니다.

돼지의 조상인 멧돼지는 야생에 있을 때 포수의 화약 냄새를 수 리에서 수십 리 밖에서 인지하고 멀리 도망간다고 합니다. 포수의 엽총 화약 냄새를 몇 리 밖에서 식별하고서 멀리 달아나 버리는 것이죠. 그래서 산에 올랐을 때 멧돼지에 대한 응급처치 요령으로 우산이나 화약을 지참하라고 합니다. 우산은 갑자기 덩치가 큰 뭔가가 나타나서 순간적으로 놀라서 움츠러들어 방비할 시간을 주는 것이고 화약은 멧돼지가 싫어하는(두려워하는) 냄새이기 때문입니다. 돼지도 살아야 하니까요.

송로버섯의 모습 [출처: 위키피디아]


송로버섯을 이용한 음식 [출처: 위키피디아]

송로버섯을 아세요?
아마 대단한 미식가라면 알고 있을 수 있겠죠.(하지만 아직 먹어보지는 못했습니다. 그나마 자연산 송이버섯은 자주 먹어봤다는 것만으로 위안삼으려 합니다) 거위의 간 푸아그라, 철갑상어의 알 캐비어과 함께 세계 3대 진미라 불리우는 바로 송로버섯(truffle)입니다. 송로버섯은 블랙과 그 보단 열 배쯤 더 가치가 있는 화이트로 구별됩니다. 지구서 나는 자연산 음식 중 가장 비싼 버섯이죠. 맛 보다는 향기를 위한 음식으로 그 향미는 천국의 냄새라 합니다. 그 향기가 말로 형용할 수가 없으며 그 향기에 빠져들면 행복하고 그 느낌을 절대 잊지 못한다고 합니다. 일종의 마약이라고 할 수가 있습니다. 가격이 얼마냐구요? 2007년 마카오의 억만장자 스탠리 호가 1.5kg짜리 화이트 트러플을 33만달러에, 1.08kg은 20만 달러, 2010년 900g과 400g 짜리 두 개를 역시 33만 달러에 구입하였습니다. 대충 따져보면 1g당 220달러. 금 3.75g에 22만원이니까 가격이 대충 짐작되시죠?

이렇게 “땅 속의 다이아몬드”라 불리우며 외국에서 최고의 향미로 칭송받고 있는 송로버섯은 지상이 아닌 지하(5~40cm)에서 자라기 때문에 사람이 육안으로는 거의 찾기 힘듭니다 이 버섯을 찾는 과정을 트러플 헌팅이라고 하는데 사람이 찾을 수는 없고 동물을 이용하는데 그 동물이 바로 개와 돼지입니다. 개의 후각이 뛰어난 것은 주지의 사실로 알고 있지만 돼지는 다소 의외입니다.

개는 익히 알려진 바와 같이 과자를 주면서 훈련을 시켜 이용하고, 돼지는 그 자체 그대로 이용합니다. 돼지를 이용한 트러플 헌팅에서는 암퇘지가 이용됩니다. 트러플에서 발생하는 냄새가 마치 돼지 수컷의 발정기에 나타나는 호르몬 냄새(sex hormone)와 비슷하여 암퇘지가 거의 미친 듯이 달려들기 때문이죠. 즉 트러플에서 발생하는 향미가 수퇘지의 성적인 유인물질과 흡사하여 암퇘지를 이용하는 거죠. 그런데 암퇘지가 버섯을 발견하게 되면 극도로 흥분하여 주둥이와 발굽으로 헤집어 찾아내는데 이때 사람이 돼지를 저지해야만 합니다. 왜냐하면 육중한 체구를 이용하여 즉석에서 먹어 치워 버리기 때문입니다. 그러나 의외로 똑똑하여 버섯을 못 찾은 척 하다가 나중에 혼자 가서 먹어버리기도 한답니다. 하지만 개는 돼지만큼 버섯을 좋아하지 않을 뿐더러 대신 칭찬, 과자같은 보상에 길들여져 개를 많이 이용하는 추세라고 합니다.

여기서 중요한 포인트가 있습니다. 바로 돼지의 후각 능력입니다. 수십리 밖에서 화약 냄새를 맡거나 땅 속에 숨겨진 트러플을 찾아 내는 그 후각 능력말입니다. 돼지의 후각 능력은 인간의 약 2000배에 해당한다고 알려져 있습니다. 왜일까요? 우리가 몰랐던 돼지의 후각 능력, 이제 그 비밀을 알아보고자 합니다.

사용자 삽입 이미지




2012년 국내 연구진과 외국 연구진이 공동 연구하여 돼지의 유전체를 분석하여 네이처지에 그 내용을 발표하였는데 그 분석 내용을 보면 “돼지의 후각은 개보다도 뛰어나다!” 입니다. 정확히 그 정도는 표현할 수 없지만 돼지의 재발견이라고 해도 좋을 것 같습니다.
네이처 표지 [출처: 네이처]



[물론 저 국내 연구진에 저도 들어가 있습니다. 처음에 잘 찾지도 못했네요.] 




앞서 돼지의 후각 능력이 뛰어 나다고 하였는데 먼저 후각이란 무엇인지 알아보겠습니다. 후각은 우리가 냄새를 맡는 감각입니다. 물론 감각 세포 중 후각 감각 세포가 이러한 역활을 담당하고 있습니다. 냄새를 가진 분자가 공기 중에 떠다니면 이 냄새 분자가 콧구멍으로 들어와 콧구멍 안을 덮고 있는 점액에 녹고 이를 후각 수용기라고 하는 부분이 인식해서 뇌로 전달해줍니다. 그럼 뇌가 적절히 정보를 정리해주는 것이죠. 맛있는 냄새, 향기롭다, 역겹다 등의 과학적 정보와 감정적 정보를 주게 됩니다.

[출처 : 네이처] EMBO reports (2007) 8, 629 - 633 doi:10.1038/sj.embor.7401029

사람의 경우 약 500 만개의 수용체가 약 1,000 개의 다른 냄새를 구별할 수 있습니다.
냄새의 숫자는 어마하게 많지만 냄새의 유형은 사실 그리 많지 않습니다. 냄새는 보통 매우 적은 농도의 화학적 화합물에서 발생하는데 이는 향수와 같이 기분 좋은 냄새도 있지만 부패 등 기분 나쁜 냄새도 있죠. 산업적으로 음식/화장품 업체와 같이 기분 좋은 냄새(향기)를 이용하는 경우도 있지만, 사람과의 관계나 커뮤니케이션에 나쁜 영향을 주는 경우도 매우 많습니다. 예를 들면 발냄새, 암내, 땀냄새 등 말이죠. 냄새란 상당 부분 개인적인 면과 관계가 깊습니다. 냄새를 맡고 해석하는 과정은 과거의 경험, 성별, 건강상태, 개인의 경험에 따라 상당히 다르게 나타나기 때문입니다. 특히 동물에 있어서 무의식적인 위험경고, 짝 짓기, 음식 찾기, 포식자 탐색 등 다양한 분야에 이 후각 능력을 이용합니다. 물론 생존적인 면이 가장 크겠죠. 인간에 있어 이러한 후각 능력은 더 복잡한데 건강, 이성교제, 독성물질, 음식의 섭취, 감정 전달, 의사소통 등 모든 분야에 고려되는 중요한 요소입니다. 사실 이것은 다른 어떤 외부의 자극보다 기억에 연관되어 있기 때문입니다. 음식을 섭취할 때 부패했다거나 질병을 일으킬 수 있는 위험이 있다거나 할 때 보통 기억 속에 잠재된 냄새로 그것을 판단하게 됩니다. 음식이나 음료의 냄새가 코의 후각을 통해 인지되어 지고 후각 감각세포가 그 징후를 받아 들임으로써 그것을 먹을지 말지 결정하게 됩니다. 이러한 원칙은 해롭거나 혹은 이롭거나 한 모든 물질에서 그 판단 기준이 되는 것입니다. 그래서 후각(코)은 “뇌의 오랜 연인” 이라고도 합니다.

독일 드레스덴대 연구팀에 의하면 후각 능력이 떨어지는 남성이 후각 능력이 뛰어난 남성에 비해 연애 횟수나, 연애 능력이 떨어진다는 사실을 밝혔습니다. 후각은 사람의 감정을 불러일으키거나 오랫동안 유지시키는 결정적인 역활을 한다고 합니다. 과학적으로도 후각 능력이 떨어지면 모험심이 줄어들고 타인과 소통하거나 평가하는데에도 어려움이 있다고 합니다. 후각이 삶을 살아가는데 있어 알게 모르게 상당한 영향을 끼친다는 거죠.

사람의 기억에 남는 것은 미각이 아니라 후각이 더 많은 영향을 주고 있답니다. 모 광고에서 “낯선 여자에게서 내 남자의 향기를 느꼈다.” 처럼 어깨를 스치며 지나가는 여인의 냄새에서 내 남자의 기억을 되살리고 있는 것이죠. 냄새를 통해 누군가를 기억하거나, 냄새를 통해 누군가에게 호감 또는 혐오감을 느끼는 것입니다. 이는 후각 감각 신경세포가 기억과 감정, 인지와 관련된 뇌의 영역, 예로 대뇌 피질이나 변연계에 속해 있는 해마, 편도체 같은 곳에 서로 신경으로 연결되어 있기 때문입니다.

이런 냄새를 맡기 위해서는 우리의 후각 능력이 절대적으로 중요합니다. 후각 능력은 크게 두 부분으로 나누어 볼수 있는데.

1) 외부 자극을 받아들여 신경 세포의 전기적 신호로 바꾸는 말초적인 면

모든 신호를 받아 중추신경계에서 처리하는 중추적인 면입니다. 여기서 말초적인 면은 후각 감각세포(Olfactory receptor)와 상당 부분 깊게 관련되어 있는데 코를 통해 흡입된 냄새 물질에 반응하는 능력에 따라서 후각능력이 좌우됩니다. 앞서 간단히 냄새 맡는 과정을 언급하였지만 좀 더 생물학적으로 정리하자면 다음과 같습니다.

냄새 물질은 코 내부의 후각 상피와 접촉하는데 후각 상피에는 수많은 후각 감각 세포가 들어 있고 이들은 원래 있던 냄새에서 새 냄새를 구별하고 그 냄새의 농도를 결정합니다. 이 세포들은 후각 상피 내의 후각 감각 신경으로 이어져 있으며 감각 세포가 받아 들인 신호를 뉴런의 전기적인 신호로 바꾸어 주는 역활을 합니다. 이 전기적 신호는 말초 신경계인 후각 신경을 따라 전달되고 이 신경이 중추 신경계로 전달되고 이 때 뇌가 여러 정보를 토대로 우리가 반응해야 할 결과를 알려줍니다. 이것이 일반적인 냄새를 맡는 과정입니다.

사람에게는 500만개, 토끼 1억개, 개는 2억2천만개의 후각 감각 수용체를 가지고 있습니다. 사람의 경우 적은 수용체 수에도 불구하고 다른 포유류보다 냄새를 잘 구별할 수 있는 것(물론 능력이 뛰어나다는 의미는 아닙니다)은 높은 뇌의 메카니즘과 연결되어 있습니다. 물론 사람의 시각 능력과도 전혀 무관할 수 없습니다. 하지만 우리가 짚고 넘어가야 할 중요 포인트는 후각 감각 세포에 있는 수용체, Olfactory receptor입니다. 우리말로 번역하자면 후각 수용체, 후 수용기 라고 합니다. 외 수용기-접촉 수용기-화학 수용기로 재분류 할 수 있습니다.

후각 수용체(Olfactory receptor)는 냄새를 인지하고 반응하는데 이용되는 신경 세포의 일부입니다. 사실 이 수용체가 수 천 가지의 냄새를 인지하는데 결정적인 역활을 하는 것입니다. 이 수용체는 7 transmembrane domain을 가지고 있는 GPCR(G-protein coupled receptor)의 일종으로 약 200년 전에 설치류에서 처음 발견되었습니다. 또한 유전자 영역이 매우 잘 보존되어 있죠. (이 유전자의 구성 중 3/4은 tripodal metal ion binding site를 가지고 있습니다. 그러나 아직까지 이 유전자의 명확한 구조가 밝혀지지는 않고 있습니다. Metalloproteins가 OR(Olfactory receptor) 핵심이라는 설이 있으나 최근에는 양자 간섭 메커니즘을 통해서 분석한 결과 구조적 모티프보다는 분자의 다양한 진동 에너지 수준을 감지함으로써 인식한다는 설이 더 인정받고 있습니다. 이 OR(Olfactory receptor) 유전자는 포유 동물에서 매우 큰 패밀리 유전자입니다. 유사 기능을 하는 유전자가 종 내에 많다는 말이죠. 복어에서는 약 44개, 녹색복어에서는 42개가 발견되었습니다. 쥐에서는 약 1,200개가 발견되었죠. 물고기는 약 100개정도를 가지고 있고 인간은 약 350여개를 가지고 있습니다. 그럼 이쯤해서 돼지는 궁금하지 않으신가요? 몇 개나 존재하는지. 몇 개나 존재해서 돼지가 후각 능력이 뛰어 난지 말입니다.

자. 그 비밀을 밝혀드리도록 하겠습니다. 답은 1,113개 입니다. 물론 이것이 실험적으로 완전히 증명된 것은 아니지만 in silico 상으로 분석했을 때 나타나는 결과입니다. 돼지 유전체 Sscrofa10.2 버전(전체 유전체의 99.9%)으로 분석한 결과입니다. 이 버전은 Nature지에 발표되었던 버전과 동일합니다. 이 유전체 어셈블리 버전에서 OR 유전자 관련해서 1,301개를 밝혀냈습니다. 기능 유전자 1,113개, 슈도진 188개입니다. 염색체별 분포도를 보면 다음과 같습니다. 전체 16개 염색체에서 46영역에서 이들 유전자가 발견되었습니다.
 

보시는 것처럼 염색체 2번과 7번, 9번에서 가장 많이 발견되었습니다. 물론 pseudogene(188개)이 많이 포함되기는 합니다. 좀 더 자세히 테이블로 정리해 보았습니다.

다음은 각 종별 OR 유전자의 분포입니다. 의외로 닭이 82개입니다. 인간은 388개, 개는 872개, 생쥐가 1, 037개, 쥐가 1,201개, 돼지는 1,113 개입니다. 이제 돼지가 개보다 냄새를 더 잘 맡을 수 있다는 이야기에 공감이 가시나요? 물론 이 유전자가 많다고 냄새를 다 잘 맡지는 않겠지만 가능성은 훨씬 높아지죠. 이 유전자가 좀 더 많은 종류의 냄새를 구분해 낼테니까요. 더불어 쥐도 냄새를 무척 잘 맡는 동물에 속합니다. 쥐도 무시하지 마세요.


위의 돼지 관련 후각 감각 세포 분석 내용은 아래 보이는 논문에서 2012년 출판 (BMC Genomics) 되었습니다. 아쉬운 것은 논문을 쓸 당시엔 4.3점대 였는데 출판시점에 4.07점대로 주저 앉았습니다. 아뿔싸!! 그렇지만 이 내용으로 인해 Nature에도 잠시 이름을 얹었습니다.



우리가 막연히 알고 있던 “돼지가 냄새를 잘 맡는다”는 말을 들었을 때 “설마 돼지가?”하고 반문 할 수도 있습니다. 그러나 돼지의 외형적인 모습을 보면 후각이 잘 발달되어 있다는 느낌은 지울수가 없습니다. 물론 돼지 유전체 분석을 통해 그 근거도 증명했습니다.

지난 2년간 돼지 유전체 분석을 통해 돼지의 OR유전자는 1,113개이고 pseudogene 수가 188개로 상대적으로 많은 유전자들이 기능을 잃지 않고 있다는 것을 보여주는 내용입니다. 후각이 민감한 동물일수록 그 세포의 수가 많고 또한 냄새는 다종다양하므로 여러 유형의 세포가 필요하기 때문입니다. 인간은 단 388개의 유전자가 OR 관련 유전자입니다. 이는 근연관계로 볼 때 쥐(1,200개)와 확연한 차이가 존재합니다. 이는 인간이 시각능력과 지적 능력이 발달함에 따라 후각 능력은 점차 퇴화한 것으로 보여집니다. 예전 어느 논문에서인가 컬러를 구분하는 능력과 지적 능력 때문에 우리의 후각 능력이 현저히 떨어지고 있다는 설을 접한 적이 있습니다.

물론 좀 더 깊은 연구는 심리학, 공학, 향수 업계의 기밀, 생물학 등을 기반으로 하는 이어집니다. “냄새의 과학”은 진화론과 동물행동학, 신경과학, 생화학 등을 아루르는 새로운 영역이기에 그 내용은 배제하려고 합니다. 기회가 된다면 정말로 “냄새의 과학”에 대해서 정리해보도록 하겠습니다.

지금까지 우리가 의외로 생각했던 돼지의 후각능력, 그 능력은 단순한 설이 아니라 과학적으로도 근거가 있는 사실이었습니다.


작성자 : KM사업부 개발1팀
이규열 팀장

Posted by 人Co

2013/03/20 15:40 2013/03/20 15:40
Response
No Trackback , No Comment
RSS :
https://post-blog.insilicogen.com/blog/rss/response/128

배경

돼지생식기 호흡기 증후군 (Porcine reproductive and respiratory syndrom)은 PRRS 바이러스에 의한 질병으로 자돈이나 육성돈이 이 병에 걸리면 기침, 호흡곤란, 폐렴 등 호흡기 증상을 보이며, 모돈의 경우 임신말기에 유사산 및 조산을 나타내고 허약자돈을 분만하게 되고, 웅돈에서는 정액성상의 이상을 일으키는 등 병명그대로 번식장애와 호흡기 증상으로 인한 성장부진이 특징입니다. 1986년 미국에서 보고되고 1990년 유럽에서 처음 보고된 비교적 새로운 가축질병이며 병원체가 알려지기 전에는 Mystery pig disease라고 불리기도 했습니다.

구제역이나 조류독감처럼 축산산업에는 큰 영향을 주는 질병으로 현재 미국에서는 PADRAP이라는 위해성 평가 프로그램을 구성하여 양돈장이나 종돈장을 체계적으로 관리하기도 합니다.

이번 포스트는 실험에서 얻은 PRRSV 유전자 서열을 기존 서열과 비교해서 PRRSV의 고병원성 여부를 확인하는 Perl 스크립트를 만드는 방법을 살펴보겠습니다. 스크립트를 구현하는 초보자 입장에서 문제를 해결하는 과정을 담아 보려고 했습니다.

고병원성 PRRSV의 특징

Zhou 등에 따르면 고병원성 PRRSV 균주는 Nsp2 유전자 분절의 코딩영역에 고유의 30잔기의 아미노산 결실이 있는 것으로 확인되었습니다. 여기서 Nsp2는 nonstructural protein 2의 약어이며, 중간 부위에 유전자 변이가 매우 많지만, 프로테아제 도메인으로 예상되는 N말단과 트랜스멤브레인으로 예측된 C말단은 보존성이 매우 높은 구조를 가지고 있습니다(Han et al. 2007).


Figure 1. The 30-Amino-Acid Deletion in the Nsp2 of Highly Pathogenic PRRSV. (Zhou et al. 2009)

스크립트 작동조건

실험에서 직접 시퀀싱한 서열을 고병원성인지 확인하는 것이므로 입력 서열은 DNA이며, 이 예제에서의 기준서열은 Figure 1에서 제시된 것처럼 단백질 서열로 가정합니다(VR-2332). 그리고 결실이 있는 위치와 크기의 허용오차를 줄 수 있어야 합니다. 입력인 DNA 서열은 Nsp2의 특정 부위를 증폭한 PCR산물을 직접 시퀀싱한 것입니다.

해결책을 찾아가는...

일단 이 문제는 쌍서열정열(pairwise sequence alignment) 전형적인 예입니다. 서열정열만 하면 거의 해결에 가까이 온 것입니다. 먼저 간단한 퀴즈 하나를 내보겠습니다. 이 문제의 경우 전역정열(global alignment)와 지역정열(local alignment) 알고리즘 중에서 무엇을 선택하는 것이 좋을까요? 이 퀴즈에 답을 하기 위해서는 기준이 되는 단백질 서열의 길이와 입력이 되는 DNA 서열의 길이를 비교해야 합니다. 기준 서열은 PRRSV의 완전유전체 중의 하나이며, 입력 서열은 Nsp2의 PCR 산물이므로 그 길이가 많이 다릅니다. 따라서, 지역정열을 해야 적절한 결과를 얻을 수 있습니다.

많은 지역정열 프로그램이 있지만, 생물정보학의 기본중의 기본이라고 하는 BLAST의 패키지중의 하나인 bl2seq를 이용해서 정열을 구현할 수 있습니다. 여기서 두 번째 퀴즈... 어떤 BLAST 프로그램을 지정해야 할까요? 쿼리가 DNA이고, 서브젝트가 단백질서열이면.... 바로 BLASTX를 이용해야 합니다. 당연히 아시겠지만, bl2seq는 별도의 formatdb없이 바로 두 시퀀스를 지정하면 됩니다.

BLAST를 하고 나면 생물정보 스크립트 단골 메뉴인 파서 구현이 나오겠지만, 여기서는 일단 BioPerl이라는 걸출한 라이브러리를 이용합니다. 이미 잘 짜여 있는데 새로 만들 필요는 없으니까요. 따라서 직접 구현해야하는 스크립트의 핵심 기능은 사용자가 지정하는 오차범위에 일치하는 긴 결실이 있는지를 판단하는 부분입니다.

먼저 bl2seq의 결과 파일을 보면 Figure 2와 같이, 쿼리 요약, HSP (high scoring pair), 파라메터, 통계량 등을 보여줍니다. 

Figure 2. An example BLAST's result of the deletion in Nsp2.

BioPerl의 Bio::SearchIO 모듈을 이용한 BLAST, FASTA, HMMER, Sim4 등의 다양한 정열 프로그램 결과를 읽거나 저장할 수 있습니다. 바로 이 모듈을 이용해서 bl2seq 결과를 파싱(parsing)할 수 있습니다. 구체적인 사용법은 BioPerl 문서의 매뉴얼이나 HOWTO 문서를 읽어보시길 권합니다.

위 의 방법이든 직접 파싱을 하든 일단 HSP에서 긴 결실 부위를 찾는 것이 핵심인데, 연구를 열심히 하는 생물정보 스크립터들이 잘 빠지는 오류중의 하나가 너무 '현학적인'인 방법을 생각하는 것입니다. 이번의 경우에도 입력 서열의 품질이나 정제 상태에 따라서 지역정열의 결과 패턴이 매우 다양하고, 이를 고려하다 보면 각 컬럼별 통계량을 계산하거나, 프레임시프트 여부, 연속 결실을 계산하기 위한 그래프 알고리즘... 이런 상태에 봉착하셨다면 커피한잔이나 산책 후에 "Perl script should be Perlish"를 상기하면 어떨까요?

다음 Perl 코드는 HSP에서 "-"로 연속되는 결실을 포함하고 있는 문자열을 가져오는 것입니다.

my $query_alignment = $hsp->query_string();


이제 Perl의 초강력 정규식을 이용해서 연속하는 결실부위를 찾습니다. 아래 코드는 최소 크기 이상을 가지는 연속되는 결실을 모두 찾는 코드입니다.

my ($ref_start, $ref_end) = $hsp->hit->strand < 0 ? ( $hsp->hit->end, $hsp->hit->start ) : ( $hsp->hit->start, $hsp->hit->end ); while( $query_alignment =~ /(\-{$threshold_length,})/g ) { $indel_start = $-[1] + $ref_start; $indel_end = $-[1] + $ref_start + length($1) - 1; $indel_length = length($1); push @indels, [$indel_start, $indel_end]; }


이렇게 @indel 배열에 결실에 대한 정보를 저장하고, threshold % indentification (-p), expected start position of indel (-s), expected end position of indel (-e), tolerant positional error(-d)와 같은 추가적인 필터 조건을 구현하고 실제로 동작시키면 아래와 같습니다.

[bckang@gxs ~]$ ./gvs_find_indel.pl nsp2.blsx -s 921 -e 949 -d 15 #Mutation dectector's parameters: p=30 s=921 e=949 d=15 >AAO13191(NA_prototype) 920 948 29 >AAO13191(NA_prototype) >AAO13191(NA_prototype) >AAO13191(NA_prototype) >AAO13191(NA_prototype) >AAO13191(NA_prototype)


이 문제를 해결하는 방법은 매우 다양합니다. 위의 방법은 이미 결실 위치와 크기가 알려진 경우에는 간단한 해법이 될 것이라고 생각됩니다. 마지막으로 스크립트를 만드시는 분들께

Perl is supposed to be Perlish and Python looks like Pythonic.

References

  1. Zhou, L. et al. (2009) The 30-amino-acid deletion in the Nsp2 of highly pathogenic porcine reproductive and respiratory syndrome virus emerging in China is not related to its virulence. J. Virol. 83(10):5156-67.
  2. Han, J. et al. (2007) Identification of Nonessential Regions of the Nsp2 Replicase Protein of PRRSV Strain VR-2332 for Replication in Cell Culture. J. Virol. 81(18):9878-90.
  3. Wikipedia: PRRSV.
  4. Altscul, S.F. et al. (1999) Basic local alignment search tool. J. Mol. Biol. 215:403-410.
  5. Thompson, J.D. et al. (1994) CLUSTAL W: improving the sensitivity of progressive multiple sequence alignment through sequence weighting, position-specific gap penalties and weight matrix choice. Nucleic Acids Res. 22(22):4673-4680.
  6. Perl, http://www.perl.org

  7. BioPerl, http://www.bioperl.org

    KM사업부장 강병철


Posted by 人Co

2013/01/31 12:34 2013/01/31 12:34
Response
No Trackback , No Comment
RSS :
https://post-blog.insilicogen.com/blog/rss/response/125

연재 순서

   1. Assembly
   2. Variation study
   3. Expression study
   4. Epigenomics
  5. Genome Annotation
   6. Next Generation Bioinformatics
   7. Data Management for web 2.0 Era
   8. Semantic Network for Integrated Biology Data
   9. Gene Network Discovery by Text-mining
  10. Centralization for High-throughput Data Analysis



이번 연재에서는 NGS Edition의 마지막 연재로 대용량의 데이터를 다루기 위한 Centralization for High-throughput Data Analysis에 대해 알아보도록 하겠습니다.

3-5. Centralization for High-throughput Data Analysis


 최근 들어 분석하고자 하는 데이터의 용량이 기하급수적으로 늘어남에 따라 데스크탑 컴퓨터 사양으로 분석하기가 어려워지고 있다. 따라서 생물정보 전문가들의 도움이 많이 요구되지만, 한 두 명의 생물정보 전문가들이 처리하기에는 분석하고자 하는 데이터가 급격하게 증가되고 이를 활용한 연구 분야가 다양하여 대규모의 생물정보 전문가를 가용하고 있는 센터가 아닌 곳에서 모든 분석을 지원하는 것은 쉽지가 않다. 또한 유전체 분석과 같은 대규모 프로젝트가 컨소시엄 형식으로 수행되고 있는 상황에서는 다른 연구팀과의 상호 협조를 통한 공동 연구가 중요하며, 이를 위한 데이터의 공유와 관리도 중요시되고 있다. 따라서 연구자들이 공동으로 데이터를 업데이트하거나 다운로드할 수 있는 데이터베이스와 대규모의 용량을 분석할 수 있는 서버, 그리고 서버에서 분석한 결과를 개별 컴퓨터에서 확인할 수 있는 시스템의 유기적인 관계가 요구된다. 하지만 생물데이터의 형식과 이를 분석하는 프로그램의 종류가 다양하므로 데이터의 공유와 관리, 그리고 분석 프로그램의 연계가 상당히 복잡하다.

 대다수의 생물학자들이 윈도우 운영체제의 컴퓨터를 사용하고 있으며 Vector NTI, DNA Star와 같은 생물데이터를 분석하는 상용화 프로그램을 많이 이용하고 있다. 하지만 이런 상용화 소프트웨어는 윈도우에서만 사용가능하며, 분석하는 데이터의 용량 및 길이에 제한을 두고있으므로, 대규모의 데이터를 분석하는 것은 적절하지 않다.

 CLC bio사에서는 대규모의 NGS 데이터 및 대규모의 데이터를 서버에서 분석할 수 있는 CLC Genomics Server(그림 11)와 데스크탑 컴퓨터에서 결과를 확인하고 Vector NTI, DNA Star와 같은 다양한 분석 프로그램에서 나온 결과 데이터를 사용할 수 있는 CLC Genomics Workbench를 개발하였다.

사용자 삽입 이미지
그림 11. Genomics Server 시스템 아키텍처

 CLC Genomics Workbench에서 CLC Genomics Server에 NGS 데이터 및 대규모 분석 데이터를 업데이트하고 분석을 수행한 뒤 CLC Genomic Server에서 분석되어진 결과를 CLC Genomics Workbench에서 확인할 수 있는 플러그인이 있다. 이를 활용하면 대규모 리소스를 필요로 하는 데이터의 분석과 데스크탑 컴퓨터에서 가능한 데이터 분석을 구분하여 연구 업무의 효율성을 증대시킬 수 있다. 또한 윈도우, 리눅스, 매킨토시 등 운영체제에 관계없이 설치가 가능하기 때문에 다양한 운영체제에서 데이터를 분석하는 연구자들이 분석결과를 공유할 수 있다. 대부분의 상용화 프로그램은 연구자들이 원하는 분석 알고리즘이 없을 경우 이후 버전의 업그레이드 내용을 기다리거나, 다른 프로그램을 이용하여 분석할 수밖에 없으므로 분석의 일관성을 유지하기 어렵고, 번거로움이 가증되었다.

 하지만, CLC Genomics Server에서는 External Application 플러그인을 적용하여 CLC Genomics Workbench에 설치되어 있지 않는 알고리즘 및 분석법을 커맨드라인 방식으로 설치한 후 간단한 설정을 통해 별도의 인터페이스를 만들지 않더라도 CLC Genomics Workbench에서 데이터의 입력과 출력을 수행할 수 있으며, 분석 결과를 다른 분석에 응용할 수 있다.

 그림 12는 CLC Genomics Server에서 external application 모듈을 설정하는 것을 보이고 있으며, 그림 13은 external application을 통해서 구축한 새로운 모듈을 이용하여 분석하는 화면을 보이고 있다. 이와 같이 서버급에서 분석할 수 있는 시스템과 데스크탑 컴퓨터에서 분석할 수 있는 프로그램의 연계를 통해서 생물학자들이 복잡하고 다양한 데이터를 분석하는데 많은 도움을 줄 수 있을 것이다.

사용자 삽입 이미지
그림 12. External Application of CLC Genomics Server. 자주 사용되는 커맨드라인 방식의 프로그램은 CLC Genomics Server의 External Application 설정을 통해 별도의 인터페이스를 만들지 않고 CLC Genomics Workbench에서 수행할 수 있다. 이를 이용하여 사용자에 맞춰진 workbench로 재구성할 수 있다.

사용자 삽입 이미지
그림 13. CLC Genomics Workbench 플러그인 적용. External application 플러그인으로 구축된 새로운 모듈은 CLC Genomics Workbench에서 분석이 가능하다.






저희 (주)인실리코젠 Codes팀은 최신 생물정보학관련 연구 동향에 대한 기술 소식지(Quipu Issue Paper)를 발간하고 이 소식지를 통하여 빠르게 발전하는 NGS 시대에 다양한 변화를 습득하고 하시는 연구에 조금이나마 도움이 되길 바라면서 지난 2월부터 약 2개월에 걸쳐 저희 회사 블로그 Quipu(http://www.insilicogen.com/blog/)를 통해 연재를 진행하였습니다. 지난 2개월 동안 최신 생물정보학관련 연구 동향에 대한 기술 소식지 블로그 연재에 많은 관심 가져주셔서 진심으로 감사드리며 저희 (주)인실리코젠은 앞으로도 생물정보 분야에서 끊임없이 노력하는 기업이 되겠습니다.


(주)인실리코젠 Codes팀 배상
Tel: 031-278-0061 / E-mail: codes@insilicogen.com



Posted by 人Co

2010/04/09 09:42 2010/04/09 09:42

연재 순서

   1. Assembly
   2. Variation study
   3. Expression study
   4. Epigenomics
   5. Genome Annotation
   6. Next Generation Bioinformatics
   7. Data Management for web 2.0 Era
   8. Semantic Network for Integrated Biology Data
   9. Gene Network Discovery by Text-mining
  10. Centralization for High-throughput Data Analysis


이번 연재에서는 현재까지 공개  데이터베이스에 축적된 공개된 데이터 및 자신이 보유한 데이터를 이용하여 새로운 정보 및 생물학적 의미를 찾는 Gene Network Discovery by Text-mining에 대해 알아보겠습니다.


3-4. Gene Network Discovery by Text-mining


 최근의 생물학 연구의 이슈는 데이터를 생산하는 것보다 현재까지 공개 데이터베이스에 축적된 공개된 데이터 및 자신이 보유한 데이터를 이용하여 새로운 정보 및 생물학적 의미를 찾는 부분에 있다. 즉 데이터의 ‘생산’에서 ‘연결’로 생물정보학의 관점이 옮겨가고 있다고 할 수 있다. 따라서 다양한 분야의 실험데이터, 문헌데이터, 공개데이터 등을 네트워크 형식으로 연결하여 새로운 지식을 발굴할 수 있는 시스템이 주목받고 있다.

현재 NCBI의 PubMed에는 18,000,000건 이상의 논문들이 수록되어 있으며, 하루에도 수  십편의 논문들이 새롭게 업데이트되고 있다. PubMed에 수록되어 있는 저널들은 의학, 생명, 생물에 관련된 연구 논문들이며, 오랜 기간에 걸쳐 저널의 정보에 대한 공신력이 검증된 논문들이라고 할 수 있다. 따라서 연구자가 새로운 주제를 기반으로 하여 연구를 시작하고자 할 경우, 가장 선행되어져야 하는 것은 논문 리뷰라고 할 수 있다. 다른 사람이 비슷한 연구를 수행한 경험이 있는지, 어떠한 방법에 의해서 연구가 진행되었는지, 또한 그 결과는 어떠하였는지 등을 참조하게 된다. 이와 같은 논문 리뷰가 선행된 후 자신의 연구 방향을 설정하게 된다. 그만큼 다른 사람에 의해서 분석되어진 연구 정보가 최근 들어서는 상당히 중요하다고 할 수 있다. 더구나, 최근에는 인터넷을 이용한 데이터의 정보교환이 활발하여 엄청나게 많은 문헌 정보들을 손쉽게 찾아볼 수 있기 때문에 일정한 부분에서는 직접 실험을 하지 않더라도 그와 유사한 실험을 수행한 결과물을 얻을 수 있다. 따라서 이와 같은 문헌 정보의 모래 언덕을 잘 살펴서 보물을 찾아낼 수 있는 방법들이 주목을 받고 있다.

한 예로 Ariadne사의 MedScan과 Pathway Studio는 텍스트 마이닝이라는 컴퓨터 알고리즘을 이용하여 주어진 문헌 정보에서 유전자와 질병, 화학물질, 세포내 프로세스, 대사회로와 같은 엔티티(Entity)들의 관계를 자동으로 추출하여 테이블과 다양한 그래프로 관계들을 보여주는 프로그램으로 대사회로, 유전자 조절 네트워크, 단백질 상호작용 맵과 같은 실험결과를 이해하는데 상당히 유용하다(그림 7). Pathway Studio는 척추동물, 식물 연구의 생물학적 연관관계, ontology와 pathway들의 정보를 포함하고 있는 ResNet 데이터베이스와 자연언어처리기술을 이용하여 과학문헌을 자동으로 읽고 생물학적인 관계를 추출하는 기능을 가진 MedScan으로 구성되어 있다. MedScan의 경우에는 약 1천개의 논문 초록을 대상으로 생물학적인 관계를 추출하는데 2~3분밖에 걸리지 않으므로, 대량의 수집된 논문에서 특정한 바이오마커를 발굴하거나 특정 단백질 또는 질병과 관련된 네트워크 정보를 검토하기에는 상당히 유용하다고 할 수 있다.
 
보통 하나의 유전자와 관계하는 다양한 정보를 찾아보기 위해서는 수많은 데이터베이스와 문헌, 웹사이트를 검색하여 그 연관관계를 하나씩 도출해야 되지만, Pathway Studio와 같은 프로그램은 그와 같은 일련의 시간과 노동력이 상당히 투자되어야 하는 업무를 효율적으로 지원함으로써 연구자의 보다 빠르고 충실한 결과물을 얻을 수 있도록 지원한다.

사용자 삽입 이미지
그림 7. Architecture of MedScan and Pathway Studio

그림 8은 Cholestasis에 관련된 약물과 단백질 등의 연관관계를 Pathway Studio를 이용하여 연구자가 쉽게 이해할 수 있는 방식의 그래프로 재구성한 것이다. 이와 같은 방법으로 복잡한 질병과 약물, 단백질 및 대사 작용의 네트워크를 시각적으로 이해하기 쉽게 제공하고 있다.

사용자 삽입 이미지
그림 8. Pathway Studio workflow diagram


그림 9는 EMB라는 유전자를 대상으로 관련 있는 다양한 유전자 및 질병, 약물, 세포내  프로세스 등을 연결한 그래프로서 연결되어있는 라인을 클릭하면 그림과 같이 연관관계를 표현하는 문헌정보를 확인할 수 있어 연관관계의 정확성 및 신뢰성을 뒷받침하고 있다.

사용자 삽입 이미지
그림 9. Entity와 Relation의 네트워크 및 관련 문헌의 확인


그림 10은 PubMed에서 Curcumin과 Prostate Cancer에 관련된 논문을 검색하여 수집된 수 십 여 편의 논문에서 MedScan의 텍스트 마이닝 알고리즘을 이용하여 네트워크를 재구성한 것이다. 그림에서 보는 것과 같이 Curcumin과 Prostate Cancer 사이에 있는 단백질이 Prostate Cancer를 억제하는 역할을 한다는 정보를 검증된 문헌을 통해서 확인하는 것이다.


사용자 삽입 이미지
그림 10. MedScan을 통한 문헌정보의 네트워크 구성


다음 연재에서는 NGS Edition의 마지막 연재로 대용량의 데이터를 다루기 위한 Centralization for High-throughput Data Analysis에 대해 알아보도록 하겠습니다.

많은 관심 부탁드립니다.


Posted by 人Co

2010/04/05 15:44 2010/04/05 15:44

연재 순서

   1. Assembly
   2. Variation study
   3. Expression study
   4. Epigenomics
   5. Genome Annotation
   6. Next Generation Bioinformatics
  7. Data Management for web 2.0 Era
   8. Semantic Network for Integrated Biology Data
   9. Gene Network Discovery by Text-mining
  10. Centralization for High-throughput Data Analysis

이번 연재에서는 생물학의 많은 데이터를 활용하여 새로운 의미를 발굴할 수 있는 Semantic Network for Integrated Biology Data에 대해 알아보겠습니다.



3-3. Semantic Network for Integrated Biology Data

 
 여있는 유전체 데이터와 각종 실험을 통해서 얻어진 수많은 데이터 사이에서 새롭게 응용할 수 있는 지식은 무엇일까? 인터넷이 발달된 최근에는 인터넷 쇼핑이 괄목할 만한 성장을 보이고 있으며, 고객들에게 좀 더 좋은 정보를 제공하고자 다양한 알고리즘 및 분석기법을 적용하고 있다. 예를 들어서 상품을 주문한 고객의 구매 목록에 대한 특징을 찾아서 비슷한 성향의 신제품이 있으면 자동으로 고객에게 이메일로 상품광고를 전달하는 것과 같은 맞춤형 광고기법이 한 예일 것이다.

이와 맞물려 생물학의 많은 데이터를 활용하여 새로운 의미를 발굴할 수 있는 방법을 찾고자 하는 연구들이 진행되고 있으며, 이와 관련한 의미론적 지식 정보 추출을 위한 시스템이 개발되고 있다. 또한 최근의 연구 동향은 단순히 데이터를 생성하고 쌓아두는 것 보다 각 생물학 데이터들의 연관관계를 도출하여 어떻게 각 데이터들을 연결하여 새로운 정보를 발굴할 것인가라는 ‘How to link between the data’에 초점이 맞추어져 있다.

축적된 생물학 데이터에서 새로운 의미를 발굴할 수 있도록 지원하는 시스템 가운데 Biomax Informatics AG사 BioXM 지식관리 시스템을 꼽을 수 있다. BioXM 은 연구실 및 센터의 다양한 생물, 생명, 의학 관련 데이터에서 의미론적 정보를 추출할 수 있도록 데이터의 시맨틱 네트워크를 구축하는 플랫폼이다(그림 2).

사용자 삽입 이미지
그림 2. 데이터의 시멘틱 네트워크 흐름도

이미 미국 국립암센터(NCI)와 연계하여 시스템을 운용, 활용하여 암에 관련된 실험정보 및 분석정보, 문헌정보를 통합한 시스템을 구축한 바 있다(그림 3).

사용자 삽입 이미지
그림 3. BioXM의 데이터 통합 개념

이와 같은 지식관리 시스템은 기존에 구축한 수많은 실험정보, 분석정보, 문헌정보들 사이의 연관관계를 도출하여 새로운 의미를 찾고자 하는 바램을 충족시켜준다. 대다수의 시스템들이 RDBMS 형식의 데이터베이스로 구축되어 있으므로, 모든 데이터의 통합에 의한 새로운 형태의 의미를 발굴하기 위해서는 기존 시스템보다 더 확장된 형태의 데이터베이스 구축 및 IT 시스템 구축이 선행되어진다. 하지만 이와 같이 단순히 시스템의 확장 구축을 통해서는 얻어질 수 있는 데이터의 유기적 연관관계는 한계를 보이게 된다. 또한 데이터베이스의 확장이 진행될수록 생물학자들의 지식이 더 많이 요구되지만 IT와 BT 전문가의 상호 생각의 차이로 인해 최종적으로는 생물학자들이 원하는 형태가 아닌 별개의 시스템으로 구축되는 경우가 다반사이다. 이에 반해 BioXM 지식관리 시스템은 기존 데이터들을 새로운 데이터베이스 스키마를 설계하여 통합 연계하는 것이 아니라 각 생물학 데이터의 기존 의미를 알고 있는 연구자가 퍼즐을 맞춰가는 방식과 같이 edge와 node의 꼬리에 꼬리를 무는 방식으로 데이터들을 선택하여 서로 연계된 데이터들을 통합하고 관리하는 지식관리시스템이다. 이와 같은 방식으로 BioXM은 Genomics, Transcriptomics, Proteomics 등 다양한 omics 데이터들과 문헌정보 등을 손쉽게 통합할 수 있을 뿐만 아니라 다양한 방법으로 데이터를 조합하여 연구자가 알고자 원하는 질문에 알맞은 답을 얻도록 지원한다.

사용자 삽입 이미지
그림 4. Object와 Relation에 대한 개략적인 데이터 모델


그림 5는 환자에 관한 질병과 질병에 관련된 유전자와 대상 약물 및 임상실험과 같은 다양한 정보를 이용하여 그래픽 사용자 인터페이스 형태로 모델링을 구현한 사례를 보이고 있다. 지금 그림에서 보이고 있는 데이터 이외에 다양한 정보가 있을 경우에도 동일한 방법으로 모델링을 구현하여 좀 더 폭넓은 데이터 연관 관계도를 생성할 수 있다.

사용자 삽입 이미지
그림 5. BioXM 데이터 모델링 구현


BioXM 지식관리 시스템의 특징 및 장단점은 표 1과 같다.

사용자 삽입 이미지
암을 연구하는 연구자들은 자신이 가지고 있는 데이터를 이용하여 다음과 같은 다양한 궁금증을 표현할 수 있으며, BioMax사의 BioXM과 같은 시스템을 이용하여 각 데이터들의 네트워크를 구축하면 궁금증에 대한 답변을 얻을 수 있을 것이다. 이와 같은 지식 발굴 시스템은 다음과 같은 문제점을 해결하는데 도움을 줄 수 있다(그림 6).

사용자 삽입 이미지
사용자 삽입 이미지
그림 6. BioXM 시스템을 이용한 지식 네비게이션


다음 연재에서는 현재까지 공개  데이터베이스에 축적된 공개된 데이터 및 자신이 보유한 데이터를 이용하여 새로운 정보 및 생물학적 의미를 찾는 Gene Network Discovery by Text-mining에 대해 알아보겠습니다. 많은 관심 부탁드립니다.



Posted by 人Co

2010/04/01 15:00 2010/04/01 15:00



« Previous : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : Next »