前言

之前写过的Genbank的gbff格式转gff3格式的运行环境对于很多非计算机行业的同学不是很友好,在帮助一位网友处理格式转换之后,整理了下面这个python转换的方式(注:本人的生物信息等知识还停留在高中水平,只是曾经帮助过同学处理过一个gbff格式转gff3的问题,所以纰漏之处,希望各位大神指出)

python代码

# 导入依赖,如提示没有名为"xxx"的模块,pip安装即可,推荐使用python3.6以上
from BCBio import GFF
# 如果提示"ModuleNotFoundError: No module named 'BCBio'",安装一下bcbio-gff: pip3 install bcbio-gff==0.6.6
from Bio import SeqIO
# 如果提示"ModuleNotFoundError: No module named 'Bio'", 安装一下bio: pip3 install bio==0.4.1
import gzipdef gbff2gff(input_filename, output_filename):"""gbff格式转gff:param input_filename: 输入文件名, 如 GCA_085.1_ASM148v1_genomic.gbff:param output_filename: 输出文件名, 如 GCA_085.1_ASM148v1_genomic.gff:return:"""# 输入文件名,如果不在当前目录下,请使用绝对路径input_filename = input_filename# 输出文件名output_filename = output_filenametry:input_handle = open(input_filename, "r")output_handle = open(output_filename, "w")except FileNotFoundError as e:print(f"错误:{str(e)}")print(f"文件[{input_filename}]不存在")returntry:# 转换GFF.write(SeqIO.parse(input_handle, "genbank"), output_handle)except Exception as e:print("转换出错:", str(e))# 关闭文件input_handle.close()output_handle.close()def uncompress_gz(src_filename):print("开始解压...")try:dest_name = src_filename.replace(".gz", "")gz_file = gzip.GzipFile(src_filename)with open(dest_name, "wb+") as f:f.write(gz_file.read())gz_file.close()print("解压完成!")return dest_nameexcept Exception as e:print(f"解压出错:{str(e)}")if __name__ == '__main__':print("****重要***\n请将gbff文件放在和当前程序同一个文件夹下!!!")_input_filename = input("请输入要转换的文件名(按Enter完成输入):")_output_filename = input("请输入转换后的文件名,默认和输入文件名一致")if not _output_filename:print("没有指定输出名称,默认将输入文件名的gbff改为gff")_output_filename = _input_filename.replace("gbff", "gff")confirm = input(f"请确认输入的文件名是否正确:\n输入:{_input_filename};\n输出:{_output_filename}\n确认请按Enter,重新输入请按Ctrl+C重新运行程序\n")if not _input_filename.endswith(".gbff"):if _input_filename.endswith(".gz"):uncompress_flag = input("输入的貌似是个gbff压缩后的gz文件,是否解压?输入 yes 进行解压:")if uncompress_flag == "yes":uncompress_gz(_input_filename)_input_filename = _input_filename.split('.gz')[0]else:exit()else:print(f"输入的文件名不正确:{_input_filename}")else:print(f"输入的文件名不正确:{_input_filename}")print("开始转换...")gbff2gff(_input_filename, _output_filename)print("转换完成!")

使用方法

复制上面的代码,新建一个文件,粘贴进去,然后把这个文件保存为gbff2gff3.py,确定后缀名为.py,电脑上安装python3.6的解释器,这个安装可以百度到,安装好之后,Win+R打开运行,输入cmd进入到黑窗口,在里面输入python gbff2gff3.py按回车,根据页面上的提示进行。

说明

执行完之后,会将一个几百兆的gbff文件转成一个几兆的gff3文件,由于本人不是很懂,也不确定是否绝对准确。

如果遇到问题请将截图贴到评论区或者私信!

Genbank的gbff格式转gff3格式(补充)相关推荐

  1. Genbank的gbff格式转gff3格式

    使用方法: [以下操作适用于linux和 MacOS,windows暂未测试] 非软件计算机等专业或者搞不定运行环境的同学也可以参考另一篇稍微简单点的python脚本:Genbank的gbff格式转g ...

  2. 用 Python 从 GFF3 格式文件中查找注释信息

    作者:SunCOOL ,写python的农学生. 什么是GFF3格式文件 GFF全称为general feature format,3表示是第三个版本,这种格式主要是用来注释基因组,由tab分割,共9 ...

  3. YUV视频格式到RGB32格式转换的速度优化 上篇(转)

    YUV视频格式到RGB32格式转换的速度优化 上篇                     HouSisong@GMail.com    2007.10.30   tag: YUV,YCbCr,YUV ...

  4. Linux下时间戳格式和标准时间格式的转换

    转载地址:http://yinqingsong520.blog.163.com/blog/static/392100201010252595916/  做个备忘! 在LINUX系统中,有许多场合都使用 ...

  5. python字典的键设置条件格式_openpyxl条件格式设置数字格式

    我试图以条件格式设置数字格式.我已经找到了如何设置字体,边框和填充颜色,但我无法设置数字格式.我公司目前拥有的代码是:openpyxl条件格式设置数字格式 from openpyxl import l ...

  6. Python-docx 读写 Word 文档:读取正文、表格文本信息、段落格式、字体格式等

    Python-docx 模块读写 Word 文档基础(三):读取文档文本信息.表格信息.段落格式.字体格式等 前言: 1.获取文档章节信息: 2.获取段落文字信息: 3.获取文字格式信息: 4.获取文 ...

  7. 【项目三、车牌检测+识别项目】一、CCPD车牌数据集转为YOLOv5格式和LPRNet格式

    目录 前言 一.CCPD数据集介绍 二.CCPD数据集下载 三.划分训练集.验证集和测试集 四.车牌检测数据集制作 五.车牌识别数据集制作 六.我的车牌检测+识别数据集 Reference 前言 马上 ...

  8. web字体名称、格式、在线格式转换工具

    英文字体 google fonts Font-family:中文字体的英文名称 宋体:SimSuncss中中文字体(font-family)的英文名称 Mac OS的一些: 华文细黑:STHeiti  ...

  9. 基于RDKit的Python脚本:SDF格式转SMILES格式

    RDKit: Open-Source Cheminformatics Software http://www.rdkit.org/ 简化分子线性输入规范(SMILES)是一种用ASCII字符串明确描述 ...

最新文章

  1. (二) 关于配置travis-ci持续集成python pytest测试的相关记录
  2. Spring-Spring整合MyBatis详解
  3. C++与Java中的static成员总结
  4. 什么样的数据才有价值?应该怎样收集和处理?终于有人讲明白了
  5. 【干货】信息技术应用创新产业深度研究:204页报告深度解析信创产业全景图.pdf(附下载链接)...
  6. python列表的排序方法是_Python列表排序 reverse、sort、sorted 操作方法详解
  7. RT-Thread 4.0 + STM32F407 学习笔记1
  8. 通过ODBC连接PostgreSQL和Greenplum
  9. 10g添加用户 oracle_linux安装oracle
  10. Linux下文件实时自动同步备份
  11. 酷派5890 ROM教程
  12. 两个运放制作加法器_初级模拟电路:8-2 加法与减法电路
  13. 中科大自主招生2018年笔试数学之二
  14. Python 从入门到入魔
  15. Java中涉及到和金钱有关的属性的类型
  16. 一本书读懂财报 | 资产负债表剖析
  17. 目标文件和可执行文件区别
  18. mysql漏洞如何打补丁_“永恒之黑”针对win10和服务器漏洞分析
  19. SAP-ABAP性能优化之构建嵌套结构的哈希表
  20. linux c++读取excel文件的库

热门文章

  1. Ecshop实现注册页面手机号唯一的验证
  2. 高盛:Juniper市场表现将超过Cisco、Arista
  3. EC-PCA: 利润中心段(Segment)维护流程
  4. Benchmark初印象
  5. QQ音乐评论分布可视化
  6. Jenkins流水线极速打包
  7. 7-5 盲盒包装流水线
  8. R语言Excel的读写
  9. 运营笔记:SEO快排那些事儿!
  10. 来美国一年半了,命里有时终须有,命里无时莫强求(2)