R (프로그래밍 언어)
다중검정보정
#
Find similar titles
- 최초 작성자
- 최근 업데이트
Structured data
- Category
- Programming
- R을 이용한 Multiple test adjustment.
입력데이터 #
입력데이터는 아래와 같은 포맷으로 준비한다. 중복이 없는 ID열과 보정할 p-value가 있는 열이 있어야 한다. 데이터 준비가 완료되면 탭으로 구분된 txt 파일로 테이블을 저장한다.
R 콘솔창에서 작업 경로(working directory)를 데이터 파일이 있는 곳으로 이동한 후 아래와 같이 입력한다.
! R
> data <- read.table("example_MultipleTestAdjustment.txt", header=T, sep="\t", row.names=1)
> data
Control Sample FoldChange p.value
FJ969516 0.099 1.379 5.749 0.087
GQ377049 0.245 0.109 -919.649 0.000
FJ969515 20.411 12.445 1.176 0.379
GQ117044 12.429 9.754 -4.220 0.001
FJ969512 9.738 10.306 -34.151 0.001
FJ969517 33.733 36.172 -34.493 0.000
FJ969513 9.506 4.252 1.237 0.000
FJ969514 10.810 8.623 -4.484 0.000
CY095672 65.780 63.687 -15.632 0.000
AF342823 4.214 4.875 -18.353 0.001
CY095674 5.502 4.556 -21.833 0.000
GQ229365 294.564 297.263 -60.491 0.000
CY095676 7.294 4.554 3.594 0.000
CY116052 0.022 0.010 -1.190 0.538
GQ229263 0.025 0.089 -1.171 0.216
CY095679 6.249 6.009 -6.930 0.000
LS119673 0.115 0.331 38.653 0.000
LH216717 93.911 136.500 -63.858 0.000
LS319131 0.340 0.143 4.773 0.035
LS417670 0.025 0.075 11.592 0.008
'data' 라는 변수에 저장된 테이블에서 p.value 라는 컬럼만 선택하기 위해 '$' 구분자를 이용한다
> data$p.value
[1] 0.087 0.000 0.379 0.001 0.001 0.000 0.000 0.000 0.000 0.001 0.000 0.000 0.000 0.538 0.216 0.000 0.000
[18] 0.000 0.035 0.008
다중검정보정 기능을 수행하는 R 함수는 'p.adjust' 이다. p.adjust 로 이동하면 자세한 메뉴얼을 확인할 수 있다. 이 함수에 어떤 값들을 보정할 것인지, 그리고 어떤 method로 보정할 것인지 두 가지만 지정해 주면 된다. 'p.adjust.methods' 라고 입력하면 어떤 method를 사용할 수 있는지 확인할 수 있다(대소문자 주의).
> p.adjust.methods
[1] "holm" "hochberg" "hommel" "bonferroni" "BH" "BY" "fdr" "none"
'data'에 있는 데이터 중에서 p.value 컬럼에 있는 값들을 보정하려면 아래와 같이 입력한다.
> p.adjust(data$p.value, 'BH')
[1] 0.102352941 0.000000000 0.398947368 0.001428571 0.001428571 0.000000000 0.000000000 0.000000000
[9] 0.000000000 0.001428571 0.000000000 0.000000000 0.000000000 0.538000000 0.240000000 0.000000000
[17] 0.000000000 0.000000000 0.043750000 0.010666667
소수점 아래 수가 너무 많을 경우 round() 기능으로 반올림 하여 끊을수 있다. 예를들어 소수점 세째자리에서 반올림할 경우 아래와 같이 입력한다.
> round(p.adjust(data$p.value, 'BH'),3)
[1] 0.102 0.000 0.399 0.001 0.001 0.000 0.000 0.000 0.000 0.001 0.000 0.000 0.000 0.538 0.240 0.000 0.000
[18] 0.000 0.044 0.011
만들어진 결과를 data에 추가할 때는 '$' 구분자를 입력하여 새로 추가할 컬럼 이름을 쓰고 결과가 추가 되도록한다.
> data$FDR <- round(p.adjust(data$p.value, 'BH'),3)
> data
Control Sample FoldChange p.value FDR
FJ969516 0.099 1.379 5.749 0.087 0.102
GQ377049 0.245 0.109 -919.649 0.000 0.000
FJ969515 20.411 12.445 1.176 0.379 0.399
GQ117044 12.429 9.754 -4.220 0.001 0.001
FJ969512 9.738 10.306 -34.151 0.001 0.001
FJ969517 33.733 36.172 -34.493 0.000 0.000
FJ969513 9.506 4.252 1.237 0.000 0.000
FJ969514 10.810 8.623 -4.484 0.000 0.000
CY095672 65.780 63.687 -15.632 0.000 0.000
AF342823 4.214 4.875 -18.353 0.001 0.001
CY095674 5.502 4.556 -21.833 0.000 0.000
GQ229365 294.564 297.263 -60.491 0.000 0.000
CY095676 7.294 4.554 3.594 0.000 0.000
CY116052 0.022 0.010 -1.190 0.538 0.538
GQ229263 0.025 0.089 -1.171 0.216 0.240
CY095679 6.249 6.009 -6.930 0.000 0.000
LS119673 0.115 0.331 38.653 0.000 0.000
LH216717 93.911 136.500 -63.858 0.000 0.000
LS319131 0.340 0.143 4.773 0.035 0.044
LS417670 0.025 0.075 11.592 0.008 0.011
그리고 아래와 같이 입력하면 'data' 에 저장된 테이블이 "output.txt"라는 파일로 저장된다. 탭으로 구분되어 저장되므로 엑셀에서 열면 그대로 확인 가능하다.
> write.table(data, 'output.txt', sep="\t")
Suggested Pages #
- 0.025 R (체스)
- 0.025 CSV
- 0.025 R (수학)
- 0.013 실수
- More suggestions...