최근에 화학정보학 분야에서는 Pipeline technique이 주요한 기술로 떠오르고 있다. Accelrys사의 Pipeline Pilot 같은 경우에는 Accelrys사의 모든 프로그램들의 기반 엔진으로 사용될 정도로 주력이 되었다.
이외에도 많은 소프트웨어들이 유사한 기능을 제공하는데, 대부분이 Pipeline Pilot과는 달리 오픈소스로 진행되고 있다. 이러한 소프트웨어들을 나열해 보면 다음과 같다. (이 리스트는 ccl에서 언급된 것들을 정리한 것이다.)
이 중에서 taverna의 경우에는 cdk-taverna라는 이름의 프로젝트에 적용이 되어 있다. 그래봐야 사실 taverna에 cdk의 기능을 넣어놓은 정도이고, 내가 몇 달 전에 테스트해 봤을 때는 프로그램이 제대로 실행조차 되지 않았었다.
Knime은 Tripos에서 workflow 엔진으로 채용하고 베타 버전을 내놓고 있는 상황이다. 오픈 소스이기 때문에 이런 일들이 가능한 것이지만, 일정 기간이 지나고 나면 Knime에서 돌아가는 Tripos사의 모듈들은 유료화가 될 가능성도 충분히 있다.
Kepler나 Soma는 사용해 보지 않았고, VisiQuest같은 경우에는 일단 LabView나 MATLAB과 같이 좀더 범용적인 툴로 생각된다. 이름에서처럼 visualization 기능이 뛰어난 것으로 보인다.
물론 이전에도 유사한 개념의 프로그램들은 있었다. 예를 들면 CAChe 같은 경우에도 여러 모듈을 이용해 나름대로의 workflow를 생성하고 이를 활용할 수 있도록 되어 있다. 데이터마이닝 프로그램들 (나중에 자세하게 소개할 기회가 있을 것이다) 역시 대부분 workflow 엔진을 제공하고 있다.
그러나, 위에 언급한 프로그램들 혹은 Pipeline Pilot이 가치를 갖는 이유는, 제한된 분야에서의 모듈이 아니라 실질적으로는 bioinformatics와 cheminformatics는 물론이고 molecular modeling의 대부분의 영역을 커버할 수 있는 정도의 다양한 모듈을 제공한다는 점이고, 이런 상이한 분야의 (예를 들면 이미지 분석, 텍스트 마이닝 등) 기술들을 조합함으로서 굉장히 다양한 종류의 실험들을 해 볼 수 있다는 점이다. 그리고 이러한 기술은 오픈 소스 프로그램이나 오픈 데이터가 많아지면 많아질수록 더욱 힘을 발휘할 수 있게 되고, 바로 지금이 그러한 때이다.
뭐니뭐니해도 가장 큰 장점이라면, 유사한 기능을 하는 수많은 프로그램들을 동일한 환경 내에서 비교해 보고 각각의 장점을 취할 수 있다는 점일 것이다. 상이한 환경 속에서 운영되는 프로그램들의 성능을 공정하게 비교하는 것은 항상 거의불가능한 일이었다. 그러나, 이러한 workflow 엔진 속에 모듈로 존재하고 있는 프로그램들은 완전히 동일한 상황에서 각각의 성능을 비교할 수 있게 된다. (물론 이것은 이론적인 말이고, 실제로는 수많은 난관이 존재한다. 그러나 이전에 비해 벤치마크를 훨씬 의미있고 쉽게 할 수 있다는 것만은 분명한 사실이다)
기술적인 면에서는 일단 자바의 강세가 두드러진다. 대부분의 프로그램들이 자바 기반으로 되어 있고, 자바 기반이 아니더라도 자바 프로그램들을 붙이기 위한 API가 잘 제공되는 것을 보면 알 수 있다. 이외에 대부분의 informatics 툴들의 기본이 텍스트 처리이고, 데이터의 입출력이 표준화된 xml 타입으로 이루어지는 경우가 많다는 점을 감안하면 Perl이 꽤 많이 사용되고 있는 것을 이해할 수 있고, 이외에 Python이 쓰이는 경우가 좀 있다. 내 생각에, informatics 관련된 대부분의 일들이 텍스트 처리라는 점을 감안하면 Perl이나 Ruby와 같은 스크립트 언어를 익혀두는게 도움이 되는 것 같다.
앞으로 이런 workflow 엔진 기반의 소프트웨어들은 화학정보학 분야에서도 대세가 될 것으로 생각된다. 결국 모듈 간의 연결이 이런 프로그램을 통해 수월하게 이루어질 수 있다고 본다면, 작은 기능을 잘 수행하는 프로그램을 만드는 것(어떻게 보면 유닉스의 정신과도 일맥상통하는)이 중요한 일이 될 것이다.


댓글을 달아 주세요