생명과학 융합 프로그래밍 (2019.07.13 ~ 15 북삼고등학교)

교육 슬라이드

아래 링크를 통해 사용했던 슬라이드를 다운받을 수 있습니다!

7월 13일 교육 슬라이드
7월 15일 교육 슬라이드

7월 15일 교육 내용

문제 1

문제 2

멘델의 유전 법칙을 이용한 자손의 유전자형 구하기

염색체 관점에서 본 유전 현상의 모델링

모델링을 위해 만들어야 할 객체

유전자 모델링 (gene.py)

유전자가 담고 있어야 할 정보는 어떤 것이 있을까요? 간단하게 생각해보면 다음과 같은 것들이 있겠습니다.

  • 유전자의 이름
  • 유전자의 코드(간단하게 R, r, Y, y 등의 문자)
  • 유전자의 염기서열
  • 유전자의 염색분체 내부에서의 위치

위의 요소들 중, 간단하게 유전현상을 다루기 위해서 “최소”로 필요한 정보만 남기면,
유전자를 구분할 수 있도록 하는 “코드” 빼고는 모두 무시할 수 있을 것입니다.

그래서 다음과 같은 요소를 담은 gene 객체를 만들게 되면 다음과 같습니다.

염색 분체 모델링 (chromatid.py)

염색체 모델링 (chromosome.py)

Chromosome 이번에는 염색체입니다.
염색체는 최대 두 개의 염색 분체를 포함할 수 있습니다.
(여기서 2가 염색체 등의 개념은 생각하지 않도록 하고, 항상 2배체임을 가정합시다!)

그렇다면, 아까 유전자를 염색분체에 담았을 때와 마찬가지로, 염색체에는 염색분체를 두 개 저장할 수 있도록 구조를 마련해야 합니다.

염색체 객체가 포함해야 할 요소

  • 염색 분체 2 개
  • 염색체의 이름
  • 염색 분체를 추가할 수 있는 기능

다음과 같은 기능을 담아 만든 염색체 클래스는 다음과 같습니다.

생식세포 모델링 (germ_cell.py)

거의 전부 구현했습니다! 이제 “염색체”를 가지고 있고, 유전에 관여하는 “생식세포”를 모델링 할 차례가 남았습니다.

생식세포 단계에서 해야할 일들은 다음과 같은 것들이 있을 겁니다.

  • 염색체들을 담고 관리하기
  • 감수분열(생식세포로부터 딸세포 만들기) (물론, 생체 내에서는 이보다 더 많은 일들이 이루어지지만, 역시 유전 현상을 구현하기 위한 최소 정보만 포함합니다)

시뮬레이션 세계 구현 (world.py)

유전 현상 시뮬레이션이 이루어질 가상의 세계에는 여러 개의 생식세포들이 있습니다.

그 생식세포들 중 몇몇이 감수분열을 거치고,
감수분열을 거친 딸세포들이 만나

시뮬레이션 구성하기 (main.py)

지금까지

전체 코드 다운로드 받기

아래 댓글창에서 자유롭게 질문할 수 있습니다!

Updated:

Leave a comment