| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 
 | #!/usr/local/bin/perl
 
 
#-------------------------------- dpAlign.pl
 
 
=h
 
Dynamic Programming approach is considered to be the most sensitive way to align 
two biological sequences. There are currently three major types of dynamic 
programming algorithms: Global Alignment, Local Alignment and Ends-free Alignment.
 
Ends-free Alignment
 
=cut
 
use strict;
use warnings;
 
 
use FileHandle;
use Bio::Tools::dpAlign;
use Bio::SeqIO;
use Bio::SimpleAlign;
use Bio::AlignIO;
use Bio::Matrix::IO;
 
 
my $s1 = 'GGGTGAGTAACACGTGGGTAACCTGCCCATAAGACTGGGATAACTCCGGGAAACCGGGGCTAATACCGGATAATATTTTGAACTGCATGGTTCGAAATTGAAAGGCGGCTTCGGCTGTCACTTATGGATGGACCCGCGTCGCATTAGCTAGTTGGTGAGGTAACGGCTCACCAAGGCAACGATGCGTAGCCGACCTGAGAGGGTGATCGGCCACACTGGGACTGAGACACGGCCCAGACTCCTACGGGAGGCAGCAGTAGGGAATCTTCCGCAATGGACGAAAGTCTGACGGAGCAACGCCGCGTGAGTGATGAAGGCTTTCGGGTCGTAAAACTCTGTTGTTAGGGAAGAACAAGTGCTAGTTGAATAAGCTGGCACCTTGACGGTACCTAACCAGAAAGCCACGGCTAACTACGTGCCAGCAGCCGCGGTAATACGTAGGTGGCAAGCGTTATCCGGAATTATTGGGCGTAAAGCGCGCGCAGGTGGTTTCTTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGTCATTGGAAACTGGGAGACTTGAGTGCAGAAGAGGAAAGTGGAATTCCATGTGTAGCGGTGAAATGCGTAGAGATATGGAGGAACACCAGTGGCGAAGGCGACTTTTCTGGTCTGTAACTGACACTGAGGCGCGAA';
my $s2 = 'AGGGAAGAACAAGTGCTAGTTGAATAAGCTGGCACCTTGACGGTACCTAACCAGAAAGCCACGGCTAACTACGTGCCAGCAGCCGCGGTAATACGTAGGTGGCAAGCGTTATCCGGAATTATTGGGCGTAAAGCGCGCGCAGGTGGTTTCTTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGTCATTGGAAACTGGGAGACTTGAGTGCAGAAGAGGAAAGTGGAATTCCATGTGTAGCGGTGAAATGCGTAGAGATATGGAGGAACACCAGTGGCGAAGGCGACTTTCTGGTCTGTAACTGACACTGAGGCGCGAAAGCGTGGGGAGCAAACAGGATTAGATACCCTGGTAGTCCACGCCGTAAACGATGAGTGCTAAGTGTTAGAGGGTTTCCGCCCTTTAGTGCTGAAGTTAACGCATTAAGCACTCCGCCTGGGGAGTACGGCCGCAAGGCTGAAACTCAAAGGAATTGACGGGGGCCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGAAGCAACGCGAAGAACCTTACCAGGTCTTGACATCCTCTGAAAACCCTAGAGATAGGGCTTCTCCTTCGGGAGCAGAGTGACAGGTGGTGCATGGTTGTCGTCAGCTCGTGTCGTGAGATGTTGGGTTAAGTCCCGCAACGAGCGCAACCCTTGATCTTAGTTGCCATCATTAAGTTGGGCA';
 
my $seq1 = Bio::SeqIO->new(-file => $s1, -format => 'fasta');
my $seq2 = Bio::SeqIO->new(-file => $s2, -format => 'fasta');
 
 
# create a dpAlign object
# to do global alignment, specify DPALIGN_GLOBAL_MILLER_MYERS
# to do local alignment, specify DPALIGN_LOCAL_MILLER_MYERS
# to do ends-free alignment, specify DPALIGN_ENDSFREE_MILLER_MYERS
$factory = new dpAlign(-match => 3,
	     -mismatch => -1,
	     -gap => 3,
	     -ext => 1,
	     -alg => Bio::Tools::dpAlign::DPALIGN_ENDSFREE_MILLER_MYERS
);
 
# actually do the alignment
$out = $factory->pairwise_alignment($seq1->next_seq, $seq2->next_seq);
$alnout = Bio::AlignIO->new(-format => 'fasta', -fh => \*STDOUT);
$alnout->write_aln($out); | 
Partager