github.com/biogo/biogo@v1.0.4/align/fitted_example_test.go (about)

     1  // Copyright ©2011-2013 The bíogo Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package align
     6  
     7  import (
     8  	"github.com/biogo/biogo/alphabet"
     9  	"github.com/biogo/biogo/seq/linear"
    10  
    11  	"fmt"
    12  )
    13  
    14  func ExampleFitted_Align() {
    15  	fsa := &linear.Seq{Seq: alphabet.BytesToLetters([]byte("GTTGACAGACTAGATTCACG"))}
    16  	fsa.Alpha = alphabet.DNAgapped
    17  	fsb := &linear.Seq{Seq: alphabet.BytesToLetters([]byte("GACAGACGA"))}
    18  	fsb.Alpha = alphabet.DNAgapped
    19  
    20  	//		   Query letter
    21  	//  	 -	 A	 C	 G	 T
    22  	// -	 0	-5	-5	-5	-5
    23  	// A	-5	10	-3	-1	-4
    24  	// C	-5	-3	 9	-5	 0
    25  	// G	-5	-1	-5	 7	-3
    26  	// T	-5	-4	 0	-3	 8
    27  	fitted := Fitted{
    28  		{0, -5, -5, -5, -5},
    29  		{-5, 10, -3, -1, -4},
    30  		{-5, -3, 9, -5, 0},
    31  		{-5, -1, -5, 7, -3},
    32  		{-5, -4, 0, -3, 8},
    33  	}
    34  
    35  	aln, err := fitted.Align(fsa, fsb)
    36  	if err == nil {
    37  		fmt.Printf("%s\n", aln)
    38  		fa := Format(fsa, fsb, aln, '-')
    39  		fmt.Printf("%s\n%s\n", fa[0], fa[1])
    40  	}
    41  	// Output:
    42  	// [[3,10)/[0,7)=62 [10,12)/-=-10 [12,14)/[7,9)=17]
    43  	// GACAGACTAGA
    44  	// GACAGAC--GA
    45  }
    46  
    47  func ExampleFittedAffine_Align() {
    48  	fsa := &linear.Seq{Seq: alphabet.BytesToLetters([]byte("ATTGGCAATGA"))}
    49  	fsa.Alpha = alphabet.DNAgapped
    50  	fsb := &linear.Seq{Seq: alphabet.BytesToLetters([]byte("ATAGGAA"))}
    51  	fsb.Alpha = alphabet.DNAgapped
    52  
    53  	//		   Query letter
    54  	//  	 -	 A	 C	 G	 T
    55  	// -	 0	-1	-1	-1	-1
    56  	// A	-1	 1	-1	-1	-1
    57  	// C	-1	-1	 1	-1	-1
    58  	// G	-1	-1	-1	 1	-1
    59  	// T	-1	-1	-1	-1	 1
    60  	//
    61  	// Gap open: -5
    62  	fitted := FittedAffine{
    63  		Matrix: Linear{
    64  			{0, -1, -1, -1, -1},
    65  			{-1, 1, -1, -1, -1},
    66  			{-1, -1, 1, -1, -1},
    67  			{-1, -1, -1, 1, -1},
    68  			{-1, -1, -1, -1, 1},
    69  		},
    70  		GapOpen: -5,
    71  	}
    72  
    73  	aln, err := fitted.Align(fsa, fsb)
    74  	if err == nil {
    75  		fmt.Printf("%s\n", aln)
    76  		fa := Format(fsa, fsb, aln, '-')
    77  		fmt.Printf("%s\n%s\n", fa[0], fa[1])
    78  	}
    79  	// Output:
    80  	// [[0,7)/[0,7)=3]
    81  	// ATTGGCA
    82  	// ATAGGAA
    83  }