Monday, March 1, 2010

Jquery이용한 dynamic 페이지 스타일

Javascript 라이브러리인 Jquery를 이용하면, 간단하게 복잡한 Javascript 기능을 구현할 수 있다.
최근에 간단한 웹DB를 만들면서 로딩된 page에 CSS 스타일을 적용하는 기능을 구현하였는데, Jquery( 및 Javascript) 를 이용할 때, 주의해야할 사안에 실수를 저지르는 바람에 한참 삽질을 했는데, 이를 정리해 본다.

먼저 아무런 내용이 없는 html 구조를 아래와 같이 설정하자.
(이 페이지의 html코드에서 html tage (<, >) 가 허용이 안되어, tag 괄호를 <> 대신 () 를 사용하였다. )

(html)
(div id="main")

(/div)
(html)


그다음 Jquery를 이용해서, id=main 부분에 외부 html 파일을 읽어 뿌려주는 부분을 html head부분에 script로 추가한다.

(script)
$(document).ready(function(){
$(#main).load('content.html');
});
(/script)



* 여기서 첫번째 문제, load된 html 내용에 원 html 파일에 적용된 CSS 가 적용될까?
적용된다. 페이지에 설정된 CSS 이기 때문에 load되어 원 페이지의 CSS 규칙 적용을 받는 내용에도 CSS 규칙이 적용된다.

다시 page로 돌아가서, 이번에는 load된 html의 특정 div id 를 가진 부분에 대해 CSS 규칙을 추가한다.

(script)
$(document).ready(function(){
$(#main).load('content.html');
$('#top').addClass('css_top'); //id=top에 CSS 규칙 css_top을 적용한다.
(/script)



* 여기서 두번째 문제, load된 html의 특정 부분에 CSS 규칙이 적용될까?
정답은 조건적으로 그렇다 이다. 문제는 네트워크 지연에 있다. AJAX방식의 모든 구현에서 발생하는 문제로, script에서는 load 이후, css가 추가되는 것 처럼 보이지만, 실제 html이 load되는 시점은 html을 읽어오는 동안의 '지연' 이 발생하므로 css 추가 부분이 적용된 이후가 될 수 있다. 이런 경우엔 css 규칙 적용 부분이 먼저 실행되고 html이 로딩이 되었기 때문에, css 규칙 추가가 이루어 지지 않는다.

실제로는 plain html 파일인 경우, 지연효과가 미미하여, 이 문제가 발생하지 않을 수 있는데, 내가 작업하는 상황에서는 읽어오는 파일이 그 자체로 Mysql 을 긁고 processing 을 하여 조금 시간이 걸리는 php 파일이었기 때문에, 이 문제가 발생하였다.

이런 상황에서 문제없이 순서대로 원하는 기능을 구현하기 위해서는 '콜백' 기능을 이용해야 한다. 즉 각 jquery 라인을 순서대로 실행하도록 조건을 걸어두는 것이다.

콜백 기능 구현은 간단한데, 위의 상황에서 html 파일을 load하고 난 이후, css 규칙을 추가하는 콜백 함수를 구현하면, 원하던 기능을 문제없이 수행할 수 있다.


(script)
$(document).ready(function(){
$(#main).load('content.html', function(){
$('#top').addClass('css_top');
});
});
(/script)

Sunday, February 21, 2010

우리 연구소의 티스푼은 얼마나 빠르게 사라지나?

http://www.bmj.com/cgi/content/full/331/7531/1498?view=long&pmid=16373727

'연구소에서 티스푼은 얼마나 빠르게 사라지나? ' 에 대한 연구 논문이 BMJ(British medical journal) 라는 저널에 2005년에 게제되었었다. 메인스트림의 과학적 질문과는 다분히 거리가 멀어 보이는 이 연구가 Impact factor 가 12나 되는 의학 저널에 실렸다. 의학적으로도 이 연구가 그리 연관성이 있어보이지 않는데...

연구 내용을 정리해 보면,

* 연구 장소 : 140명 정원의 연구소 .

* 연구 내용 : 70개의 티스푼을 순서메겨 이름표를 표시하여, 5개월간 이들의 행방 추적.

* 연구 결과 :
1)80%의 티스푼 ( 70개 중 56개) 가 연구기간 중 사라짐.
2)티스푼의 품질은 티스푼 사라짐 정도와 무관함.
3)사라지는 속도로 고려해 볼 때, 이 정도 규모의 연구소에서는 연간 250개 티스푼이 필요하다고 추정됨.

연구소에서 티스푼은 office material로 필수적인 것이기 때문에, 티스푼의 안정적인 공급을 위해 이런 연구가 의미있다라고 생각해 볼 수 있을까? 의학적인 성과라면, 의학 연구 기관 종사자들이 안정적으로 차를 타마실 수 있는 안정적인 티스푼 공급량을 산출했다라고 할 수 있을까 ? ㅋ

이런 식의 연구가 필요한 분야가 있을 것 같긴 하다. 생활과학 관련 분야? 티스푼 생산 업종 관련 기업의 연구소 등. 이 논문의 footnote를 보면 유사 연구도 많고, citation 된 횟수도 7회 정도로 된 걸 보면, 이런 연구를 전문적으로 하는 사람들이 있을 것 같기도 한데, 확신은 못하겠다.

여튼, 이런 식의 다소 엉뚱한 연구들이 수행되고, 논문으로 publish 될 수 있는 문화적 토양이 튼튼한 사회들이 참 부럽다. 창의적이란건 사실 정말 별게 아니다. 그저 스스로 재밌어 보이는 일련의 path를 따라가면 자연스럽게 남들과 다른 독특한 사고를 할 수 있고, 시도를 하게 된다. 우리 나라에선 이런 창의적인 사고도 결국 '성과' 지표의 일환으로 연결 될 때, 의미있는 것으로 판단되지만, 이러한 엉뚱해 보이는 연구들이 시도조차 될 수 없는 peer pressure가 존재하는한, 그 어떤 과학 부흥 정책도 정말 정책 입안자들이 원하는 '돈되는 성과'로 나타나긴 요원한 일이다.

Thursday, February 18, 2010

Upcoming Perl book


Effective Perl Programming 2판이 2010년 5월 17일 출간 예정이라고 한다.
Amazon에 올라온 책 설명을 요약해 보면 1판에 비하여 CPAN에 관한 9개 챕터 추가, 다양한 application과 UI 기법들, 연습문제 및 풀이에 대한 업데이트가 이루어졌다고 한다.

Effective Perl Programming 1판을 보지 않은 상태에서, 연습문제 및 풀이가 들어가 있는 것으로 보아, perl learner를 위한 책이 아닌가 생각했는데, 1판의 독자리뷰를 보니, 완전한 초심자들을 위한 책은 아니라고 한다. 일례로 1992년 부터 perl 을 쓰고, community college에서 강의까지 한 사람이 이 책을 읽고 다양한 tip & technique 을 습득할 수 있었다고 한다.

이러한 예로 ($a,$b)[$a<$b] 같은 구문을 들었는데, 이 구문은 두 변수 중 큰 값을 반환한다고 한다.

my $a=5;
my $b=10;
my $c=($a,$b)[$a<$b];


에서 $c 를 찍어보면 값이 10이 나온다. 이 구문은 처음 봤는데, 이 책에 이런식의 다양한 기법들이 등장한다고 하니, 책이 나오면 한번 사봐야겠다는 생각이 든다.

Thursday, February 11, 2010

Dynamic modularity for disease prediction

2009년 2월에 출간된 Dynamic modularity in protein interaction networks predicts breast cancer outcome ( nature biotech, 27, 199 ) 에서 'Dynamic modularity' 라는 개념을 토대로 PPI network 을 분석하고, breast cancer 환자 survival data를 이용 환자 survival을 prediction 한 연구 내용을 소개하고 있다.

기본적으로 Dynamic modularity라는 개념은 이미 이전에 많이 언급되었던 내용인데, network의 연결이 상황에 따라 느슨하거나 타이트하게 변화한다는 것이 핵심이 된다.

논문에서는 우선 분석 대상이 되는 유전자를 network의 허브 유전자로 한정한다. 이렇게 허브 유전자로 한정한 원인은 두가지 정도 생각해 볼 수 있는데, 첫째, network 의 허브들 간의 연결에 주목하여 중요한 biological path 를 커버하여 분석할 수 있고, 동시에 주요하지 않은 유전자들을 모두 분석에 사용하여 과다하게 복잡한 양의 결과 분석을 통해 올 수 있는 노이즈를 사전에 제거할 수 있다는 의미, 두번째로는 분석 계산양의 감소 효과다. 논문에서는 허브 유전자간 co-expression 계산을 통해 네트워크의 dynamic modularity 를 잡아내는데, 네트웍에 들어있는 모든 유전자들을 사용한 pair-wise co-expression 계산량은 node 개수가 증가함에 따라 기하급수적으로 늘어나 계산 시간을 엄청나게 늘린다. 40,000개 노드 정도가 되면 array 숫자에 따라 틀리긴 하겠으나 경험상 일주일 이상 하나의 컴퓨터가 온전하게 소요되어야 할 정도 ( 포스팅 참조 ).

한정된 hub 유전자들을 두고, tissue-specific human gene expression dataset을 이용해 1)intramodular hub 와 2)intermodular hub 로 허브 유전자들을 구분한다. 이때, intramodular hub 는 tissue non-specific하게 높은 co-expression 정도를 보여주는 유전자들이고, intermodular는 tissue에 따른 co-expression 이 변화량이 들쭉날쭉한 유전자들이 된다.

논문에서는 이렇게 구분된 두개 클래스의 허브 유전자들에 대한 network topology, functional analysis 등을 통해 intra-,inter-modular hub 유전자들의 특성을 비교 분석한다.

마지막으로 breast cancer patient cohort data를 이용해 breast cancer patient 에 specific하게 강하거나 약한 co-expression 을 보이는 허브 유전자 쌍들을 feature로 이용해 prediction 하고 그 결과를 리포팅하고 있는데, 결과는 현재 상업적으로 이용되는 breast cancer diagnostics 기법에 비해 6~23% 높은 정확도를 보인다.

Sunday, January 31, 2010

Counsyl :: 개인 유전체 기반 기업의 진화

뉴욕타임즈 1월 29일자 온라인판에 Counsyl 이란 또하나의 개인 유전체 기반 기업에 대한 기사가 실렸다. ( http://www.nytimes.com/2010/01/29/business/29gene.html?pagewanted=1&ref=research ) Counsly의 기술은 23andME와 무척 닮았다. 킷에 침을 뱉아 회사로 보내면 회사에서 침에 들어있는 DNA를 SNP chip으로 찍어 개개인의 SNP 를 분석하여, 다양한 분석 서비스를 제공하는 방식이 2008년 TIME지 선정 올해의 기술로 선정되게 하였던 23andME의 진단킷이다. Counsyl 도 이와 같은 방식을 사용한다. 집에서 서비스를 신청하면 진단킷이 배송되고, 진단킷에 침을 뱉아 회사로 우송하면 회사에서 SNP chip을 이용해 개인의 유전체를 분석한다.



여기까지는 23andME의 서비스와 다를 것이 전혀 없다. Counsyl 의 핵심은 그 이후다. 바로 "어떤 분석 정보를 제공"하느냐가 23andME와 차별화 된다. 23andME가 유전체 정보 분석 당사자의 다양한 유전체 분석 정보를 제공하는데 반하여, Counsyl은 유전체 정보 분석 제공자의 2세에 대한 유전 질병을 진단해준다.

단 한번의 SNP chip 분석을 통해 내 2세가 100여개 이상의 다양한 유전질병에 노출될 가능성을 조기 진단할 수 있다. 그것도 단돈 349$에. 부모는 2명이니 698$면 정확하게 100여개의 유전질병에 대한 진단을 임신 이전에 진단해 볼 수 있다. 현재 각각의 유전질병에 대한 진단을 기존의 진단 방법으로 할 경우 250,000$ 정도가 소요된다고 하니, 일반인의 관점에선 이것이 정말 획기적인 서비스라 생각할 수도 있을것 같다. 실제로 뉴욕타임즈 기사의 댓글에 이러한 류의 댓글들이 달려있다.

Genetics연구자들, Personal genomics에 관심을 가지고 연구하고 있는 과학자들의 관점에서 보면 이런 테스트는 전혀 새롭지도 않고 센세이셔널하지도 않을 것이다. SNP chip을 찍어서 그동안 published된 GWAS 관련 정보를 그대로 mapping만 하면 끝나는 정말 심플한 idea를 기반으로한 서비스일 뿐이니까. 물론 Counsly의 서비스를 실용화 하면서는 genetic counsler 와 의사들이 서비스 이후의 전문가적 분석과 사후 처리 서비스가 뒤따를 것이긴 하지만, 핵심이 되는 기술은 전혀 새로울 것이 없는 간단한 아이디어에 기반하고 있는 것이 사실이다.

그러나 Counsyl의 전략은 명쾌하고 강력하다. 앞으로의 개인유전체 사업에서는 이러한 관점의 차이로 어떻게 서비스를 잘 포장하느냐가 기업의 성패를 결정하게 될 것이라 생각한다. 23andME의 분석기술과 동일한 Counsyl의 서비스가 '2세의 유전질병 진단' 이란 이름으로 옷을 바꿔 입고 나오면, 이건 일반인에겐 완전히 다른 기술을 가진 서비스로 비춰진다. 그리고 그 서비스 내용은 너무나 매력적이고, 너무나 적절하게 target 고객층을 공략한다. 2세를 가질 계획이 있는 모든 부부들이 왜 이 값싸고 정확하고, 유전 질병을 가진 2세를 조기진단하거나 치료할 수 있게 해주는 서비스를 우리돈으로 단돈 40만원(부부 80만원)에 받아보지 않겠나?

이와 비교하면 같은 분석 기술을 가지고 시장에 먼저 상륙한 23andME의 캐치프레이즈는 너무 두리뭉실해 보이고, target 고객층이 명확하지 않다. " 건강, 질병 그리고 가계 분석을 위한 유전 진단 " 이라는 캐치프레이즈를 보고 40만원을 들여 꼭 해야 겠다는 생각이 드는 사람은 그렇게 많지 않을 것이다.

23andME 서비스는 개인 유전체 테스트 불가방침으로 몇몇개 주에서는 서비스 허가가 떨어지지 않은 것으로 알고 있다( 캘리포니아와 뉴욕주에서 의사의 허가 하에 서비스 받을 수 있도록 제한하고 있다). 이에 반해 Counsyl은 명확한 의학적 의의( 2세 유전질병 진단) 와 그 경제적 이점 ( 기존 테스트의 1/100 가격으로 진단 가능) 을 잘 어필하여, 의료보험 지정 테스트로도 승인을 받아, 탄탄한 사업망을 구축하였다.

앞으로 유전체 기반 DTC( Direct To Consumer ) 서비스 산업은 Counsyl 과 같이 명확한 비전과 고객 타겟을 가지고 진출하는 회사들이 주목받고 성공적인 비즈니스를 할 수 있을 것으로 생각된다. 유전체 기반 기술의 기반이 되는 기술은 기본적으론 매우 단순하고, 또 모든 회사들이 비슷한 기술에 기반할 수밖에 없다. ( SNP chip, 향후엔 whole genome sequence ) 이런 동일한 platform위에서 어떤 방식으로 서비스를 제공할 것인지가 비즈니스의 성패를 가름할 것이다. 이는 마치 동일한 PC 위에 어떤 소프트웨어를 구축하여 올릴 것인지가 관건이 된 Computer 산업의 역사를 반복하는 듯 하다. 컴퓨터 산업의 최강자로 남은 기업은 Microsoft 와 Google 이고, 이 두 기업 모두 하드웨어 생산 업체가 아닌, 소프트웨어 기반 회사다. 앞으로 PG ( Persoanl Genome ) 산업사가 이런 Computer 산업의 역사를 반복할지 두고볼 일이다.

마지막으로 Counsyl의 CTO인 Balaji Srinivasan의 말을 덧붙여 본다.

"The goal is not to maximize revenue but to bring the benefits to humanity"
"Nothing is more relevant than making sure your child doesn’t die from a preventable disease"

개인유전체 기반 회사라면 이런 인류애와 사명감, 세상을 좀 더 행복하고, 건강하게 만들려는 의지가 기본이 되어야 하지 않을까

Tuesday, January 19, 2010

Median Rank Score ( MRS ) for cross-platform microarray classification

Patrick Warnat의 논문( BMC bioinformatics, 6, 265 ) 을 읽던 중, Median Rank Score 을 이용한 cross-platform microarray data integration 방법이 있어 정리해 본다.

[Procedure]
  1. 서로 다른 Microarray dataset 두개를 통합하는 경우, n개 array 로 이루어진 datasetA 와 m개 array로 이루어진 datasetB 가 있다고 가정하고, 먼저 둘 중 하나의 dataset을 reference dataset으로 정한다.
  2. Reference dataset의 각 유전자( probeset) 에 대해 median expression value 를 구한다
  3. 유전자에 대한 Median expression value vector를 오름차순으로 sort
  4. Non-reference dataset의 각 array를 expression value를 기준으로 오름차순으로 sort
  5. Sort된 non-reference dataset의 array 의 각 유전자의 expression value를 같은 순위의 reference dataset의 median expression value vector의 값으로 대치한다.

Procedure를 보면 quantile normalization 방법의 기본적인 아이디어와 유사하다는 것을 알 수 있는데, 자연스럽게 MRS 를 이용한 integration 결과도 quantile normalization과 유사하게 서로 다른 range의 expression value를 공통된 range의 expression value로 normalization 하게 된다.

Wednesday, January 13, 2010

생명정보학( Bioinformatics, Computational biology) 선도 연구기관 랭킹

1000 genome project ( 1000명의 genome을 sequencing 하는 HGP 이후의 가장 큰 국제 생물학 연구 컨소시움 ) 에 참여하는 연구 그룹 중, 실험 부분을 제외한 순수 data analysis 참여자들의 숫자를 counting 하고 이 순서로 생명정보학(Bioinformatics, Computational biology) 대학/연구그룹 랭킹을 매겨봤다.

HGP, 1000 genome project 를 리딩하는 sanger 연구소가 1위, MIT와 하바드의 broad institute이 2위로 bioinformaitcs 분야를 이끌고 있는걸 확인할 수 있다.

미국 탑 대학들 중 칼텍이나 스탠포드는 분석 참여자 0명과 1명으로 이 순위 최하위권에 랭크되어 있다. 시퀀싱 프로젝트인 만큼 업계 리더들인 Applied biosystems 와 Illumina 가 10위 12위를 마크하고 있다. 또 아시아권에선 유일하게 Beijing Genome Institute이 미국의 대표적인 Bioinformatics 기관인 NCBI, Illumina와 공동으로 12위를 마크하고 있다. 유럽의 연구기관들은 1위를 차지한 Sanger institute, 5위의 Oxford, 7위 EBI, 17위의 MPI ( Max Planck Institute ) 이 상위권에 랭크되었다.

향후, Personalized genomics 가 생물학 연구의 핵심화두이자, 바이오 산업 중흥의 열쇠를 쥐고 있다는 것을 생각하면, 앞으로 박사과정 및 포닥을 위한 연구기관 선정을 고려하고 있는 경우, 이 리스트에 포함된 연구기관들과 연구자들을 적극 고려해 봄직 하다고 생각한다.

#### 1,000 Genome project, Data analysis 참여 연구자 숫자에 따른 생명정보학 연구기관 랭킹 ####
1. Sanger Institute 30
2. Broad Institute 26
3. Yale University 14
4. Cornell University 13
5. Oxford University 11
6. Baylor College of Medicine 10
6. European Bioinformatics Institute 10
6. Washington University in St. Louis 10
9. University of Chicago 9
10. Applied Biosystems 7
10. University of Michigan 7
12. Illumina 6
12. Beijing Genomics Institute, Shenzhen 6
12. National Center for Biotechnology Information 6
15. Boston College 5
15. University of California, Santa Cruz 5
17. Cold Spring Harbor Laboratory 4
17. University of Washington 4
17. Max Planck Institute for Molecular Genetics 4
20. Roche Applied Science 3
20. Louisiana State University 3
22. University of Utah 2
22. Brigham and Women's Hospital / Broad / Harvard 2
22. University of Auckland 2
22. National Human Genome Research Institute 2
22. Translational Genomic Research Institute 2
22. University of California, San Diego 2