2010년 10월 5일 화요일

[HMA] 02. LIMMA를 이용하여 two-color data 다루기

Bioconductor를 설치했다면 limma도 같이 깔려 있을 것이다. 이 글에서는 박태성 외 5인 공저, "마이크로어레이 자료의 통계적 분석(자유아카데미 2005)"도 집중 참조하였다.


>library(limma) # 라이브러리 로드하기

도움말을 보려면 메뉴에서 Vignettes -> limma를 클릭하거나, R prompt에서 limmaUsersGuide()라고 치면 된다. R을 구동하면 파일 -> 디렉토리 변경...을 클릭하여 적당히 설정하도록 하자.

먼저 만들 것은 각 array에 대하여 채널에 대한 RNA target을 설명하는 텍스트 파일이다.

> targets <- readTargets() # default target file name인 Targets.txt를 사용할 때.
> targets <- readTargets("targets.txt", row.names="Name")

다음으로는 .gpr 파일, 즉 intensity data를 읽어보자.

> RG <- read.maimages(targets$FileName, source="genepix")

.gpr file에는 수도 없이 많은 컬럼이 있다. 이를 다 읽어들이는 것은 아니다. source="genepix"로 읽어들이는 경우에는 F Mean을 전경, B Median을 배경으로 택한다. something에 대한 도움말이 필요하면 ?something이라고 치거나 help(something)이라고 하면 된다. 여기에서 골치아픈 문자 '$'가 나왔다. Perl에서는 변수명을 $로 시작하지만, R에서는 객체의 멤버를 참조하는 경우에 사용한다. Intensity range를 알아보려면 summary(RG$R) 또는 summary(RG$G)라고 하면 된다. intensity data가 제대로 읽혔는지 확인하려면 show(RG)라고 치면 된다.

MA plot을 그려보자.

> plotMA(RG, array=1) # array에는 target file에서 정의된 SlideNumber를 지정하면 된다.

여러 슬라이드의 것을 한번에 그릴 수는 없을까?

이제 본격적인 작업에 들어가 보도록 한다. limma manual의 제 6 장, "Pre-Processing Two-Color Data"를 공부해 본다. 이 과정에서는 background 교정과 normalization이 가장 중요한 주제이다. Normalization(표준화)이란 자료에 포함된 오차들 중 생물학적인 요인 이외에 다흔 체계적인(systematic) 요인으로 인하여 발생되는 편의(bias)를 제거하는 과정이다. 가장 만만한 방법(?)으로서 global loess normalization을 해 본다.

> MA <- normalizeWithinArrays(RG, method="loess") # global loess normalization
> MA <- normalizeWithinArrays(RG) # print-tip loess normalization
> plotPrinTipLoess(MA)

다음으로는 between-slide normalization을 한 뒤 box plot을 해서 차이를 알아보자.

> boxplot(MA$M~col(MA$M),names=colnames(MA$M))
> MA <- normalizeBetweenArrays(MA,method="scale")> boxplot(MA$M~col(MA$M),names=colnames(MA$M))

여기까지 했으면, 이제 normalized data를 파일에 저장할 줄 알아야 하는데... 기본적인 R 문법을 모르는 상태에서 하려니 정말 어렵다! 별로 그러고 싶지 않았었는데, 결국은 100쪽짜리 limma user's guide를 인쇄하여 제본하고 말았다.

0 개의 댓글: