All Projects → rinikerlab → Ensembler

rinikerlab / Ensembler

Licence: MIT license
Ensembler is a python package that provides fast and easy access to 1D and 2D model system simulations. It can be used for method development or to deepen understanding of a broad spectrum of modeling methods, from basic sampling techniques to enhanced sampling and free energy calculations. It is easy to install, fast, increases shareability, co…

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Ensembler

Simple Java Calculator
🔢 Simple calculator written in Java with Eclipse. This calculator is simple with an easy code to help novices learn how to operate a calculator.
Stars: ✭ 130 (+209.52%)
Mutual labels:  teaching
Duet
A tiny language, a subset of Haskell aimed at aiding teachers teach Haskell
Stars: ✭ 155 (+269.05%)
Mutual labels:  teaching
Design-Patterns
Project for learning and discuss about design patterns
Stars: ✭ 16 (-61.9%)
Mutual labels:  object-oriented
Openolat
Learning Management System OpenOlat
Stars: ✭ 135 (+221.43%)
Mutual labels:  teaching
Rtutor
Creating interactive R Problem Sets. Automatic hints and solution checks. (Shiny or RStudio)
Stars: ✭ 141 (+235.71%)
Mutual labels:  teaching
Jupyterhub Deploy Teaching
Reference deployment of JupyterHub and nbgrader on a single server
Stars: ✭ 194 (+361.9%)
Mutual labels:  teaching
Simple Java Text Editor
📝 PHNotepad is a simple Java text/code editor (notepad) written in Java. It has also nice features such as Search tool, Find/Replace text/code, Auto completion, Nice Image Buttons for better UX, etc.
Stars: ✭ 128 (+204.76%)
Mutual labels:  teaching
tableaunoir
An online blackboard 🖉 with fridge magnets 🌈🧲 for teaching, and making animations 🏃 and presentations ⎚.
Stars: ✭ 149 (+254.76%)
Mutual labels:  teaching
Py Rse
Research Software Engineering with Python course material
Stars: ✭ 145 (+245.24%)
Mutual labels:  teaching
sds env
Spatial Data Science Environment
Stars: ✭ 20 (-52.38%)
Mutual labels:  teaching
Journalism Syllabi
Computer-Assisted Reporting and Data Journalism Syllabuses, compiled by Dan Nguyen
Stars: ✭ 136 (+223.81%)
Mutual labels:  teaching
Yrssf
一个分布式(p2p)云教学/云课堂/直播平台系统CMS,睿易派的开源替代品
Stars: ✭ 141 (+235.71%)
Mutual labels:  teaching
Data Cleaning 101
Data Cleaning Libraries with Python
Stars: ✭ 243 (+478.57%)
Mutual labels:  teaching
Public
Public documents for the Master of Data Science program at the University of British Columbia
Stars: ✭ 133 (+216.67%)
Mutual labels:  teaching
sdia-python
Python course material - SDIA Python
Stars: ✭ 16 (-61.9%)
Mutual labels:  teaching
Stats337
Readings in applied data science
Stars: ✭ 1,625 (+3769.05%)
Mutual labels:  teaching
P4 Learning
Compilation of P4 exercises, examples, documentation, slides for learning or teaching
Stars: ✭ 190 (+352.38%)
Mutual labels:  teaching
Online R learning
Online R learning for applied statistics
Stars: ✭ 132 (+214.29%)
Mutual labels:  teaching
lua-classy
Class-based OO library for Lua
Stars: ✭ 28 (-33.33%)
Mutual labels:  object-oriented
learningmachines
Teaching machine learning!
Stars: ✭ 46 (+9.52%)
Mutual labels:  teaching

Welcome to Ensembler

GitHub Actions Build Status codecov Language grade: Python Build package Documentation

Description

Ensembler is a python package that allows fast and easy access to one and two-dimensional model systems simulations. It enables method development using small test systems and helps deepen understanding of a broad spectrum of molecular dynamics (MD) methods, starting from basic techniques to enhanced sampling and free energy calculations. It is easy to install, fast, increases shareability, comparability, and reproducibility of scientific code developments. Here, we provide insights into the package's implementation, usage, and an application example for free energy calculation. There is an article about Ensembler in JCIM, check it out: https://doi.org/10.1021/acs.jcim.0c01283

Quick Start to Simulations:

Open In Colab Binder

Contents

The full documentation can be found here: https://rinikerlab.github.io/Ensembler/

potentials - Potential Energy Functions

Implement mathematical functions of interest for modeling purposes, for example, in chemistry. Implementation of new potential energy functions is straightforward, as there are only a few functions that need to be overwritten. Implemented Potentials: Harmonic Oscillator, Wave functions, etc. Also, different dimensionalities can be used, like 1D, 2D, and ND.

samplers - Sampling Methods

This module provides integrators for integrating potential functions. E.g., Monte Carlo, Velocity Verlet.

systems - Used for Simulations

This module is used to set up a simulation with a system class that contains a potential energy function and a sampling method, plus optional other parameters.

ensemble - Multi Replica Approaches

This module contains the implementation of the ConveyorBelt and will contain in future additional Replica Exchange approaches.

visualization

This module contains predefined visualization, animation and widget functions.

analysis

This module contains at the moment Free Energy Calculations.

Tutorials and Examples:

You can try Ensembler online via the binder or Google colab links below or on your machine with our provided jupyter notebooks showing use cases for Ensembler with visualizations. The Binder links might take some time to build the repo; depending on the traffic, it can take up to 10 minutes to be built.

Tutorials

We provide short introductions into how potential energy functions can be used and sampled in simulations in Ensembler with the jupyter notebooks in the example folder that can be also accessed by the binder links.

Here is an small example of a simple simulation:

CODE:

##Imports
from ensembler.potentials.OneD import fourWellPotential
from ensembler.samplers.stochastic import langevinIntegrator
from ensembler.system import system
from ensembler.visualisation.plotSimulations import oneD_simulation_analysis_plot

##Simulation Setup
V = fourWellPotential(Vmax=4, a=1.5, b=4.0, c=7.0, d=9.0,  ah=2., bh=0., ch=0.5, dh=1.)
sampler = langevinIntegrator(dt=0.1, gamma=10)
sys = system(potential=V, sampler=sampler, start_position=4, temperature=1)

##Simulate
sys.simulate(steps=1000)

##Visualize
positions = np.linspace(start=0, stop=10, num=1000) #phase space to be visualized
oneD_simulation_analysis_plot(system=sys, title="Langevin Simulation", limits_coordinate_space=positions)

OUT: Not Visible with pip

In the following links you can find more features of Ensembler.

Potentials:

Open In Colab Binder

Simulations:

Open In Colab Binder

Examples

Examples are advanced jupyter notebooks, covering a specific topic, going deeper into the methodology and having nice visualizations.

Enhanced Sampling:

Open In Colab Binder

Free Energy Calculations:

Open In Colab Binder

Interactive ConveyorBelt:

Open In Colab Binder

EDS-Potentials:

Open In Colab Binder

How To Install

There are many ways to get the Ensembler package.

  • If you want to use Ensembler (don't forget to download the examples):

    pip install ensembler-rinikerlab
    
  • If you want to use Ensembler, see the example notebooks or develop Ensembler:

    git clone https://github.com/rinikerlab/Ensembler.git
    cd Ensembler
    python setup.py install
    
  • If you want to use Ensembler, see the example notebooks or develop Ensembler - but not install the package: Add the path to the Ensembler repository; the requirements needed for the package can be used like in the following examples:

    • PIP:

        git clone https://github.com/rinikerlab/Ensembler.git
        cd Ensembler
        export PYTHONPATH=${PYTHONPATH}:${PWD}
        pip install -r devtools/pip_requirements/requirements_unix.txt
      
    • Anaconda:

        git clone https://github.com/rinikerlab/Ensembler.git
        cd Ensembler
        conda create -n Ensembler --file devtools/conda-envs/environment_unix.yml
        conda activate Ensembler
      

For windows, we also provide the required files in the same folders:

  • devtools/pip_requirements/requirements_windows.txt
  • devtools/conda-envs/environment_windows.yml).

Contributing

If you would like to contribute to Ensembler, you are most welcome! Just raise an issue or write us a mail.

Authors

Benjamin Ries; Stephanie M. Linker; David F. Hahn

Copyright

Copyright (c) 2020, Benjamin Ries, Stephanie M. Linker, David F. Hahn

Acknowledgements

Project-based on the Computational Molecular Science Python Cookiecutter version 1.3.

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].