Due to increasing volume of next generation sequencing and genotyping data, we have created these C++ library and tools that use that library.
This page points to downloads, documentation, and papers for software that is written here at the Center for Statistical Genetics
If you have any questions or comments, please email Mary Kate Wing (firstname.lastname@example.org).
StatGen C++ Software
We have developed a C++ library and tools for handling and analyzing next generation sequencing and genotyping data.
The library contains easy-to-use APIs for developing tools for processing and analyzing next generation sequencing and genotyping data. Allows easy processing of SAM/BAM, GLF, and FASTQ (VCF is coming).
More information on the library can be found at: C++ Library: libStatGen
The library can be downloaded at: libStatGen Download
Follow the program links for more information on obtaining the tool. Some tools are packaged together.
- QPLOT - Calculate & plot summary statistics
- VerifyBamID – Check sample identities for contamination/sample swap
- Genotype concordance based detection
- Estimate based on population allele frequencies without genotype data
- Pileup – Pileup every base or just bases in specified region and write VCF
BAM Util Tools
BamUtil is built using libStatGen. Running
bin/bam with no parameters will print the usage information for the
bam executable. Running
bin/bam subProgram will print the usage information for the BamUtil sub-program.
Tools to Rewrite SAM/BAM Files:
- convert - Convert SAM/BAM to SAM/BAM (optionally converts between '=' & bases in the sequence
- writeRegion - Write a file with reads in the specified region and/or have the specified read name
- splitChromosome - Split BAM into 1 file per Chromosome
- splitBam - Split BAM into 1 file per Read Group
- findCigars - Output just the reads that contain any of the specified CIGAR operations.
- BAM Recovery - Recover corrupted BAM files
Tools to Modify & write SAM/BAM Files:
- clipOverlap - Clip overlapping read pairs in a SAM/BAM File already sorted by Coordinate or ReadName so they do not overlap
- filter - Filter reads by soft clipping ends with too high of a mismatch percentage and by marking reads unmapped if the quality of mismatches is too high
- revert - Revert SAM/BAM replacing the specified fields with their previous values (if known) and removes specified tags
- squeeze - Reduce file size by dropping OQ fields, duplicates, & specified tags, using '=' when a base matches the reference, binning quality scores, and replacing readNames with unique integers
- trimBam - Trim the ends of reads in a SAM/BAM file changing read ends to 'N' and quality to '!' or by doing soft clips
- mergeBam - Merge multiple BAMs and headers appending ReadGroupIDs if necessary
- polishBam - Add/update header lines & add the RG tag to each record
- dedup - Mark or remove duplicates, can also perform recalibration
- recab - Recalibrate base qualities
- validate - Validate a SAM/BAM File, checking file format & printing statistics
- diff - Diff 2 coordinate sorted SAM/BAM files.
- stats - Generate some basic statistics for a SAM/BAM file
- gapInfo - Print information on the gap between read pairs in a SAM/BAM File.
Helper Tools to Print Information In Readable Format:
- dumpHeader - Print the SAM/BAM Header to the screen
- dumpRefInfo - Print SAM/BAM Reference Name Information from the header
- dumpIndex - Print BAM Index File to the screen in a readable format
- readReference - Print the reference string for the specified region to the screen
- explainFlags - Describe SAM/BAM flags
- bam2FastQ - Convert the specified BAM file to fastQs.
- readIndexedBam - Read an indexed BAM file reference by reference id -1 to the max reference id and write it out as a SAM/BAM file
ASP programs: ASP is a new format that is currently in production, so this tool is not yet available for public release.
- asp - perform an asynchronous pileup producing an ASP file.
- dumpAsp - perform an asynchronous pileup producing an ASP file.
- fastqValidator - validate a FASTQ file
- Reports errors for badly formatted files
- Reports Base Composition Statistics (%reads at each read index)
- RAREMETALWORKER - generate summary level statistics for meta analysis using Rare-Metal
- RAREMETAL - perform genome-wide meta analysis of rare variants
- createUMref - Create the University of Michigan formatted reference used by many of our tools
- vcfCooker – Manipulate, filter, summarize VCF/BED file in various forms
- VcfGenomeStat – Print flanking sequences and how often they appear for input VCF file
- samtools-hybrid - Since many of our tools still rely on GLF files and samtools stopped supporting GLF files, we created a version of samtools that still supports pileup to GLF files AND incorporates the updated BAQ logic. This version is called samtools-hybrid That code can be downloaded at: https://github.com/statgen/samtools-0.1.7a-hybrid
- baseQualityCheck - tool to calculate the observed base quality vs. empirical base quality (helps to evaluate mappers)
- glfSingle - Variant calling for a single, deeply sequenced individual
- glfMultiples - Variant calling for multiple, unrelated individuals
- polymutt - Variant and de novo mutation detection in families (nuclear or extended pedigrees) from sequencing
- vcfCodingSnps - Annotate coding variants in a VCF file.
- Minimac3 - Fast and Efficient Genotype Imputation.
Additional Pedigree & Sequence Analysis Tools
Can be found at: http://sph.umich.edu/csg/abecasis/software.html
Other Useful Links
ASHG 2010 Poster: C++ library & tools for next generation sequence data