千家信息网

怎么用Python对gff3格式进行处理

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍"怎么用Python对gff3格式进行处理"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"怎么用Python对gff3格式进行处理"文章能帮助大
千家信息网最后更新 2025年01月20日怎么用Python对gff3格式进行处理

这篇文章主要介绍"怎么用Python对gff3格式进行处理"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"怎么用Python对gff3格式进行处理"文章能帮助大家解决问题。

1.平常从下载的植物基因组注释文件,以gff3格式为例

从JGI上下载的玉米基因组的注释文件(gff3格式),第一例通常为基因的定位信息。1则表示位于玉米的1号染色体上,第二例表示注释的版本信息,第三列通常为gene,mRNA,CDS等信息,同时一个基因可能对应多个mRNA,对生物有些了解的也知道,一个mRNA即是一个转录信息, 这个和注释过后的序列文件也是一一对应的。第四列和第五列分别为基因的第三列信息在染色体上的物理位置。第七列则表示基因位于正链上还是负链上。第八列是相位信息。第九列则是基因注释的一些ID信息。而本次数据处理主要是提取第一列、第三列、第四列、第五列和第九列的信息。

2.利用程序处理后的结果

处理后的格式一共有五列,第一列为基因所在的染色体上,第二列是利用gene的起始位点和终止位点进行排序的逻辑顺序而生成的新的ID信息,第三列和第四列就是基因的起始位点和终止位点了。第五列就是从原始的注释信息第九列提取出来的,必须个序列文件一一对应才行。下面直接上代码。

3.代码信息
#!usr/bin/pythonimport re,iofrom operator import itemgetterinput_file = io.open('Zmays_284_Ensembl-18_2010-01-MaizeSequence.gene.gff3','r',encoding='UTF-8')# 基因的注释信息,GFF3格式的文件out_file = open('Zm.newid.gff', 'w', encoding='UTF-8')# 输出文件的名字list_two = []chr_name = []de_list = ('#','M','P','s') # 需要修改for line in input_file:    if line.startswith(de_list):        continue    list_one = line.strip().split()    if list_one[2] == 'mRNA':        # gene_id = list_one[8].split(';')[2] # 需要修改        gene_id = list_one[8]        gene_id = ''.join(re.findall(r'pacid=(.+?);longest',gene_id)) # 需要修改                # 获取gene的id信息        list_one[0] = re.sub(r'\D',"",list_one[0])        # list_two.append(gene_na_st_end)        list_two.append((int(list_one[0]), int(list_one[3]), int(list_one[4]), int(gene_id)))        chr_name.append(int(list_one[0]))        # print (gene_id)    else:        continuechr_name = list(set(chr_name))chr_name.sort()number = 0list_thrre = sorted(list_two,key = itemgetter(0,1,2))next_chr = 0for i in list_thrre:    new_i = "\t".join('%s' %id for id in i)    # print (new_i)    lp = str(new_i).strip().split()    # chr_id = re.sub('\[',"",lp[0])    if str(lp[0])== str(chr_name[next_chr]):        number = number + 1    else:        number = 1        next_chr = next_chr + 1    # newid = "Zm"+''%lp[0]+'G'+''%number    newid = "Zm"+str(lp[0]).zfill(2)+"G"+str(number).zfill(5) # 需要修改     print (newid)    out_file.write('Zm'+str(lp[0])+"\t"+newid+"\t"+str(lp[1])+"\t"+str(lp[2])+"\t"+str(lp[3])+'\n')input_file.close()# make by ligaojie from North China University of Technology

关于"怎么用Python对gff3格式进行处理"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

信息 基因 格式 注释 处理 文件 位点 染色体 知识 染色 一一对应 代码 基因组 序列 玉米 行业 起始 不同 原始 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 35岁网络技术员相亲 亚洲网络安全专业大学排名 网络安全知识培训教育活动 杨浦区创新软件开发服务是什么 柒零叁网络技术有限公司 南京网络安全审计系统咨询辅导 谢希仁《计算机网络技术》 独立服务器十大功能 fast方法 软件开发 sftp从服务器拷贝文件 db2数据库查不出字 cache数据库安全性 数据库中如何实现实体完整性 太仓中高端服务器厂家直销价格 学校的数据库题 网络安全一年检查几次 全日制学习软件开发 网络安全宣传书法作品 数据库管理与应用的体会 兼职软件开发团队加盟 dell服务器引导盘 网络安全法的发型机构是什么 服务器响应不安全怎么办 信息网络安全等级管理保护办法 数据库与应用接口怎么画 液冷服务器发布 数据库怎么建立带有子窗体的窗体 数据库查看当前用户下的表名 防止网络安全的海报 我的世界第二期服务器
0