Home  >  Background  >  Components

Home
Screenshots
Examples
Background
Changes
Contact
User guide
Introduction
Components
Structures
Implementation
NewTMaze

User defined components

The biggest difference between Catacomb 2 and Catacomb 3 is that in version 3 the user (rather than the developer) can decide what types of things can be modeled and how they are represented.

Of course, unless you can write numerical software, you still can't run them, but this isn't as serious as it sounds. A large part of developing a good model is in the structure and documentation, rather than in the code iteself. Once you've created the specification, the rest really is "just programming" - unlike almost any other task in biological modeling.

Defining components

You access component definitions with the "components" tab (top left, replacing the "models" panel). On the left is the workspace showing your components folder with folders and files. Each file is an XML file specifying how a particular type of model is represented or run. You can add folders and create new files with the right-click menu on this tree.

As well as folders, there are three types of file you can create:

  • Component - this lets you specify a new class of component (eg "Kinetic scheme ion channel"). You can then say what parameters are needed (eg "conductance" and "reversal potential"), and subcomponents it needs (eg lists of states and the transitions between them) and you can write the documentation that will be shown when a user asks for help on how to use this component.
  • Implementation - use this to specify calculations that apply to a class of models. The implementation file tells catacomb where to find the code toe do the calculation and can also be used to generate a skeleton java file for writing new implementations.
  • Conveyable - these are the types of connections that components are allowed to make with each other. For example, if you are modelling networks, you will want a connection type to represent axonal spikes (an event at a particular time but with no other structure). This is part of the standard library, but if it wasn't you could create a new Conveyable called "spike" and describe how it is to be used. Then when you define other components you have the option of adding plugs and sockets for propagating spikes between them.

Editing Components

to come - screenshots

The best way to edit a component definition is through the assembly editor. Components are stored as tables, just like models themselves and edited with the same components as for models, though with different schemas of course.

A component has the usual tag and info fields for its documentation, and then three sets containing fields, plugs and sockets as well as a drawing to be used for its icon. These are all accessible on the tear-off bar and you don't have to worry about putting them in the right lists. To add a field, just drag one of the fields on and set its parameters. Each field is separately documented within catacomb itself.

The editor shows a highlighted region with a dotted inner region. This is the part of the diagram that will be used for the icon of this component. You can design the icon by dragging shapes onto this region. Whatever is in the square sill become part of the icon. Not all components really need icons: if the user is unlikely ever to view a set containing the component in the diagram editor, then the icon probably doesn't matter.

Plugs and sockets are at the far left of the tear-off bar. You can position these on the icon of the component to indicate how models based on this component it can be connected to other models. There are a number of parameters associated with plugs and sockets - see the on-line documentation. The most important one is to specify what type of content flows through the connection. For each plug or socket you specify a conveyable. Then when the user makes a model, a plug of one type can only be connected to a socket of the same type.

For a component to be accessible as a standalone model (presented in the "new model" menu) click the standalone checkbox.

Editing Conveyables

This is like editing types, except for the diagram view that shows all the plugs and sockets together - [needed: screenshot and explanation].