【生信】格式转换:转成bed及bed12格式

基因组注释gtf文件或bed6文件转bed12文件

上一篇详细介绍了bed格式,尤其清楚的解释了bed格式中的最后三列,这三列对于理解bed12格式转换至关重要。

本文主要介绍将其他格式的文件转换成bed文件,以及如何转成bed12格式

convert2bed

convert2bed是BEDOPS软件包里非常常用的函数,可以把常见的二进制或者文本基因组文件(BAM, GFF, GTF, GVF, PSL, OUT, SAM, VCF,WIG)转换成bed格式。这里的bed格式大部分都是bed6格式。

convert2bed --input=fmt  < input > output

Input (required):

  --input=[bam|gff|gtf|gvf|psl|rmsk|sam|vcf|wig] (-i )
      Genomic format of input file (required)

bed6Tobed12.py

从Ensembl数据库网站下载的gtf或gff文件,利用convertbed可以轻松转换成bed文件,但是不能直接转成bed12格式。笔者利用python3写了一个脚本bed6Tobed12.py,可以实现将bed6文件转换成bed12格式。

脚本根据bed6文件中的第四列ID值,将ID值相同的行抽取出来,根据基因组坐标排序,计算行数及每行相对第一行的起始位置,转换成bed12格式输出。

注意,相同ID的行之间基因组坐标不能相互重合,重合的行可以先利用bedtools merge合并,再转换成bed12格式。

# 下载脚本
wget https://github.com/ustbcaoqi/biotools/archive/master.zip
unzip master.zip

# 进行转换
python3 biotools-master/bed6Tobed12.py file.bed(6) > file_new.bed(12)

example

cat test.bed
3       52813281        52813490        ENST00000468472 .       -       209     0
3       52813974        52814071        ENST00000468472 .       -       97      693
3       52814208        52814363        ENST00000468472 .       -       155     927
3       52816883        52817058        ENST00000468472 .       -       175     3602
3       52818051        52819990        ENST00000468472 .       -       1939    4770
3       52820290        52820317        ENST00000468472 .       -       27      7009
3       52820630        52820785        ENST00000468472 .       -       155     7349
3       52820990        52821130        ENST00000468472 .       -       140     7709
3       52823555        52823741        ENST00000468472 .       -       186     10274
3       52823822        52824004        ENST00000468472 .       -       182     10541
3       52824189        52824315        ENST00000468472 .       -       126     10908
3       52824396        52824565        ENST00000468472 .       -       169     11115
3       52824841        52824958        ENST00000468472 .       -       117     11560
3       52825885        52826014        ENST00000468472 .       -       129     12604
3       52826540        52826651        ENST00000468472 .       -       111     13259
3       52826790        52826953        ENST00000468472 .       -       163     13509
3       52827092        52827197        ENST00000468472 .       -       105     13811
3       52829118        52829279        ENST00000468472 .       -       161     15837
3       52830552        52830670        ENST00000468472 .       -       118     17271
3       52831407        52831478        ENST00000468472 .       -       71      18126
3       52833113        52833146        ENST00000468472 .       -       33      19832

# 进行转换
python3 biotools-master/bed6Tobed12.py test.bed > test_col12.bed

# 查看结果
cat test_col12.bed
3   52813281    52833146    ENST00000468472 0   -   52813281    52833146    255,0,0 21  209,97,155,175,1939,27,155,140,186,182,126,169,117,129,111,163,105,161,118,71,33,   0,693,927,3602,4770,7009,7349,7709,10274,10541,10908,11115,11560,12604,13259,13509,13811,15837,17271,18126,19832,

“贤者以其昭昭使人昭昭,今以其昏昏使人昭昭。” --《孟子·尽心下》

你可能感兴趣的:(【生信】格式转换:转成bed及bed12格式)