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 }