c025fc91d497
Two more.
author | Steve Losh <steve@stevelosh.com> |
---|---|
date | Mon, 12 Nov 2012 13:02:38 -0500 |
parents | 7f4e6345e260 |
children | f4ede9fed310 |
branches/tags | (none) |
files | project.clj src/rosalind/p007.clj src/rosalind/p008.clj |
Changes
--- a/project.clj Mon Nov 12 12:36:49 2012 -0500 +++ b/project.clj Mon Nov 12 13:02:38 2012 -0500 @@ -6,4 +6,4 @@ :dependencies [[org.clojure/clojure "1.4.0"] [the/parsatron "0.0.3"] [org.clojure/math.combinatorics "0.0.3"] - ]) + [roul "0.2.0"]])
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/rosalind/p007.clj Mon Nov 12 13:02:38 2012 -0500 @@ -0,0 +1,27 @@ +(ns rosalind.p007 + (:require [clojure.string :as s])) + +(def sample "0.23 0.31 0.75") + +(defn content-probs [gcc] + (let [gc (/ gcc 2) + at (/ (- 1 gcc) 2)] + {:g gc + :c gc + :a at + :t at})) + +(defn chance-of-twice [prob] + (* prob prob)) + +(defn solve [s] + (let [gccs (map #(Float/parseFloat %) + (s/split (s/trim s) #"\s+"))] + (println (s/join " " + (for [gcc gccs] + (reduce + (map chance-of-twice + (vals (content-probs gcc))))))))) + +(solve sample) + +(solve (slurp "/Users/sjl/Downloads/rosalind_prob.txt"))
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/rosalind/p008.clj Mon Nov 12 13:02:38 2012 -0500 @@ -0,0 +1,84 @@ +(ns rosalind.p008 + (:require [clojure.string :as s])) + + +(def sample "AUGGCCAUGGCGCCCAGAACUGAGAUCAAUAGUACCCGUAUUAACGGGUGA") + +(def acid + {"UUU" \F + "CUU" \L + "AUU" \I + "GUU" \V + "UUC" \F + "CUC" \L + "AUC" \I + "GUC" \V + "UUA" \L + "CUA" \L + "AUA" \I + "GUA" \V + "UUG" \L + "CUG" \L + "AUG" \M + "GUG" \V + "UCU" \S + "CCU" \P + "ACU" \T + "GCU" \A + "UCC" \S + "CCC" \P + "ACC" \T + "GCC" \A + "UCA" \S + "CCA" \P + "ACA" \T + "GCA" \A + "UCG" \S + "CCG" \P + "ACG" \T + "GCG" \A + "UAU" \Y + "CAU" \H + "AAU" \N + "GAU" \D + "UAC" \Y + "CAC" \H + "AAC" \N + "GAC" \D + "UAA" nil + "CAA" \Q + "AAA" \K + "GAA" \E + "UAG" nil + "CAG" \Q + "AAG" \K + "GAG" \E + "UGU" \C + "CGU" \R + "AGU" \S + "GGU" \G + "UGC" \C + "CGC" \R + "AGC" \S + "GGC" \G + "UGA" nil + "CGA" \R + "AGA" \R + "GGA" \G + "UGG" \W + "CGG" \R + "AGG" \R + "GGG" \G}) + + +(defn solve [s] + (println (->> s + s/trim + (partition 3) + (map s/join) + (map acid) + s/join))) + +(solve sample) + +(solve (slurp "/Users/sjl/Downloads/rosalind_prot.txt"))