Biostar Beta. Not for public use.
converting Bed to Wig
0
Entering edit mode
16 months ago
rahel14350 • 30
United States

Dear all, I want to convert a bed file to wig one for a better visualization on UCSC but I have an error (below). Do you have any idea how can I solve the error when I am aware of overlaps in the output file?

    library(rtracklayer) #bioconductor
    bed_loaded <- import.bed(con="diff.bed") 
    export.wig(object=bed_loaded, con="diff.wig")
Error in FUN(extractROWS(unlisted_X, IRanges(X_elt_start[i], X_elt_end[i])),  : 
 Features cannot overlap. Note that WIG does not distinguish between strands - try exporting two tracks, one for each strand.

Kind Regards, Rahel

ADD COMMENTlink
2
Entering edit mode

I would not do that in R. Use bedtools genomecov to get a bedGraph. bedGraph can then be transformed into wig or bigwig. I personally like bigwig as it is a binary (=compressed version).

Bedgraph To Wig

ADD REPLYlink
0
Entering edit mode

Thank you so very much for your help. I will go try it but do you think in bedtools there is no problem with overlaps?

ADD REPLYlink
0
Entering edit mode

Not that I know of.

ADD REPLYlink
1
Entering edit mode
14 months ago
Seattle, WA USA

You could use bedops --partition to make disjoint elements from overlapping regions, and bedmap --mean (or --min, --max, etc.) to get a unique signal value for each disjoint element.

$ bedops --partition diff.bed5 > diff.partition.bed3
$ bedmap --echo --mean --delim '\t' diff.partition.bed3 diff.bed5 > diff.partition.map.bedgraph

To skip creating an intermediate file, use file streams:

$ bedops --partition diff.bed5 | bedmap --echo --mean --delim '\t' - diff.bed5 > diff.partition.map.bedgraph

The file extension .bedgraph indicates that the file is four columns, the first three columns being each disjoint element, and the fourth column representing the mean signal over that disjoint element.

If you don't want the mean signal, you can replace --mean with other statistical/score operations. See bedmap --help for more detail.

Finally, you can use Kent utilities to convert the bedgraph file to bigWig, and from there convert from bigWig to wig:

$ fetchChromSizes hg38 > hg38.sizes
$ bedGraphToBigWig diff.partition.map.bedgraph hg38.sizes diff.partition.map.bw
$ bigWigToWig diff.partition.map.bw diff.partition.map.wig

Replace hg38 with the name of whatever assembly you are using, if it is not hg38.

If you are doing visualization with the UCSC genome browser, you can skip creating a wig file and just use the bigWig file directly. The bigWig file is smaller and optimized for viewing at different scales.

ADD COMMENTlink

Login before adding your answer.

Similar Posts
Loading Similar Posts
Powered by the version 2.1