code: func (r *Reference) String() string {
  	var buf bytes.Buffer
  	fmt.Fprintf(&buf, "@SQ\tSN:%s\tLN:%d", r.name, r.lRef)
  	if r.md5 != "" {
  		fmt.Fprintf(&buf, "\tM5:%x", []byte(r.md5))
  	}
  	if r.assemID != "" {
  		fmt.Fprintf(&buf, "\tAS:%s", r.assemID)
  	}
  	if r.species != "" {
  		fmt.Fprintf(&buf, "\tSP:%s", r.species)
  	}
  	if r.uri != nil {
  		fmt.Fprintf(&buf, "\tUR:%s", r.uri)
  	}
  	for _, tp := range r.otherTags {
  		fmt.Fprintf(&buf, "\t%s:%s", tp.tag, tp.value)
  	}
  	return buf.String()
  }
docs: // String returns a string representation of the Reference according to the
  // SAM specification section 1.3,