This is a test version of Biostars. For the public version, visit https://www.biostars.org.
SNP calling with bacterial assembled genome

Hello, I am a beginner graduate student who has just started learning bioinformatics.

I would like to perform SNP calling on a specific bacterial genome. Is it possible to do this at the assembly level?

From my understanding, using raw read data seems better, since SNP calling can then be based on quality scores, and factors such as coverage or differences in sequencing platforms could be considered—whereas using assembled genomes might be less reliable.

What is the general practice in this case?

If SNP calling is also possible using assembled genomes, which tools are typically used?

variant-calling snp bacteria

Is it possible to do this at the assembly level?

By aligning to a reference you can find the differences between your assembly and the reference.

Doing this could be problematic for some reasons. You no longer have the depth of sequences to confirm a particular difference (supported by multiple independent reads) and generate a confidence for the call. If your assembly is not properly done, you could end up with spurious SNP's.

Thank you for your kind answer. May I ask some following questions.

However, I only have full access to assembled genomes, and some to raw reads. After I find some differences between the assembly and the reference, how can I decide confident variants without the depth? Is there any way of filtering out spurious SNPs when analyzing with assemblies?

After I find some differences between the assembly and the reference, how can I decide confident variants without the depth?

Don't think you can .. not unless you do some additional experiments (e.g. PCR) to verify/confirm them.

1 answer

Yes, it is possible to perform SNP calling at the assembly level for a bacterial genome, but this approach has significant limitations compared to using raw reads.

Your understanding is correct: analyzing raw reads aligned to a reference genome allows for the incorporation of base quality scores, read depth (coverage), and sequencing platform-specific error profiles, which improve the reliability of variant calls. In contrast, assembled genomes represent a consensus sequence without these supporting metrics, making it difficult to distinguish true SNPs from assembly errors or artifacts.

The general practice in bacterial genomics is to use raw reads for SNP calling whenever possible. This involves aligning reads to a reference using tools like BWA or Bowtie2, followed by variant calling with software such as GATK HaplotypeCaller (for more complex cases), FreeBayes, or samtools/bcftools. For bacterial genomes, specialized pipelines like Snippy or CFSAN SNP Pipeline are common, as they handle haploid genomes and provide core genome SNPs.

If you must use assembled genomes (e.g., due to limited access to raw data), you can align the assembly to a reference and extract differences. Tools for this include:

  • MUMmer (specifically, the dnadiff command) for aligning assemblies and reporting SNPs and indels.

    nucmer reference.fasta assembly.fasta
    delta-filter -1 out.delta > out.filtered.delta
    show-snps -ClrT out.filtered.delta > snps.txt
    
  • Parsnp for rapid core genome alignment and SNP calling across multiple assemblies.

    parsnp -r reference.fasta -d assemblies_dir -p threads
    
  • Alternatively, treat the assembly as long reads: align with minimap2, convert to BAM, and call variants with bcftools (though confidence will be low due to coverage=1).

    minimap2 -ax asm5 reference.fasta assembly.fasta | samtools view -bS - | samtools sort -o aligned.bam -
    samtools index aligned.bam
    bcftools mpileup -f reference.fasta aligned.bam | bcftools call -mv -Ob -o variants.bcf
    

Without read depth, confident variant filtering is challenging; you may need orthogonal validation like PCR. For spurious SNPs, rely on high-quality assemblies and manual inspection.

Kevin

Log in to answer this question.