| home | user guide | examples | reference | changelog | resources |
A list of objects to each if which can be associated some kind of quantification, as specified by an extension of a _GUIDE(QuantifiedListElement, QuantifiedListElement). Such a list can be used, for example, to set the ingredients of a solution, where each possible ingredient is a compound, and the quantified list element lets you specify the concentration and the units in which it is expressed. Another use is in specifying the densities of channels on a cell where each channel type is associated with a single value for the surface density. There is a _GUIDE(QuantifiedListEditor, standard user interface) to all QuantifiedLists which presents the possible ingredients and allows the quantity of each to be set. Internally, QuantifiedLists are just normal lists of extensions to _GUIDE(QuantifiedListElement, QuantifiedListElement). Each such element holds a reference to an item in the target list and any associated data for the present context.
container for the results of calculations Each class which extends _CMLINK(standard, CcmbCalc, CcmbCalc) has an instance of CalcResults in which it stores the output of the calculation as it proceeds. The default editor for CalcResults displays this data. Public fields govern visibility, axis ranges, and JLabels. These are stored when the model is saved whether or not the screen configuration is recorded.
a single node in a CcmbNet object or subclass thereof Superclass of possible node types in CcmbNet objects.
_GUIDE(QuantifiedList, Quantified lists) are one of the standard data structures in Catacomb models. They allow extra data to be associated with items selected from a _GLOBALGUIDE(core, CcmbList, list). The editor presents, on the right, buttons for all the known elements of the target type ( things that could be meaningfully included in the quantified list). The _TT(refresh list) button at the bottom causes the list to be reread and the buttons updated in case something has changed. The _TT(edit ingredient list) button gives access to the list of possible components. Items are added to the quantified list by clicking the corresponding button. This brings up a context-dependent display in the lower panel of what data can be associated with the particular item. When editing a solution for example, this would be the concentration of each solute and the units of that concentration. Items can also be examined by selecting them in the list of present ingredients on the left. The _TT(remove ingredient) button does that, removing the currently highlighted item in the list on the left.
a driving Profile with possible repeats after incremental changes A multi-channel driving Profile for any application where experimentally a digital to analog conversion would be employed. It is based primarily on the requirements of voltage and current clamp patch studies where the same command may be repeated several times (nstep) with increments in particular sections and a pause (ms) between repeats. The nrepeat field is for repeating the whole series of steps which is only useful in a model if some pseudo-random process is being explored such as stochastic channel activity or noise.
The results of most calculations come in the form of _CMLINK(standard, DisplayList, DisplayList ) objects (the _TT(CalcResults) object is now deprecated). The data may be graphed or displayed as a table. All the usual mouse operations apply as described for the _CMLINK(.,panzoom, user interface). Menus change according to the results provided by the calculation and control how the data is displayed.
2-D array of calculation results or imported data Most catacomb calculations yield a series of lines showing different quantities as a function of one variable. These can be edited, exported, sparsified and ... (dec 01 - broken) It is mainly handy for cleaning up big data files when they contain more lines than you want or a smaller sampling interval.
drawing containing labelled regions and lines Under construction - for defining 2-d structures for reaction diffusion calculations.
multi-channel binary signal
properties associated with drawing elements Properties associated with drawing elements.
random variable with a uniform, normal or gamma distribution A gamma distributed random variable.
The results of most calculations come in the form of _CMLINK(standard, CalcResults, CalcResults) objects. The data may be graphed or displayed as a table. In the first case all the usual mouse operations apply as described for the _CMLINK(.,panzoom,user interface). Menus change according to the results provided by the calculation and control how the data is displayed.
Color tables define mappings between values and colors for the display of results. The number of colors, the range of values they correspond to and the treatment of values outside this range can be set. The current CcmbColor table is shown at the top of the window. Below that are sliders for the minimum and maximum values that these colors correspond to: points with value _TT(Cmin) will be shown in the first color, those at _TT(Cmax) in the last one, and those between are scaled linearly. Colors run from left to right, starting in the top left corner. Points above or below the range are either not drawn, or are drawn in the last and first colors, respectively, according to the checkboxes _TT(fillAbove) and _TT(fillBelow). The number of colors used is set by _TT(Ncol). To set a color, click on it with the left mouse button, and then choose apply in the _CMLINK(env, ColorTargetEditor, color chooser) window. To fill a range of the table with a uniform CcmbColor gradient, set each of the end points to the desired colors. Then click the start of the range with the left mouse button and click the end with the right mouse button. The CcmbColor table does its best not to lose information as you change its size: each time you set a CcmbColor manually the present size of the table becomes the true resolution.
driving Profile for any application where experimentally a digital-to-analog conversion would be employed A single-channel driving Profile for any application where experimentally a digital to analog conversion would be employed. It is based primarily on the requirements of voltage and current clamp patch studies where the same command may be repeated several times (nstep) with increments in particular sections and a pause (ms) between repeats. The nrepeat field is for repeating the whole series of steps which is only useful in a model if some pseudo-random process is being explored such as stochastic channel activity or noise.
a driving Profile with possible repeats after incremental changes A multi-channel driving Profile for any application where experimentally a digital to analog conversion would be employed. It is based primarily on the requirements of voltage and current clamp patch studies where the same command may be repeated several times (nstep) with increments in particular sections and a pause (ms) between repeats. The nrepeat field is for repeating the whole series of steps which is only useful in a model if some pseudo-random process is being explored such as stochastic channel activity or noise.
Noise generation parameters for an AR1 process.
Set up voltage, current or other command Profiles. Points can be added singly or in predefined groups and sections of a Profile can be cut out to define new groups. Points can be positioned relative to any other point in the Profile so a range of different scaling behaviors can be achieved. A Profile is defined as a set of points of increasing x coordinate and a series of relations between them. The possible relations are that a point should always take one or both of its coordinates from some other point or that it should follow some other point at a set distance in either direction. Points are allowed to take one coordinate from one point, and the other from another point. Editing operations are provided to add and remove points and to set up and remove relations between them. New points may be added by dragging one of the symbols on the top row until it sticks to the current Profile. By default there are only two possibilities: a square pulse and a single point but you may create your own and share them between Profiles with the copy function below. The possible operations correspond to buttons on the right. Moving the mouse over them should put a brief explanation of what they do in the top of the window. In particular, the top line allows a choice between the normal scaling operation of the box cursor and its use for selecting sections of the current Profile for editing. If you normally use the box cursor scaling then only switch it to select mode when you mean to select a portion of the Profile and switch it back afterwards. The snap button allows setting a background grid on the window such that only values on the grid on one or both axes are allowed. This makes it easy, for example, to set completely flat baselines. A neater way of doing the latter however is to tie the y coordinates of all points that you want to be on the baseline to the first point. To do this click y-tie , then click the point you want to be tied and the one you want it to be tied to in that order. To undo any of this tying use the free option. Any time you select a point to move it, its coordinates appear in the two sliders below the canvas. If it is fixed in one or both directions (tied to another point) the corresponding slider will be grey. Otherwise the sliders may be used to set the position of the point with their usual functions. If you position the mouse over a slider and begin to type a number it will change to a text field to receive the keyboard input. Hitting return makes this value take effect. The first two icons in the top ColorPanel are for a square pulse and a single point respectively. The third is a single point that represents a break in the Profile. This is useful where there are brief periods of activity with long constant regions between. The constant periods may be constructed with the _TT(break) component, their durations being set from the slider labelled _TT(break). When drawing the Profile the _TT(expand) checkbox selects whether to show the full Profile with the breaks taking their full space or a collapsed version, showing one section of activity directly after another. Some components also use sampling information defined in the Profile. This is set for individual points with the _TT(sample) slider. Each non-zero sampling interval applies until a later point overrides it. Thus, to set a single interval for the whole trace, only the first point needs to be set, but to set a coarse interval for most of a trace with a finer one for a segment in the middle, the first point should be set coarse, the point at the beginning of the fine section should be set fine, and the coarse sampling should be reset after the segment. The actual sample points to be used are shown if the _TT(samples) checkbox is selected. Note, however, that the sampling shown corresponds to the full expanded trace, as shown with the _TT(expand) checkbox selected, and will not tie up with a trace which contains breaks drawn without the _TT(expand) option. There is also an alternative way to construct Profiles. Instead of dragging predefined components and sticking them on, you can add points by realizing _TT(proto-points) on the current Profile. The real points are drawn with colored circles. Between each pair of real points is a proto-point marked with an orange square. To make it into a real point, just click on it and drag it to where you want it. As soon as it becomes a real point, two new proto-points appear on either side. These in turn may be clicked and dragged to where you want. For regular shapes, it is probably a good idea to set a grid to only allow certain positions (see _TT(snap) below). The disadvantage of this process for simple shapes is that you don't have any structure in the resulting shape: if you make a square wave and then attempt to change the amplitude, each of the points at the top will move independently. Here you can use the x-tie, and y-tie options to link x and y coordinates. For example, the second point on the top of a square wave should be linked to the first in the vertical direction (click _TT(y-tie) then the second point then the first). This will allow the height of the rectangle to be controlled with only one point. Alternatively, change to _TT(select) mode, pull a box out containing the square section and press _TT(group). This will convert everything in the box to a single Unit with control points for position, width and height. The sstruct and lstruct buttons are a partial solution to this problem, particularly for Profiles loaded from files. They perform strict and loose structuring respectively. Points at the same, or nearly the same, position along one or the other axes are tied together and other points are converted to relative positioning instead of absolute. The results are not always what is required, but can save some of the editing operations.
superclass of most objects defining calculation methods The superclass of all objects which perform user-accessible computations. At present, three possible computation types are defined according to whether the result is a 2-D or 3-D block of data, and in the 2-D case, whether the calculation is quick enough to be run sequentially or should be run in a separate thread, with the display updated as more data becomes available. All 3-D calculations are run this way.
This is a replacement for the _CMLINK(standard, CalcResults, object), but as yet it does not do much.
test container for objects under construction Test container for objects under construction
On-off control of multiple channels. Channels can be added as required and switching between their two possible states can be defined by toggling points on a grid or dragging regions of activity for fine control of timing. Create a new target object with the menu at the top left. Then channels can be added with add channel . Each is shown as a black bar initially, numbered at the right. By default the window allows the usual mouse driven scaling and translation. To modify the signals, change the checkboxes on the right from scale to select . Click on the different channels to change regions from 0 (black) to 1 (white) or back. The size of the region which changes with one click is set by the slider at the bottom. To get all the normal scaling features back, move the checkbox from select to scale . Those functions that are unambiguous still work in select mode. In particular, scaling and shifting in one dimension at a time still works by clicking below or to the left of the data, which allows you to do everything in select mode with a bit of practice. For more control of switching times, click and hold the right button on a white region and drag it into the neighboring black. The boundary moves with the mouse. To reduce the size, click and hold on the black and drag it over the white. Regions can also be merged or eliminated this way. Each channel also has a control point on the y-axis. Clicking on this point puts a text representation of the channel in the text area on the left. The representation can then be edited. To make it take effect, use the _TT(apply) button on the lower right. The format consists of lines of numbers optionally preceded by isolated + or - signs. The first number on each line is a time indicating that the state changes at that time: to the off state if preceded by - , otherwise to the on state. If a second number is present this is interpreted as a duration for the change. The following three cases are equivalent: _SCODE + 10 1 + 20 2 _ECODE _SCODE + 10 - 11 + 20 - 22 _ECODE _SCODE 10 1 20 - 22 _ECODE Lines with other text in them are ignored. It does its best to resolve ambiguities in the numbering, but using the + and - convention is the easiest way to be sure. What use is made of the various channels is up to the model they are attached to. At this stage they should just be considered as a set of boolean variables which change value at particular times. In IaFNetworks for example, if attached to a population of cells, they are mapped one-to-one onto the cells until cells or channels run out. In the off state there is no effect. In the on state they give a conductance input into the corresponding cell, with the conductance and reversal potential defined as part of the network. NB: delete does not do anything yet.
superclass of all node-and-link type objects Superclass of all node-and-link type objects: reaction schemes, ion channel kinetic schemes, and various sorts of networks.
Very much like the _CMLINK(standard, ProfileEditor, ProfileEditor) with the additional possibility of imposing independent incremental steps on any points in the Profile. The only difference here is the three extra fields _TT(nstep), _TT(dstep), and _TT(pause). When applied as a current or voltage clamp, a _CMLINK(standard, SteppedProfile, SteppedProfile) is repeated _TT(nstep) times with a delay of _TT(pause) milliseconds held at the final value of the Profile before the next run. The _TT(dstep) specifies the size of increments between runs. Increments can be applied to any point, in either the x or y directions. To apply them to a single point, click x step or y step and then the point to be stepped. Note that for a structured Profile, where points are tied together, all points tied to the stepped point will also receive steps. So, for example, to make steps of the default square impulse, you only need to step the top left point. The other point always follows this one, including during steps. To select all points in a region for stepping, use the rubber band select box to select a region containing the points and then click x step or y step . Steps can be applied incrementally: if you step both points on a square wave, the first will be incremented once per step, and the second will be incremented once on top of that, giving a set of increasing ramps. If a section of the Profile has been grouped, so a set of points are scaled relative to certain marker points, then only the marker points can be stepped, but the results will affect all points in the group. The interface only allows one step per Profile, whereas the structure of _CMLINK(standard, Profile, Profile) objects is more general: all free points can be stepped independently along each axis. At present, Profiles with these properties cannot be constructed through the graphical interface but only by editing the saved text file, though they will display and run normally.
an indexed CcmbColor table A ColorTable has a set of _TT(Ncol) colors which can be indexed individually or mapped onto real values. In the latter case, they are spread uniformly between _TT(Cmin) and _TT(Cmax) with values beyond this range being colorless or set to the extreme values according to the _TT(fillAbove) and _TT(fillBelow) fields. The CcmbColor table does its best not to lose information as you change its size: each time you set a CcmbColor manually, the present size of the table becomes the true resolution.
The base class for elements of _GUIDE(QuantifiedList, quantified lists) for holding data to be associated with objects defined elsewhere. The only field is a reference to the item in the target list to which the data applies. Other fields are added in subclasses according to the particular application.
linear second order differential equation
For models which produce 3-D stratified data, such as the concentrations of a set of species on a 2-D grid. Selected variables are shown as images. You can take slices along either axis and export them to simpler displays. On first opening the editor with new data, try clicking _TT(frame) or click the mouse on the display area and press the f key to center the data. The available slices of data are shown at the lower left, where the one to be displayed is selected. It is shown as a color coded image, according to the associated color table selected on the left. The _TT(frame) button rescales the axes to frame the data. The _TT(fit range) button sets the limits of the color table mapping to the limits of the data. On the left and lower edges of the image are blue arrow markers from which white markers can be torn off and dragged along the image. Each white mark selects a line through the data perpendicular to the axis it is on. Data along these lines for some or all of the slices are exported to a normal results display (accessible as calcResults on the left). The variables to be exported is set by the checkboxes at the lower right.
Display of a stimulus profile and the recorded activity. The graph can be repositioned and rescaled with the mouse or by typing the desired range from the keyboard. To use the keyboard, click the mouse on the graph and then type h (for Help). A _GLOBALGUIDE(gui, GraphHelper, graph helper) window should appear which allows the ranges and background grid to be set. However, all these operations can also be performed with the mouse. Clicking with the left button zooms in, keeping the point under the mouse fixed. Clicking the right button [ or the left button with the CTRL key held down ] zooms out. Clicking below or to the left of the axes scales only one axis. Click and drag actions change the range, but keep the scale fixed. Use the right button to see it move as you drag. With the left button, the change is only shown when you release the mouse. One special case of click-and-drag is for selecting a rectangular region: click and hold at one desired corner; drag the mouse away and then back over the starting point; as it passes over the start point a square box cursor will appear that can be extended to select the desired region. The click-and-drag operation can also be used for continuous zooming: click the desired fixed point and drag the mouse off the window. Once it is off the window, drawing clockwise circles will zoom in; anti-clockwise circles zoom out. There is a menu at the top right with a number of other operations, each of which has a single-letter shortcut indicated by the capitalized character. Note that for these to take effect you may sometimes have to click the mouse in the window first. Finally, the background grid can be adjusted by clicking to the right or above the data area. For further details on the above, see the catacomb guide at http://www.compneuro.org/catacomb/userinterface.html
Many Catacomb objects take the form of a set of nodes with various links between them (e.g. _CMLINK(iaf, IaFNetwork, IaFNetwork), _CMLINK(channel, KSChannel, KSChannel), _CMLINK(chemistry, ReactionScheme, ReachionScheme)). These share most of their editing properties, and are all subclasses of CcmbNet. Components can be torn off the templates at the top and stuck together. In general links stick to nodes, but not vice versa. Use the left button to move a link, and the right button (or left + CTRL) to unstick it. After unsticking, a link can only be restuck by letting go and picking it up again or dragging it far enough away and then returning it. To dispose of any component, simply drag it off the display: if it is not visible, then it is not part of the model: if for some reason it cannot be deleted then it will be pushed back onto the display. In some cases, links can be joined to the mid points of other links, or nodes directly to other nodes. See the particular application for details.
Just that - a drawing with labels. Not much use on its own. The only subclass so far is for _CMLINK(diffusion, MeshedDrawingEditor, meshed drawings) which also constructs a triangular mesh on the regions defined in the drawing ready for use in ReactionDiffusion calculations. Drawing elements can be torn off the templates at the top and dragged onto the diagram. To move or rescale an element, click on any point so it turns green, and then drag the center or any of the corners to change its shape or size. To add points, click the orange proto-points on the sides which then become real points that can be moved with the mouse. To move a point or whole component, drag it off the diagram. There are two marker types at the top right, a rounded one for regions and an angular one for lines. The latter will stick to a point on a line, and will give its CcmbColor to the line. The region marker does not stick to the points, but should have its free node positioned anywhere in the region it is marking. Applications which define properties to be associated with lines or regions do so through these markers.
superclass of links in CcmbNet objects
3-D results from calculations where one dimension is small and discrete, such as the value of a number of different variables as function of time and position. This yields a slab of data in which one axis is just the different of recorded variables. The other two will typically be sampled. It has its own interface for visualizing separate slices and exporting line graphs - see the _GUIDE(CalcResults3Editor, CalcResults3Editor).
derived Unit expressed in terms of the quantities: M, L, T, charge, temperature, Avagadro's number and ten Units for inter-component consistency, mainly for SpatchObject components. A Unit is defined in terms of powers of the elementary quantities mass M (Kg), length L (m), time T (s), charge C (coulombs), temperature K (k), Avagradro's number Navagadro, ( ~ 6e23) the electronic charge, elec (coluombs) ten, and a floating coefficient f. The variables in the Unit object are the powers of these quantities. For example, one volt is one joule per coulomb, which is one newton meter per coulomb or one kg m/s _HAT()2/coulomb, so for a Volt Unit, M = 1, L = 2, s = -2, C = -1 and the rest are 0. For mV, one would also set the variable ten to -3. A micromolarity Unit would have Navagadro = 1, L = -3, and ten = -3 (-6 for micro, +3 for moles per liter instead of per cubic meter). The dimensionless quantities Navagadro and ten are not strictly necessary but are provided for convenience. They make it easier to express quantities of the form Navagadro _HAT()a * 10 _HAT()b .