序列发生器有点问题。我有一个文件,每行包含一个片段(8个字母)。我将它从文件加载到列表中,其中每个元素都是一个片段。它是DNA,所以应该这样:
1取第一个8个字母的元素
2检查前7个字母与前7个字母相同的元素。
三。在序列中添加第二个元素的第8个字母。
应该是这样的:
ATTGCCAT
TTGCCATA
TGCAATAC
So序列:ATTGCATAC
不幸的是,它只添加了一个元素。:(给出了第一个元素(我们知道)。我是这样做的,它是文件中的第一行(第一行)。在
代码如下:
^{pr2}$我删除了检查和频谱函数,因为它是简单的计算,例如长度比较,所以它并不像我想的那样引起问题。在
我将非常感谢你的帮助!在
谨致问候, 马特乌斯
为了好玩和有趣,我用OO重写了这个问题。看看你的想法:
因为你的片段是被洗牌的,你的算法需要考虑到这一点;目前,你只是在片段中循环一次,如果它们的顺序不正确,就不太可能包含多个片段。例如,假设你有5个片段,我将根据它们在序列中的顺序来引用它们。现在碎片有点乱了:
1-3-2-4-5
你的算法将从1开始,跳过3,然后在2上匹配,最后加一个基数。然后检查4和5,然后完成,永远不会到达碎片3。在
你可以很容易地解决这个问题,每次你添加一个基时都重新开始循环,但是,对于大量的基,这将很难扩展。相反,我建议将您的片段加载到trie,然后在每次添加碱基时在trie中搜索下一个片段,直到为每个片段添加了一个碱基,或者您再也找不到匹配的片段。在
为我工作:
你的例子中有个拼写错误,TGCAATAC应该是TGCCATAC。但是修复它的工作。在
相关问题 更多 >
编程相关推荐