This is a test version of Biostars. For the public version, visit https://www.biostars.org.
bam file to .bedgraph

I have bam files and i need to convert them to .bedgraph format for my further analysis please help me in this issue?

rna-seq chip-seq galaxy r genome

4 answers

Your questions is lacking a couple of details such as what's the goal of obtaining the bedGraph file, do you want to normalize or scale the read counts, do you want the read counts for the entire genome, what type of data is this, have you tried any tools and found them lacking some options, ....

To answer your general question in a general manner: bedtools genomecov with -bg option or deepTools bamCoverage might be viable options.

If you want per-million scaled bg, use this command together with genomecov:

## Scaling factor for single-end data, counting every mapped read (bitwise flag = 0)
 TmpScale=$(bc <<< "scale=6;1000000/$(samtools view -f 0 -c in.bam)")

 ## Now get the actual bedGraph:
 echo '==> RPM scaling factor:' $TmpScale
 bedtools genomecov -bga -ibam in.bam -scale $TmpScale | sort -k1,1 -k2,2n > out.bedGraph

To answer your general question in a general manner

The question was quite specific.

Alfred is another option:

alfred tracks -o out.bedGraph.gz input.bam

BEDOPS bam2bed can be useful:

$ bam2bed < reads.bam | cut -f1-3,5 > reads.bg

This puts the map quality signal into the fourth column of reads.bg. Other columns are available: http://bedops.readthedocs.io/en/latest/content/reference/file-management/conversion/bam2bed.html

If you're trying to count reads over regions, you could instead do something like:

$ bedmap --echo-ref-name --count --delim '\t' regions.bed <(bam2bed < reads.bam) | sed 's/[:-]/\t/g' > answer.bg

This can be done using bedtools genomecov or genomeCoverageBed .

bedtools genomecov [OPTIONS] -ibam < input file name> -g <genome> -bg <output name>

Log in to answer this question.