How can I find the position of every mutation where the Allele Frequency is greater than X, in regards to a reference such as Hg19? 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
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.


Comparison of three variant callers for human whole genome sequencing
Comparing the performance of selected variant callers using synthetic data and genome segmentation
Performance assessment of variant calling pipelines using human whole exome sequencing and simulated data
Systematic comparison of germline variant calling pipelines cross multiple next-generation sequencers
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).