Hello!
I finally pushed my Perl 5, Moose library for OO molecules to GitHub:
I'm still updating the documentation and tests, among other things, and I'm trying to get it ready for release on CPAN. If anyone more experienced has time to poke around, I'd be forever grateful. This is my first distribution and getting everything this close has been far more work than I imagined! The library is inspired by PerlMol, BioPerl, and MMTSB (a Perl library developed by Michael Feig and coworkers), my own experiences working on projects ranging from quantum chemistry to biophysical chemistry using hybrid potentials to the biophysics of coarse-grained biomolecular crystals, and an addiction to Perl and Moose.
Long term goals of the library:
To be a solid core set of classes (the above linked) for developing new capabilities that are truly multiscale.
Description of the library:
Written
using open-source modules developed for modern object-oriented Perl on the
Central Perl Archive Network (CPAN), the HackaMol library enables users to
build simple, yet powerful scripts for carrying out computational work on
molecules at multiple scales. The molecular object system organizes atoms
within molecules and seeks to provide intuitive attributes and methods that may
be harnessed to coerce computational chemistry through a common core. The
library is organized into two regions: HackaMol, the core that contains classes
for molecules, and HackaMolX, the extensions, such as HackaMolX::PDBParser, a parser
for protein databank files, that use the core.
The three major goals of the core are for it to be well-tested,
well-documented, and easy to install. The goal of the extensions is to provide
a more flexible space for researchers to develop and share new methods.
I use Math::Vector::Real for all the vector operations. It was a lightweight solution with a fast XS dropin that overlaps very well with the desirables for working with atomic coordinates. Extensions that treat much larger systems will definitely benefit from the capabilities PDL.
Any advice, tips, contribs, etc. are welcome!
Demian