【发布时间】:2015-12-26 01:55:04
【问题描述】:
你能帮我解决下面的问题吗?非常感谢。
编写一个 clojure 程序。给定整数 L 和 t,如果存在长度为 L 的 Text 的连续子字符串且 Pattern 至少出现 t 次,则字符串 Pattern 在(更大的)字符串 Text 内形成一个 (L, t)-clump。例如,TGCA 在以下文本中形成 (25,3)-团块:gatcagcataagggtcccTGCAATGCATGACAAGCCTGCAgttgttttac。编写一个带有四个参数 Text、k(整数)、L(整数)、t(整数)的函数 findclumps,它返回一个长度为 k 的序列字符串,在 Text 中形成一个 (L, t)-clump。例如: (def text "CGGACTCGACAGATGTGAAGAAATGTGAAGACTGAGTGAAGAGAAGAGGAAACAC GACACGACATTGCGACATAATGTACGAATGTAATGTGCCTATGGC" ) (find-clumps text 5 75 4) 返回 ("CGACA" "GAAGA" "AATGT")
(defn k-mers
[k text]
(map #(apply str %) (partition k 1 text)))
(defn most-frequent-k-mers
[k t text]
(->> (k-mers k text)
(frequencies)
(filter #(<= t (second %))) (map first)))
(defn find-clump
[k L t text]
(let [windows (partition L 1 text)]
(->> windows
(map #(most-frequent-k-mers k t %))
(map set) (apply clojure.set/union))))
【问题讨论】:
-
发布您尝试过的代码、给定输入的预期输出以及您具体寻求帮助的问题。
-
预期输出是 - (def text “CGGACTCGACAGATGTGAAGAAATGTGAAGACTGAGTGAAGAGAAGAGGAAACAC GACACGACATTGCGACATAATGTACGAATGTAATGTGCCTATGGC”) (find-clumps text 5 75 4) 返回 (“CGACA” “GAAGA” “AATGT”) 帮助我了解如何开始和接下来的基本步骤,因为我不知道。我将在这里尝试并发布我的输出和代码。非常感谢。
-
由于这个问题与您之前提出的问题基本相同,我将把它们链接起来,以便一起回答。该问题被标记为“搁置”,因为需要对其进行编辑并使其更清楚才能得到回答。请编辑该 euestion 以包括对您要解决的两个问题的明确定义、每个问题的输入示例以及每个问题的预期输出。编辑完成后,我将重新打开问题,以便人们提供答案。
-
How To Do Clojure Program? 的可能重复项
-
使用我尝试过的上一个步骤,我得到的解决方案为 (find-clumps text 5 75 4) {"AATGT" "GAAGA") 但我需要输出为 (find-clumps text 5 75 4)返回 (“CGACA” “GAAGA” “AATGT”) 我的代码 (defn k-mers [k text] (map #(apply str %) (partition k 1 text))) (defn most-frequent-k-mers [kt text] (->> (k-mers k text) (frequencies) (filter #(> windows (map #(most-frequent-k-mers kt %)) (map set) (apply clojure.set/union)))))
标签: clojure