问题标签 [rosalind]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
performance - 在 DNA 中寻找基序
问题可以在这里找到: http ://rosalind.info/problems/subs/
我的问题与下面提供的两种解决方案的性能有关。
1.
2.
第二种解决方案漂亮、实用且简短。
第一个解决方案有点大,但它仍然有效。我本可以省略 val 并使用这些值使其更短,但这不是我的目标。
在看到第二个解决方案后,由于代码的长度,我对我的解决方案感到非常失望。检查了 scala 库以了解为什么第二个解决方案有效,然后我自己重新实现了它。考虑检查这两种解决方案的性能,并制作了一条巨大的 3000 万条 DNA 链。
惊讶!
表现:
第一个数字是 DNA 长度,接下来的两个数字表示第一个和第二个解决方案的执行时间(以毫秒为单位)。
11,226,096 - 4921 - 14503
33,678,288 - 6448 - 35150
为什么性能差别这么大?
我试过检查 scala 库,但找不到解释这种行为的东西。
我假设第一个解决方案是创建许多对象,因此会消耗更多内存并花费大量时间,但似乎由于某种原因它工作得更快。我怀疑这是尾递归,我怀疑 zipWithIndex 需要很多时间。迭代器只是迭代器?
谢谢!
algorithm - 算法/概率练习
我正在尝试解决 rosalind 项目中的一个练习,但显然一直在犯一些错误。全文可在此处获得,但我的简短抽象解释和尝试如下。请帮我找出我做错了什么:
我们有 3 组项目:AA
、Aa
、aa
。我们从 1 in 开始Aa
并k
迭代生成新项目。在每次迭代中,组中的每个项目:
Aa
可以产生:AA
(25%),Aa
(50%),aa
(25%)AA
可以产生:AA
(50%),Aa
(50%)aa
可以产生:aa
(50%),Aa
(50%)
作为迭代的结果,我们计算每个组的预期项目数,假设我们在前一次迭代中从每个项目生成 2 个新项目。所以我们最终得到:
- 第 0 次迭代::
AA
0,Aa
:1,aa
:0 - 第一次迭代:
AA
: .5,Aa
: 1,aa
: .5 - 第二次迭代:
AA
: 1,Aa
: 2,aa
: 1 - 等等 - 组之间的比例保持在 1:2:1
每次迭代的期望值/总体的总和是2^iteration
,并且项目在组中的概率Aa
始终为 50%。
到目前为止,我希望我是对的,但我们真正追求的是:如果我们重复实验两次,至少两次N
都在组中的项目的机会是多少。Aa
(应该相当于:如果我们将组列表扩展到, , .... 从原始问题中,至少有N
项目在组中的机会是多少)AaBb
AABB
AABb
所以项目出现的概率Aa
是 50%,来自迭代(或2^iteration
)的预期值的总体总和,并使用测试数据(k=2,N=1)将其扔给 scipy,我们至少得到一个项目在组中Aa
:
如果我们有两组组,这至少适用于一个项目,所以AaBb
:
这与原始问题中的答案完全不同:0.684
我在哪里做错了?(如果可能,请只指出错误,而不是给出解决方案,以免给试图自行解决的人留下剧透)
python - 用于计算 DNA 序列中 GC 含量的初学者 Python 脚本
我正在尝试计算 Rosalind 问题的 DNA 序列的 GC 含量(以 % 为单位)。我有以下代码,但它返回 0,或仅返回 G 或 C 的数量(无百分比)。
我也试过这个,只是为了得到 G 和 C 的计数,而不是百分比,但它只返回整个字符串的计数:
编辑:我在第一个代码示例中修复了 print 语句中的错字。那不是问题,我只是粘贴了错误的代码片段(有很多尝试......)
python - 斐波那契兔子在任意几个月后死亡
所以,我已经看到了一些解决这个问题或类似问题的方法,但我真的很想知道为什么 我的不起作用。它比我找到的许多解决方案更容易阅读,所以我很乐意让它工作!
从1对兔子开始,2个月后开始繁殖。跑 n 个月,兔子活了 m 个月后死去。'6 3' 的输入应该返回 4,但它返回 3。
谢谢=]
python - 将公式应用于跨越多行的数据行
我只是迈出了尝试学习一点 Python 的第一步。目前正在学习旨在教授生物信息学 python 技能的 Rosalind 在线课程。(顺便说一句,非常好,请参阅:rosalind.info)
我正在努力解决一个特定问题。我有一个 FASTA 格式的文件,其格式如下:
我需要计算文件每个条目(不包括标题)中 G 和 C 的百分比并返回这个数字,例如:
到目前为止,我的代码是:
这几乎是我需要它做的事情。我只是在序列数据跨越多行时遇到了麻烦。目前我得到文件中每一行的 % GC 内容,而不是为每个条目返回一个数字,例如:
如何将我的公式应用于跨越多行的数据?
提前致谢,
python - 为什么每次迭代都必须进行取模?
这是我偶然发现正确答案的问题之一,但我不明白为什么它是正确的,而维基百科没有帮助。对于 Rosalind,我编写了一个简单的脚本,用于从蛋白质串(模 1,000,000)中获取所有可能的 RNA 序列的数量。我知道这不是最有效的代码(部分原因是我从以前制作的东西中回收了一些位),但它是:
这会计算 RNA 序列的总数并取最终结果的模数(或者我认为如此)。在我决定尝试这个之前,我得到了两次错误的答案:
这显然产生了正确的答案。为什么必须在每个 x*y 处执行模数?我是不了解模还是不了解 Python?
编辑:对不起,错字。
python - 无法将 Python 代码发布到 roaslind.info
我正在尝试将用 Python 编写的示例解决方案发布到 rosalind.info。
我尝试按照说明进行操作
“要突出显示代码,请在代码中添加 shebang 样式的第一行 :::lexername。将 lexername 替换为要突出显示的语言的 lexer 关键字,如 Pygments 词法分析器列表中所示。”
使我的代码显示为 Python,但无法使其正常工作。
我尝试将第一行设置为:
但它只是显示为普通文本。
谢谢你的帮助。尼克B
python - 查找列表字典中在该列表中具有特定元素的所有元素
我正在通过 Rosalind 解决一个问题。自从我被卡住以来已经一周了。我将尝试尽可能简单地解释这一点。
输入 - 一个名为Genome
, 和整数k
, L
, 和的字符串t
。基因组是一串要分类的遗传密码。
k
是一个给定的整数,每个 kmer 的大小。kmer 是遗传密码的一个子串,可能具有某种意义。t
是 kmer 出现在簇中的次数。L
是形成丛的文本的长度。例如,如果L = 400
我们正在寻找一个t
在 400 个字符的簇内出现次数的 kmer。
输出——所有不同的 k-mers 在基因组中形成 (L, t)-团块。
该代码获取基因组,将其分解为所有可能的 kmer 并将这些 kmer 插入字典。kmers 是钥匙。这些值设置为
[frequency_of_kmer, [kmer locations]]
. 该值像这样存储在字典中:{'AAAAA' : [y, [z1,z2]]}
,其中y
是出现次数,并且z1
是z2
字符串中找到子字符串的索引。
基本上,我正在寻找迭代字典。我想找到t
文本中出现次数的键。也就是说,我想找到字典的所有键,d
例如d[key]==t
.
下面的代码,然后是输出。
代码:
python - 罗莎琳德决议菜鸟
这是我对这里提出的问题的解决方案:http ://rosalind.info/problems/subs/ 。
我的代码有什么问题?