티스토리 뷰

BigQuery를 이용하여 genome 데이터를 주무르기 전에 얼마전까지 뜨거운 감자였던 연구의 재현성에 관한 이야기를 하려고 한다. 여기서는 R을 중심으로 클라우드와 literate programing (문학프로그래밍) 을 이용하여 어떻게 연구의 재현성을 확보하는지에 대해서 알아보려고 한다.

클라우드를 이용한 R 분석 환경 구축 및 공유/활용

글제목은 거창하지만, 그냥 내가 어떻게 R을 사용하는지에 대한 것이니 너무 기대하지 않기 바란다.  아래의 일련의 과정을 통해 R환경이 구축된 클라우드 이미지를 확보한다.

  • 클라우드 컴퓨터에서 2가지 이상 버전의 R을 설치 (하나는 2.x 대 다른 하나는 3.x대의 R을 각각 설치)
  • 기본적인 패키지 설치 (이건 개인별로 차이가 있으니 알아서 설치하시오)
  • R 통합 IDE 환경인 RStudio의 Server 버전을 설치 (웹을 통해 RStudio 접근 가능)
  • 요기까지 설정한 내용을 이미지화 (나중에 원하는 서버사양으로 원하는 때에 바로 사용 가능하도록)
  • 서버 삭제,,, 이제 남은건 R환경이 구축된 이미지 

RStudio Server 및 기본 패키지 설정하기

시커먼 콘솔상에서 그동안 R 코드를 작성하고 실행했다면, 이제 통합개발환경을 고려해보기 바란다. 그중에서도 RStudio를 추천한다. 로컬에 설치해서 수행이 가능한데, 그보다는 서버에 R을 설치하고 원격에서도 웹접속으로 RStudio를 사용할 수 있는 RStudio Server를 추천한다. 아래와 같이 웹 브라우저를 통해 접속하면 바로 어느 컴퓨터가 되었던지 R을 사용할 준비가 된다.


이미지 생성하기

위에서 RStudio Server가 설치된 서버에 대해서 이미지 생성 버튼을 클릭하여 이미지화한다.

서버를 생성한후 설정을 마치고 나면 해당 OS와 R이 설정된 내용을 그대로 보존하면서 이미지를 만들 수 있다.

이미지를 통한 서버 생성하기

이제 기존의 서버는 삭제하고 다음과 같이 "나의 이미지"에 R이 설정된 이미지가 만들어진다. 이제 원하는 때에 바로 이미지를 통해서 "서버 신청" 버튼을 통해 새로운 서버를 생성 가능하다.


RStudio 활용하기

이제 R이 필요한 경우 이미지로부터 서버를 생성하여 웹으로 접속하면 바로 웹 접속을 통해 R환경이 수분내에 갖추어진다. 이제 어떻게 활용할지 재현성은 어떻게 확보하는지 RStudio를 통해 알아보도록 하자.

데이터를 분석할 때마다 수많은 휘발성? 코드를 작성하고 잊곤한다. 또는 메모장에 복사하든지 좀 더 세련된 사람들은 EverNote나 OneNote 등을 활용해 R스크립트를 적어 놓곤 하는데,, 이게 다른 사람에게 주면 환경이 서로 맞지 않거나 해서 실행이 안되기 일쑤다. 

R Markdown을 이용 코드 작성하면서 문서 작성을 한방에

HTML이 웹을 위한 마크업 언어라면, Markdown은 그냥 일반적인 문서를 위한 마크업 언어다. HTML 보다 훨씬 작성하기 쉽다. 뭐 이정도,,,, 예를 들어 제목을 쓴다고 할 경우 "#난 제목이요." 라고 해주면 자동으로 글씨 크기와 정렬을 해준다. 코드를 삽입하는 경우도 ```와 ``` 사이에 코드를 넣어주면, 알아서 박스 처리도 해준다. 

마크다운 문법으로 작성된 문서 (위)를 변환하면 아래 그림처럼 변신

그렇다, RStudio는 IDE환경에서 Markdwon을 작성할 수 있도록 해준다. 즉 R 명령을 죽 치면서 분석을 진행하면서 동시에 Mardown을 이용해서 해당 코드에 대한 내용과 코드를 삽입한 Markdwon을 작성한다. 물론 이때 History를 보면서 내가 작성한 코드를 Markdown에 손쉽게 추가가 가능하다.


이렇게 생성된 Markdown 문서는 Knit HTML을 이용해서 HTML 문서로도 변환이 가능하며, 이때 코드의 실행 결과는 자동으로 Markdown 문서에 삽입된다. 코드중 '''{r}이라고 되어 있는 부분은 실제 실행하고 그 결과를 첨부하라는 의미이다.


위와 같이 작성된 마크다운은 실제 summary와 plot이 실행되어,  요렇게 plot까지 삽입되게 된다.


자, 이제 결론을 내자.

자신의 분석 데이터와 분석환경을 클라우드 이미지로 만들고, 마크다운 문서를 공유하면 끝. 누구든지 손쉽게 내가했던 분석을 재현 가능 뭐 이래라 저래라 주저리 말할 필요없이 끝.

추가적으로 이러한 마크다운만을 별도로 공유하는 사이트가 있으며,
필자(나)는 분석환경은 클라우드 이미지 공유하고 분석 데이터 및 markdown 문서는  github을 통해 제공,,, 끝.

저작자 표시 비영리 동일 조건 변경 허락
신고
댓글
댓글쓰기 폼