***************************************** * * * @Author : Peter Kim * * * * Version 1.2 * * * * XML template guide line * * * ***************************************** This document was created to provide guidance in writing XML specifications for the DESSA simulator. The simulator is made of hierarchies of classes. World / | \ / | \ / | \ Assembly Assembly Assembly / | \ / | \ / | \ / | \ / | \ / | \ Subunit Subunit Subunit Subunit Subunit Subunit ... / | \ / | \ Domain Domain Domain ... / | \ / | \ Conformation Conformation Conformation ... / | \ / | \ bindingSite bindingSite ... The diagram above shows the hierarchy. Each component has certain properties characteristic to its class. In addition, each has a physical position and rotation that is specified relative to its parent class. For instance, a Subunit has a position that is specified relative to the position (center) of the Assembly that contains it. Users should note that current simulator requires very high precision numbers for position and orientations. Up to 10 decimal points should be provided to make simulator to run correctly. In specifying a simulation, there are four main sections that we need to deal with: , < BindingSiteTypes> , , . Some other attributes are available in the XML document but are not currently being used and are reserved for future simulator releases. For example, a element is intended to specify global properties of the the solution where simulations of self-assembly are taking place, but its values are currently ignored. The XML tags used to specify the major classes are as follows: 1. An element is being used to specify a group of subunits attached by a connected bond network. An Assembly may consist only one subunit to multiple subunits. All the elements that are under an tag will be in the same Assembly class. I. Attributes name - name of assembly. You can specify any name that you want. k - reserved for future use. You can leave it blank. amount - Amount of assembly. When the amount is greater than 1, simulator will make copies of this assembly. type - The type of the assembly. You can use any arbitrary name. II. A element is used to specify a particular assembly subunit, typically representing one protein in a biological assembly. A Subunit has a type, a position within its assembly, a rotation, a velocity, and a rotational velocity. It may also have some binding partners. i. Attributes name - name of the subunit. You can specify any them, but that name should be used when you are binding two subunits. domain - This attribute is not currently used. type - Type of subunit. This types are specified in as name. - This element specifies the position of the subunit relative to the center of its assembly - This element specifies the rotation of the subunit relative to its assembly. The rotation is specified as an axis of rotation followed by an angle in radians by which the subunit is rotated clockwise about that axis. This attribute is normally overridden when subunits are created in order to position them consistently with their bond networks and can usually be given a zero vector as input. - This feature is not currently being used. - This feature is not currently being used - This element is used to specify binding partners of this subunit in its assembly. There can be more than one if this subunit has multiple binding partners. has the following parameters: subunit - subunit name of the binding partner bindingSite - bindingsite of the current subunit involved in the binding interaction. bindingsites are named in bindTo - bindingsite of the binding partner involved in the binding interaction. 2. A element defines different types of binding sites and specifies their partner allowed binding partners. Any two distinct binding sites on a given subunit should have different binding site types. I. Attributes name - the name of binding site type. The user can pick any arbitrary name. - specifies how perfectly two compatible binding sites need to align before they are allowed to bind to one another. Tolerance is specified by a translational distance, a rotational torsion around the bond axis, and a bending torsion perpendicular to the bond axis. - This element specifies the other binding site types to which this binding site type can bind. Multiple can be used if there are multiple possible binding partners. A also requires an angle specifying how the partners are rotated relative to one another for ideal binding. The angle represents the angle different between two "up" vectors (specified in SubunitType) that are projected onto the plane that is perpendicular to the binding site. The following diagram illustrates how the how up vectors are used: / / <- primary up vector / | ------|-------- projected plane----->/ |<-- bin/ding site / | / /--------|-----/ \ \ <- binding up vector \ Here, the primary up vector is an up vector from the subunit possessing the binding site whose type we are defining. The binding up vector is the up vector of its binding partner. If we are looking from the primary subunit along the bond vector to its partner, then a positive angle corresponds to a clockwise rotation of the binding up vector relative to the primary up vector. A negative angle corresponds to a counterclockwise rotation. Angles are specified in radians on the range [-pi, pi]. 3. A element is used to specify properties of a particular possible binding interaction. It is characterized by a mean binding time, a mean breaking time, a special fast bind time (used when two compatible binding sites are held in the proper relative positions by other binding interactions) and a conformational switching time. - the name of a that is one of the partners to the BindingInteract. Each has one or more