Skip to content

Instantly share code, notes, and snippets.

@mortdeus
Created November 8, 2013 21:45
Show Gist options
  • Select an option

  • Save mortdeus/7378195 to your computer and use it in GitHub Desktop.

Select an option

Save mortdeus/7378195 to your computer and use it in GitHub Desktop.
genetic sequence pattern algorithm using hash maps in go.
package main
import "fmt"
const GENES = "TACGTGCATGTCGCATGATGCATGAGAGCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGAGCTTGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCACTTGCATGTCGCATGATGCATGAGTGAGAGCTTGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATCTTGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCACTTGCATGTCGCATGATGCATGAGTGAGAGCTTGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTGCATGAGAGCTTGCATGTCGCATGATGCATCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATCTTGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCACTTGCATGTCGCATGATGCATGAGTGAGAGCTTGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCACTTGCATGTCGCATGATGCATGAGTGAGAGCTTGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTGCATGAGAGCTTGCATGTCGCATGATGCATCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATCTTGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGTTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCACTTGCATGTCGCATGATGCATGAGTGAGAGCTTGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTGCATGAGAGCTTGCATGTCGCATGATGCATCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATCTTGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCACTTGCATGTCGCATGATGCATGAGTGAGAGCTTGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCACTTGCATGTCGCATGATGCATGAGTGAGAGCTTGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTGCATGAGAGCTTGCATGTCGCATGATGCATCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATCTTGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGTGAGATGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAGCTTCTCATGTCGCATGATGCACTTGCATGTCGCATGATGCATGAGTGAGAGCTTGCATGTCGCATTGTCGCATGATGCATGAGAGCTTGCATGTCGCATGATGCATGAGAGCTCATTCGCATGATGCATGAGAATGT"
const SEQ = 4
type gene [SEQ]byte
func main() {
patterns := make(map[string]int)
for k := 0; k <= len(GENES)%SEQ; k++ {
for i := k; i < len(GENES); i += SEQ {
if i+len(GENES)%SEQ >= len(GENES) {
break
}
var g gene
for j := 0; j < SEQ; j++ {
g[j] = GENES[i+j]
}
gName := string(g[:])
if patterns[gName] == 0 {
patterns[gName] = 1
} else {
patterns[gName]++
}
}
}
fmt.Println(patterns)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment