2002년 10월 9일 수요일

Method: Pearson correlation

Pearson correlation

개념은 다음과 같다.

        r = X와 Y가 함께 변하는 정도 / X와 Y가 따로 변하는 정도

Gene X 와 Y 의 Pearson 상관 r 을 구하는 식은 다음과 같다.


* 결과의 해석
r 값은 X 와 Y 가 완전히 동일하면 +1, 전혀 다르면 0, 반대방향으로 완전히 동일
하면 –1 을 가진다. 결정계수 (coefficient of determination) 는 r^2 로 계산하며 이것은 X 로부터 Y 를 예측할 수 있는 정도를 의미한다.

일반적으로
    r이 -1.0과 -0.7 사이이면, 강한 음적 선형관계,
    r이 -0.3과 -0.7 사이이면, 뚜렷한 음적 선형관계,
    r이 -0.1과 -0.3 사이이면, 약한 음적 선형관계,
    r이 -0.1과 +0.1 사이이면, 거의 무시될 수 있는 선형관계,
    r이 +0.1과 +0.3 사이이면, 약한 양적 선형관계,
    r이 +0.3과 +0.7 사이이면, 뚜렷한 양적 선형관계,
    r이 +0.7과 +1.0 사이이면, 강한 양적 선형관계
로 해석한다.

2002년 10월 4일 금요일

Tray icon 설계와 관련 Win32 API

Icon 은 32, 16 의 두가지가 있는데 32->16시 4pixel 을 하나로 합하고,
16->32시 주변의 평균을 취해서 아이콘이 흐려진다.
tray icon 은 32 크기를 사용하는데 (0,0) 을 기준으로 했을때
(1,1) , (3,1) , (1,3) , (3,3) ... 에 있는 점만 모아서 16형태로 보여준다.
원래 16형태 아이콘은 정상적으로 표현되지 않는다.




시스템 트레이에 아이콘 설치하는 방법

NOTIFYICONDATA systemtray;

// 아이콘등록: hwnd:부모, uID:트레이아이디는, messageID:Event 발생시 날아오는 ID
BOOL SystemTray_Register (HWND hwnd, UINT uID, UINT messageID) {
    systemtray.cbSize = sizeof (systemtray);
    systemtray.hWnd = hwnd;
    systemtray.uID = uID;
    systemtray.uFlags = NIF_MESSAGE;
    systemtray.uCallbackMessage = messageID;
    return Shell_NotifyIcon (NIM_ADD, &systemtray);
}

// 설명바꾸기(uID는 동일함으로 그냥 둠): iconID:resource 에 있는 아이콘 ID, szTip:새ToolTip
BOOL SystemTray_Modify (UINT iconID, char *szTip) {
    systemtray.uFlags = NIF_ICON NIF_TIP;
    systemtray.hIcon = LoadIcon (hInst, MAKEINTRESOURCE(iconID));
    strcpy (systemtray.szTip, szTip);
    return Shell_NotifyIcon (NIM_MODIFY, &systemtray);
}

// 삭제(uID는 동일함으로 그냥 둠)
BOOL UnRegisterSystemTray () {
    systemtray.uFlags = 0;
    return Shell_NotifyIcon (NIM_DELETE , &systemtray);
}

SystemTray_Register (hwnd, 1, WM_USER+1);
SystemTray_Modify (IconID, "Tool Tip");