11강 / 20강
섭동 — 유전자를 붙박아 두는 한 줄
녹아웃(KO)과 과발현(OE)
가상 유전자 조작은 놀랄 만큼 간단합니다. 갱신할 때 그 유전자만 규칙을 건너뛰게 하면 됩니다.
new[g] = perturb[g] if g in perturb else rule[g](state)
# ↑ 붙박은 값 ↑ 원래 규칙
이 한 줄이 두 가지 실험을 모두 표현합니다.
| 이름 | 코드 | 실험실에서는 |
|---|---|---|
| 녹아웃 (KO) | {"DDX54": 0} | siRNA · shRNA 녹다운, CRISPR 결손 |
| 과발현 (OE) | {"p53": 1} | 플라스미드 도입, 유도 발현계 |
중요한 차이가 하나 있습니다. 9강의 '한 번 뒤집기' 는 초기 상태만 바꿨습니다. 섭동은 규칙 자체를 바꿉니다. 약을 계속 투여하는 것과 같아요.
왼쪽 첫 칸이 계속 ○ 로 붙박여 있는 것을 확인하세요. 그 아래로 도미노가 넘어집니다.
Python
브라우저에서 실행
벌써 결과가 갈립니다. 면역 표적 단독(PDL1 · CD47)이 듣지 않는다는 점을 눈여겨보세요.
Python
브라우저에서 실행
모형을 만들 때 반드시 정하고 문서에 적어야 하는 선택입니다.
Python
브라우저에서 실행
🎮 섭동 실험대
유전자마다 KO / 무처치 / OE 를 골라 보세요. 궤적이 즉시 다시 계산됩니다.
🤔 확인 문제
불리언 모형에서 유전자 녹아웃을 표현하는 방법은?
해설 목록에서 지우면 그 유전자를 참조하는 다른 규칙이 깨집니다. 초기값만 0 으로 두면 다음 시점에 규칙이 되살려 놓고요.
🤔 확인 문제
9강의 '한 번 뒤집기' 와 11강의 '섭동' 의 결정적 차이는?
해설 약을 한 번 먹고 마는 것과 계속 복용하는 것의 차이입니다. 그리고 대부분의 표적 치료제는 후자예요.
🤔 확인 문제
섭동을 걸 때 초기 상태에도 그 값을 미리 적용하는 이유는?
해설 선택의 문제입니다. 어느 쪽이든 되지만 어느 쪽을 골랐는지 밝혀야 합니다 — 결과가 달라지는 경우가 있으니까요.