---
name: "TFBS::Matrix::Alignment"
section: "3pm"
platform: "linux"
package: "libtfbs-perl"
version: "0.7.1+ds-4+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/TFBS::Matrix::Alignment"
---

# TFBS::Matrix::Alignment(3pm)

class for alignment of PFM objects

## NAME

TFBS::Matrix::Alignment - class for alignment of PFM objects

## SYNOPSIS

- •

  Making an alignment: (See documentation of individual TFBS::DB::\* modules to learn how to connect to different types of pattern databases and retrieve TFBS::Matrix::\* objects from them.)

  ```
      my $db_obj = TFBS::DB::JASPAR2->new
                      (-connect => ["dbi:mysql:JASPAR2:myhost",
                                    "myusername", "mypassword"]);
      my $pfm1 = $db_obj->get_Matrix_by_ID("M0001", "PFM");
      my $pfm2 = $db_obj->get_Matrix_by_ID("M0002", "PFM");

      my $alignment= new TFBS::Matrix::Alignment(
                                        -pfm1=>$pfm1,
                                        -pfm2=>$pfm2,
                                        -binary=>"/TFBS/Ext/matrix_aligner",
                                      );
  ```

## DESCRIPTION

TFBS::Matrix::Alignment is a class for representing and performing pairwise alignments of profiles (in the form of TFBS::PFM objects) Alignments are preformed using a semi-global variant of the Needleman-Wunsch algorithm that only permits the opening of one internal gap. Fore reference, the algorithm is described in Sandelin et al Funct Integr Genomics. 2003 Jun 25

## FEEDBACK

Please send bug reports and other comments to the author.

## AUTHOR - Boris Lenhard

Boris Lenhard \<Boris.Lenhard@cgb.ki.se\>

## APPENDIX

The rest of the documentation details each of the object methods. Internal methods are preceded with an underscore.

### new

```
 Title   : new
 Usage   : my $alignment = TFBS::Matrix::Alignment->new(%args)
 Function: constructor for the TFBS::Matrix::Alignment object
 Returns : a new TFBS::Matrix::Alignment object
 Args    : # you must specify:

           -pfm1,      # a TFBS::Matrix::PFM object
           -pfm2,      # another TFBS::Matrix::PFM object
            -binary,  # a valid path to the comparison algorithm (matrixalign)

           #######

           -ext_penalty            #OPTIONAL gap extension penalty in Needleman-Wunsch
                                    algorithmstring. Default 0.01
           -open_penalty,          #OPTIONAL gap opening penalty in Needleman-Wunsch
                                    algorithmstring. Default 3.0
```

### score

```
 Title   : score
 Usage   : my $score = $alignmentobject->score();
 Function: access an alignment score (where each aligned position can contribute max 2)
 Returns : a floating point number
 Args    : none
```

### score

```
 Title   : gaps
 Usage   : my $nr_of_gaps = $alignmentobject->gaps();
 Function: access the number of gaps in an alignment
 Returns : an integer
 Args    : none
```

### length

```
 Title   : length
 Usage   : my $length = $alignmentobject->length();
 Function: access the length of an alignment (ie thenumber of aligned positions)
 Returns : an integer
 Args    : none
```

### strand

```
 Title   : strand
 Usage   : my $strand = $alignmentobject->strand();
 Function: access the oriantation of the aligned patterns:
           ++= oriented as input
           +-= second pattern is reverse-complemented
 Returns : a string
 Args    : none
```

### alignment

```
 Title   : alignment
 Usage   : my $alignment_string = $alignmentobject->alignment();
 Function: access a string describing the alignment
 Returns : an string, where each number refers to a position in respective PFM.
 Position numbering is according to orientation: ie if the second profile is
 reversed, position 1 corresponds to the last position in the input profile.
 Gaps are denoted as - .
 RXR-VDR           -       1       2       3       -     4      5     -
 PPARgamma-RXRal   1       2       3       4       5     6      7     8
 Args    : none
```

## POD ERRORS

Hey! **The above document had some coding errors, which are explained below:**

- Around line 39:

  You forgot a '=back' before '=head1'
