
3개의 검체를 대상으로 aCGH 검사를 하였는데, 어떤 값은 다른 값에 없는 경우가 있어서 하나의 테이블로 합치는 것이 어려웠다. 약간의 고민끝에 매우 간단한 방법으로 해결하는데 성공. 🙂


3개의 검체를 대상으로 aCGH 검사를 하였는데, 어떤 값은 다른 값에 없는 경우가 있어서 하나의 테이블로 합치는 것이 어려웠다. 약간의 고민끝에 매우 간단한 방법으로 해결하는데 성공. 🙂

어떤 물질의 분리를 위하여 전기 영동을 할 때에 그 물질의 추정치를 알기 위하여 보통은 참고치를 가지고 있는 물질과 같이 검사를 하게 된다. 이 때 추정치를 구하는 공식에는 여러 가지가 있고, 그 중에 흔하게 사용되는 방법은 Local Southern sizing algorithm 이라….고 한다.[footnote]Southern EM. Measurement of DNA length by gel electrophoresis. Anal Biochem. 1979;100(2):319-23.[/footnote]
기본 공식은 다음과 같다.

m 은 추정치, 그리고 L은 이동 거리를 나타내는데, 미지수가 3개 있으니까 이 값들을 찾기 위해서는 3개의 식이 필요하게 된다. (x, y)가 익숙하니깐 각각을 다음과 같이 표시할 수 있다.

삼원일차방정식의 해를 구하면 되는거다. c 가 공통의 값을 가지니깐 1번에서 2번을 빼고, 2번에서 3번을 빼면 다음과 같이 정리가 가능하다.

초등학교 때라면 단순하게 여기에서 곱하고, 나누고, 빼고, 더하고를 30분쯤 반복해서
정리하였을 것이다. 하지만, 고등학교 때 배우는 행렬(matrix)을 이용하면 조금은 간단하게 접근할 수 있고, R 에서도
matrix 를 지원하기 때문에 간단하게 구할 수 있다.

이렇게 간단하게 정리가 되고, R 에서는 solve 함수를 이용하면 구할 수 있다. c 는 알고 있는 (x, y) 를 대입해서 구하면 된다.
자꾸자꾸 까먹어버려서 여기에 기록해 놓아야 겠다는 생각이 들었다.
R에서 처리한 자료들을 Excel 로 불러오는 가장 편안한 방법은 CSV 파일로 만든다음에 엑셀에서 불러오는 것이다. 사실 다른 방법도 충분히 있을 것 같은데 내가 다루는 방법에서는 이게 덜 헷갈려서 좋다. ㅡㅡ
write.table(데이타그룹,”파일명.csv”, sep=”,”, row.names=TRUE, col.names=TRUE)
#Quantile Normalization
quan_order <- matrix(nrow=nrow(Z), ncol=ncol(Z))
for (X in 1:ncol(Z)){quan_order[,X] <- order(Z[,X], decreasing=FALSE)}
: 원래의 값이 몇 번째에 해당하는 값인지 미리 기록하고..
quan_sort <- matrix(nrow=nrow(Z), ncol=ncol(Z))
for (X in 1:ncol(Z)){quan_sort[,X] <- sort(Z[,X], decreasing=FALSE)}
: 자료를 오름차순으로 정렬한 다음..
quan_sort_mean <- matrix(nrow=nrow(Z), ncol=1)
for (X in 1:nrow(Z)){quan_sort_mean[X,1] <- mean(quan_sort[X,])}
: 평균값을 구하고..
QN_Z <- matrix(nrow=nrow(Z), ncol=ncol(Z))
for (I in 1:nrow(Z)){for (J in 1:ncol(Z)){QN_Z[quan_order[I,J],J] <- quan_sort_mean[I,1]}}
: 원래의 위치에 해당되는 값을 다시 입력하기..
Quantile normalization 은 microarray analysis 에 필요한 과정인 것 같기는 한데 사실 아직도 개념이 이해가 되지 않는다. 이런 저런 자료를 찾아본 후에 이런식으로 구현하면 될 것 같아서 시도해 보았다.
Bioinformatics 의 기본에 대한 것을 배울 수 있으면 언제 청강이나 도강이라도 해봐야 겠다. ㅡㅡ