I have a Human genome sequenced in a BAM file (along with other files with the indels, snps, cnvs).

I want to find every mutation with regards to the reference Human genome. However the majority of "variants" are noise/read errors. I am therefore required to filter the variants via a minimum threshold based on allele freq (eg. 0,5).

Using a reference (eg Hg19), how can I find the position of every mutation where the allele frequency is greater than the threshold?

PS. I am just starting, so I don't know which are the best (command line?) tools for the job nor how to build a pipeline for this.

Help would be greatly appreciated


1 Answer 1


Hello and welcome to the world of bioinformatics,

BAM files are compressed formats of SAM and you can read more about it here.

To answer your question, I presume that your BAM is generated from a Whole Genome library preparation. Calling mutations on a Whole Genome takes a longer time than a Whole Exome since you are looking at every position instead of the exons of your genome.

What you are looking for is a special format of files called Variant Caller Format (VCF) generated by Variant Callers tools listed below in comparison studies. There isn't a tool better than another, they all have their advantages and disadvantages. I suggest that you read about them as they also describe their pipeline approaches.

  1. Comparison of three variant callers for human whole genome sequencing
  2. Comparing the performance of selected variant callers using synthetic data and genome segmentation
  3. Performance assessment of variant calling pipelines using human whole exome sequencing and simulated data
  4. Systematic comparison of germline variant calling pipelines cross multiple next-generation sequencers
  5. Variant Callers for Next-Generation Sequencing Data: A Comparison Study

Once the VCF is generated, you will also have a column named AF which corresponds to the allele frequency also computed when using these tools. There are tools that allow you to filter VCF files to extract the needed information with a wished criteria like SnpSift, vcftools, VariantFiltration. So, I suggest reading the above articles as a start.

As for building pipelines, it depends on what language you feel at ease at. However, if I could suggest, Nextflow is a good start. You can also use Snakemake if you like Python. Or maybe simply bash ? In any case, there are many pipelines already made to help you through your needs.

(If this helps, don't forget to either accept the answer, vote the answer or both).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.