Score conductors are responsible for combining several scoring schemes to obtain a final score for the sequence-structure alignment. To configure Quasar correctly the configuration file must include the following tags that are not conductor specific:
<scoreConductor>
<conductorClass>valid score conductor class (see below)</conductorClass>
<conductorConfig>
conductor specific configuration (see below)
</conductorConfig>
</scoreConductor>
Additionally to this general information required by Quasar, the system requires score conductor specific configuration information which would be in most cases information about the scoring schemes to be used alongside with their own configuration (see below). In the following we will present the configuration details for the two score conductors implemented in the system so far.
Weighted sum score conductor
The weighted sum conductor is implemented in the class quasar.scoring.conductors.WeightedSumConductor and can also be configured from the graphical user interface. It is used to combine scores in a weighted, linear fashion. Each scheme can be assigned a weight and each scheme can be normalized to return scores that rank between 0 and 1. The configuration information tells the conductor which scoring schemes should be included in the weighted sum, which weight should be assigned to them and if they should be normalized. Therefore within the tags of the general conductor configuration one may include one or more tags of the following form:
<scoringScheme>
<weight>Weight assigned to the scoring scheme</weight>
<normalized>flag telling if score should be normalized</normalized>
<schemeClass>valid scoring scheme class (see below)</schemeClass>
<config>scoring scheme specific configuration (see below)</config>
</scoringScheme>
Formula tree score conductor
So far it is not accessible from the graphical user interface. The formula tree conductor can be used to represent any formula that is a combination of scoring schemes with the mathematical +, -, * and /. Those formulas can be represented by a tree-like structure which is implemented in the class quasar.scoring.conductors.FormulaTreeConductor. The tree is represented by internal and external nodes, the internal nodes are mathematical operations, while the external nodes are represented by scoring schemes. The conductor specific configuration is therefore built by internal and external nodes. A node is defined as follows:
<node>
<type>Type of the node. As shown below can be internal and external</type>
<content>content of the node depending on the type of the node</content>
</node>
If the node type is internal the node tag content must contain the following information:
<nodeClass>valid internal node class</nodeClass>
<leftTree>recursive definition of left subtree: another node, either internal or external</leftTree>
<rightTree>recursive definition of left subtree: another node, either internal or external</rightTree>
The tag nodeClass specifies the mathematical operation that combines the scores returned from the left and the right subtrees. At the moment the following values are allowed:
- quasar.scoring.conductors.tree.PlusInternalNode
- quasar.scoring.conductors.tree.MinusInternalNode
- quasar.scoring.conductors.tree.MultiplyInternalNode
- quasar.scoring.conductors.tree.DivideInternalNode
The
leftTree and the
rightTree tags need to contain
node definitions and can be used to recursively define larger trees.
While internal nodes specify two subtrees and additionally contain information about how the scores from the two subtrees should be combined (specified by the node class), external nodes represent scoring schemes. The content of an external node looks as follows and is analogous to the scoring scheme definition of the Weighted sum conductor (see above) with the only exception that only one
scoringScheme tag is allowed per external node.
<scoringScheme>
<weight>Weight assigned to the scoring scheme</weight>
<normalized>flag telling if score should be normalized</normalized>
<schemeClass>valid scoring scheme class (see below)</schemeClass>
<config>scoring scheme specific configuration (see below)</config>
</scoringScheme>
An example of a valid configuration file structure for the FormulaTreeConductor can be found here.