Giter Site home page Giter Site logo

ajtritt / pmi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from salilab/pmi

0.0 0.0 0.0 82.01 MB

Python Modeling Interface

Home Page: https://integrativemodeling.org/nightly/doc/ref/namespaceIMP_1_1pmi.html

Shell 0.74% C++ 2.18% Python 96.90% CMake 0.18%

pmi's Introduction

\brief Python classes to represent, score, sample and analyze models.

Build Status codecov

This module contains a variety of high-level Python classes to simplify the construction of a modeling protocol in IMP. One recent use of PMI is the modeling of the Nup84 subcomplex of the nuclear pore complex. Several other applications can be seen at the IMP systems page.

This module is still under heavy development, and should be considered experimental.

See also the [PMI changelog](@ref pmi_changelog).

Getting started with PMI

The objective of PMI is to make it as easy as possible to use the powerful representation, scoring, and sampling tools within IMP (and to add some cool analysis functionality) for common modeling problems. Most PMI classes wrap multiple IMP classes and functions that are commonly combined. While this greatly improves usability, it can reduce flexibility. Let us know if you want to do something not currently supported.

The typical flow of a PMI modeling script is as follows:

  • [Topology](@ref IMP::pmi::topology): create a [System](@ref IMP::pmi::topology::System), [States](@ref IMP::pmi::topology::State), [Molecules](@ref IMP::pmi::topology::Molecule), add structure and representation
  • [DegreesOfFreedom](@ref IMP::pmi::dof): setup rigid bodies, flexible beads, and other constraints.
  • [Restraints](@ref IMP::pmi::restraints): restrain your system with theoretical or experimental data
  • [Sample](@ref IMP::pmi::macros::ReplicaExchange) your system with replica exchange (including Monte Carlo or Molecular Dynamics or both)

Here are some examples to get you started

Multi-scale representation in PMI

One can create multiple simultaneous representations in PMI. Here is a brief overview:

  • beads: Groups of residues. The "resolution" here is the number of residues per bead (except resolution 0, which corresponds to atomic resolution). For regions with known structure, these are created by averaging along the backbone. Otherwise they are spheres with the approximately correct radius for unstructured protein.
  • densities: These are approximated electron density, in the form of [Gaussians](@ref IMP::core::Gaussian). For structured regions we fit a Gaussian Mixture Model (GMM) to the atomic positions. The key number here is residues_per_component: lower number means more approximate. Currently this representation is only used in the [GaussianEMRestraint](@ref IMP::pmi::restraints::em::GaussianEMRestraint) but we plan to use them for excluded volume, etc.
  • ideal helices: These are actually resolution=1 bead representations at the approximate locations of a helix.

See a longer discussion of resolutions [here](@ref pmi_resolution).

Check out some examples or systems that use PMI.

Author(s): Riccardo Pellarin, Charles Greenberg, Daniel Saltzberg, Peter Cimermancic, Ben Webb, Daniel Russel, Elina Tjioe, Seung Joong Kim, Max Bonomi, Yannick Spill

Maintainers: Riccardo Pellarin, Charles Greenberg, Daniel Saltzberg

License: LGPL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Publications:

pmi's People

Contributors

benmwebb avatar pellarin avatar cgreenberg avatar shanot avatar procyon777 avatar sethaxen avatar kaisengit avatar etjioe avatar petercim avatar iecheverria avatar drussel avatar stochastic13 avatar tpeulen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.