diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ee508f7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +/target +/lib +/classes +/checkouts +pom.xml +*.jar +*.class +.lein-deps-sum +.lein-failures +.lein-plugins diff --git a/README.md b/README.md new file mode 100644 index 0000000..7322453 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# rosalind + +A Clojure library designed to ... well, that part is up to you. + +## Usage + +FIXME + +## License + +Copyright © 2013 FIXME + +Distributed under the Eclipse Public License, the same as Clojure. diff --git a/data/rosalind_dna.txt b/data/rosalind_dna.txt new file mode 100644 index 0000000..2310b41 --- /dev/null +++ b/data/rosalind_dna.txt @@ -0,0 +1 @@ +ATATTCTAAGTTCCCGCACTATCTTCTAACCCGACTACGGGACCGGCATACGACCACACCCTCTCTTATACATGGCGGTTCTGACCATTGTTGATGCCTCTCTTGATACCGCAGAACGGAATCTAAGCCCGCGACAACTTATGTCGGCCCCAAGGGCATGGCCAGGCTTTTTATCAGTTACATTACATTGGAATAGGCATCTGCGGCGAGTCACTCTCGTGTCTACGGTCCGCTTCGACGAGGTTTGCCTTTGCCGGTCTCGGACGAATATCTATCGAGAATCATGCTGGACTTAACTCTATGAGTGGTCGTTAACACGCAACTTAAAACCAAAGACTAAAGGAATTGCCGTTGCATACTCGGAGATACTAACCACGACAAGATTTAGGATCGCTCCTGTCGGGTCATTACTGATTGGTTAGTGAGATTTCGACTCTTTGAGAAGAGCACTTTACTTAAGTCGCCGGTGACGTCATCACCTCAGCCATATAATAGGTACATTTTTCCGATCTCGGTGCTGGACGTCACACGCGGTTGTAGTGAGACGACGAGAATGGACTCAGTCAGAAGCTATTAACTGCTTGACACGCCCTCGACCTGGTGCCGAAAAAGTGAACTCTGTTTTGATTTTTATAAAGGGATCACGGTTTCAAAGATCCTGCTCTCTGCCTATGAACGTCATTCTTAATGCAGAGATTTACAGATGAGACGATGTAGCGGCGGCACCTAATACTGTATAGCATACCGGTGGCAGCAAATCTGTATGCGATGCCATCTGGGCCAGCTATATATCACGATGTTCTAGATAGGAGTTGCAACACGGACTCGACATCACTACGAATACAAAACCATATTATAGTCTAGCATTGAATGCTTGGAATTACTCCTAGAACTAGCCCGCACGGTATGTGGCAAAGG diff --git a/doc/intro.md b/doc/intro.md new file mode 100644 index 0000000..19c9917 --- /dev/null +++ b/doc/intro.md @@ -0,0 +1,3 @@ +# Introduction to rosalind + +TODO: write [great documentation](http://jacobian.org/writing/great-documentation/what-to-write/) diff --git a/project.clj b/project.clj new file mode 100644 index 0000000..25b9cc6 --- /dev/null +++ b/project.clj @@ -0,0 +1,7 @@ +(defproject rosalind "0.1.0" + :description "FIXME: write description" + :url "http://example.com/FIXME" + :license {:name "Eclipse Public License" + :url "http://www.eclipse.org/legal/epl-v10.html"} + :dependencies [[org.clojure/clojure "1.4.0"]] + :main rosalind.core) diff --git a/src/rosalind/basics.clj b/src/rosalind/basics.clj new file mode 100644 index 0000000..e014b3f --- /dev/null +++ b/src/rosalind/basics.clj @@ -0,0 +1,24 @@ +(ns rosalind.basics) + +(defn dna-counter-fn + "This actually does the counting" + [dna cnt] + (loop [d dna + c cnt] + (let [l (first d) + r (rest d)] + (case l + \A (def h (assoc c :A (+ 1 (:A c)))) + \G (def h (assoc c :G (+ 1 (:G c)))) + \C (def h (assoc c :C (+ 1 (:C c)))) + \T (def h (assoc c :T (+ 1 (:T c)))) + nil) + (if (empty? r) + h + (recur r h))))) + +(defn dna-count + "Counts DNA Neucleotides" + [dna] + (let [h (dna-counter-fn dna {:A 0 :C 0 :T 0 :G 0})] + [(:A h) (:C h) (:G h) (:T h)])) diff --git a/src/rosalind/core.clj b/src/rosalind/core.clj new file mode 100644 index 0000000..36af6e0 --- /dev/null +++ b/src/rosalind/core.clj @@ -0,0 +1,11 @@ +(ns rosalind.core) + +(defn foo + "I don't do a whole lot." + [x] + (println x "Hello, World!")) + +(defn -main + "Main entry point" + [] + (foo "oh bother...")) diff --git a/test/rosalind/basics_test.clj b/test/rosalind/basics_test.clj new file mode 100644 index 0000000..9560f5b --- /dev/null +++ b/test/rosalind/basics_test.clj @@ -0,0 +1,9 @@ +(ns rosalind.basics-test + (:use clojure.test + rosalind.basics)) + +(deftest a-test + (testing "DNA counting stuff" + (is (= + [20 12 17 21] + (dna-count "AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC"))))) diff --git a/test/rosalind/core_test.clj b/test/rosalind/core_test.clj new file mode 100644 index 0000000..fe75e3e --- /dev/null +++ b/test/rosalind/core_test.clj @@ -0,0 +1,7 @@ +(ns rosalind.core-test + (:use clojure.test + rosalind.core)) + +(deftest a-test + (testing "FIXME, I fail." + (is (= 0 0))))