생명과학 융합 프로그래밍 (2019.07.13 ~ 15 북삼고등학교)
교육 슬라이드
아래 링크를 통해 사용했던 슬라이드를 다운받을 수 있습니다!
7월 15일 교육 내용
문제 1
문제 2
멘델의 유전 법칙을 이용한 자손의 유전자형 구하기
염색체 관점에서 본 유전 현상의 모델링
모델링을 위해 만들어야 할 객체
유전자 모델링 (gene.py)
유전자가 담고 있어야 할 정보는 어떤 것이 있을까요? 간단하게 생각해보면 다음과 같은 것들이 있겠습니다.
유전자의 이름- 유전자의 코드(간단하게 R, r, Y, y 등의 문자)
유전자의 염기서열유전자의 염색분체 내부에서의 위치
위의 요소들 중, 간단하게 유전현상을 다루기 위해서 “최소”로 필요한 정보만 남기면,
유전자를 구분할 수 있도록 하는 “코드” 빼고는 모두 무시할 수 있을 것입니다.
그래서 다음과 같은 요소를 담은 gene 객체를 만들게 되면 다음과 같습니다.
염색 분체 모델링 (chromatid.py)
염색체 모델링 (chromosome.py)
이번에는 염색체입니다.
염색체는 최대 두 개의 염색 분체를 포함할 수 있습니다.
(여기서 2가 염색체 등의 개념은 생각하지 않도록 하고, 항상 2배체임을 가정합시다!)
그렇다면, 아까 유전자를 염색분체에 담았을 때와 마찬가지로, 염색체에는 염색분체를 두 개 저장할 수 있도록 구조를 마련해야 합니다.
염색체 객체가 포함해야 할 요소
- 염색 분체 2 개
- 염색체의 이름
- 염색 분체를 추가할 수 있는 기능
다음과 같은 기능을 담아 만든 염색체 클래스는 다음과 같습니다.
생식세포 모델링 (germ_cell.py)
거의 전부 구현했습니다! 이제 “염색체”를 가지고 있고, 유전에 관여하는 “생식세포”를 모델링 할 차례가 남았습니다.
생식세포 단계에서 해야할 일들은 다음과 같은 것들이 있을 겁니다.
- 염색체들을 담고 관리하기
- 감수분열(생식세포로부터 딸세포 만들기) (물론, 생체 내에서는 이보다 더 많은 일들이 이루어지지만, 역시 유전 현상을 구현하기 위한 최소 정보만 포함합니다)
시뮬레이션 세계 구현 (world.py)
유전 현상 시뮬레이션이 이루어질 가상의 세계에는 여러 개의 생식세포들이 있습니다.
그 생식세포들 중 몇몇이 감수분열을 거치고,
감수분열을 거친 딸세포들이 만나
시뮬레이션 구성하기 (main.py)
지금까지
전체 코드 다운로드 받기
아래 댓글창에서 자유롭게 질문할 수 있습니다!
Leave a comment