2021-01-03总结
原理:取特征序列,(但是没考虑特殊情况,特殊情况如BCD),在取在intron上的特征序列(但是把intron合成唯一的来考虑,且没把单条的删除,这个待考虑),已有结果,但没meta。
接下来:完善小问题,然后机器学习,采用多种方法:因为分类任务,因此先采用传统方式(位置权重矩阵模型+集成学习),保证准确度,再采用深度学习的方式(LSTM和GRU),发现新类型。
总之,侧重点不在鉴别,而在预测
鉴别出的序列比较杂,只是拥有分段比对的特征,没有特别限制,即不用既往经验限制序列特征,只保证它的准确性。
学习:树的方法,从头学习树。
流程梳理:

1.先找到所有分段匹配的序列,保存为中间文件。

改进:这里可以使用pysam的保存方式,节省1.1添加header的步骤
2.简单说就是分类,将特征序列分为五类

这个是第一段核心代码,使用sam文件的四个标志:qname flag reads cigar 进行分类,分为五类文件
整段使用if判断,完成对特征序列的分类,没有算法上的创新,只是完成一个任务
结果

改进依旧是2.1的加header问题
3.包含3.0 3.1(主体部分)3.2
先取得intron序列,目前使用pandas的dataframe取出,去重,排序,并保存为ist格式,

这部分是核心代码之2,用来取在intron内的序列,缺点很多,有如下:1.合并后的intron结果文件没保存,导致后期在igv观察不便,但如果不合并intron,则此问题不存在。2.用硬编码的方式处理,不够灵活。有几个染色体,就得写几次,目前改进了方法,不保存直接处理,削弱了硬编码问题,

改进后:

直接用group处理,不产生中间文件
3.intron是否该合并问题,合并时采用二分法找区间,不合并计划采用c写的树作为查找的数据结构。

此处为算法创新,借鉴区间树,对重叠区域进行查找,找到在重叠区的最小区间。

4.取meta,未检验