2016년 8월 25일 목요일

Anaconda와 Jupyter

파이썬 교육 2일차의 혼동스런 아침을 맞는다. 수일 동안 아침 잠을 설쳤더니 어젯밤 숙소에서는 도저히 제대로 된 복습을 하지 못하였다. 오늘은 아나콘다와 주피(파이?)터라는 생소한 시스템을 처음 접한다.

미생물 유전체와 관련된 파이썬 스크립트를 설치하고 필요한 패키지들을 설치하여 사용하는 정도의 매우 초보적인 유저 수준을 이제 벗어날 수 있을까? 아직까지는 Perl의 자유로움(또는 난해함?)을 좀 더 만끽하고 싶지만, 이제는 바이오인포매틱스 = 파이썬이라는 등식이 자연스럽게 받아들여지고 있으니 대세를 거스를 수는 없는 노릇이다. 비교<언어학>적 입장에서 두 스크립트 언어를 다룬다면 생소한 파이썬 문법과 활용사례를 익히는데 도움이 되리라 믿는다.

위키피디아에서 아나콘다가 무엇인지 찾아보았다.

Anaconda (python distribution) 
Anaconda is a freemium open source distribution of the Python and R programming languages for large-scale data processing, predictive analytics, and scientific computing, that aims to simplify package management and deployment. Its package management system is conda.

아나콘다는 파이썬 배포판의 일종이라는 뜻일 것이다. 그렇다면 파이썬 공식 사이트에서 배포하는 것(링크)와는 별도의 것으로 생각된다.

Jupyter는 무엇인가? http://jupyter.org 사이트의 첫 페이지에 있는 설명을 가져와 본다.

The Jupyter Notebook is a web application that allows you to create and share documents that contain live code, equations, visualizations and explanatory text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, machine learning and much more.

Jupyter는 커맨드 라인의 개발 환경을 로컬 컴퓨터에서 돌아가는 웹 서버 환경에 올려서 작접 작업을 합과 동시에 코드와 실행결과 및 설명 등을 공유할 수 있는 환경이라고 생각된다. 데이터 과학자의 인생이 이것을 배우게 됨으로서 갑자기 달라진다고 하니 약간의 과장은 포함된 것이겠지만 공부를 할 가치는 있을 것이다. GitHub는 (내가 알기로는) 버전 관리와 배포를 위한 것이라면, Jupyter에서는 live code를 포함한다 하니 아마도 웹 환경에서 돌아가는 코드를 직접 볼 수 있게 만든 것으로 생각된다.

파일 입출력도 제대로 못해서 아직 허덕이는 중에 배울 것이 너무나 많다. 쉬는 시간을 이용하여 multiple fasta를 읽어들이는 연습문제를 풀어야 한다. Perl의 Bio::SeqIO에 해당하는 물건이 분명히 파이썬에도 있겠지만, 교육 목적을 달성하기 위해서는 직접 손으로 뭔가를 만들어내야만 한다!

이틀째 교육을 마치고...

Jupyter와 pandas를 이용하여 자료를 분석하는 교육을 받았다. Jupyter는 매우 생소하였고, pandas는 그나마 단편적으로 알고있던 R에 대한 지식까지도 뒤죽박죽이 되게 만들었다. 준비가 충분하지 않았던 내 잘못이 크겠지만 말이다. 어디까지를 공부해서 내 것으로 만들어야 하는지 더욱 자신이 없어졌다. 일단은 R을 다시 공부해야겠다는 생각을 갖게 되었다.

댓글 없음: