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  }