Skip to content

Instantly share code, notes, and snippets.

@zetashift
Created November 5, 2018 13:55
Show Gist options
  • Save zetashift/fb6ccac53d2e467e016a699fa63a861f to your computer and use it in GitHub Desktop.
Save zetashift/fb6ccac53d2e467e016a699fa63a861f to your computer and use it in GitHub Desktop.
Solution to rosalind exercise 'Motif Finder'
object MotifFinder {
def find(text: String, motif: String) = {
var result = Seq[Int]()
for (i <- 0 until text.length - motif.length) {
var aheadSS = text.slice(i, i + motif.length)
if (aheadSS == motif) {
result = result :+ (i + 1)
}
}
result
}
def main(args: Array[String]): Unit = {
val input = "GAGAAGTTCGGTTCGTCGTCTGAGAAGTACAGAACTGGGAGAAGTTGAGAAGTACTGAGAAGTCTTTGTGGAGAAGTGAGAAGTTTAGGAGAAGTCGAGAAGTGGAGAAGTCGAGAAGTAGAGAAGTAACTATGAGAAGTCACCGGAGAAGTGGGAGAAGTCGAGAAGTCGGAGAAGTCATGTTCGAGAAGTTTTAAATGAGCTGGAGAAGTGCGAGAAGTAGAGAAGTGAGAAGTTGAGAAGTAGAGAAGTCATGAGAAGTTCAGAGAAGTGAGAAGTGCGAGAAGTACAGAGAAGTCATGAGAAGTCCCCGCGAGAAGTGACCAAGAGAGAAGTTGACGGAGAAGTGAGAAGTGAGAAGTGAGAAGTATGAGAAGTGAGAAGTGGGCGGGCGAGAAGTGAGAAGTGAGAAGTGACACGGGGAGAAGTAATGAGAAGTTGAGAAGTTGAGAAGTGAGAAGTGAGAAGTGAGAAGTTAGAGAAGTGCAGAGAAGTTGCCAGAGAAGTACGTGCGACGCTAGTCGAGAAGTGTAGAGAAGTTGAGAAGTGAGAAGTTGAGAAGTGAGAAGTGGAGAAGTGCGTTGAGAAGTATCAGTGAGAAGTCGAGAAGTATGATCGAGAAGTGAGAAGTGCGAGAAGTGGGGAGAAGTGCTACACCACGAGAAGTAGCTAGCGAGAAGTTCACGATGTGAGAAGTGAGAAGTTGCACAGGAGAAGTTAGAGAAGTAAGGGAGAAGTGAGAAGTCGAGAAGTGAGAAGTAGAGAAGTGAGAAGTGCGAGAAGTGAGAAGTGGAGAAGTGTGAGAAGTGAGAAGTTAAGAGAAGTGTGAGAAGTGTCGGGAGAAGTGAGAAGTGAGAAGTTGAGAAGTATGAGAAGTGAGAAGTAGGAGAAGT"
val subscript = "GAGAAGTGA"
val res = MotifFinder.find(input, subscript)
res.foreach(e => print(s"$e "))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment