Sam/Bam Manipulation

samtools stats
Function: samtools stats collects statistics from BAM files and outputs in a text format. The output can be visualized graphically using plot-bamstats.
Usage: samtools stats [options] in.sam|in.bam|in.cram [region...]
Supported input format: BAM, CRAM, SAM
bamtools
Function: The command bamtools split splits BAM file on user-specified property and creates a new BAM output file for each value found. In the given example, an output file input_alignments.MAPPED.bam is produced after -mapped split option is specified. Beside mapped, the split option can be: -paired, -reference, or -tag <tag_name>.
Usage: bamtools split -in input_alignments.bam -mapped
java -jar picard.jar
Function: Estimates the numbers of unique molecules in a sequencing library.
Usage: java -jar picard.jar EstimateLibraryComplexity I=input.bamO=est_lib_complex_metrics.txt
samtools view
Function: View, convert format, or filter (with different criteria) alignments.
Usage: samtools view [options] in.sam|in.bam|in.cram [region...]
Supported input format: BAM, CRAM, SAM
java -jar picard.jar
Function: Identifies duplicate reads using information from read positions and UMIs.
Usage: java -jar picard.jar UmiAwareMarkDuplicatesWithMateCigar
java -jar picard.jar
Function: Evaluate genotype concordance between callsets.This tool evaluates the concordance between genotype calls for samples in different callsets where one is being considered as the truth (aka standard, or reference) and the other as the call that is being evaluated for accuracy.
Usage: java -jar picard.jar GenotypeConcordance CALL_VCF=input.vcf CALL_SAMPLE=sample_name O=gc_concordance.vcf TRUTH_VCF=truth_set.vcf TRUTH_SAMPLE=truth_sample#
java -jar picard.jar
Function: Generate FASTQ file(s) from Illumina basecall read data.
Usage: java -jar picard.jar IlluminaBasecallsToFastq READ_STRUCTURE=25T8B25T BASECALLS_DIR=basecallDirectory LANE=001 OUTPUT_PREFIX=noBarcode.1 RUN_BARCODE=run15 FLOWCELL_BARCODE=abcdeACXX
java -jar picard.jar
Function: Verify mate-pair information between mates and fix if needed.This tool ensures that all mate-pair information is in sync between each read and its mate pair. If no OUTPUT file is supplied then the output is written to a temporary file and then copied over the INPUT file. Reads marked with the secondary alignment flag are written to the output file unchanged.
Usage: java -jar picard.jar FixMateInformation I=input.bam O=fixed_mate.bam
java -jar picard.jar
Function: Produces a summary of alignment metrics from a SAM or BAM file. This tool takes a SAM/BAM file input and produces metrics detailing the quality of the read alignments as well as the proportion of the reads that passed machine signal-to-noise threshold quality filters. Note that these quality filters are specific to Illumina data; for additional information, please see the corresponding GATK Dictionary entry.
Usage: java -jar picard.jar CollectAlignmentSummaryMetrics R=reference_sequence.fasta I=input.bam O=output.txt
java -jar picard.jar
Function: Downsample a SAM or BAM file. This tool applies a random downsampling algorithm to a SAM or BAM file to retain only a random subset of the reads. Reads in a mate-pair are either both kept or both discarded. Reads marked as not primary alignments are all discarded. Each read is given a probability P of being retained so that runs performed with the exact same input in the same order and with the same value for RANDOM_SEED will produce the same results.All reads for a template are kept or discarded as a unit, with the goal of retaining readsfrom PROBABILITY * input templates. While this will usually result in approximately PROBABILITY * input reads being retained also, for very small PROBABILITIES this may not be the case. A number of different downsampling strategies are supported using the STRATEGY option: ConstantMemory: Downsamples a stream or file of SAMRecords using a hash-projection strategy such that it can run in constant memory. The downsampling is stochastic, and therefore the actual retained proportion will vary around the requested proportion. Due to working in fixed memory this strategy is good for large inputs, and due to the stochastic nature the accuracy of this strategy is highest with a high number of output records, and diminishes at low output volumes. HighAccuracy: Attempts (but does not guarantee) to provide accuracy up to a specified limit. Accuracy is defined as emitting a proportion of reads as close to the requested proportion as possible. In order to do so this strategy requires memory that is proportional to the number of template names in the incoming stream of reads, and will thus require large amounts of memory when running on large input files. Chained: Attempts to provide a compromise strategy that offers some of the advantages of both the ConstantMemory and HighAccuracy strategies. Uses a ConstantMemory strategy to downsample the incoming stream to approximately the desired proportion, and then a HighAccuracy strategy to finish. Works in a single pass, and will provide accuracy close to (but often not as good as) HighAccuracy while requiring memory proportional to the set of reads emitted from the ConstantMemory strategy to the HighAccuracy strategy. Works well when downsampling large inputs to small proportions (e.g. downsampling hundreds of millions of reads and retaining only 2%. Should be accurate 99.9% of the time when the input contains >= 50,000 templates (read names). For smaller inputs, HighAccuracy is recommended instead.
Usage: java -jar picard.jar DownsampleSam I=input.bam O=downsampled.bam
java -jar picard.jar
Function: Extract OxoG metrics from generalized artifacts metrics.
Usage: java -jar picard.jar ConvertSequencingArtifactToOxoG I=artifact_metricsR=reference.fasta
java -jar picard.jar
Function: Compare two input ".sam" or ".bam" files. This tool initially compares the headers of SAM or BAM files. If the file headers are comparable, the tool will examine and compare readUnmapped flag, reference name, start position and strand between the SAMRecords. The tool summarizes information on the number of read pairs that match or mismatch, and of reads that are missing or unmapped (stratified by direction: forward or reverse).
Usage: java -jar picard.jar CompareSAMs file_1.bam file_2.bam
divide_bam.py
Function: Equally divide BAM file (m alignments) into n parts. Each part contains roughly m/n alignments that are randomly sampled from total alignments.
Usage: divide_bam.py -n 3 -i SingleEnd_StrandSpecific_50mer_Human_hg19.bam -o output
java -jar picard.jar
Function: Identifies duplicate reads, accounting for mate CIGAR. This tool locates and tags duplicate reads (both PCR and optical) in a BAM or SAM file, where duplicate reads are defined as originating from the same original fragment of DNA, taking into account the CIGAR string of read mates. It is intended as an improvement upon the original MarkDuplicates algorithm, from which it differs in several ways, includingdifferences in how it breaks ties. It may be the most effective duplicate marking program available, as it handles all cases including clipped and gapped alignments and locates duplicate molecules using mate cigar information. However, please note that it is not yet used in the Broad's production pipeline, so use it at your own risk. Note also that this tool will not work with alignments that have large gaps or deletions, such as those from RNA-seq data. This is due to the need to buffer small genomic windows to ensure integrity of the duplicate marking, while large skips (ex. skipping introns) in the alignment records would force making that window very large, thus exhausting memory.
Usage: java -jar picard.jar MarkDuplicatesWithMateCigar I=input.bam O=mark_dups_w_mate_cig.bam M=mark_dups_w_mate_cig_metrics.txt
samtools index
Function: Index a coordinate-sorted SAM/BAM/CRAM files for fast random access.
Usage: samtools index [-bc] [-m INT] aln.bam|aln.cram [out.index]
Supported input format: BAM, CRAM, SAM