← LeaderboardThe Skill Leaderboard

bioconductor-rsamtools

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.

Published by bioMate-AI ↗bioMate-AI/biomate-bioconductor-kb

Try your first task

bioconductor-rsamtools

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.

  • Version: 2.28.0 · Bioconductor: 3.23 · R: ≥ 4.6
  • Depends: Seqinfo, GenomicRanges, Biostrings
  • Imports: BiocGenerics, S4Vectors, IRanges, XVector, bitops, BiocParallel
  • System requirements: GNU make
  • Install: BiocManager::install("Rsamtools")

When to Use

  • 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.

References


Run this on BioMate

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.

▶ Open rsamtools on BioMate →