查看原文
其他

GFF3 处理 GFF 注释文件

JunJunLab 老俊俊的生信笔记 2022-08-17


不玩手机的奶奶坐在余晖里,好像在想什么

1引言

Julia 里面有个 GFF 包用来处理 GFF 注释文件。

地址:

https://biojulia.net/GenomicFeatures.jl/v0.1/io/gff3/

主要有三种类型:

  • Reader type: GFF3.Reader
  • Writer type: GFF3.Writer
  • Element type: GFF3.Record

2安装

打开 julia 终端,输入 ] 进入 PKG 模式:

add GFF

3介绍

for 循环读取 GFF 注释文件:

# Import the GFF3 module.
using GenomicFeatures

# Open a GFF3 file.
reader = open(GFF3.Reader, "data.gff3")

# Iterate over records.
for record in reader
    # 获取染色体名称
    seqid = GFF3.seqid(reader)
    # ...
end

# Finally, close the reader
close(reader)

更加节省内存的读取方式:

# Import the GFF3 module.
using GFF3

# Open a GFF3 file.
reader = open(GFF3.Reader, "data.gff3")

# Pre-allocate record.
record = GFF3.Record()

# Iterate over records.
while !eof(reader)
    empty!(record)
    read!(reader, record)
    # do something
end

# Finally, close the reader.
close(reader)

使用 skip_directives=false 可以跳过 # 开头的注释信息:

# Set skip_directives to true (this is set to false by default).
reader = GFF3.Reader(open("data.gff3"), skip_directives=false)
for record in record
    # Branch by record type.
    if GFF3.isfeature(record)
        # ...
    elseif GFF3.isdirective(record)
        # ...
    else
        # This never happens.
        assert(false)
    end
end
close(reader)

GFF3.Reader 的参数:

GFF3.Reader(input::IO;
            save_directives::Bool=false,
            skip_features::Bool=false,
            skip_directives::Bool=true,
            skip_comments::Bool=true)

可获取的函数,分别对应 GFF 的 9 列信息:

# 染色体名称
seqid(record::Record)::String
# 来源
source(record::Record)::String
# 类型,exon,cds,mRNA等
featuretype(record::Record)::String
# 起始位置
seqstart(record::Record)::Int
# 终止位置
seqend(record::Record)::Int
# 得分
score(record::Record)::Float64
# 链
strand(record::Record)::GenomicFeatures.Strand
# 蛋白编码的密码子信息
phase(record::Record)::Int
# gff最后一列基因属性信息
attributes(record::Record)::Vector{Pair{String,Vector{String}}}

4结尾

感兴趣的小伙伴可以自己试试。




  老俊俊生信交流群 ,QQ,


老俊俊微信:


知识星球:



今天的分享就到这里了,敬请期待下一篇!

最后欢迎大家分享转发,您的点赞是对我的鼓励肯定

如果觉得对您帮助很大,赏杯快乐水喝喝吧!



  





Sam 文件 flag 研究

Ribo-seq 质控之 reads 分布特征

Julia 笔记之字典

Cell 文章代码重改复现测试

Julia 笔记之数组

Julia 笔记之函数

Molecular Cell 文章主图结果复现

Julia 笔记之循环和条件语句

ggtranscript 绘制转录本结构

GFF 的 CDS 注释包含 stop codon?

◀...

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存