How to get the consensus sequence from a BAM alignment
3
6
Entering edit mode
6.1 years ago
bbb ▴ 70

How to convert bam to fasta?

I have bam files and reference fasta. I want to get fasta sequence from bam file:

Is there a software that can do this?

bam fasta dna • 14k views
2
Entering edit mode

I have changed the post title for clarity and to allow the post to be referenced more easily.

5
Entering edit mode
6.1 years ago

What the original poster needs is creating a consensus sequence out of BAM alignments. It is easy to misread that into the problem of extracting the read sequences from the BAM file.

See this for an answer: A: Error while trying to get consensus Fastq from BAM (notably the title of this post is incorrect as well, the OP there wants FASTA file not FASTQ)

But note that the problem can be more complicated than what it initially seems. It only works in ideal cases.

In the most general case the SNPs may not resolve into a single consensus sequence because that is not how the SNP callers work. They optimize the SNPs for a local region and not against a consensus. In addition in many (most) cases you may have a population of cells hence SNPs may represent different DNA molecules.

This is not to say that there is no value in producing a consensus but it is good to keep in mind the limitations of the the process.

1
Entering edit mode
6.1 years ago
Sinji ★ 3.1k

You can do this using a combination of the bedtools getfasta and bedtools bamtobed functions. Here is the documentation.

bedtools bamtobed -i $INPUT_BAM >$OUTPUT_BED

bedtools getfasta -fi $INPUT_FASTA -bed$INPUT_BED -fo \$OUTPUT_FASTA


EDIT: Seems I have mis-understood what you are attempting to do. I would disregard this post and read one of the other answers.

0
Entering edit mode
6.1 years ago
GenoMax 115k

One of these should help. If not search for additional similar threads on Biostars.
BAM/SAM to FASTA conversion
BAM format file to FASTA alignment file
Based on the image you posted the second link.