github.com/biogo/biogo@v1.0.4/feat/moltype.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 feat
     6  
     7  import (
     8  	"strings"
     9  )
    10  
    11  const (
    12  	Undefined Moltype = iota - 1
    13  	DNA
    14  	RNA
    15  	Protein
    16  )
    17  
    18  var (
    19  	moltypeToString = [...]string{
    20  		"DNA", "RNA", "Protein",
    21  	}
    22  	stringToMoltype map[string]Moltype = map[string]Moltype{}
    23  )
    24  
    25  func init() {
    26  	for m, s := range moltypeToString {
    27  		stringToMoltype[strings.ToLower(s)] = Moltype(m)
    28  		stringToMoltype[s] = Moltype(m)
    29  	}
    30  }
    31  
    32  // Moltype represents the molecule type of a source of sequence data.
    33  type Moltype int8
    34  
    35  // Return a string representation of a Moltype.
    36  func (m Moltype) String() string {
    37  	if m == Undefined {
    38  		return "Undefined"
    39  	}
    40  	return moltypeToString[m]
    41  }
    42  
    43  // ParseMoltype allows conversion from a string to a Moltype.
    44  func ParseMoltype(s string) Moltype {
    45  	if m, ok := stringToMoltype[s]; ok {
    46  		return m
    47  	}
    48  
    49  	return Undefined
    50  }