Git Product home page Git Product logo

Markov chain analysis and simulation with DISCOTRESS

A finite Markov chain is a discrete-state stochastic model where edges connecting nodes of the network are associated with transition probabilities for a fixed time step (discrete-time Markov chain) or transition rates (continuous-time Markov chain). Often, we want to analyse the characteristic features of transitions from an initial set of nodes, 𝔅, to a target set of nodes, 𝔄. Dynamical properties of interest include the occupation probabilities of nodes at equilibrium (illustrated by the sizes of nodes in the above image), the probabilities that nodes are visited along 𝔄 ← 𝔅 trajectories (indicated by node opacity), and the net productive 𝔄 ← 𝔅 flux along edges (indicated by edge thickness). These quantities, and many others, can be determined using the DISCOTRESS software package, either through exact computation by numerically robust algorithms, or estimated from simulation data obtained using efficient path sampling methods.

Finite Markov chains are network models commonly used to represent stochastic processes as varied as animal movement within an ecosystem 🦜🌴, the fluctuating status of financial markets πŸ’ΈπŸ“ˆ, and biomolecules such as proteins or DNA folding to their functional structure 🧬🦠. DISCOTRESS is a powerful and flexible software package to analyse the dynamics of finite Markov chains. The Markov chain dynamics can be studied at both a global level, where the MFPT (mean first passage time; the average time to reach the target state 𝔄 from an initial state 𝔅) is a key quantity, and in detail, by identifying the features of dominant 𝔄 ← 𝔅 paths and quantifying the influence of local states for the transition between two endpoint states 𝔄 and 𝔅.

DISCOTRESS is specifically designed to treat Markov chains featuring a comparatively slow (i.e. low probability) event. This separation of timescales is a common feature of realistic dynamical models - for instance, in a population dynamics model of an ecosystem 🦜🏝️, births and deaths of individuals take place on a fast timescale compared to large-scale changes such as extinction of a species. In general, we are interested in studying a particular 𝔄 ← 𝔅 process representing a significant change in system state that is rare compared to unproductive fluctuations. For Markov chains exhibiting rare event dynamics, standard algorithms to compute dynamical quantities are numerically unstable, and the simple kinetic Monte Carlo (kMC) method to simulate pathways is severely inefficient. DISCOTRESS includes a suite of advanced algorithms that negate these problems, including numerically robust state reduction algorithms to compute exact dynamical quantities, and efficient simulation algorithms to sample paths. Get started with the software here.

About me

I am enthusiastic about creating and analysing computer models to investigate complex real-world problems, especially dynamical processes. I completed a PhD at the University of Cambridge, during which I began development of my DISCOTRESS program. Much of my work deals with the theory of Markov chains, but I am also interested in applications to the modeling of biophysical, ecological, and economic systems. More broadly, I have research interests that encompass stochastic modeling, optimization, network science, and machine learning.

I love wildlife and nature, and I like to spend my free time making visual artworks of critters 🦜🦌🦨🦩🦎🐫 and the landscapes 🏞️ they inhabit, especially the Southwest desert 🏜️ and prairie biomes of North America. I work with graphite and charcoal pencils as well as digital painting.

Daniel J. Sharpe's Projects

bayes_opt icon bayes_opt

Pure Python code for Bayesian Optimisation (BO) of a continuous objective function

cpp_primer icon cpp_primer

Various pieces of example code for learning features of C++

discotress icon discotress

🦜 DISCOTRESS 🦜 is a software package to simulate and analyse the dynamics on arbitrary Markov chains

discotress_tools icon discotress_tools

Various scripts for analysis of the dynamics on Markov chains, and processing DISCOTRESS output

discotress_tutorials icon discotress_tutorials

Learn to get started using DISCOTRESS with these tutorials! Then apply to your own Markov chains in ecology 🦜🌴 economics πŸ’ΈπŸ“ˆ biophysics 🧬🦠 and more!

fortran_primer icon fortran_primer

Various pieces of example code for learning features of Fortran90

girvan-newman icon girvan-newman

C++ implementation of the Girvan-Newman algorithm for finding community structure in a graph

k_distinct_paths icon k_distinct_paths

Python code to find the k shortest paths in a kinetic network (Markov chain)

lattice_protein icon lattice_protein

Python code for Monte Carlo simulation and ant colony optimisation of a lattice protein model

metadynamics icon metadynamics

C++ implementation of metadynamics simulation on a potential energy surface

mini_energy_landscape_explorer icon mini_energy_landscape_explorer

A suite of scripts for analysing and exploring continuous energy functions, demonstrating the use of e.g.: nudged elastic band algorithm, eigenvector-following and BFGS minimisation. A set of model chemical potential energy surfaces are included.

mlr_mcl icon mlr_mcl

C++ code for multi-level regularised Markov clustering of a kinetic network (Markov chain community detection)

nested_sampling icon nested_sampling

C++ implementation of the nested sampling algorithm for a potential energy surface

py_primer icon py_primer

Various pieces of example code for learning features of Python

scikit-learn_examples icon scikit-learn_examples

Simple example usages of various machine learning methods within Python's scikit-learn package

stochastic_de icon stochastic_de

C++ code to solve a general stochastic differential equation (SDE)

swendsen_wang_potts icon swendsen_wang_potts

Code for simulation of the Potts spin glass model by the Swendsen-Wang algorithm. The Hoshen-Kopelman algorithm is used for clustering.

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.