美文网首页Linux与生物信息
用python处理gff文本

用python处理gff文本

作者: 夹竹桃的下午 | 来源:发表于2020-03-25 21:05 被阅读0次

经常我们会遇到gff文件要处理。
比如用MCScanX时就要这么处理:
第一列为染色体,第二列为geneID,第三,四列为基因的起始和终止的位置。如下图:

TIM图片20200325204621.png

这里染色体怪怪的先不管。。
要处理成

image.png

如果用awk,sed就比较麻烦了
这里当学习下python的记录

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys, os 
x = sys.argv[1]
file = open(x, "r")
lines = file.readlines()#每行分割开存入列表
for line in lines:
    line=line.strip()  #去除末尾空格等
  #  print(line) 
    if line.startswith("#"):
        continue
    else:
        tmp=line.split("\t") #有点和awk一样的做法
        if  tmp[2]=="gene":
                        geneID=tmp[8].split(";")[0].split("=")[1] #以;分割取第一列,再以=号分割取第二列
                        mystr=tmp[0]+"\t"+geneID+"\t"+tmp[3]+"\t"+tmp[4]
                    #mystr="\t".join([tmp[0],tmp[3],tmp[4],geneID])+"\n"
                        print(mystr)

例如保存为changgff.py
用python changgff.py xxx.gff >out 即可

相关文章

  • 用python处理gff文本

    经常我们会遇到gff文件要处理。比如用MCScanX时就要这么处理:第一列为染色体,第二列为geneID,第三,四...

  • 用python处理文本数据

    Q:这篇文章主要讲什么? A:这篇文章主要讨论如何用python来做一些简单的文本处理——文本相似度比较。 谈起p...

  • AGAT|GTF/GFF文件处理工具

    AGAT AGAT是Another Gff Analysis Toolkit的缩写, 是一个用于处理GTF/GFF...

  • CPU密集型任务并发与资源控制

    人生苦短,我用Python! 情景描述: 当我们在处理数据的时候,尤其对大量的文本数据或是大量的独立的数据处理的时...

  • gff和gtf之间转换

    用gffread进行转换 1.gff格式转gtf 2.gtf转gff

  • 序列构成的数组

    Time: 2019-08-02书籍: 《流畅的Python》 数据火车:文本,列表,表格。 Python处理序列...

  • gff文本格式

    参考:https://www.plob.org/article/655.html gff文件格式与gft文件格式:...

  • 字符编码与python字符串

    python字符串与字符编码 字符编码 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。...

  • Python - Day5

    廖雪峰:Python教程 1.因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算...

  • 2020-11-25

    1.改脚本 intron.gff文件需要改 读取intron的部分 原来使用的intron: gff处理: 使用之...

网友评论

    本文标题:用python处理gff文本

    本文链接:https://www.haomeiwen.com/subject/ckxfuhtx.html