This package provides an interface to the 'samtools', 'bcftools', and 'tabix' utilities for manipulating SAM (Sequence Alignment / Map), FASTA, binary variant call (BCF) and compressed indexed tab-delimited (tabix) files.
Start a fresh conversation. Replace the highlighted placeholders.
Use bioconductor-rsamtools to draft R code that extracts [genomic ranges] and [alignment fields] from [indexed BAM files], with memory-conscious query settings.
Required inputs
[genomic ranges]
[alignment fields]
[indexed BAM files]
User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗
SKILL.md
name: bioconductor-rsamtoolsdescription: This package provides an interface to the 'samtools', 'bcftools', and 'tabix' utilities for manipulating SAM (Sequence Alignment / Map), FASTA, binary variant call (BCF) and compressed indexed tab-delimited (tabix) files.when_to_use: "Use when: Low-level Alignment Import: Importing and parsing BAM files directly into R lists or DataFrame objects using scanBam.; Targeted Read Extraction: Extracting specific genomic coordinates and alignment fields (e.g., read sequence, strand, position) using ScanBamParam.; BAM File Management: Managing collections of BAM files and their metadata programmatically using BamViews.; Coverage Calculation: Cal. Not for: For high-level representation of gapped alignments, use GenomicAlignments (specifically readGAlignments) because Rsamtools provides lower-level list-based outputs.; For iterating through BAM files in parallel, use GenomicFiles because it implements h"user-invocable: false
Rsamtools
Dependencies & Environment
Package-intrinsic requirements from the Bioconductor landing page — reproduce in any R environment.
Low-level Alignment Import: Importing and parsing BAM files directly into R lists or DataFrame objects using scanBam.
Targeted Read Extraction: Extracting specific genomic coordinates and alignment fields (e.g., read sequence, strand, position) using ScanBamParam.
BAM File Management: Managing collections of BAM files and their metadata programmatically using BamViews.
Coverage Calculation: Calculating read coverage over specific genomic ranges using coverage on imported BAM data.
When NOT to Use
For high-level representation of gapped alignments, use GenomicAlignments (specifically readGAlignments) because Rsamtools provides lower-level list-based outputs.
For iterating through BAM files in parallel, use GenomicFiles because it implements higher-level strategies for file iteration.
For whole-genome manipulation and DNA sequence operations, use Biostrings or BSgenome instead.
Data Requirements
Input Format: BAM files (e.g., .bam) and their corresponding index files (.bai).
Genomic Coordinates: Specified as GRanges objects for targeted queries.
Key Parameters
file: Path to the BAM file to be parsed by scanBam.
param: A ScanBamParam object determining which genomic coordinates and components to input.
which: A GRanges object specifying the genomic ranges to extract.
what: A character vector (e.g., c("rname", "pos", "qwidth")) specifying which BAM record fields to retrieve.
flag: A filter created by scanBamFlag (e.g., isUnmappedQuery=FALSE) to restrict reads.
bamRanges: A GRanges object defining the genomic rows for a BamViews instance.
Best Practices
Always ensure a .bai index file is available locally when querying specific ranges with the which argument.
Restrict imported fields using the what argument in ScanBamParam to minimize memory consumption.
Process large BAM files in chunks (e.g., by chromosome) using summary functions to avoid memory exhaustion.
Use BamViews to marshal references to multiple BAM files without loading them immediately into memory.
Common Pitfalls
Querying by range without an index: Fails because providing a which argument to ScanBamParam requires a BAM index. Fix: Ensure the .bai file exists or create one using indexBam.
"EOF marker is absent" warning: Occurs with some BAM files. Fix: This message can safely be ignored as noted in the vignette.
Chromosome naming mismatches: Ensembl vs UCSC naming (e.g., "chr1" vs "1") causes empty queries. Fix: Use seqlevels<- to map between naming schemes before querying.
Alternatives
GenomicAlignments: Provides a more useful, higher-level representation of BAM files in R (e.g., GAlignments objects).
GenomicFiles: Useful for iterating through BAM and other files, including in parallel.
ShortRead: Better suited for I/O and quality assessment of ungapped short read alignments.
Citations
Morgan M, Pagès H, Obenchain V, Hayden N. Rsamtools: Binary alignment (BAM), FASTA, variant call (BCF), and tabix file import. Bioconductor.
This skill is the knowledge layer — when, why, and how to use rsamtools. To run this analysis on your own data with managed compute, automated QC, and reproducible outputs, use BioMate — free to start.