github.com/biogo/biogo@v1.0.4/seq/linear/qseq_example_test.go (about) 1 // Copyright ©2011-2012 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 linear 6 7 import ( 8 "fmt" 9 "strings" 10 11 "github.com/biogo/biogo/alphabet" 12 ) 13 14 func ExampleNewQSeq() { 15 d := NewQSeq("example DNA", []alphabet.QLetter{{'A', 40}, {'C', 39}, {'G', 40}, {'C', 38}, {'T', 35}, {'G', 20}}, alphabet.DNA, alphabet.Sanger) 16 fmt.Printf("%-s %v\n", d, d.Moltype()) 17 // Output: 18 // ACGCTG DNA 19 } 20 21 func ExampleQSeq_Validate() { 22 r := NewQSeq("example RNA", []alphabet.QLetter{{'A', 40}, {'C', 39}, {'G', 40}, {'C', 38}, {'T', 35}, {'G', 20}}, alphabet.RNA, alphabet.Sanger) 23 fmt.Printf("%-s %v\n", r, r.Moltype()) 24 if ok, pos := r.Validate(); ok { 25 fmt.Println("valid RNA") 26 } else { 27 fmt.Println(strings.Repeat(" ", pos-1), "^ first invalid RNA position") 28 } 29 // Output: 30 // ACGCTG RNA 31 // ^ first invalid RNA position 32 } 33 34 func ExampleQSeq_AppendQLetters() { 35 q := []alphabet.Qphred{ 36 1, 13, 19, 22, 19, 18, 20, 23, 23, 20, 16, 21, 24, 22, 22, 18, 17, 18, 22, 23, 22, 24, 22, 24, 20, 15, 37 18, 18, 19, 19, 20, 12, 18, 17, 20, 20, 20, 18, 15, 18, 24, 21, 13, 8, 15, 20, 20, 19, 20, 20, 20, 18, 38 16, 16, 16, 10, 15, 18, 18, 18, 11, 1, 11, 20, 19, 18, 18, 16, 10, 12, 22, 0, 0, 0, 0} 39 l := []alphabet.Letter("NTTTCTTCTATATCCTTTTCATCTTTTAATCCATTCACCATTTTTTTCCCTCCACCTACCTNTCCTTCTCTTTCT") 40 s := NewQSeq("example DNA", nil, alphabet.DNA, alphabet.Sanger) 41 42 for i := range l { 43 s.AppendQLetters(alphabet.QLetter{L: l[i], Q: q[i]}) 44 } 45 fmt.Println("Forward:") 46 fmt.Printf("%-s\n", s) 47 s.RevComp() 48 fmt.Println("Reverse:") 49 fmt.Printf("%-s\n", s) 50 // Output: 51 // Forward: 52 // nTTTCTTCTATATCCTTTTCATCTTTTAATCCATTCACCATTTTTTTCCCTCCACCTACCTnTCCTTCTCTnnnn 53 // Reverse: 54 // nnnnAGAGAAGGAnAGGTAGGTGGAGGGAAAAAAATGGTGAATGGATTAAAAGATGAAAAGGATATAGAAGAAAn 55 }