Skip to content

Changes in Version 1.2

kalden edited this page Jun 17, 2013 · 2 revisions

Changes Introduced in Version 1.2

The following summarises the changes that have been introduced in the latest version of iDynoMiCS (June 2013):

New Species Attachment Method

This is the highlight of the new functionality in terms of simulating microbiology. In previous versions of iDynoMiCS, a specific number of species are created in a specified birth area (all controlled by parameters in the protocol file). From 1.2 onwards, iDynoMiCS can model the injection of species in an additional manner. Now a number of agents (per hour) of the specified species can be introduced on the top of the boundary layer. These agents then perform a 'run and tumble' motion until they (a) attach to the solid surface, (b) attach to forming biofilm, or (c) return to the bulk. This run and tumble motion works by choosing a random angle. The agent moves through the domain in that direction for a certain amount of time until it 'tumbles', or changes direction. This continues until one of the three conditions are met. Full instructions on using this method of attachment can be found in the iDynoMiCS Github Wiki. This is offered as an additional method of agent attachment, alongside the traditional method which can also be used in iDynoMiCS v1.2.

iDynoMiCS Automatic Update Facility

iDynoMiCS is under constant development by several different teams working in the realm of microbial ecology, and we encourage collaborators to get involved in the simulator's future development. We feel it is vital that when new features are added to iDynoMiCS, we release these to the field as soon as is appropriate. With this in mind, iDynoMiCS 1.2 includes a new automatic update feature that will check for updates and inform you if a new version has been released. The simulator then provides the user with the option of updating iDynoMiCS to the latest version. If the user wishes to do this, the latest version is downloaded and replaces your current iDynoMiCS code on your file system. This update check is initiated by checking the 'checkForUpdates' tag in the simulation XML protocol file. Should you not wish to check for updates, this tag can be set to 'false' or removed from the protocol file.

Enhanced Documentation

The development of iDynoMiCS has always been driven by the objective that the code is open-source and accessible to anyone who wishes to assist in the development of the tool. Over the last few months we have been working to improve the documentation of the Java code, and have moved to code documentation using doxygen. Doxygen has the ability to produce HTML and PDF manuals directly from the code, producing clear documentation detailing the role of each class and parameter in the code, and showing relationships between the included classes. From Version 1.2 onwards, code documentation will be undertaken using doxygen and the code reference manual made available online. The doxygen code reference manual for version 1.2 can be viewed here.

For Version 1.2, nearly 90% of the classes have been recommented such that doxygen can be adopted. This documentation will evolve over the next few versions. If you have any comments on this documentation please do let us know via the mailing list

Improved Procedures for Collaboration

iDynoMiCS is now available from a repository on Github. Making this change offers us many opportunities:

Improved Version Control and tracking of changes made by developers and collaborators. A project wiki, providing useful information on iDynoMiCS that can be regularly updated. The tutorial is now held on this wiki. Management of additions and changes to the code via Pull Requests. Now users and collaborators can submit any changes they would like to see made to iDynoMiCS via Github. These will be reviewed by the development team at the University of Birmingham and merged into the repository if the change is accepted. Full instructions on how to do this are available on the iDynoMiCS Github wiki. An Issue Tracking system where users can upload any issues and get a response from the development team. These issues remain accessible to the public and can be searched, providing us with a one-stop location where previously asked questions can be viewed before seeking help from the development team.

Small Code Fixes and Improvements

The release of a new version has provided us with the opportunity to address small problems in 1.1 that have emerged via the mailing list. These are:

Addition of a new Error Log. iDynoMiCS relies on the XML protocol file to specify directories for simulation results and the log files. Should any error be encountered when the protocol file is initially read, there is nowhere to log this error. For this reason, a new log file has been added. Should any error be encountered, this log file is created in the same directory as the protocol file being read. If no error is encountered, no log file is created.

Fixes to the TVComparitor in LocatedGroup. The current code was incompatible with the latest JRE versions. Rob Clegg has introduced an equal-to output fix to comply with compatability in newer JREs

Changes in Agent-Grid Dimensions. For 2D simulations, the agent-grid was intialised with padding in the Z direction. To improve efficiency and memory space occupied by iDynoMiCS, Kieran Alden has removed this unnecessary padding for 2D simulations

Removed Redundancy in Simulator Class. In Simulator.java, any references to writeInvReport(), a reduced report-writing scheme for invasion/competition simulations, have been removed as this is now redundant

Error reporting Improvements in World.java

Reporting Improvements. In ActiveAgent and LocatedAgent classes, upon cell division cells now update their growth and volume rates (approximately half of what they were before). This has no effect on simulations, but improves reporting.

Number Format Change. In Agent and ExtraMath classes, make_genealogy has been adapted to ensure the output is a long variable.

Simulation Build File. Small fixes to the build.xml file, the ant file used to compile binaries if the user is not using Eclipse

Clone this wiki locally