Advertisement

Python处理GFF3数据

阅读量:

前言

由于近期采用REPET软件对基因组中的重复序列进行注释处理,但最终生成的输出文件为GFF3格式,其中未包含必要的统计信息。为此,编写了一个基于Python语言的脚本程序,旨在从GFF3文件中提取相关信息并完成相应的统计分析。

GFF3文件

需要从GFF3文件中获取的数据包括重复序列的类型、总数及其所占的碱基对数量。GFF3文件共包含9个字段,本次分析涉及第2、4、5和9字段,依次表示序列来源、起始坐标、终止坐标以及附加属性信息。重复序列的类型信息可从第9字段的属性部分提取,而碱基对数量则通过终止坐标减去起始坐标再加1的方式进行计算,总数则在处理过程中进行累加统计。

思路

逐行读取GFF3格式的文件内容,并以”\t “作为分隔符进行拆分。首先依据第2列的信息来确定数据来源,共有三种可能的来源类型:
1. TEs
2. SSRs
3. blastx or tblasts

针对不同的来源类型,其对应的后缀形式也存在差异。通过检测第2列字符串中是否包含特定的标识符,即可判断具体的数据来源类型。随后,根据第9列中的属性字符串,检查是否存在对应的分类代码字符串。若存在,则将该分类代码存入一个列表中,并以分类代码作为键、bp数作为值构建字典。
通过循环持续读取数据,实现列表的扩展与字典的合并操作。最终对列表进行去重处

全部评论 (0)

还没有任何评论哟~