其他
GFF3 处理 GFF 注释文件
不玩手机的奶奶坐在余晖里,好像在想什么
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群,欢迎加入下载。
群二维码:
老俊俊微信:
知识星球:
所以今天你学习了吗?
今天的分享就到这里了,敬请期待下一篇!
最后欢迎大家分享转发,您的点赞是对我的鼓励和肯定!
如果觉得对您帮助很大,赏杯快乐水喝喝吧!
往期回顾
◀...