美文网首页
取特征序列代码改进

取特征序列代码改进

作者: byejya | 来源:发表于2020-08-19 15:35 被阅读0次

第一部分:整理逻辑细化判断条件。

整理了取特征序列的代码逻辑,主体逻辑是:同时看两条序列,每次迭代向下一位。同时看本条和下一条序列。如果两条同名且同时read1或者read2,使用同一种判断方式;在read不同或者序列易名时,前者一定是read1,后者一定是read2,且作为read1或者read2交汇处、不同序列交汇处只有一条且未最后一条,一定是含有H的,不能是S。总的来说相当于分块考虑,分为交汇处和非交汇处。见图如下:

总逻辑

总结:分块考虑交汇处(r2 和r2交汇、两个不同的测序数据的交汇)<特殊>和只有read1或者read2的部分<一般>

            方法是考虑特殊与一般,特点是使用两条序列进行迭代,但是只考虑第一条,第二条是提供位置信息的(看在块内还是在交汇处)

整理完逻辑修改了代码的两个部分,细化了在不同部分的判断条件:从上可知,主要的判断部位是交汇处和非交汇处,交汇处应只有H,非交汇处应是((S or H) and M)


以下第二部分:查看文件寻找问题

接着查看了r1 r2比对条数都是2时候的情况,可见蓝圈以外的是对的,蓝圈内是有问题的,从代码中能找到问题:

问题 问题代码

我是要求有r2时才做存储,如果只有r1,他会继续等待直到符合条件的r2出现才存储。是个重大错误。可以预测的是:这导致许多本应是one_pair的序列被放到two_pair,损失大量单条多比对的序列。这在最后的文件大小处也得到验证。

改进

改进后查看one_pair.sam 发现仍有错,问题在于最后没把不取出的清零。

one_pair问题

清零之后抽样调查结果暂时无误

清零 大小

大小而言,单条的文件大小都增大,两条的文件大小在减小,也是比较合理的情况。

至此,对取特征序列的代码改进暂时结束。还有再细化的空间,需待再多观察取出的序列。

还有一个小的优化,当序列next到最后一条时,会因为没有下一条而导致提前退出,少判断了文件的最后一条。就逻辑而言修补它比较麻烦,简单的办法是对j.next()  try except ,except里给j赋值,因为j的值不用来取只是用来判断的,所以只要使得其qname与i.qnme不相等即可。可以保证到i的最后一条也进入判断。之后对i同理try except exit()。程序就完整了。当然现在不优化也能使用,只是少一条。

序列next到最后一条

改进结束,但今天的工作还没有结束,接下来需要筛查每个文件,并转格式放igv观察。

相关文章

  • 取特征序列代码改进

    第一部分:整理逻辑细化判断条件。 整理了取特征序列的代码逻辑,主体逻辑是:同时看两条序列,每次迭代向下一位。同时看...

  • 2021-01-03总结

    原理:取特征序列,(但是没考虑特殊情况,特殊情况如BCD),在取在intron上的特征序列(但是把intron合成...

  • Swift RxSwift专题 : Observable的特征序

    Observable的特征序列,这些特征序列可以帮助我们更准确的描述序列 Single Single 是 Obse...

  • 特征序列

    特征序列 我们知道Observable可以创建可观察序列。那么还有其他类型的Obserable吗? single ...

  • 特征序列

  • RxSwift4.0Driver的使用

    Driver提供一种简便的方法在UI层编写响应式代码,简单来说就是序列驱动应用程序,如果序列满足如下特征,就可以使...

  • 爬虫练手:crawl模板用法小例

    爬取目标:糗事百科全部文章的内容和网址。直接上代码: items.py 爬虫文件 对以上代码的改进:

  • 七大排序之选择排序

    “从篮子里取苹果排大小”是冒泡排序的改进:小步慢跑——找到最小后再放入Sorted序列中,而不是一次一次交换。简而...

  • RxSwift特征序列

    一、概述二、Single三、Completable四、Maybe五、Driver六、Signal七、Control...

  • task4

    机器翻译及相关技术 特征 主要特征:输出是单词序列而不是单个单词。 输出序列的长度可能与源序列的长度不同。 enc...

网友评论

      本文标题:取特征序列代码改进

      本文链接:https://www.haomeiwen.com/subject/eylrjktx.html