dbNSFP数据库收录了PhyloP值的数据,并且是tsv格式的,为了对一下数据库,就去官网找了相关的数据,但是看了一圈并没有现成的tsv。看了一圈资料也没看出怎么得出dbNSFP里面的phyloP这个唯一值怎么来的。后面尝试了很多,才发现原来如此简单:就是把官网上的
bw
文件转成bedGraph
文件即可,但是这个做法会把7.9G的数据拓展至50G左右,转换数据需慎重。
1、工具准备及其用法
- 下载ucsc上的工具bigWigToBedGraph(转换bigwig到bedGraph format)
- 下载bigWigToWig(非必需)
#bigWigToBedGraph
wget https://hgdownload.soe.ucsc.edu/admin/exe/linux.x86_64.v369/bigWigToBedGraph
#用法
bigWigToBedGraph in.bigWig out.bedGraph
#其他参数
-chrom=chr1 - if set restrict output to given chromosome
-start=N - if set, restrict output to only that over start
-end=N - if set, restict output to only that under end
-udcDir=/dir/to/cache - place to put cache for remote bigBed/bigWigs
#bigWigToWig
wget https://hgdownload.soe.ucsc.edu/admin/exe/linux.x86_64.v369/bigWigToWig
#用法
bigWigToWig in.bigWig out.wig
#其他参数
-chrom=chr1 - if set restrict output to given chromosome
-start=N - if set, restrict output to only that over start
-end=N - if set, restict output to only that under end
-udcDir=/dir/to/cache - place to put cache for remote bigBed/bigWigs
2、phyloP的数据格式
- phyloP30way.bw的数据是二进制格式的,用一般的less是没办法查看的,可以 转换成Wigfile查看一下里面的数据结构,下面仅为示例数据。
1.根据示例数据发现,每个fixedStep下面都跟着一系列的数值,
fixedStep chrom=chr1 start=15002 step=1
1.451
1.561
1.671
1.618
1.564
1.51
1.456
...
fixedStep chrom=chr1 start=16003 step=1
1.451
1.561
1.671
1.618
1.564
1.51
1.456
...
2. 转换后的BedGraph文件
- 仅展示头几行,该文件有四列信息,分别是
染色体名字
、起始位点
、终止位点
和phyloP的值
chr1 10700 10701 0.088
chr1 10701 10702 0.079
chr1 10702 10703 0.088
chr1 10703 10704 0.079
3. 验证一下dbNSFP里面的数据
- dbNSFP的数据是从位点65565开始的,那我们找一下刚转换好格式的数据是否含有一致的位点以及相同的phyloP值(如代码框所示),值确实是一样的。
CHROM POS phyloP30way_mammalian
1 65565 1.152000
#查找hg38.phyloP30way.bedGraph|
grep '65565' hg38.phyloP30way.out.bedGraph|head -1
chr1 65564 65565 1.152
4、总结
-
简单来说只要去官网下载提供的XXX.bw,用bigWigTobedGraph工具转换就能得到每个位点的phyloP值了。(PS下面这个流程图也是压榨chatGPT帮我画的)
数据转换图
题外话chatGPT真好用,苦于没有数据展示数据的时候想到它了(问就是存储少),放心数据结构我检查过是一样的。
chatGPT提问
参考及数据来源
PhyloP30way
官方工具说明文档
网友评论