Design and development
PSICS is open source, covered by the GNU GPL license. It is developed by Textensor Ltd under contract to Dr Matt Nolan at The Centre for Neuroscience Research at the University of Edinburgh, UK with grant funding from the BBSRC. The partnership between experienced scientific software developers working within a commercial environment, and researches with immediate modeling needs is an efficient and cost effective way to develop and maintain the increasingly sophisticated tools needed for research.
The system architecture merges certain aspects of modern simulator trends (declarative models, object oriented internal representations) with more traditional approaches to high performance scientific computing such as up-front memory management and the use of languages developed specifically for array based mathematical calculations.
The develpment log is periodically updated and summarizes major changes and releases.
PSICS has been extensively tested and validated. The RallPack tests are included in the standared distribution. Validation of the stochastic calculatoins is presented in the accompanying publication (in preparation).
The best way to get familiar with PSICS is to look through the user guide in conjunction with some of the examples. The input files reference presents the details of specifying models. PSICS itself is a command line program, but the standalone tool ICING provides a graphical interface for visualizing and labelling cells and to help set up channel populations.
One direction for future development is to include support for user-defined types. To this end there is a proof of concept XML format and interpreter for "Low Entropy Model Specification".
The bulk of PSICS is written in Java. The core calculations are available in both Java and Fortran 95. The Fortran version is compiled to a platform dependent native library or to a standalone executable that is called from Java. The connection between the two is via a single-file plain text specification of the discretized model. Once such a model specification has been created the core calculation can be run independently of the Java virtual machine. This is intended for use on multi-processor machines where different instances of the same calculation can be run on separate processors with minimal overheads.