Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Adding basic alignmentcode page with MultipleStructureAlignment proposal
  • Loading branch information
sbliven committed Apr 10, 2015
commit 509057f86a941aea061f927db18ec8d839c6061b
6 changes: 5 additions & 1 deletion structure/alignment.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ The functionality to perform and visualize these alignments can of course be
used also from your own code. Let's first have a look at the alignment
algorithms.

## The Alignment Algorithms
## Pairwise Alignment Algorithms

### Combinatorial Extension (CE)

Expand Down Expand Up @@ -247,6 +247,10 @@ are available which are not exposed in the GUI, such as outputting results to a
file in various formats.


## See Also

For details about performing alignments programatically, see [Structure Alignment in BioJava](alignmentcode.md)

## Acknowledgements

Thanks to P. Bourne, Yuzhen Ye and A. Godzik for granting permission to freely use and redistribute their algorithms.
Expand Down
40 changes: 40 additions & 0 deletions structure/alignmentcode.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
Structure Alignment in BioJava
===

## Data Structures

### Legacy AFPChain model

Pairwise structure alignments are currently stored in the `AFPChain` class. The
class functions as a bean, and contains many variables used internally by
various alignment algorithms.

### Proposed MultipleStructureAlignment data model

This data structure introduces a more explicit model for storing structure
alignments. It is more flexible than the AFPChain model, adding support for

* Multiple alignments
* Non-topological alignments, such as circular permutations
* Mutable, while maintaining internal consistency

A ***block*** is a series of aligned residues within a structure. A block must
be a sequential alignment; the order of residues within the block should be
strictly increasing. Blocks in the same alignment should be non-overlapping.
Only aligned positions are specified in the block, but individual structures may
have gaps and deletions at any position. A block corresponds most closely to a
traditional, sequential multiple alignment with a row for each structure and a
column for each aligned position.

A ***match*** represents a set of blocks with a single global superposition.
This superposition is stored in a ***pose***, which contains the affine
transform required for the superposition.

Finally, a `MultipleStructureAlignment` associates a set of Structures with one
or more matches.

### Examples

A typical pairwise alignment would be a single match, a single pose, and a
single block of two structures.