|
MASA-Core
|
Struct that informs to the MASA framework which capabilities the MASA extension implements.
It is a development choice to implement or not all the capabilities, but there are some MASA features that will not work if some capability is missing (or if it is incorrectly implemented).
Each capability is associated with a requirement of the IAligner interface. If the IAligner implementation is fully compliant with a given requirement, we say that it implements that capability. In this case, set the boolean attributes to SUPPORTED, otherwise set it to NOT_SUPPORTED.
Note that even if the IAligner implements a given capability, it must only execute that capability if some conditional test is true. Each capability has its own conditional requirement that may be obtained by the associated IManager interface (see IAligner::setManager) or by the AbstractAligner protected methods.
Besides the boolean attributes, there are other parameters that indicates limits of other aligner properties.
See the description of each capability in this page, with its requirements and conditional tests.
Definition at line 59 of file capabilities.hpp.
#include <capabilities.hpp>
Public Member Functions | |
| aligner_capabilities_t () | |
| Constructor that creates a new struct with all capabilities set to NOT_SUPPORTED. | |
Public Attributes | |
| bool | customize_first_column |
| Initializes the first column with custom data. | |
| bool | customize_first_row |
| Initializes the first row with custom data. | |
| bool | dispatch_last_column |
| Dispatches the last column of the partition using the IManager::dispatchColumn method. | |
| bool | dispatch_last_row |
| Dispatches the last row of the partition using the IManager::dispatchRow method. | |
| bool | dispatch_last_cell |
| Dispatches the last cell of the partition using the IManager::dispatchScore method. | |
| bool | dispatch_special_column |
| Dispatches special columns using the IManager::dispatchColumn method. | |
| bool | dispatch_special_row |
| Dispatches special rows using the IManager::dispatchRow method. | |
| bool | dispatch_best_score |
| Dispatches the best score using the IManager::dispatchScore method. | |
| bool | dispatch_scores |
| Dispatches more than one score using the IManager::dispatchScore method. | |
| bool | dispatch_block_scores |
| Dispatches scores in a regular block pattern. | |
| bool | process_partition |
Aligns only the region delimited by the partition . | |
| bool | variable_penalties |
| Aligns using variable penalties. | |
| bool | block_pruning |
| Implements the block pruning optimization. | |
| bool | needleman_wunsch |
| Aligns with the Needleman Wunsch (NW) recurrence function. | |
| bool | smith_waterman |
| Aligns with the Smith wWaterman (SW) recurrence function. | |
| bool | fork_processes |
| Allows the execution of many forked processes in parallel. | |
| int | maximum_seq0_len |
| Indicates the maximum allowed size for the vertical sequence (seq0). | |
| int | maximum_seq1_len |
| Indicates the maximum allowed size for the horizontal sequence (seq1) Zero-value means unlimited size. | |
| aligner_capabilities_t::aligner_capabilities_t | ( | ) | [inline] |
Constructor that creates a new struct with all capabilities set to NOT_SUPPORTED.
Definition at line 222 of file capabilities.hpp.
Implements the block pruning optimization.
If the method IManager::dispatchScore() is called for a pruned block, its best score must be set to
. Moreover, the last row and last column of a pruned block must be dispatched considering
cell values.
condition: IManager::mustPruneBlocks() == true
Definition at line 175 of file capabilities.hpp.
Initializes the first column with custom data.
The customized column data is obtained by the IManager::receiveFirstColumn method.
condition: always true
Definition at line 66 of file capabilities.hpp.
Initializes the first row with custom data.
The customized column data is obtained by the IManager::receiveFirstRow method.
condition: always true
Definition at line 74 of file capabilities.hpp.
Dispatches the best score using the IManager::dispatchScore method.
There is no problem to call IManager::dispatchScore many times, since the best best score be dispatched in one of these calls.
condition: IManager::mustDispatchScores() == true
Definition at line 125 of file capabilities.hpp.
Dispatches scores in a regular block pattern.
The matrix must be divided in
blocks and the best score of each block must be dispatched using the IManager::dispatchScore with the
block coordinate parameters.
condition: IManager::mustDispatchScores() == true
Definition at line 146 of file capabilities.hpp.
Dispatches the last cell of the partition using the IManager::dispatchScore method.
condition: IManager::mustDispatchLastCell() == true
Definition at line 98 of file capabilities.hpp.
Dispatches the last column of the partition using the IManager::dispatchColumn method.
condition: IManager::mustDispatchLastColumn() == true
Definition at line 82 of file capabilities.hpp.
Dispatches the last row of the partition using the IManager::dispatchRow method.
condition: IManager::mustDispatchLastRow() == true
Definition at line 90 of file capabilities.hpp.
Dispatches more than one score using the IManager::dispatchScore method.
If the method IManager::dispatchScore is called more than one time, set this capability to SUPPORTED. If the method IManager::dispatchScore is called only once in the end of the partition, set this capability to NOT_SUPPORTED.
condition: IManager::mustDispatchScores() == true
Definition at line 136 of file capabilities.hpp.
Dispatches special columns using the IManager::dispatchColumn method.
The distance between two special columns must be greater than IManager::getSpecialColumnInterval.
condition: IManager::mustDispatchSpecialColumns() == true
Definition at line 107 of file capabilities.hpp.
Dispatches special rows using the IManager::dispatchRow method.
The distance between two special rows must be greater than IManager::getSpecialRowInterval.
condition: IManager::mustDispatchSpecialRows() == true
Definition at line 116 of file capabilities.hpp.
Allows the execution of many forked processes in parallel.
The aligner must return the weights of each forked process in the IAligner::getForkWeights() methods. Moreover, the aligner may use the AbstractAlignerParameters::getForkId() to identify uniquely each process and set different resources for each one of them.
condition: AbstractAlignerParameters::getForkId() != NOT_FORKED_PROCESS
Definition at line 204 of file capabilities.hpp.
Indicates the maximum allowed size for the vertical sequence (seq0).
Zero-value means unlimited size.
Definition at line 210 of file capabilities.hpp.
Indicates the maximum allowed size for the horizontal sequence (seq1) Zero-value means unlimited size.
Definition at line 216 of file capabilities.hpp.
Aligns with the Needleman Wunsch (NW) recurrence function.
condition: IManager::getRecurrenceType() == NEEDLEMAN_WUNSCH
Definition at line 184 of file capabilities.hpp.
Aligns only the region delimited by the partition
.
Use methods IManager::getI0(), IManager::getJ0(), IManager::getI1() and IManager::getJ1() to obtain the partition boundaries.
condition: always true
Definition at line 155 of file capabilities.hpp.
Aligns with the Smith wWaterman (SW) recurrence function.
condition: IManager::getRecurrenceType() == SMITH_WATERMAN
Definition at line 193 of file capabilities.hpp.
Aligns using variable penalties.
The variable penalties must be returned by the IAligner::getScoreParameters() method. If the parameters are constants, set this capability to NOT_SUPORTED.
condition: always true
Definition at line 164 of file capabilities.hpp.
1.7.6.1