This page provides a summary of AcCoRD’s primary features, a discussion of its motivation, and a brief timeline of its history. For instructions on downloading or using the software, please refer to the links on the AcCoRD Homepage.
A summary of AcCoRD’s primary features is as follows:
- It can use a hybrid of microscopic (track each solute molecule individually) and mesoscopic (i.e., subvolume-based) simulation models to define the environment. Every region is either microscopic or mesoscopic.
- “Actors” are either active molecule sources (i.e., transmitters that release molecules) or passive observers (i.e., receivers). They can be placed within a single region or occupy multiple regions.
- Individual regions are cubes, spheres, or rectangles. Spheres must be microscopic but can be infinite in size.
- Regions can be hollow (i.e., surfaces) and/or placed inside of other regions.
- Molecules can move via diffusion or steady uniform flow.
- Framework for chemical reactions can accommodate reactions such as molecule degradation, enzyme kinetics, reversible or irreversible surface binding, ligand-receptor binding, transitions across boundary membranes, and simplified molecular crowding.
- Independent realizations of a simulation can be repeated any number of times (and on different computers) and then aggregated to determine the average behavior and channel statistics.
- Readable setup and output summary files in JSON format.
- Readable warnings and errors at run time about contradictions or missing information in the configuration file.
- Post-processing tools developed in MATLAB (recommend using R2015a or newer) include video generation and plotting receiver observations.
Note: Content in this section was adapted from the paper “Simulating with AcCoRD: Actor-Based Communication via Reaction-Diffusion”. To access this paper, please visit the AcCoRD Publications page. The publications page also includes links to other papers that describe or use AcCoRD.
Molecular Communication via Diffusion
AcCoRD provides a simulation platform with the power of a generic reaction-diffusion solver that facilitates communications analysis. The target application is molecular communication, which is the use of molecules as information carriers. Molecular communication is ubiquitous for signalling in nature. Interest in studying molecular communication comes from two directions:
- We are interested in the design of synthetic communication networks for environments where radio frequency wireless technologies are not appropriate. Molecular communication could be a suitable alternative in such cases. So, we seek a firm understanding of the fundamental limits of molecular communication. We also need insights into practical system design.
- We are interested in using communications analysis to gain insight into the function of biological mechanisms that rely on molecular communication, such as quorum sensing in bacterial communities. Such insight could improve understanding of diseases and contribute to the development of new prevention or treatment options.
Using diffusion for molecular communication has a number of attractive properties. They include its speed over short distances, its simplicity, and the availability of mathematical models. There are closed-form expressions for the impulse response for diffusion in a number of specific system geometries. However, these systems are usually simplistic and may not accurately represent realistic environments. Having a simulation “sandbox” that is less restricted to particular environments would be a valuable tool.
Summary of Existing Simulation Tools
Existing simulation options (which we discuss in much greater detail in the journal manuscript on the AcCoRD Publications page) tend to follow one of two trends:
- Generic reaction-diffusion solvers are not designed to accommodate the behavior of a transmitter in a communications system, and are not designed to generate the statistics of a communications link.
- Simulators designed specifically for molecular communication are not built as generic reaction-diffusion solvers. While some are very detailed for their intended environments, they are not flexible for studying new and different environments.
How will AcCoRD Help?
AcCoRD (Actor-based Communication via Reaction-Diffusion) bridges the gap between reaction-diffusion solvers and molecular communications analysis. As a reaction-diffusion sandbox, we anticipate that it will contribute the following for molecular communications research:
- Encourage the use of simulations without relying on Monte Carlo methods.
- Increase accessibility to this multi-disciplinary domain. It can improve the understanding and visualization of known reaction-diffusion environments and their communications channel responses.
- Provide a platform to verify new analysis and test transceiver designs. We have already done this in a few papers listed on the AcCoRD Publications page.
- Enable exploration of new environments that have not or cannot be precisely examined analytically.
The plan to build AcCoRD began in 2014, while the developer (Adam Noel) was completing his PhD at UBC. The following timeline is a summary of the major development milestones:
- 2014-09 – developed a proof-of-concept model in MATLAB to describe a hybrid of microscopic and mesoscopic simulation models and how that could be useful for molecular communication simulations. Submitted corresponding paper (or its arXiv link) to the 2015 IEEE International Conference on Communications (ICC) in London, UK.
- 2014-10 – began development of a reaction-diffusion sandbox in C.
- 2015-01 – built a 2D reaction-diffusion solver that would eventually be known as AcCoRD. Presented early results at the Information Theory and Applications workshop in La Jolla, California.
- 2015-04 – added passive and active actors that could be placed “anywhere”. Implemented JSON-format simulation output to simplify importing to MATLAB. Most importantly, named simulator AcCoRD (Actor-based Communication via Reaction-Diffusion). Version would become known as v0.1.
- 2015-05 – submitted paper (or its arXiv link) to the 2015 ACM International Conference on Nanoscale Computing and Communication (NanoCom), which demonstrated environments in v0.1.
- 2015-09 – v0.3 upgraded environments to 3D and added the ability to “nest” regions inside of other regions.
- 2016-02 – migrated development to Github for accessibility and issue tracking. v0.4 added spherical regions and actors and improved the tracking of microscopic molecules as they cross region boundaries.
- 2016-05 – v0.5 and its update added surface regions and surface interaction reactions. These reactions include absorption, desorption, and transitions through membranes.
- 2016-05 – v0.6 added bimolecular reactions in the microscopic regime and utilities for visualizing environments and generating video in MATLAB.
- 2016-07 – v0.7 added utilities for plotting passive actor observation signals in MATLAB, and the ability to visualize an environment without simulating it first. Simulations using this version (and its bug-fix update) were used in the AcCoRD journal manuscript found on the AcCoRD Publications page.
- 2016-10 – v1.0 added option to set local diffusion coefficients for any region or surface reaction. A number of minor enhancements and fixes brought the major version number from “v0” to “v1”.
- 2016-12 – v1.1 added uniform flow, which can be defined globally and also for molecules in specific regions.
AcCoRD’s change log has a more complete description of the changes made in each version of AcCoRD, starting with v0.2. The change log is included with every download; see the AcCoRD Downloads page.