Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

(구)boymin

유전 시뮬레이션 (Simulation of Heredity) 본문

Programming/Program

유전 시뮬레이션 (Simulation of Heredity)

boymin 2018. 3. 14. 01:31

간만의 포스팅.


프로그래밍이라는 분야에 조금씩 발을 담그기 시작하니,

이 소프트웨어라는 것을 다시금 생각해보게 되었다.


정말 이 분야는 이미 뛰어난 사람들이 너무나도 많았고,

내가 앞으로 얻어야 할 지식 역시 너무나도 방대했다.


다만 그렇다고 해서, 소프트웨어라는 분야의 선두 주자는

누가 더 프로그래밍 분야로 지식이 많냐, 가 결정하지는 않는 것 같다.


그렇지 않나. 여러 대학들에서도,

전 세계적으로도,

4차 산업 혁명을 위한 인재를

단순히 프로그래밍의 능력으로만 평가하지는 않을 것이다.


실제로 내가 여러 프로그램을 만들어 볼 때에도,

어떤 기능을 위한 함수를 몰라서 막힌적은 없었다.

인터넷에는 해당 언어의 래퍼런스와,

함수들의 의미, 목적, 사용법 등을 정리해놓은 자료가 수없이 많았기 때문이다.


즉, 사실상 요즘은 프로그래밍의 지식에 대해 많이 알고 있는 것은 큰 의미가 되지 않는다고 생각한다.

이는 마치 자신이 영어 단어를 많이 외우고 있다고 말하는 것과 같다고 생각한다.

(물론, 어느쪽이든 해당 분야에 큰 도움이 되는 것은 사실이다.)


나는, 소프트웨어 분야에서 중요한 것은,

프로그래밍의 지식, 언어와 알고리즘 등의 '도구'를 얼마나 잘 활용하여,

특정한 목적과 의미를 가진 프로그램을 만드는 것이라고 생각한다.


프로그램이 여러 분야에서 어떠한 의미를 가지는지,

왜 이 프로그램이 필요하고, 만들었는지,


그런, 프로그래밍으로써의 능력보다는,

프로그래밍이라는 도구를 활용하여 어떤 분야에서 어떻게 소프트웨어를 접목시킬 것인지가 중요하다고 생각한다.


...서론이 길었다.

이 이야기는 다른 글에서도 조금씩 할 예정이다.


아무튼, 이런 내 생각을 담아서,

거기다가 공부와 프로그래밍 모두를 한번에 하기 위해서,

생명과학이라는 분야와 소프트웨어를 융합하여 유전시뮬레이션 이라는 프로그램을 만들었다.


누가 그러던가,

시작은 미약하였으나 그 끝은 창대하리라.



이는 생명과학 공부를 위해 만든 유전 시뮬레이션 프로그램의 초기 모습이다.


이름은 나름 거창하지만, 사실 그다지 멋지지만은 않은 프로그램이다.


학교 생명과학 교과 과목 시간에 배운 멘델의 유전법칙 등을 공부하기 위해,

프로그램으로 구현해보며 실제로도 그런 수치들이 나오는지를 확인하기 위한 프로그램이다.


각 검은색 정사각형은 개체를 의미하고,

좌측 상단에 나열되어있는 쌍커플, 혀말기 등의 형질에 대한 대립유전자를 가지고 있다.


프로그램 초기에는 개체가 하나만 존재한다.


스페이스바를 누르면 이 개체가 자가번식을 하여,

자손들을 마구마구 만들고,

이 자손들의 각 형질에 대한 표현형의 비를 계산하여 화면 좌측 하단에 출력한다.



출력된 표현형의 비 등은 그래프로써도 확인할 수 있다.


좌측 5개는 우성 형질,

그 오른쪽에서 2줄은 열성 형질, 마지막 줄은 혈액형,

그 오른쪽 5줄은 다인자 유전,

그리고 마지막 줄은 연관된 유전자에 한에서 표현형의 비가 어떻게 나오는지를 표시한다.


이 프로그램에는 우열의 법칙, 분리의 법칙, 복대립 유전, 다인자유전, 그리고 유전자의 연관까지 구현되어 있다.




나는 생명과학 분야에서 특히 유전 분야를 꽤 흥미있게 공부했다.

사람의 유전자들이 여러 법칙을 따르며 자손들에게 전달이 된다는 점이 신기했기 때문이었다.


다만, 유전 분야의 문제를 풀어보다보니,

유전분야의 매력을 잃게 만드는 단순 계산 위주의 문제가 대부분이었다.


내가 보다 유전 분야를 재미있게 공부하기 위해서,

그리고 다른 사람들이 유전 분야를 공부할 때 좀 더 재미있게 공부할 수 있도록,

또한 나중에 생명과학 분야에 조금은 기여를 할 수 있지 않을까,


해서 이 유전 시뮬레이션 프로그램을 만들었다.


마침, 시기에 맞게 교내 R&E과제연구 대회가 진행중이었다.


나는 나의 생각과,

내가 공부한 경험을 사람들이 어떻게 생각할지 궁금하여,

유전 시뮬레이션으로 대회에 참여하였고,


나름대로 '도대회'(!) 까지 진출하게 되었다.!


프로그램 자체로도 내 자아실현과 학업성장으로 의미가 있었지만,

이 생각을 사람들에게 인정받았다는 현실이 너무나도 기뻤다.


그래서 나는 한발 더 나아가서,

조금 더 생명과학의 가계도 형태에 맞춘 프로그램을 새로 만들고싶었다.


그래서,

유전 시뮬레이션 2.0


을 만들고 있다.



현재까지의 상황이다.


기존 유전 시뮬레이션 프로그램의 문제점


1. 유전 정보를 실시간으로 대입할 수 없다.

->직접 개체를 만듦으로써 실시간으로 대입할 수 있다.


2. 수치 증명 외에는 활용도가 없다.

->직접 가계도를 만들어, 생명과학 분야에 다양하게 활용될 수 있다.


등을 개선한 프로그램이다.


유전 분야는, 단순히 계산에서 끝나기엔 아쉽다는 생각이 들어,

아예 계산 부분은 컴퓨터에게 맡기고 좀 더 광범위한 공부를 할 수 있게 하기 위해 이 프로그램을 만들기 시작했다.


나는 이 프로그램을 좀 더 발전시켜서,

나 뿐만 아니라 다른 사람도 프로그래밍과 공부를 연계하면 좋을 것 같다는 생각을 하였다.

이 프로그램이 실제 생명과학 교과 과목 수업 시간에

활용이 되기를 바라며 만들고 있다.



-----



...오늘은 참 많은 이야기를 한 것 같다.

글을 몇 번이나 썼다 지운지 모르겠다.

'Programming > Program' 카테고리의 다른 글

열역학 과정 시뮬레이터  (0) 2018.08.01
영어 단어장 프로그램  (0) 2018.07.28
타원 그리기 프로그램  (1) 2018.07.27
유전 시뮬레이션 2.0 [Simulation Of Heredity]  (0) 2018.03.15
Comments