2016년 5월 3일 화요일

SequenceServer 활용하기(Ruby)

공공기관 웹사이트 정비방안에 따라서 모든 웹사이트는 일몰제를 원칙으로 운영해야 하고, 일정 기준(방문자 수 혹은 데이터 등록 수 등)을 충족하지 않으면 폐쇄를 해야 할 처지에 놓이게 되었다. 또한 개별적인 도메인은 상당한 사유가 있지 아니하면 신규로 생성하거나 유지하지 못하고, 기관의 공식 도메인의 하위 도메인으로 들어가야만 한다. 게다가 사용자 인터페이스까지 통일해야만 한다.

싫든 좋든 이 지침을 따르지 않을 수가 없어서 미생물 유전체 정보 서비스를 위해 운영하던 웹사이트를 폐쇄하고 말았다. 그랬더니 적은 빈도지만 이를 써 오던 사용자가 불편함을 호소하게 되었다.

기존 사용자는 특정 genome에 대한 www blast를 가장 요긴하게 사용해 왔었다. 불편함을 덜어주기 위해 연구소 방화벽 내에서만 돌아가는 www blast site를 임시로 열기로 잠정적으로 결정한 다음 NCBI ftp 사이트에서 blast 바이너리를 찾았다. 그런데 뭔가 좀 이상하다. BLAST+는 다운로드 사이트에서 각 버전별 묶음이 잘 보이는데 www blast가 도대체 보이지 않는다. 이제는 legacy blast에 묻어서 더 이상 눈에 뜨이는 URL에서 배포하지 않게 된 것으로 생각된다.

좀 오래된 글이지만 다음의 SEQanswers 글타래가 한가지 힌트를 제공하였다.

Is there a replacement for wwwblast using new blastx+ toolkit

그것은 바로 Ruby로 만들어진 SequenceServer라는 것이다. 리눅스에서 프로그램을 설치하여 command line으로 실행하면 BLAST+ 바이너리와 DB file의 위치를 묻는다. 이를 차례로 입력하면 웹브라우저에서 http://localhost:4567이라고 입력하는 것만으로 GUI를 갖춘 blast 창이 뜬다. 말하자면 SequenceServer는 GUI 환경에서 NCBI BLAST+를 사용하게 만들어주는 일종의 wrapper인 셈이다. 예전의 www blast는 comman line blast와 완전히 별개의 프로그램이었던 것이다. Python 모듈 설치도 쉽지 않은데 이제는 Ruby라니! gem은 또 무엇을 하는 유틸리티란 말인가? 설치 전 과정을 간단하게 정리해 본다.

SequenceServer 설치(관리자 권한)

  1. https://rubygems.org/rubygems/rubygems-2.6.4.tgz 다운로드
  2. 압축을 풀고 ruby setup.rb 실행
  3. yum install ruby-devel
  4. yum install rdoc
  5. gem install sequenceserver
SequenceServer 웹사이트에는 단지 5번 항목만을 기술해 놓았다. 1-4의 과정은 구글 검색과 시행착오를 거쳐서 알아냈다. 설치가 다 끝났으면 sequenceserver를 실행한다. 우선 BLAST+ 바이너리의 경로를 입력하라는 지시가 뜬다. 그냥 엔터를 치면 없는 것으로 가정하고 다운로드를 받는다. 그 다음에는 DB 생성을 위한 FASTA file을 지정하라는 표시가 뜬다. 여기까지 다 한 뒤에는 SequenceServer 프롬프트를 유지한 상태로 다른 터미널 창을 열고 firefox를 띄운 뒤 주소창에 http://localhost:4567이라고만 넣으면 된다. 127.0.0.1로만 접속이 됨을 유의하라. 즉, 웹 브라우저에서 리눅스 컴퓨터의 IP 주소:4567을 넣으면 접속이 되지 않는다. 쓰레드 등 각종 파라미터 설정은 sequenceserver 명령어의 인수로 제공하면 된다. 간단한 사용법은 sequenceserver -h를 하면 확인할 수 있다.


이러한 방식의 유틸리티가 있을 것이라고는 정말이지 상상도 하지 못했다! 사용자의 요청에 따라 임기응변식으로 blast site를 만들어 주거나 까다로운 CLI blast 사용법을 가르쳐줄 것이 아니라, 이미 갖고 있을 약간의 리눅스 지식을 활용하여 sequenceserver를 쓰도록 유도하는 것이 훨씬 생산성이 높을 것이다.

전혀 계획하고 있지 않던 일을 타인의 요청에 의해서 하는 과정에서 이렇게 예상 외의 기법을 터득하게 된다. 이런 즐거운 경험이 점점 많아진다는 것은 매우 좋은 일이 아닐 수 없다.



댓글 없음: