怎么用Python对gff3格式进行处理
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章主要介绍"怎么用Python对gff3格式进行处理"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"怎么用Python对gff3格式进行处理"文章能帮助大
千家信息网最后更新 2025年11月08日怎么用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安全错误
数据库的锁怎样保障安全
正拨着电话无法连接到服务器
java软件开发加班情况
修改数据库数据什么罪
宁波简单的项目管控软件开发平台
绩溪终维网络技术服务官方
网络安全法规建设
网络安全答题有效时间
数据库备份到另外一个服务器脚本
计算机网络技术专业认知总结
国网领导到科技互联网部调研
财务网络安全隐患
丽水网络安全大数据余辉
网络安全word图标
南京erp软件开发公司哪个好
服务器管理口标识
高校校园网络安全问题成因
数据库连接池配置是什么意思
共道科技杭州互联网法院
成华区飘赛网络技术
数据库服务器cpu占用过高
网络安全发展历史及趋势
熟悉我国的网络技术成就
服务器主板卡53
北京网络安全执法
高速铁路动车组网络技术题库
服务器 cpu 架构
软件开发评审规定
网络安全竞答web开头
国家数据库怎么写参考文献
淘宝饥荒云服务器