bio-go

module
v1.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 16, 2019 License: BSD-3-Clause

README

Bio -- Bioinformatics Module

Build Status codecov GoReport CodeFactor

GoDoc DOI LICENSE

Overview

bio is a semantic Bioinformatics module that emphasizes a definitive design structure.

Installation

go get github.com/bio-ext/bio-go/...

Design Structure

This module is structured intentionally to form a fat tree where each step down the tree asks/answers a new question in the following order:

  1. Why are you looking into this module? (i.e., the kind of work you are doing)
  2. How are you hoping to get the job done? (i.e., do you need speed, immutability, simplicity, and so on)
  3. What are you going to use? (i.e., the what that allows the why for your work)

These questions are very general so a contrived example might be "I need to represent N sequences of DNA with IUPAC ambiguity":

  1. Why...? Ex: I need sequences (look in bio/sequence package)
  2. How...? Ex: I prefer immutable data structures (look in .../sequence/immutable package)
  3. What...? Ex: I need IUPAC DNA (look in .../immutable/*iupac* files)

Full path: bio/sequence/immutable/dna_iupac.go to use immutable.NewDnaIupac(...) N times.

This structure should promote quick searches for the why, how, and what that must be answered for every project many times over.

This design means that everything under a directory should implement the interfaces above and inline with it in the tree; for example: everything under bio/sequence implements sequence.Interface and everything under bio/alphabet implements alphabet.Interface and so on.

If more than three levels are deemed necessary the first level will represent some generic functionality, such as in the case of bio/io/fasta/base/fasta.go which is housed under the generic io then answers our three questions fasta (why), base (how), fasta.go (what).

Documentation

Documentation can be built through use of godoc -http=localhost:6060 which then generates documentation accessible through a web browser at localhost:6060. For access to prior to downloading bio-go, visit: https://godoc.org/github.com/bio-ext/bio-go/bio

Testing

Tests can be run through use of go test -v ./... at the root of this repository. Use of the verbose -v flag is recommended as bio-go makes extensive use of property tests, which should provide insight into what can be expected of a given implementation.

All tests, benchmarks, and examples are run continuously and can be viewed on Travis CI.

Directories

Path Synopsis
bio
Package bio is a library representing Bioinformatics solutions.
Package bio is a library representing Bioinformatics solutions.
alphabet
Package alphabet defines the abstract interface for a biological alphabet.
Package alphabet defines the abstract interface for a biological alphabet.
alphabet/hashmap
Package hashmap is a collection of defined biological alphabets such as DNA, RNA, and Protein
Package hashmap is a collection of defined biological alphabets such as DNA, RNA, and Protein
data
Package data is commonly referenced data such as lookup tables
Package data is commonly referenced data such as lookup tables
data/codon
Package codon contains 31 DNA to Protein translation tables.
Package codon contains 31 DNA to Protein translation tables.
data/quality
Package quality handles scores used to encode quality of a sequence
Package quality handles scores used to encode quality of a sequence
io
Package io is a collection of IO operations with a focus on common standard formats
Package io is a collection of IO operations with a focus on common standard formats
io/fasta
Package fasta handles reading, writing, and utilizing FASTA format
Package fasta handles reading, writing, and utilizing FASTA format
io/fasta/base
Package base is a basic implementation of FASTA reading
Package base is a basic implementation of FASTA reading
io/fastq
Package fastq handles reading, writing, and utilizing FASTQ format
Package fastq handles reading, writing, and utilizing FASTQ format
sequence
Package sequence defines the abstract interface for a biological sequence.
Package sequence defines the abstract interface for a biological sequence.
sequence/immutable
Package immutable is an implementation of biological sequences that have immutability.
Package immutable is an implementation of biological sequences that have immutability.
sequence/mutable
Package mutable is an implementation of biological sequences that mutate internally.
Package mutable is an implementation of biological sequences that mutate internally.
test
Package test defines any testing constants or functions used to validate assumptions.
Package test defines any testing constants or functions used to validate assumptions.
utils
Package utils is a collection of helpful utilities
Package utils is a collection of helpful utilities

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL