Molecular Communication Markup Language


The existing simulation tools of molecular communication systems utilize different languages, configuration and output files, and other particular features that make cross-validation and reproducibility or results often unfeasible, especially for complex communication architectures. In order to facilitate collaboration and knowledge sharing we have pursued the development of a harmonization tool, the so called MolCom Markup Language (MolComML).

MolComML is an XML-based language that promises to reunite both numerical analysis and experimental synthesis by ensuring a flexible markup language. This will allow cross-validation of experiments with the theoretical results, as well as to reduce significant researcher time in interfacing different software tools. The target of this activity can be compared with that of XML-based languages, which allow specifying network configuration in a unified way, such as NETCONF, or OF-CONF for Software Defined Networking devices.

The MolCom Toolbox may need to exchange simulation and configuration data between the integrated simulators during a single simulation session. This requires a standardized way to encode data, and especially simulation configuration, in order to provide configuration information that do not strictly depend on the source/destination simulator, but are standardized. This relieves each researcher with unneeded knowledge of the internal simulation structure. In addition, the MolComML, similarly to other markup languages, such as SBML, SBOL, and CellML, has a broader scope, since it allows exchanging also simulation models in a compact yet effective way.

Finally, the scope of MolComML, is not tied to simulations only. In fact, it could be used also to describe, in a standardized way, wet lab experiments, to ease their reproducibility in different laboratories.

In order to be able to use a MolComML file, each compliant simulator needs a parser module, able to extract the information from MolComML and translate it into its specific configuration file. A further step is to design an input module, able to read directly the information contained in the MolComML file. We have almost finalized its implementation in BiNS2 as a proof-of-concept.

The main objectives of the MolComML format are listed in what follows:

  • Representation of different classes of molecular communication scenarios, at all levels of abstraction.
  • Enable the use of multiple software tools without having to rewrite models to conform to different file formats.
  • Guarantee the survival of models beyond the lifetime of the software used to create them.
  • Usage of a single language both to analyze the considered scenarios through software tools, as well as to synthesize actual experiments. This ensures repeatability and cross-validation.
  • Enable models to be shared and published in a form that any researcher can use even by making use of different software environments.
  • Enable future expandability of the markup language. Due to the rapid knowledge growth in this field, this language needs to be constantly updated. MolComML will be versioned to structure the integration of novel definitions and models.

The basic structure of the MolComML consists of several main blocks, reflecting the main components of a general molecular communication system. Each block is composed of a set of required parameters and a set of custom parameters that are defined according to the molecular communication purposes.

The complete UML structure of the MolComML is shown below and highlights two main sections in the UML structure.
The first one is used to specify the main functional elements in the language (blue shaded) and the other is used to specify attributes and mathematical formulas (red shaded).

The great part of the interconnection arcs between the two sections are omitted for readability reasons, but in principle, each element of the diagram could refer to attributes or mathematical rules.

Publications:

download The associated paper can be downloaded here.

 

MolComML configuration files:

xml A diffusion based molecular communication scenario
xml A diffusion with drift molecular communication scenario inside blood vessels for CTC detection

 

Biological Nanoscale Simulator (BiNS2)

download The latest version of the BiNS2 MolComML compliant could be downloaded here.

System requirements

Before starting the installation, make sure your system has the Sun/Oracle JSE Development Kit 7 or the OpenJDK 7 installed and a reachable MySQL database. 

 Installation

  1. Import the BiNS-NanoLibrary and BiNS-Simulator into your IDE
  2. Configure your build path, importing the BiNS-NanoLibrary package and the following jar files:
    • jpct.jar
    • flanagan_v6.jar
    • mysql-connector-java-5.1.22-bin.jar
  3. Configure your MySQL Database and import the required tables (import DB_nanonetworks.sql  [download]) 
  4. Copy the /texture folder into your /home/user

Configuration

  1. Edit the file punctiformEmitter_xml_revised_2.3.xml into the BiNS-Simulator folder and define all simulation parameters for the diffusion based communication scenario
  2. It is a best practice to set an higher heap memory size in the Java Virtual Machine configuration, e.g.:  -Xmx5000M -Xms5000M
  3. Some of the simulation parameters have to be defined in the command line and depend on the type of simulation chosen:
    • for the MolComML configuration file: -simMolComML
      (Please note that the actual version of the MolComML importer is compatible only with the Diffusion Based scenario, described by the configuration file “punctiformEmitter_xml_revised_2.3.xml” provided in the downloaded package)

You may want to change these values according to your simulation needs. For a detailed explanation of these parameters, refer to our publications.  

Run

To execute the simulation launch java -jar bins2.jar followed by the simulation parameters defined at points 2 and 3 on the configuration section.