This is a test version of Biostars. For the public version, visit https://www.biostars.org.
How To Convert Bed Format To Gtf?

Hello,

I've seen a lot of posts that convert gtf to bed files. However, I have a bed file that I'm trying to convert to gtf.

Is there any tool that can convert bed->gtf?

Thanks

gtf bed

5 answers

And another alternative is to combine the UCSC tools bedToGenePred and genePredToGtf.

bedToGenePred in.bed /dev/stdout | genePredToGtf file /dev/stdin out.gtf

You can install these tools with bioconda, or download them here.

Thanks. It works.

Depends on the BED data you want to convert to GTF. If your raw data was originally a GTF file converted with BEDOPS gtf2bed, then the lossless conversion result (BED-formatted) contains all the columns you need to rebuild the original data, by simply printing out columns in a different order and setting the correct coordinate index:

$ gtf2bed < foo.gtf | sort-bed - > foo.bed
$ awk '{print $1"\t"$7"\t"$8"\t"($2+1)"\t"$3"\t"$5"\t"$6"\t"$9"\t"(substr($0, index($0,$10)))}' foo.bed > foo_from_gtf2bed.gtf

Changing the coordinate is really simple, just add one to the start coordinate. But the GTF format also needs attributes such as gene_id and transcript_id fields that are not present in the BED format. Therefore you will need a third source of information.

Alliteratively you could convert bed to gtf using this kscriptlet:

kscript https://git.io/vbJ4B my.bed > my.gtf

Most of the tools do not produce a featured-complete GTF file. Here is one option written in Rust if you require all the fields of a GTF to be completed: bed2gtf

Log in to answer this question.