MayaChemTools

MayaChemTools라는 이름의 프로그램이 있다. GNU LGPL에 의해 배포되는 무료 프로그램으로서 perl로 프로그래밍 되어있다. 원래 펄이라는 언어가 텍스트 프로세싱에 유용한 언어인데다 역사가 깊기 때문에 굉장히 많은 라이브러리가 존재하는 것이 큰 강점이다. 루비가 깔끔하고 좋은 언어적 특징을 가지고 있는데 비해 라이브러리가 많지 않다는 점은 분명히 약점 중의 하나이다. (물론 이 약점은 시간이 해결해 줄 수 있는 것이기는 하다)

이 mayachemtools라는 프로그램을 찬찬히 뜯어보면 굉장히 멋진 프로그램이라는 것을 쉽게 알 수 있다. 기본적으로 sdf 파일과 csv, tsv 파일을 처리할 수 있도록 되어 있는데, 실제로 아직까지 cheminformatics에서 할 수 있는 일이라는 것이 sdf 파일의 내용을 일관적으로 관리하고 그 정보를 가공하는 정도이기 때문에 sdf 파일을 쉽게 처리할 수 있다는 것은 매우 중요한 일 중의 하나이다. 게다가 cheminformatics 프로그램이 아닌 일반적인 실험 데이터들은 대부분 csv 형식으로 저장될 수 있기 때문에, 실험과 관련된 데이터를 처리하기 위해서는 csv 파일에 들어있는 정보를 처리하는 기술이 필요하다. 이런 측면에서 생각해볼 수 있는 거의 모든 기본적인 기능을 가지고 있는 것이 바로 mayachemtools 이다. 그리고 이런 기능이 거의 텍스트 프로세싱이라는 것을 감안하면 펄을 사용하는 것이 아주 적절한 선택이라는 것을 알 수 있다.

결국 모든 데이터는 텍스트로 관리되어야 한다. 최근에 MS 오피스도 자체 포맷을 xml 형태로 하기로 했다고 하는데, 이런 것도 결국은 호환성이나 실용성을 따져보았을 때 텍스트로 관리하는 것이 유용하기 때문이라고 생각할 수 있다. 특히 용량의 면에서도 텍스트 파일을 gzip같은 알려진 압축 포맷으로 압축하여 보관하고, 프로그램에서 읽을 때 압축을 해제하는 과정을 한 번 더 거치게 되면 문제될 것이 전혀 없다. 게다가 이런 압축과 압축 해제에 필요한 모든 루틴들은 거의 표준화되어 공개되고 있지 않은가…

최근에 ChIPS같은 cheminformatics database system 을 만드는 일에 참여를 하면서 이런 생각들을 하고 있다. 그리고 생각보다 좋은 프로그램들이 많이 만들어져 있기 때문에, 이런 것들을 적절하게 묶고 integration 함으로서 아주 좋은 어플리케이션을 제공하게 될 수 있을거라는 생각이 든다.