免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: anna_bi
打印 上一主题 下一主题

python DNA序列匹配问题求算法 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2015-09-02 11:16 |只看该作者
回复 10# icymirror
谢谢谢谢


   

论坛徽章:
0
12 [报告]
发表于 2015-09-02 12:37 |只看该作者
回复 10# icymirror
结果是8吗 不是22啊
[ [ 1, 4 ], [ 5, 8 ], [ 9, 12 ], [ 13, 16 ] ]        [ [ 2, 3 ], [ 6, 7 ], [ 10, 11 ], [ 14, 15 ] ]
[ [ 1, 4 ], [ 5, 8 ], [ 9, 16 ], [ 12, 13 ] ]        [ [ 2, 3 ], [ 6, 7 ], [ 10, 11 ], [ 14, 15 ] ]
[ [ 1, 4 ], [ 5, 12 ], [ 8, 9 ], [ 13, 16 ] ]        [ [ 2, 3 ], [ 6, 7 ], [ 10, 11 ], [ 14, 15 ] ]
[ [ 1, 4 ], [ 5, 16 ], [ 8, 9 ], [ 12, 13 ] ]        [ [ 2, 3 ], [ 6, 7 ], [ 10, 11 ], [ 14, 15 ] ]
[ [ 1, 4 ], [ 5, 16 ], [ 9, 12 ], [ 8, 13 ] ]        [ [ 2, 3 ], [ 6, 7 ], [ 10, 11 ], [ 14, 15 ] ]
[ [ 1, 4 ], [ 5, 16 ], [ 8, 9 ], [ 12, 13 ] ]        [ [ 2, 3 ], [ 6, 15 ], [ 10, 11 ], [ 7, 14 ] ]
[ [ 1, 4 ], [ 5, 16 ], [ 9, 12 ], [ 8, 13 ] ]        [ [ 2, 3 ], [ 6, 15 ], [ 10, 11 ], [ 7, 14 ] ]
[ [ 1, 8 ], [ 4, 5 ], [ 9, 12 ], [ 13, 16 ] ]        [ [ 2, 3 ], [ 6, 7 ], [ 10, 11 ], [ 14, 15 ] ]
[ [ 1, 8 ], [ 4, 5 ], [ 9, 16 ], [ 12, 13 ] ]        [ [ 2, 3 ], [ 6, 7 ], [ 10, 11 ], [ 14, 15 ] ]
[ [ 1, 12 ], [ 4, 5 ], [ 8, 9 ], [ 13, 16 ] ]        [ [ 2, 3 ], [ 6, 7 ], [ 10, 11 ], [ 14, 15 ] ]
[ [ 1, 12 ], [ 5, 8 ], [ 4, 9 ], [ 13, 16 ] ]        [ [ 2, 3 ], [ 6, 7 ], [ 10, 11 ], [ 14, 15 ] ]
[ [ 1, 12 ], [ 4, 5 ], [ 8, 9 ], [ 13, 16 ] ]        [ [ 3, 10 ], [ 6, 7 ], [ 2, 11 ], [ 14, 15 ] ]
[ [ 1, 12 ], [ 5, 8 ], [ 4, 9 ], [ 13, 16 ] ]        [ [ 3, 10 ], [ 6, 7 ], [ 2, 11 ], [ 14, 15 ] ]
[ [ 1, 16 ], [ 4, 5 ], [ 8, 9 ], [ 12, 13 ] ]        [ [ 2, 3 ], [ 6, 7 ], [ 10, 11 ], [ 14, 15 ] ]
[ [ 1, 16 ], [ 4, 5 ], [ 9, 12 ], [ 8, 13 ] ]        [ [ 2, 3 ], [ 6, 7 ], [ 10, 11 ], [ 14, 15 ] ]
[ [ 1, 16 ], [ 4, 5 ], [ 8, 9 ], [ 12, 13 ] ]        [ [ 2, 3 ], [ 6, 15 ], [ 10, 11 ], [ 7, 14 ] ]
[ [ 1, 16 ], [ 4, 5 ], [ 9, 12 ], [ 8, 13 ] ]        [ [ 2, 3 ], [ 6, 15 ], [ 10, 11 ], [ 7, 14 ] ]
[ [ 1, 16 ], [ 5, 8 ], [ 4, 9 ], [ 12, 13 ] ]        [ [ 2, 3 ], [ 6, 7 ], [ 10, 11 ], [ 14, 15 ] ]
[ [ 1, 16 ], [ 5, 8 ], [ 9, 12 ], [ 4, 13 ] ]        [ [ 2, 3 ], [ 6, 7 ], [ 10, 11 ], [ 14, 15 ] ]
[ [ 1, 16 ], [ 5, 12 ], [ 8, 9 ], [ 4, 13 ] ]        [ [ 2, 3 ], [ 6, 7 ], [ 10, 11 ], [ 14, 15 ] ]
[ [ 1, 16 ], [ 4, 5 ], [ 8, 9 ], [ 12, 13 ] ]        [ [ 3, 10 ], [ 6, 7 ], [ 2, 11 ], [ 14, 15 ] ]
[ [ 1, 16 ], [ 5, 8 ], [ 4, 9 ], [ 12, 13 ] ]        [ [ 3, 10 ], [ 6, 7 ], [ 2, 11 ], [ 14, 15 ] ]


   

论坛徽章:
4
白羊座
日期:2013-11-05 10:26:09冥斗士
日期:2015-11-17 14:19:55白银圣斗士
日期:2015-11-17 15:13:0815-16赛季CBA联赛之新疆
日期:2016-04-01 09:10:58
13 [报告]
发表于 2015-09-02 13:58 |只看该作者
回复 12# anna_bi
不明白这些数字是指什么。

论坛徽章:
4
白羊座
日期:2013-11-05 10:26:09冥斗士
日期:2015-11-17 14:19:55白银圣斗士
日期:2015-11-17 15:13:0815-16赛季CBA联赛之新疆
日期:2016-04-01 09:10:58
14 [报告]
发表于 2015-09-02 14:32 |只看该作者
本帖最后由 icymirror 于 2015-09-02 14:40 编辑

回复 12# anna_bi
这些数字是指基因字符位置嘛?那明白你的意思了。

论坛徽章:
0
15 [报告]
发表于 2015-09-02 16:06 |只看该作者
回复 14# icymirror
对啊 是指基因字符位置,那个基因序列如果换成ACGUAGCUACGUAGUCGACU的话,程序会报错


   

论坛徽章:
0
16 [报告]
发表于 2015-09-02 16:12 |只看该作者
回复 14# icymirror
http:  //rosalind.info/  problems/cat/ 这是这个题目的链接 没权限提交链接 所以带了空格



   

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
17 [报告]
发表于 2015-09-04 05:33 |只看该作者
shibushi
rna = 'ACGUAGCU' * 2
count = 22

rna = 'ACGUAGCU' * 100
count = 13608503128777948922657443526979871651852735451377119775678605848837286264789159184721700297201699277990634072690934696656959074736604858856

shishi ruby
  1. #!/usr/bin/ruby

  2. $deze = {'AU' => 1, 'UA' => 1, 'CG' => 1, 'GC' => 1, '' => 1}

  3. def gimme k
  4.     return $deze[k] if $deze.key? k
  5.     v = 0
  6.     (1...k.size).step(2) do |i|
  7.         next unless $deze.key? k[0] + k[i]
  8.         v += gimme(k[1...i]) * gimme(k[i + 1..-1])
  9.     end
  10.     $deze[k] = v
  11. end

  12. rna = 'ACGUAGCU' * 100
  13. puts gimme rna
复制代码

论坛徽章:
0
18 [报告]
发表于 2015-09-06 08:58 |只看该作者
回复 17# rubyish
谢谢了,可是我没有学过ruby,可不可以讲下思路啊


   

论坛徽章:
4
白羊座
日期:2013-11-05 10:26:09冥斗士
日期:2015-11-17 14:19:55白银圣斗士
日期:2015-11-17 15:13:0815-16赛季CBA联赛之新疆
日期:2016-04-01 09:10:58
19 [报告]
发表于 2015-09-06 14:04 |只看该作者
本帖最后由 icymirror 于 2015-09-06 14:06 编辑

回复 18# anna_bi
rubyish 的代码转换成Python的如下:
  1. pairs = {"": 1, "AU": 1, "UA": 1, "CG": 1, "GC":1}

  2. def RNAPatterns(series):
  3.     if series in pairs.keys():
  4.         return pairs[series]

  5.     count = 0
  6.     for index in range(1, len(series), 2):
  7.         if series[0] + series[index] in pairs.keys():
  8.             count = count + RNAPatterns(series[1:index]) * RNAPatterns(series[index + 1:])
  9.     pairs[series] = count

  10.     return count

  11. def main():
  12.     dna_serie = "ACGUAGCU" * 2
  13.     print "Found {0} types of successful split.".format(RNAPatterns(dna_serie))
复制代码
思路是:
用pairs保存查找过程中发现的所有子基因片段和对应的模式数量(用来提高速度),最后输出当前片段所对应的模式数量。

我之前的代码的问题在于,没有遍历所有的子可能。

论坛徽章:
0
20 [报告]
发表于 2015-09-06 14:24 |只看该作者
回复 19# icymirror
谢谢谢谢


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP