MASA-Core
Public Member Functions | Public Attributes
aligner_capabilities_t Struct Reference

Detailed Description

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>

List of all members.

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 $(i0,j0)-(i1,j1)$.
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.

Constructor & Destructor Documentation

Constructor that creates a new struct with all capabilities set to NOT_SUPPORTED.

Definition at line 222 of file capabilities.hpp.


Member Data Documentation

Implements the block pruning optimization.

If the method IManager::dispatchScore() is called for a pruned block, its best score must be set to $-\infty$. Moreover, the last row and last column of a pruned block must be dispatched considering $-\infty$ 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 $m\times{}n$ blocks and the best score of each block must be dispatched using the IManager::dispatchScore with the $(bx,by)$ 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.

\[ H_{i,j}=\max\{ 0, E_{i,j}, F_{i,j}, H_{i-1,j-1} - p(i,j) \} \]

condition: IManager::getRecurrenceType() == NEEDLEMAN_WUNSCH

Definition at line 184 of file capabilities.hpp.

Aligns only the region delimited by the partition $(i0,j0)-(i1,j1)$.

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.

\[ H_{i,j}=\max\{ 0, E_{i,j}, F_{i,j}, H_{i-1,j-1} - p(i,j) \} \]

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.


The documentation for this struct was generated from the following file: