Author: byun1114

  • 피자힐

      나름 유명한 피자집이라는 쉐라톤 워커힐 호텔의 피자힐. 피자힐 건물은 올림픽 경기장을 설계한 김수근이라는 유명하다는 건축가의 작품이라고 한다. 꽤나 예전에 설계 되었을 건물이라는 것을 고려하면 멋진 설계인 것 같기는 한데 그다지 와닿지는 않는다. 예과 때 2년간 지나쳤던 부산대학교 인문관 건물도 엄청 유명하다는 김중업씨의 몇 안남은 작품이라고 하는데, 관심 주제가 아니다 보니 그런게 있나보다 하는 정도의 느낌. 그런 것 정도였다.
     
      가족 단위의 손님이 많이 있는 이 곳은 피자와 파스타가 유명하다고 한다. 그런데 맛있는 파스타는 동의할 수 있겠고, 맛있는 피자는 잘 모르겠다. 🙂

      아무리 맛있는 피자라고 하더라도, 인턴 숙소에서 동기들이랑 모여 앉아서 먹던 그 맛에는 비교할 수 없겠지.

  • Heatmap 만들기

    Heatmap 만들기

      작년쯤에 겨우 했는데 기록을 해두지 않았더니 다시 기억을 끄집어 내는데 2시간쯤 걸렸다. 그래서 까먹지 않도록 여기에 기록을 해두어야 겠다는 생각이 들었다. 예전에 기록한 내용이라서 될 줄 알고 그냥 했더니 오류가 있어서 수정을 했다. 기본은 Data 파일을 불러와서, Matrix 로 변환한 다음 Heatmap 작성이다. 말로는 간단하고, 실제로도 간단하다. 🙂

    arraydata <- read.table(“b08.csv”, header=T, sep=”,”)
    설명) b08.csv 에 저장한 파일을 불러와서 arraydata 에 입력한다. 보통 자료를 관리할 때에 첫 열에 기본 항목을 입력하는 경향이 있는데 이러한 양식을 그대로 사용할 경우 Heatmap 을 만들 수가 없다. 물론, 첫 열을 인식시키지 않는 방법이 있을 것 같기는 하지만, 아직 방법을 찾지 못했다. 첫 줄의 항목은 Header 항목으로 인식하고, 자료 사이의 값은 “,(쉼표)” 에 의하여 분리되어 있다는 의미임. 엑셀에서 파일을 CSV 로 저장할 때에 ‘CSV (쉼표로 분리)’ 라는 항목이 있는 것을 알고 있어야 함.

    matrixarraydata <- as.matrix(arraydata)
    설명) Distance 를 계산하기 위해서는 자료를 matrix 로 불러와야 한다고 함. 기본적인 개념을 알고 있어야 할 것 같기는 한데.. 아무튼 ‘as.matrix’ 로 하면 한 방에 해결됨. 이러면 b08.csv 에서 불러온 파일은 matrixarraydata 라는 matrix 로 입력된다.

    heatmap(matrixarraydata, hclustfun=my.hclust, distfun=my.dist)
    설명) 결과값을 heatmap 으로 작성해 줌. Clustering 방법은 my.hclust 에서 지정된 방법, distance 는 my.dist 에서 지정된 방법으로 구함. 기본적으로 euclidean distance 에 complete method 로 clustering 이 되어 있어서 뒷 부분은 빼줘도 되지만, 다른 방법으로 해볼 것이라면 넣어 주는게 좋다.

    my.hclust <- function(x){hclust(x, method=”complete”)}
    설명) 대부분의 논문에서 생략하는 부분인데 이런 data 는 Chip 에 DNA 나 RNA 등을 반응시키는 방법부터 Scan 은 어떻게 하였으며, 어떻게 Normalization 을 시행 했는데 기술을 해줘야 한다. Normalization 은 아직 책에서 몇 번 보고 넘어간 부분이라서 생략하도록 하고, 외부에 의뢰를 하면 Normalization 까지는 되어져서 오기 때문에 구할 필요까지는 없다. Complete method를 사용할 경우에는 저렇게 표현하고 Ward method 일 경우에는 “ward”라고 하면 됨.

    my.dist <- function(x){dist(x, method=”euclidean”)}
    설명) 위에걸 보면 이것도 쉽게 알 수 있다.


     약 5000개의 값이 10개 있는 data로 만든 표이다. 처음에 중복된 값이 3개씩 있다는 것을 몰라서 15000개 정도의 값을 10개 있는 걸로 했더니 메모리 부족이라며 안되었는데.. 그래도 5000개 정도이면 시간이 좀 걸려서 그렇지 나오기는 한다. 시간을 측정하지는 않았지만 5~10분 정도 소요된다.

    2009/06/21 – [공부해 봅시다/R-Project] – Heatmap
    2009/06/23 – [공부해 봅시다/R-Project] – 함수 지정하기..ㅡㅡ

    2008/05/03 – [지름신의 영접] – Do more in less time

  • 파견 가기 힘드네..


    부검
    제출
    (2008년도 1년차 전공의부터 적용)

    부검은
    결과보고서에 전공의 이름이 포함된 직접 혹은 간접으로 참여한 병리와 법의 부검 증례를 수를 모두 계산하고 4년 동안 20건 이상이 되어야 하며,
    이 중

    16세 이상의 성인부검 증례가 4건 이상 포함되어 있어야 한다.

      병리학 전문의가 되기 위해서는 학회에 공지된 것과 마찬가지로 성인 부검 4례가 필요하다. 국립과학수사연구소에 파견 근무를 가면 문제없이 해결되기는 한데 힘들다.
     
      시작은 협조공문을 교육수련부에 보내는 것부터.. ㅠㅠ

  • Chip data 찾아보기..

    Chip data 찾아보기..

      지난번 Heatmap 결과(2010/05/01 – [공부해 봅시다/R-Project] – Heatmap 만들기) 를 통하여 앞의 2개의 증례 가 다른 증례와는 다소 차이가 나는 것을 확인해 보았다. 하지만 Heatmap 을 만드는 과정에서 자료의 위치가 이동하기 때문에 원자료를 찾아보면 그 2개의 증례는 10번, 11번째 column 에 위치하는 것을 확인하였다.

      여기서 부터가 삽질이었다. 특정 질환에서 발현이 증가하고 다른 질환에서 발현이 감소하는 그러한 값을 찾는것이 기본이 되기 때문에 이 미묘한 자료를 찾는 것은 엑셀에서 순차 정렬을 11번 반복하게 된다.  OTL
      게다가 cut-off 값을 바꾸면 바꿀 때 마다 이 짓을 계속 해야하기 때문에 인터넷 바다를 검색한 끝에 해결책을 찾았다. 비록 결과물이 좀 보기 흉하기는 하지만, 내가 할 삽질을 컴퓨터가 대신 하도록 하는 방법을 찾을 수는 있었다.

    data <- read.table(“b08.csv”, header=T, sep=”,”)
    설명) 자료를 불러오는 것. 이 자료는 지난 자료와는 달리 첫 column 에 chip의 설명을 담고 있다. 특정 유전자를 찾기 위해서는 필요한 정보이다. 문자값이 있기 때문에 Heatmap 으로 진행은 할 수가 없다.

    x <- which(data[,2] < X & data[,3] < X & data[,4] < X & data[,5] < X & data[,6] < X & data[,7] < X & data[,8] < X & data[,9] < X & data[,10] < X & data[,11] >= X & data[,12] >= X)
    설명) 식이 좀 지저분하지만 Ctrl+C 와 Ctrl+V를 반복하면 쉽게 만들 수 있다. data 의 2~10 column 까지는 X 값보다 작은 것을 선택하고, 11, 12 column 은 X 값보다 같거나 큰 값을 선택한다. 아직 정확한 사용법을 알고 있지는 않지만 이렇게 한 후에 x 값을 살펴 보면 row 번호만 나왔다. 그래서 다음과 같은 식을 입력해주면 그 row 에 해당하는 값을 볼 수가 있다.

    data[x,]

    X 값을 1부터 대략 20 정도까지 일일이 입력하고 그 결과를 확인하면 되지만.. 그래도 반복되는 구문이라서 해결책을 찾을 수 있었다.

    for (X in 1:20) {
    x <- which(data[,2] < X & data[,3] < X & data[,4] < X & data[,5] < X & data[,6] < X & data[,7] < X & data[,8] < X & data[,9] < X & data[,10] < X & data[,11] >= X & data[,12] >= X)
    print(X);print(data[x,])}
    설명) 역시 R-project의 문법을 정확하게 이해하고 있지 않아서 생긴 지저분한 문장이다. {} 괄호로는 하나의 식을 입력할 수 있고, 엔터키로 문장을 바꾸면 실행을 하게 되는 것 같기는 한데.. ㅡㅡ;;
    X가 1에서 20까지 1씩 증가하는 값으로 되어 있고 그에 따라서 x 값이 나온다. 결과를 보여주기 위해서 어떤 X 값인지 보여주는 print(X) 와 그 X 값에 따른 결과물을 볼 수가 있다.