Thursday, July 26, 2007

R에서 heatmap

R을 이용해 heatmap을 그릴 때 label이 표시가 안 될 때가 있다.

microarray data를 읽어온 파일의 경우 '., (, ) ' 등의 특수 문자가 label name 즉 row or column name이 되는 경우에 R에서는 이를 그대로 '.'으로 치환하는데, 이렇게 치환된 name은
heatmap을 그리면 표시가 되지 않을 때가 있다. (정확한 원인은 아직 모른다, 될 때도 있고 안 될 때도 있으니... 이건 뭐...)

label에 표시되지 않는 name의 예 : Control(D)_2

아래 그림 : column에 label이 표기가 빠져있는 heatmap

Wednesday, July 11, 2007

libaffy : Affymetrix processing programe

http://src.moffitt.usf.edu/sf/projects/libaffy

User interface로 손쉽게 가장 널리 사용되는 affymetrix processing 방법 MAS와 RMA를 이용할 수 있는 프로그램. CEL 파일과 CDF 파일을 인풋으로, 아웃풋은 processing된 파일. DEG selection 과 같은 추후 작업 기능은 제공되지 않는다.

R+Bioconductor 에 비해 장점은 메모리를 덜 먹고 약간 빠르다는 것. 수십장의 array의 경우 메모리 문제로 processing이 안 되는 경우가 있는데, 이를 해결해 준다고 논문에 지껄여져 있다.

Tuesday, July 10, 2007

Top journal의 article은 뭐가 특별한가?

얼마 전 내 관심 분야인 protein evolution에 관해 발표된 논문을 읽었다. (Science,314,1938,2006) 논문의 핵심은 protein interaction network의 topology와 특성들은 protein structure와 밀접한 연관이 있다는, 어떻게 보면 당연한 내용을 재탕한 것에 지나지 않는다.

Protein interaction network의 hub protein들은 interaction type에 따라 party hub와 date hub로 나뉘는데, 이 때 party hub는 protein complex 처럼 함께 interaction하며 존재하고 기능하는 protein들이고, date hub는 cell signalling의 hub protein으로 기능하여 여러가지 protein들과 시간과 장소에 따라 interaction하는 protein이다.

여기에 더해 이전까지 리포팅 된 내용은 party hub와 date hub의 evolution rate의 차이, protein network과 관계된 내용은 아니지만, protein structure의 특성과 evolution rate의 관계 정도 였다.

내 석사 졸업 논문도 바로 이 protein structure 특성과 evolution rate의 관계에 관한 further study였고, 이 점이 또한 이 science 논문에 관심을 증폭시킨 원인이기도 하다.

논문을 읽으면서 난 당연하지... 당연하지... 를 연발했는데, 이 topic에 관심있는 연구자라면 누구나 그런 반응을 기대할 수 있을 만큼 당연한 연구에 당연한 결론이었기 때문이다. 그런데 어떻게 이 논문이 science에 게재될 수 있었을까?

나름대로 의견을 제시해 보자면,

첫째, Gerstein 이라는 protein network 연구의 대가 랩에서 행해진 연구라는 것
둘째, 누구나 알고 있는 and 이미 밝혀진 두 가지 topic을 통합하여 새로운 insight를 제공할 수 있는 연구라는 것 정도가 될 것 같다.

두번째 이유보다는 당연히 첫번째 이유가 Big journal publish에 중요함은 다시 말할 필요가 없을거다. 만약 내가 같은 논문을 써서 science에 submit 했다면 당연히 reject되었을 거고, 논문의 quality로 보자면 Bioinformatics, Plos computational biology, NAS 회원의 도움이 있다면 PNAS 정도가 maximum이지 않았을까...

개인적으로 top journal에의 출판을 별로 중요하게 생각하진 않지만, publication list가 나중의 사회적, 경제적 위치의 결정에 관여하는 한국 사회에 살고 있다보니 이런 문제에 관심이 가는건 어쩔 수 없다.

Monday, July 2, 2007

Wanted Video clips in google

구글 Video (video.google.com) 에서
authors@google을 검색하면 Bestseller나 이슈가 되는 책의 저자들의 구글에서의 강연 video들이 검색되어 나온다.

techtalk 은 분야를 막론한 다양한 science/technology의 연구자들의 구글 세미나가 검색된다.

Sunday, June 24, 2007

Flow: The Psychology of Optimal Experience

I have been thinking about how to be happy in my life for a long time as this question is the life time problem for the rest of the world. Could I be happy if I become rich? have high social status? or wonderful family with beautiful wife? Through the course of thinking, I can say that these kind of material, visuable things could not make me happy.

My answer to the question is that only when we do what we love to do and enjoy. Success is also the result of this way of life. Anyone who do what they enjoy can be happy. But not all of them achieve success in terms of material world. People just think that people with bunch of visuable things did success. When they say so, they only concern about the success in society. But we can't say that a person is successful if s/he think they are not happy.

My definition of success is the same as being happy. How to be happy and successful at the same time then? The book 'Flow: The Psychology of Optimal Experience' answers to this question.

Tuesday, June 19, 2007

Perl programming common error

Array 변수를 for 문에서 사용시 for 문 안에서 Array 변수를 받은 iterater에 변화를 주면 Array에 있는 실제 변수에 permanent한 변화가 가해진다.

Exam)

@data=('Good_haha','Bad_haha');

for $i(@data)
{
$i=~s/\_haha//g;
}

에서 data array의 변수를 받은 iterater $i에 가해진 정규식 substitution ( _haha 를 잘라낸다)
은 @data의 실제 변수들에 변화를 가한다.

$i는 @data의 변수 그 자체이지, 이를 call by value로 받은 지역 변수가 아니다.

Monday, June 18, 2007

Bioconductor package에서의 DEG finding method 사용시 유의 사항

다양한 DEG finding method들이 존재하지만, 이들 방법론들이 기본적으로 가정하는 내용들은 서로 다르다. 따라서 특정 method에서 원하는 가정을 했던 경험을 바탕으로 다른 method들에서도 같은 가정을 전제한다고 생각한다면 원치않는 잘못된 결과를 얻게 된다.

Package DEDS의 경우

Fold change=mean(Ms)-mean(Mc)

의 공식으로 계산된다. 여기서는 각 Microarray intensity가 이미 log계산을 거친 값이라고 가정하고 있으므로, log(Ms/Mc)의 fold change값을 얻게 되지만, normalization method에 따라 log 계산을 거치지 않은 경우도 많으므로 data type의 check와 각 계산법의 가정의 체크가 필요하다