부록 D03: 로그와 지수
이 장에서 배울 것
이번 장에서는 로그와 지수를 배웁니다. 계산생물학에서 로그와 지수는 매우 자주 나옵니다. 유전자 발현량 차이를 배수로 표현할 때, 세포나 세균이 빠르게 늘어날 때, p-value처럼 아주 작은 값을 다룰 때, 큰 범위의 데이터를 한눈에 보기 위해 로그가 쓰입니다.
핵심 용어를 먼저 정리하겠습니다.
- 지수(exponent): 같은 수를 여러 번 곱하는 표현입니다. 예를 들어 2³은 2를 세 번 곱한 값입니다.
- 지수적 증가(exponential growth): 일정한 양이 아니라 일정한 배수로 늘어나는 증가입니다.
- 로그(logarithm): “몇 번 곱해야 이 수가 되는가?”를 묻는 도구입니다.
- 밑(base): 로그나 지수에서 기준이 되는 수입니다. log2에서는 2가 밑입니다.
- 로그 스케일(log scale): 큰 배수 차이를 압축해서 보여 주는 눈금입니다.
- 배수 변화(fold change): 한 값이 다른 값의 몇 배인지 나타내는 값입니다.
- log2 배수 변화(log2 fold change): 배수 변화를 log2로 바꾼 값입니다.
가장 쉬운 비유: 접은 종이는 무섭게 두꺼워집니다
종이를 한 번 접으면 두 겹이 됩니다. 두 번 접으면 네 겹이 됩니다. 세 번 접으면 여덟 겹이 됩니다.
1번 접기: 2겹
2번 접기: 4겹
3번 접기: 8겹
4번 접기: 16겹
이것은 매번 2를 더하는 것이 아니라 매번 2를 곱하는 증가입니다. 이런 증가가 지수적 증가입니다.
생물학에서도 비슷한 일이 있습니다. 세균이 일정 시간마다 두 배로 늘어나면 처음에는 작아 보여도 금방 커집니다. 그래서 감염, 세포 증식, 바이러스 복제 같은 현상을 이해할 때 지수 감각이 필요합니다.
지수는 반복 곱셈입니다
2³은 2를 세 번 곱한다는 뜻입니다.
2³ = 2 × 2 × 2 = 8
10³은 10을 세 번 곱한다는 뜻입니다.
10³ = 10 × 10 × 10 = 1000
지수는 큰 수를 짧게 표현하는 강력한 방법입니다. 유전체 데이터처럼 숫자의 범위가 매우 클 때 지수 표기가 자주 등장합니다.
로그는 지수의 반대 질문입니다
로그는 처음에 낯설지만, 질문을 바꾸면 쉽습니다.
log2(8) = ?
이 말은 “2를 몇 번 곱해야 8이 되는가?”라는 뜻입니다.
2 × 2 × 2 = 8
2를 세 번 곱해야 8이 되므로,
log2(8) = 3
같은 방식으로,
log2(2) = 1
log2(4) = 2
log2(8) = 3
log2(16) = 4
입니다.
배수 변화는 두 값을 나누어 구합니다
배수 변화는 한 값이 다른 값의 몇 배인지 보는 것입니다.
예를 들어 정상 샘플에서 어떤 유전자의 발현량이 5이고, 암 샘플에서 20이라면,
배수 변화 = 20 / 5 = 4
암 샘플에서 발현량이 정상보다 4배 높다고 말할 수 있습니다.
반대로 정상 샘플이 20이고 암 샘플이 5라면,
배수 변화 = 5 / 20 = 0.25
암 샘플에서 정상의 0.25배, 즉 4분의 1 수준이라고 볼 수 있습니다.
log2 배수 변화는 생물정보학에서 매우 중요합니다
배수 변화를 그대로 쓰면 증가와 감소가 비대칭적으로 느껴질 수 있습니다. 2배 증가는 2로 표현되지만, 2배 감소는 0.5로 표현됩니다. 그래서 로그를 사용하면 증가와 감소를 더 대칭적으로 볼 수 있습니다.
log2 배수 변화는 다음처럼 생각하면 됩니다.
2배 증가 → log2(2) = 1
4배 증가 → log2(4) = 2
8배 증가 → log2(8) = 3
2배 감소 → log2(0.5) = -1
4배 감소 → log2(0.25) = -2
변화 없음 → log2(1) = 0
즉 log2 배수 변화가 1이면 2배 증가, 2이면 4배 증가, -1이면 2배 감소입니다.
로그 스케일은 큰 범위를 압축합니다
어떤 데이터가 1, 10, 100, 1000, 10000처럼 넓게 퍼져 있다고 합시다. 일반 눈금으로 그리면 작은 값들이 거의 바닥에 붙어 보일 수 있습니다. 로그 스케일을 쓰면 10배 차이를 같은 간격으로 볼 수 있습니다.
그래서 유전자 발현량, 세균 수, 바이러스 양, p-value처럼 범위가 매우 넓은 숫자를 볼 때 로그 스케일이 유용합니다.
지수적 증가는 무한히 계속되지 않습니다
실험실에서 세균이 일정 시간마다 두 배로 늘어난다고 해도, 영양분과 공간은 제한되어 있습니다. 그래서 지수적 증가는 어느 순간 느려지고 멈출 수 있습니다. 실제 생물학에서는 단순한 지수 모델이 초기에만 잘 맞는 경우가 많습니다.
이 점이 중요합니다. 지수와 로그는 강력하지만, 모델이 현실을 완전히 대신하지는 않습니다. 항상 생물학적 한계를 같이 생각해야 합니다.
계산 감각 1: 지수 계산하기
2⁴ = 2 × 2 × 2 × 2 = 16
10³ = 10 × 10 × 10 = 1000
지수는 반복 곱셈입니다.
계산 감각 2: log2 값 읽기
입문 단계에서는 자주 쓰는 값들을 먼저 익히면 충분합니다.
log2(1)=0
log2(2)=1
log2(4)=2
log2(8)=3
log2(16)=4
감소도 중요합니다.
log2(1/2)=-1
log2(1/4)=-2
계산 감각 3: log2 배수 변화
정상 발현량이 10이고 실험군 발현량이 40이라면,
배수 변화 = 40 / 10 = 4
log2 배수 변화 = log2(4) = 2
실험군에서 4배 증가했고, log2 배수 변화는 2입니다.
정상 발현량이 40이고 실험군 발현량이 10이라면,
배수 변화 = 10 / 40 = 0.25
log2 배수 변화 = log2(0.25) = -2
실험군에서 4배 감소했고, log2 배수 변화는 -2입니다.
생물정보학에서 왜 로그와 지수가 중요한가
RNA-seq 결과표에는 log2 배수 변화가 거의 항상 등장합니다. 화산 그림(volcano plot, 통계적 유의성과 발현 변화 크기를 함께 보여 주는 그림)에서도 x축에 log2 배수 변화가 들어가는 경우가 많습니다.
또 p-value처럼 매우 작은 수를 다룰 때도 로그 변환이 쓰입니다. 세포 수나 세균 수가 빠르게 증가하는 현상은 지수 모델로 설명될 수 있습니다. 그래서 로그와 지수는 계산생물학의 기본 어휘입니다.
보강: log2 배수 변화 계산을 몸에 익히기
계산생물학에서 log2 fold change는 정말 자주 나옵니다. 처리군 발현량이 80이고 대조군 발현량이 20이면 배수 변화는 80 / 20 = 4입니다. 4는 2를 두 번 곱한 값이므로 log2 fold change = 2입니다. 즉 처리군에서 발현량이 4배 증가했다는 뜻입니다.
반대로 처리군 발현량이 25이고 대조군 발현량이 100이면 배수 변화는 25 / 100 = 0.25입니다. 0.25는 1/4이고, 2^-2 = 1/4이므로 log2 fold change = -2입니다. 음수는 처리군에서 감소했다는 방향 정보를 줍니다. 그래서 log2FC는 “몇 배인지”와 “어느 쪽으로 변했는지”를 동시에 보여 줍니다.
초보자가 자주 하는 실수는 0에 로그를 바로 취하는 것입니다. log2(0)은 정의되지 않습니다. 실제 count data에서는 0이 나올 수 있으므로 분석에서는 작은 수를 더하는 pseudocount 같은 처리를 쓰기도 합니다. 이 장에서는 깊게 다루지 않지만, 로그 계산에는 항상 0과 음수에 주의해야 합니다.
보강 학습: 로그, log2 fold change, volcano plot
왜 필요한가: 발현량처럼 배수로 변하는 값을 직선적인 숫자로 읽기 위해 로그가 필요합니다. 2배, 4배, 8배처럼 커지는 변화를 그냥 차이로 보면 해석이 어렵기 때문입니다.
공식 읽기: log(ab)=log a+log b, log2FC=log2(처리군 평균/대조군 평균). a,b는 곱해지는 양수, 처리군 평균/대조군 평균은 fold change입니다. log2FC가 1이면 2배, 2이면 4배, -1이면 절반입니다.
숫자 예시: 대조군 50, 처리군 200이면 fold change는 200/50=4, log2FC는 log2(4)=2입니다.
생물정보학에서 쓰이는 장면: 차등발현 분석에서 log2FC는 효과의 방향과 크기를, volcano plot의 x축은 보통 log2FC를 보여 줍니다. y축 -log10(p-value)는 통계적 드묾을 보여 줍니다.
흔한 오해와 주의점: log2FC가 크다고 항상 중요한 유전자는 아닙니다. 낮은 count, outlier, batch, FDR, 생물학적 기능을 함께 봐야 합니다.
핵심 정리
지수는 같은 수를 반복해서 곱하는 표현이고, 로그는 그 반대로 “몇 번 곱해야 이 수가 되는가?”를 묻는 도구입니다. 배수 변화는 두 값을 나누어 구하고, log2 배수 변화는 2배 증가를 1, 4배 증가를 2, 2배 감소를 -1처럼 표현합니다. 로그는 넓은 범위의 생물 데이터를 읽기 쉽게 만드는 핵심 도구입니다.
문제 풀이
로그와 지수
주관식 답안은 Gemini API로 채점합니다. API 키는 이 브라우저에만 저장됩니다.
-
1. [쉬움] 객관식
지수의 설명으로 가장 적절한 것은?
-
2. [쉬움] 객관식
로그의 직관으로 가장 적절한 것은?
-
3. [보통] 객관식
배수 변화의 설명으로 가장 적절한 것은?
-
4. [보통] 객관식
log2 배수 변화를 쓰는 이유로 적절한 것은?
-
5. [계산] 객관식
2³의 값은?
-
6. [계산] 객관식
2⁴의 값은?
-
7. [계산] 객관식
10³의 값은?
-
8. [계산] 객관식
log2(8)의 값은?
-
9. [계산] 객관식
log2(16)의 값은?
-
10. [계산] 객관식
log2(1)의 값은?
-
11. [계산] 객관식
정상 발현량 5, 실험군 발현량 20일 때 배수 변화는?
-
12. [계산] 객관식
정상 발현량 10, 실험군 발현량 40일 때 log2 배수 변화는?
-
13. [계산] 객관식
정상 20, 실험군 10일 때 배수 변화는?
-
14. [계산] 객관식
2배 감소의 log2 배수 변화는?
-
15. [계산] 객관식
4배 감소의 log2 배수 변화는?
-
16. [계산] 객관식
log2 배수 변화가 3이면 몇 배 증가인가?
-
17. [계산] 객관식
log2 배수 변화가 0이면 어떤 상태인가?
-
18. [계산] 객관식
세균이 한 시간마다 2배가 된다. 10마리에서 시작해 2시간 뒤는?
-
19. [계산] 객관식
세균이 한 시간마다 3배가 된다. 2마리에서 시작해 2시간 뒤는?
-
20. [계산] 객관식
정상 8, 실험군 64일 때 log2 배수 변화는?
-
21. [쉬움] 객관식
처리군 발현량 80, 대조군 발현량 20일 때 fold change는?
-
22. [보통] 객관식
fold change가 8이면
log2 fold change는? -
23. [보통] 객관식
처리군 발현량 25, 대조군 발현량 100일 때 fold change는?
-
24. [보통] 객관식
fold change가 0.5일 때
log2 fold change는? -
25. [보통] 객관식
log2 fold change = 2의 의미로 가장 적절한 것은? -
26. [보통] 객관식
log2 fold change = -3이면 fold change는? -
27. [보통] 객관식
값 1, 10, 100, 1000처럼 범위가 매우 넓을 때 로그 스케일이 유용한 이유는?
-
28. [보통] 객관식
count가 0인 값에 바로 로그를 취할 때의 문제로 맞는 것은?
-
29. [쉬움] 객관식
대조군 50, 처리군 200일 때 fold change와 log2FC는?
-
30. [보통] 객관식
대조군 100, 처리군 25일 때 log2FC는?
-
31. [보통] 객관식
log2(ab)=log2 a+log2 b의 의미로 맞는 것은? -
32. [쉬움] 객관식
volcano plot에서 x축이 보통 나타내는 것은?
-
33. [어려움] 객관식
volcano plot의 오른쪽 위 점에 대한 올바른 해석은?
-
주관식 34. [보통] 주관식 · Gemini 채점
지수적 증가를 종이 접기 비유로 설명하라.
-
주관식 35. [보통] 주관식 · Gemini 채점
로그가 큰 범위의 데이터를 읽는 데 도움이 되는 이유를 설명하라.
-
주관식 36. [보통] 주관식 · Gemini 채점
log2 배수 변화가 RNA-seq 결과에서 중요한 이유를 설명하라.
-
주관식 37. [보통] 주관식 · Gemini 채점
지수 모델이 실제 생물학에서 무한히 계속되지 않는 이유를 설명하라.
-
주관식 38. [보통] 주관식 · Gemini 채점
log2 fold change가 양수, 0, 음수일 때 각각 어떤 생물학적 해석을 할 수 있는지 설명하라.
-
주관식 39. [보통] 주관식 · Gemini 채점
count data에서 0에 바로 로그를 취하면 왜 문제가 되는지 설명하라.
-
주관식 40. [보통] 주관식 · Gemini 채점
대조군 평균 80, 처리군 평균 20인 유전자의 fold change와 log2FC를 계산하고 해석하라.
-
주관식 41. [보통] 주관식 · Gemini 채점
volcano plot에서 오른쪽 위 유전자를 바로 원인 유전자라고 단정하면 안 되는 이유를 설명하라.
-
주관식 42. [어려움] 주관식 · Gemini 채점
처리군과 대조군 평균을 받아 log2FC를 계산하는 간단한 Python 함수를 작성하라.