프로그래밍 툴: R과 함께 떠나는 모험 프로그래밍 툴: R과 함께 떠나는 모험
이명규 2015-01-05 10:41:15

 캡처.JPG

<사진. KISTI 미리안 사진자료
출처. KISTI 미리안 『글로벌동향브리핑』>

 

프로그래밍 툴: R과 함께 떠나는 모험

 

지난 몇 년 동안, 유전학자인 헬렌 로요는 연구 데이터 분석을 위해 상업용 소프트웨어를 사용해 왔다. 그녀는 발생 중인 마우스의 정자세포에서 DNA를 추출하여 분석업체에 보낸 다음, 분석결과를 연구하기 위해 진스프링(GeneSpring)이라는 패키지를 작동시켰다. 상이한 염색체에 존재하는 유전자의 활성을 비교하는 연구를 수행하면서, 그녀는 상업용 소프트웨어가 그녀의 디테일한 데이터 처리 요구를 충족시키지 못한다는 점을 깨닫게 되었다. "나는 과학자로서, 내가 연구하는 모든 것을 이해하고 싶었지만, 이런 방식은 내 욕구를 충족시키지 못했어요. 나는 그저 버튼을 누르고, 결과를 얻었을 뿐이었으니까요"라고 그녀는 말했다.

올해 포스닥 연구원으로 새출발하며 처음 유전체 시퀀싱 결과를 손에 쥔 그녀는 선택의 기로에 놓였다: 시퀀싱 결과를 전문가에게 보낼 것인가, 아니면 스스로 분석할 것인가! 그녀는 과감히 결단을 내리고, 무료 오픈소스 소프트웨어 R을 이용한 데이터 처리방법을 배우기 시작했다. 그녀의 결정은 학계의 커다란 트렌드에 따른 것이었다. 상당수의 연구자들은 상업용 소프트웨어에 식상한 나머지, R을 최우선 데이터 분석도구로 여기고 있었다. 때마침 그녀가 소속돼 있던 프리드리히 미셔 생의학연구소(스위스 바젤 소재)가 R에 관한 정규 교육과정을 운영하고 있었던 것도 그녀의 결심을 굳히는 계기로 작용했다.

R은 무료일 뿐만 아니라, 다양한 사용자들에게 다양한 면모를 보여주여 인기가 높다. 언뜻 보기에, R은 프로그래밍 언어로서 커맨드 라인을 통해 입력을 해야 하므로, 코딩을 하지 못하는 사람들에게는 범접할 수 없는 것처럼 보인다. 그러나 설령 초보자일지라도 - 마치 파도타기를 하듯 - 복잡한 코딩을 구사할 수 있는데, 그것은 R이 제공하는 프리셋(preset) 소프트웨어 패키지이기 때문이다. 프리셋 패키지는 사전 설정된 커맨드를 내장하고 있어서, 코딩맹(盲)에게도 통계분석 및 데이터 시각화를 가능케 해 준다. 말하자면, 프리셋 패키지는 `블랙박스 같은 상업용 솔루션의 세계`와 `전문적 코딩의 세계` 사이의 완충지대를 창조한 셈이다. "R은 분석 및 시각화를 매우 쉽게 해 줬다. R을 이용하면 못할 것이 없다"고 로요는 말했다.

그것은 1990년대에 R을 설계한 개발자들이 의도한 바였다. 뉴질랜드 오클랜드 대학교의 통계학자인 로스 이하카와 로버트 젠틀맨은 컴퓨팅에 관심이 있었지만, 입맛에 맞는 실용적 소프트웨어가 없어서 늘 불만이었다. 그래서 그들은 의기투합하여, 사용자 스스로 데이터분석을 수행할 수 있는 프로그래밍 언어를 개발했다. `R`이라는 이름은 두 사람의 이니셜에서 따온 것이지만, 당시에 가장 널리 이용되던 `S`라는 코딩 언어를 다분히 의식한 듯하다.

인터넷 발달 초기였지만, R은 순식간에 전세계 과학자들의 관심을 끌었다. 통계소프트웨어를 필요로 하던 그들은 기꺼이 R의 개발에 기여했다. 이에 젠틀맨과 이하카는 소스코드를 만인에게 공개하기로 결정했고, 코딩에 능한 과학자들은 재빨리 프리셋 패키지를 개발하여, 다양한 분야에 대한 커맨드와 루틴을 장착했다. "예컨대 천문학자들에게 유용한 소프트웨어쯤은 나도 만들 수 있다. 그러나 천문학 전문가가 직접 소프트웨어를 만든다면, 다른 천문학자들에게 더욱 유용하지 않겠는가?"라고 젠틀맨은 반문했다.


- 수학적 솔루션

2008년 네덜란드 왕립 해양연구소의 카를리너 수타르트 박사(해양학)는 스켈트강 어귀에 서식하는 동물성 플랑크톤의 상태를 체크하고 싶었다. 그녀는 스켈트강 전역에서 동물성 플랑크톤의 사멸속도를 계산해야 했는데, R에는 그런 기능이 탑재되어 있지 않았다. 이 문제를 해결하기 위해, 그녀는 두 명의 생태학자들과 손을 잡고 deSolve라는 패키지를 개발했다. deSolve는 R로 작성된 최초의 미분방정식 패키지다. "다른 소프트웨어로도 미분방정식을 풀 수 있지만, 가격이 비싼 데다 코드가 공개되어 있지 않다"고 수타르트는 말했다. 이제 deSolve는 다양한 분야에서 이용되고 있다. 역학자들은 감염성질환을 모델링하는 데, 유전학자들은 유전자조절 네트워크를 연구하는 데, 신약개발자들은 약동학(pharmaco­kinetics)을 연구하는 데 deSolve를 사용하고 있다.

R이 발표된 지 10년째인 2003년, 과학자들은 200여 개의 패키지를 개발했으며, R 프로젝트(R Project)라는 말이 처음으로 등장했다. 오늘날에는 다양한 분야에서 약 6,000개의 패키지가 개발되어 있어서, 과학자들은 현생인류와 네안데르탈인의 유전체를 비교분석하고(http://www.ebi.ac.uk/training/sites/ebi.ac.uk.training/files/materials/2013/131021_HTS/genesandgenomes.pdf), 인구성장 모델을 만들고(http://cran.r-project.org/web/packages/IPMpack/vignettes/IPMpack_Vignette.pdf), 주가를 예측하며(http://cran.r-project.org/web/packages/quantmod/index.html), 이상의 결과들을 화려한 그래픽으로 시각화하고 있다(http://cran.r-project.org/web/packages/ggplot2/index.html), 그것도 단 몇 줄의 코딩만으로 말이다. 전문가들은 R을 이용하여 원고를 작성할 수 있는데, 이 경우 원고에 코드를 삽입하여 독자들로 하여금 실행하게 할 수 있다(http://yihui.name/knitr). 2013년 엘스비어의 스코퍼스(Scopus)를 이용하여 검색한 바에 따르면, 약 100편의 논문당 하나꼴로 R(또는 R 패키지)을 인용했으며. 특히 농업 및 환경분야의 경우 이 비율은 훨씬 더 높은 것으로 나타났다고 한다.


- 통계 소프트웨어로서의 성공

"많은 사용자들은 `통계 소프트웨어로서 R의 품질`을 높게 평가하고 있다. R은 SPSS나 SAS와 같은 상업용 패키지와 어깨를 나란히 한다. 지난 10년 동안, R은 선도적 통계소프트웨어들을 따라잡았다. 아마도 올해 여름, R은 세계 최고의 통계패키지 자리에 등극했을 것"이라고 테네시 대학교의 로버트 뮌헨 교수(통계학)는 말했다. (뮌헨 교수는 통계 소프트웨어의 대중성을 분석하고 있다.)

유전체학과 분자생물학의 경우, R을 이용하여 바이오컨덕터(Bioconductor)라는 소프트웨어 프로젝트가 개발되었다. 유전체학자와 분자생물학자들은 바이오컨덕터를 이용하여 엄청난 양의 유전자 시퀀스를 처리한 다음, 그 결과를 데이터베이스(예: Gene Expression, Omnibus)와 대조하거나 데이터베이스에 업로드한다. 바이오컨덕터에는 약 1,000개의 패키지가 포함되어 있는데, 그중 일부는 (차세대 시퀀싱 실험에서 나온) 수백만 개의 DNA 조각들을 기존의 유전자들과 연결해 준다.

R의 세계에 빠져들기 위해, 로요는 마이클 스태들러 박사(프리드리히 미셔 생의학연구소 산하 바이오인포매틱스 그룹 책임자)의 감독 하에 고강도 훈련을 받고 있다. 그녀는 6개월간 R을 연마하는 한편 바이오컨덕터를 사용해 왔다. 그밖에도 R을 배울 수 있는 기회는 많다. 예컨대 버클리 데이터과학연구소의 카틱 램 박사(생태학)가 설립한 rOpenSci는 과학자들이 R을 배우고 활용할 수 있도록 도와주고 있다. 램 박사는 무료 R 강좌를 운영하고 있는데, 코딩에 관한 지식이 없는 과학자들에게 특정 분야의 문제를 해결할 수 있게 해 주는 것이 목표다.

샌디에이고 주립대학교의 메건 제닝스(생태학)도 R을 배우고 있다. 그녀는 밥캣, 퓨마 등 야생동물의 이동을 연구하는데, 일년 내내 36개의 카메라로 40만 장의 사진을 촬영한다. 각각의 사진에는 날짜와 시간, 종(種)의 이름이 기록되어 있는데, 그녀는 이 사진들을 기반으로 하여 특정 종의 움직임을 시간대별로 추적하고 싶어 한다. 하지만 마땅한 소프트웨어가 없어서, 종전에는 수작업으로 사진을 선별한 다음, PRESENCE라는 블랙박스(상용) 프로그램에 입력하여 분석했었다. 그러나 이제는 사정이 달라졌다. 그녀는 램 박사의 도움으로 태그가 부착된 사진을 읽는 R 패키지를 만들었는데, 이 패키지에 데이터를 입력하면, 종전에는 한 시간 걸리던 일을 단 5분 만에 해치울 수 있다고 한다.

R의 가장 큰 장점 중 하나는, 온라인 지원이 막강하다는 것이다. R과 관련된 온라인 포럼은 숫자와 질에 있어서 그 어느 상용 통계소프트웨어도 능가한다는 것이 뮌헨 교수의 설명이다. "누군가가 질문을 올리면, 불과 30분 내에 개발자가 나타나 답변을 해 준다. 기초연구자들에게 있어서, 이처럼 신속한 답변은 매우 중요하다"고 뮌헨 교수는 말했다. "나는 지금껏 거의 모든 질문에 대해 답변을 얻었다"고 로요는 말했다. 그녀는 거의 모든 일상적 분석을 혼자 할 수 있는 경지에 이르렀으며, 능숙하지 못한 동료들을 종종 도와주기도 한다고 한다. 그러나 그녀는 이에 만족하지 않고 구글링을 통해 실력을 더욱 연마하고 있다. "R을 배우면 코딩 기술이 늘어날 뿐 아니라, 다른 연구자들의 분석을 비판적으로 바라보는 눈이 생긴다"고 그녀는 말했다.

그러나 모든 과학자들이 R에 열광하는 것은 아니다. R은 - 펄(Perl)이나 C는 물론 - 파이썬(Python)만큼 두려운 존재는 아니지만, 많은 과학자들이 복잡한 코딩을 직접 배우기보다는 조작이 단순한 상용 소프트웨어를 선호하는 것이 현실이다. 예컨대 유전학자인 라빈 머는 포스닥 연구원 시절 로요와 함께 R 강좌를 수강했지만, 지금은 R을 실습하는 데 많은 시간을 투자하지 않는다. R을 실무에 이용하려면 나름의 노력이 필요하기 때문이다. 이에 대해, 그는 `R을 사용할 것인지 말 것인지는 선택의 문제`라고 말한다. 그러나 그런 그도 제네바 대학교에 연구실을 차리고 나서는 R 숙련자를 채용할 생각이라고 한다.

모든 기술이 그렇듯, R도 하루 아침에 배울 수 있는 것은 아니다. 그러나 제닝스는 `R은 배울 가치가 있다`고 강조한다. "지금 시간을 투자하라. 지금 R을 배워 두면 나중에 시간을 절약할 수 있으며, 앞으로 맞닥뜨릴 다양한 과학적 문제들을 해결할 수 있는 능력이 생긴다"고 그녀는 말했다.


■KISTI 미리안 『글로벌동향브리핑』 http://mirian.kisti.re.kr 

디지털여기에 news@yeogie.com <저작권자 @ 여기에. 무단전재 - 재배포금지>