All Projects → demianriccardi → p5-HackaMol

demianriccardi / p5-HackaMol

Licence: other
Object-Oriented Perl 5, Moose Library for Molecular Hacking

Programming Languages

perl
6916 projects

Projects that are alternatives of or similar to p5-HackaMol

legend-sdlc
Legend SDLC module
Stars: ✭ 24 (+100%)
Mutual labels:  modeling
Fusion360WrapSketch
Wrap sketch curves around a cylinder
Stars: ✭ 33 (+175%)
Mutual labels:  modeling
qm
QM model-based design tool and code generator based on UML state machines
Stars: ✭ 54 (+350%)
Mutual labels:  object-oriented
data-science-notes
Open-source project hosted at https://makeuseofdata.com to crowdsource a robust collection of notes related to data science (math, visualization, modeling, etc)
Stars: ✭ 52 (+333.33%)
Mutual labels:  modeling
Mote3D toolbox
Toolbox for particulate microstructure modelling
Stars: ✭ 36 (+200%)
Mutual labels:  modeling
Vehicle-Dynamics-Lateral
OpenVD: Vehicle Dynamics - Lateral
Stars: ✭ 50 (+316.67%)
Mutual labels:  modeling
react-visual-modeling
A DAG React Component for visualization modeling, suitable for UML, database modeling, data warehouse construction.(一个基于React的数据可视化建模的DAG图,适用于UML,数据库建模,数据仓库建设等业务)
Stars: ✭ 96 (+700%)
Mutual labels:  modeling
Contemplate
Contemplate: Fast, extendable object-oriented and light-weight Template Engine for PHP, Python, Node.js, Browser and XPCOM/SDK JavaScript
Stars: ✭ 15 (+25%)
Mutual labels:  object-oriented
libROM
Model reduction library with an emphasis on large scale parallelism and linear subspace methods
Stars: ✭ 66 (+450%)
Mutual labels:  modeling
pymadcad
Simple yet powerful CAD (Computer Aided Design) library, written with Python.
Stars: ✭ 63 (+425%)
Mutual labels:  modeling
blog
My Blog About Computers
Stars: ✭ 106 (+783.33%)
Mutual labels:  object-oriented
Covid-19-analysis
Analysis with Covid-19 data
Stars: ✭ 49 (+308.33%)
Mutual labels:  modeling
Duck
Duck-Typed Programming in C
Stars: ✭ 14 (+16.67%)
Mutual labels:  object-oriented
crynamo
DynamoDB client for Crystal.
Stars: ✭ 14 (+16.67%)
Mutual labels:  object-oriented
BashClass
BashClass is an Object Oriented Programming language that compiles to BASH 4.4
Stars: ✭ 40 (+233.33%)
Mutual labels:  object-oriented
COMOKIT-Model
A GAMA (http://gama-platform.org) model on the assessment and comparisons of intervention policies against the CoVid19 pandemics
Stars: ✭ 23 (+91.67%)
Mutual labels:  modeling
node-steamapi
A nice Steam API wrapper for nodejs
Stars: ✭ 112 (+833.33%)
Mutual labels:  object-oriented
Infrared4Arduino
An object oriented infrared library for the Arduino
Stars: ✭ 51 (+325%)
Mutual labels:  object-oriented
VIATRA-Generator
An efficient graph solver for generating well-formed models
Stars: ✭ 21 (+75%)
Mutual labels:  modeling
Scorecard-Modeling
Use Machine learning to build scorecard model
Stars: ✭ 26 (+116.67%)
Mutual labels:  modeling

HackaMol

Object-oriented Perl 5, Moose library for molecular hacking on multiple scales.

VERSION 0.046

Please see HackaMol on MetaCPAN for formatted documentation. The HackaMol publication has a more complete description of the library (pdf available from researchgate).

Citation: J. Chem. Inf. Model., 2015, 55 (4), pp 721–726

Link to Jupyter Notebooks with the IPerl Kernel

SYNOPSIS

use HackaMol;
my $mol = HackaMol->new->pdbid_mol('1L2Y.pdb');
# 1LY2 is an NMR structure of TRP-cage with multiple models

#recenter all coordinates to center of mass
foreach my $t ( 0 .. $mol->tmax) {
    $mol->t($t);
    $mol->translate( -$mol->COM );
}

#create array of CA atoms with full occupancy 

my @CAs = grep {
                 $_->name    eq 'CA'  and
                 $_->occ == 1 
               } $mol->all_atoms;

#print out the pdb with CA for several models from the NMR 
HackaMol::Molecule->new( 
                         atoms=>[@CAs] 
                       )-> print_pdb_ts([8,2,4,6,8,0], 'some.pdb');

DESCRIPTION

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 using groups, bonds, angles, and dihedrals. HackaMol seeks to provide intuitive attributes and methods that may be harnessed to coerce computational chemistry through a common core. It is organized into two regions: HackaMol, the core (contained here) that has classes for atoms and molecules, and HackaMol::X, the extensions, such as HackaMol::X::PDB (TODO), a parser for protein databank files, and HackaMol::X::Calculator, an abstract calculator for coercing computational chemistry, 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 that use the core.

INSTALLATION

To install HackaMol, I recommend using cpanminus and local::lib. This approach avoids the need for root privileges and uses the system Perl (available on most systems; see Strawberry Perl for Windows). I use Perlbrew to manage local versions of Perl, but Perlbrew is overkill unless your system Perl is very old (if you do use Perlbrew, you won't need local::lib).

Here is a quick summary of a step by step post on installing Perl modules. Below, prompt> denotes your terminal prompt.

  1. install cpanminus

    prompt> curl -L http://cpanmin.us | perl - App::cpanminus
    

    Execution without superuser privileges will complain about not being to write to a path. This is ok! It will create a perl5 directory in your home directory, in which all modules will be installed. Thus, an uninstall involves deleting the ~/perl5 directory.

  2. install local::lib

    prompt> ~/perl5/bin/cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)  
    

    Execution should install local::lib and configure the cpanm command to know about the ~/perl5 directory in the local shell.

  3. configure .bash_profile

    prompt> echo 'eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)' >> ~/.bash\_profile
    

    Execution will add the stuff between the quotes to your bash_profile, which enables automatic configuration of cpanminus and local::lib with every new terminal shell. To uninstall, delete this line from .bash_profile

    You are now ready to install anything installable from CPAN!!!

  4. install HackaMol

    prompt> cpanm HackaMol
    

I use Dist::Zilla and a bunch of plugins to manage the CPAN releases. Dist::Zilla is widely used but fairly dependency heavy. You can install Dist::Zilla and build the library from the github clone, but that shouldn't be necessary.

HackaMol is too fun to not be experimental! Feedback and contributions welcome!

HackaMol can also be installed with this one-liner:

prompt> curl -L cpanmin.us | perl - -n HackaMol

This will install HackaMol and its dependencies in a perl5 directory in your path. You'll need to set the PERL5LIB variable in your shell to find the install directory. Probably something like this (let me know if otherwise):

prompt> PERL5LIB=/home/path/perl5; export PERL5LIB 
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].