其他
Julia 处理 bigWig 文件
看不清你,也看不清我自己
1引言
今天分享 julia GenomicFeatures
中的 BigWig 模块,来读取和处理 bigwig 文件。
2安装
add BigWig
3介绍
也是三种基本类型:
Reader type: BigWig.Reader Writer type: BigWig.Writer Element type: BigWig.Record
示例:
# Import the BigWig module.
using GenomicFeatures
# 打开 bigwig 文件
reader = open(BigWig.Reader, "data.cov.bw")
# 迭代指定区间
for record in eachoverlap(reader, Interval("Chr2", 5001, 6000))
# 提取起始和终止位置,及信号值
startpos = BigWig.chromstart(record)
endpos = BigWig.chromend(record)
value = BigWig.value(record)
# and do something...
end
# 关闭文件
close(reader)
BigWig.values
可以直接获取指定区间的信号值,返回的使 vector:
# Get values in Chr2:5001-6000 as a vector of 1000 elements.
BigWig.values(reader, Interval("Chr2", 5001, 6000))
逐行迭代所有的数据也可以:
reader = open(BigWig.Reader, "data.cov.bw")
for record in reader
# ...
end
close(reader)
创建 bigwig 文件:
# Open an output file.
file = open("data.cov.bw", "w")
# Initialize a bigWig writer.
writer = BigWig.Writer(file, [("chr1", 2000), ("chr2", 1000)])
# Write records.
write(writer, ("chr1", 1, 100, 1.0))
write(writer, ("chr1", 101, 200, 2.1))
# ...
write(writer, ("chr2", 51, 150, 3.2))
# Close the writer (this closes the file, too).
close(writer)
可以获取数据的相关参数:
# 获取染色体名称及长度,返回元组
chromlist(reader::BigWig.Reader)::Vector{Tuple{String,Int}}
# 获取指定区间的信号值,返回向量
values(reader::BigWig.Reader, interval::Interval)::Vector{Float32}
# 获取染色体名称
chrom(record::Record)::String
# 获取染色体id
chromid(record::Record)::UInt32
# 获取起始位置
chromstart(record::Record)::Int
# 获取终止位置
chromend(record::Record)::Int
# 获取信号值
value(record::Record)::Float32
4结尾
感兴趣的小伙伴可以去尝试一下。
欢迎加入生信交流群。加我微信我也拉你进 微信群聊 老俊俊生信交流群
哦,数据代码已上传至QQ群,欢迎加入下载。
群二维码:
老俊俊微信:
知识星球:
所以今天你学习了吗?
今天的分享就到这里了,敬请期待下一篇!
最后欢迎大家分享转发,您的点赞是对我的鼓励和肯定!
如果觉得对您帮助很大,赏杯快乐水喝喝吧!
往期回顾
◀...