Other Projects
CellML Tools
In the Computational Bioengineering Laboratory we are interested in using CellML for the description of mathematical models — primarily models of cellular physiology. We are also actively involved in the development of the base CellML XML language specification and related metadata.
Having strong links to the Auckland Bioengineering Institute, for the development of new models and the modification of existing cellular electrophysiology models we make use of CellMLSimulator. CellMLSimulator is also being used to develop and test ideas on the exploration of the full potential of annotated CellML 1.1, including support for graphing metadata.
The lab is researching the development of technology and methods for completely specifying a reference description of cellular electrophysiology models in a machine interpretable and software independent manner. CellML graphing metadata plays an important role in this work providing the link between CellML model instantiation, numerical simulation result sets, and experimental data.
We have now published some initial work illustrating the potential of this approach to mathematical model description. See the following article for more information:
David P. Nickerson, Alberto Corrias & Martin L. Buist. Reference descriptions of cellular electrophysiology models. Bioinformatics, 24(8):1112–1114, Apr 2008.
As part of this work we are currently investigating traditional desktop applicationbased software development and webbased technology taking advantage of Web 2.0 advances in order to further develop the concepts presented in the above article.
Bioemchanics of the hand
The analysis of motion capture data from index fingerthumb tippinch experiments. Note that all references currently refer to the right hand where a righthanded coordinate system is the natural choice.
Types of Rotation
There are two main types of rotation coordinates that can be used to describe the rotation of a joint; they are Euler Rotations and a Joint Coordinate rotation system. With Euler rotations, the axes of rotation are fixed in the object to be rotated. This means that as the object rotates, the orthogonal axes of rotation also rotate. The order is therefore important when performing multiple rotations and there is no clear standard which order should be preferred. On the other hand, the joint coordinate axes remain invariant as the object rotates. Both systems of rotation can, in general, describe the same rotational outcome but the two are not easily interchangeable. A set of angles designed for Euler rotations will not get the correct result when interpreted as joint coordinate rotations and viceversa.
We use the joint coordinate system for our rotations here.
The following describes how to determine the joint coordinate system for a particular joint. The resulting axes of rotation form an orthogonal righthanded coordinate system. Consider a joint segment defined by four vertices. At the proximal end, the point on the left (nearest the thumb) is P1 and the point on the right is P2. At the distal end, the point on the left is P3 and the point on the right is P4. Given this definition, the following steps should be followed in order to obtain the joint coordinate system at the resting/reference state.

The origin is calculated as O = 0.5*(P1+P2)

A vector in the plane of the segment is calculated as V = (P2P1)

The Y axis is calculated from Y = 0.5*(P3+P4)0.5(P1+P2)

The Z axis is calculated from Z = V cross Y

The X axis is calculated from X = Y cross Z
The result is an X axis that runs in a direction approximately from the index finger to the little finger, a Y axis that runs from the proximal finger to the distal finger and a Z axis that runs in a direction from the palm towards the back of the hand. Note that the vector V will be the same as the X axis if the segment has orthogonal sides but in general this will not be the case.
Rotations
Rotations are defined as occuring about one of the three joint coordinate axes. The right hand screw rule can be used for determining the direction of positive rotation. Simply place your right thumb in the direction of the coordinate axis and a positive rotation will follow the direction of the fingers as they curl around. For simplicity, the colours in the following examples have been chosen so they match the popular RGB colour space in that the red colour indicates the X axis or rotations about the X axis; the green colour indicates the Y axis or rotations about the Y axis; and the blue colour indicates the Z axis or rotations about the Z axis. The following animations demonstrate positive and negative rotations about each axis.
Anatomical Illustrations
Joint coordinate system for the MCP joint on the right hand. The X axis runs approximately from the index finger to the little finger, the Y axis runs down the center of the finger and the Z axis is the normal to the XY plane. 

Rotation about the X axis results in flexion or extension of the finger. Flexion is where the fingers curl to form a fist and is a negative rotation. Extension is an uncurling of the fingers and is a positive rotation. 

Rotation about the Y axis results in pronation or supination of the finger. Pronation is a rotation from palmup to palmdown (elbow at 90 degrees) and is a negative rotation. Supination is a rotation from palmdown to palmup and is a positive rotation. 

Rotation about the Z axis results in adduction or abduction of the finger. Adduction moves the index finger towards the other fingers and is a negative rotation. Abduction moves the index finger away from the other fingers and is a positive rotation. 
Single Segment Example
The following example looks at a segment from a single tip pinch between the thumb and forefinger. The motion was obtained via a motion capture system. The angles of rotation in the joint coordinate system are shown below where again the same colour coding applies. The following images then show the motion of the whole segment when viewed from the X, Y and Z axes so the rotations about these axes are clearly visible. Finally the motion is shown from an isometric angle.
Example: Looking at the YZ plane (X axis). 
Example: Looking at the XZ plane (Y axis). 
Example: Looking at the XY plane (Z axis). 
Example: Isometric View. 