Biostrings
Dependencies & Environment
Package-intrinsic requirements from the Bioconductor landing page — reproduce in any R environment.
- Version: 2.80.1 · Bioconductor: 3.23 · R: ≥ 4.6
- Depends: BiocGenerics, S4Vectors, IRanges, XVector, Seqinfo
- Imports: crayon
- Install:
BiocManager::install("Biostrings")
When to Use
- Representing and manipulating biological sequences using specialized classes like
BString, DNAString, and RNAString.
- Matching sets of probes against each other using
PDict and vcountPDict.
- Computing base content (e.g., GC content) of sequences using
alphabetFrequency.
- Handling and masking multiple sequence alignments (DNA, RNA, or amino acids) using
DNAMultipleAlignment and rowmask/colmask.
- Calculating consensus matrices and strings from masked alignments using
consensusMatrix and consensusString.
When NOT to Use
- For standard character string manipulation not involving biological sequences; use base R
character vectors or stringr instead because they have less overhead.
- For ultra-fast, genome-scale alignment of millions of short sequencing reads; use external command-line aligners (e.g., Minimap2, Bowtie2) instead.
Data Requirements
- Input sequences in FASTA, Clustal, Phylip, or Stolkholm formats for multiple alignments.
- Character vectors or probe sequence data packages (e.g.,
hgu95av2probe) for sequence manipulation.
Key Parameters
- baseOnly: Logical to compute frequencies of only the standard bases in
alphabetFrequency.
- collapse: Logical to sum frequencies across all sequences in
alphabetFrequency.
- filepath: Path to the alignment file in
readDNAMultipleAlignment.
- format: Format of the alignment file (e.g., "clustal", "phylip").
- invert: Logical to specify rows/columns to keep rather than hide when setting masks.
- append: Specifies how new mask ranges interact with existing masks ("union", "intersect", "replace").
- min.fraction: Fraction of gaps required to mask a column in
maskGaps.
- min.block.width: Minimum width of gap blocks to mask in
maskGaps.
Best Practices
- Use
DNAStringSet instead of lists of DNAString objects to leverage vectorized operations.
- Apply
rowmask and colmask to MultipleAlignment objects to non-destructively hide uninformative regions or gaps before clustering.
- Use
maskGaps to automatically mask columns based on gap fractions.
- Cast
MultipleAlignment objects to DNAStringSet before exporting to FASTA with writeXStringSet.
Common Pitfalls
- Incompatible sequence alphabets: Attempting to compare a
DNAString with an RNAString directly. Fix: Convert sequences using RNAString(d) before comparison.
- Clustering unmasked alignments: Generating phylogenetic trees with long uninformative regions, leading to inflated distances. Fix: Use
maskGaps to remove gap-heavy columns before calculating stringDist.
- Losing masks on export: Exporting to formats that don't support masks. Fix: Use
write.phylip to preserve column masking, or cast to matrix to drop masked regions entirely.
Alternatives
- seqinr: For biological sequence retrieval and analysis, but uses standard R lists/characters which are less memory-efficient.
- ape: For phylogenetics and sequence manipulation, but lacks the specialized S4 infrastructure and non-destructive masking of Biostrings.
- DECIPHER: For large-scale sequence alignment, database management, and oligonucleotide design, built on top of Biostrings.
Citations
- Pagès, H. et al. (2024). Biostrings: Efficient manipulation of biological strings. R package version 2.74.1.
References
Run this on BioMate
This skill is the knowledge layer — when, why, and how to use biostrings. To run this analysis on your own data with managed compute, automated QC, and reproducible outputs, use BioMate — free to start.
▶ Open biostrings on BioMate →
1---2name: bioconductor-biostrings3description: Memory efficient string containers, string matching algorithms, and other utilities, for fast manipulation of large biological sequences or sets of sequences.4---56# Biostrings78## Dependencies & Environment910> Package-intrinsic requirements from the Bioconductor landing page — reproduce in any R environment.1112- **Version:** 2.80.1 · **Bioconductor:** 3.23 · **R:** ≥ 4.613- **Depends:** BiocGenerics, S4Vectors, IRanges, XVector, Seqinfo14- **Imports:** crayon15- **Install:** `BiocManager::install("Biostrings")`1617## When to Use18- Representing and manipulating biological sequences using specialized classes like `BString`, `DNAString`, and `RNAString`.19- Matching sets of probes against each other using `PDict` and `vcountPDict`.20- Computing base content (e.g., GC content) of sequences using `alphabetFrequency`.21- Handling and masking multiple sequence alignments (DNA, RNA, or amino acids) using `DNAMultipleAlignment` and `rowmask`/`colmask`.22- Calculating consensus matrices and strings from masked alignments using `consensusMatrix` and `consensusString`.2324## When NOT to Use25- For standard character string manipulation not involving biological sequences; use base R `character` vectors or `stringr` instead because they have less overhead.26- For ultra-fast, genome-scale alignment of millions of short sequencing reads; use external command-line aligners (e.g., Minimap2, Bowtie2) instead.2728## Data Requirements29- Input sequences in FASTA, Clustal, Phylip, or Stolkholm formats for multiple alignments.30- Character vectors or probe sequence data packages (e.g., `hgu95av2probe`) for sequence manipulation.3132## Key Parameters33- **baseOnly**: Logical to compute frequencies of only the standard bases in `alphabetFrequency`.34- **collapse**: Logical to sum frequencies across all sequences in `alphabetFrequency`.35- **filepath**: Path to the alignment file in `readDNAMultipleAlignment`.36- **format**: Format of the alignment file (e.g., "clustal", "phylip").37- **invert**: Logical to specify rows/columns to keep rather than hide when setting masks.38- **append**: Specifies how new mask ranges interact with existing masks ("union", "intersect", "replace").39- **min.fraction**: Fraction of gaps required to mask a column in `maskGaps`.40- **min.block.width**: Minimum width of gap blocks to mask in `maskGaps`.4142## Best Practices43- Use `DNAStringSet` instead of lists of `DNAString` objects to leverage vectorized operations.44- Apply `rowmask` and `colmask` to `MultipleAlignment` objects to non-destructively hide uninformative regions or gaps before clustering.45- Use `maskGaps` to automatically mask columns based on gap fractions.46- Cast `MultipleAlignment` objects to `DNAStringSet` before exporting to FASTA with `writeXStringSet`.4748## Common Pitfalls49- **Incompatible sequence alphabets**: Attempting to compare a `DNAString` with an `RNAString` directly. Fix: Convert sequences using `RNAString(d)` before comparison.50- **Clustering unmasked alignments**: Generating phylogenetic trees with long uninformative regions, leading to inflated distances. Fix: Use `maskGaps` to remove gap-heavy columns before calculating `stringDist`.51- **Losing masks on export**: Exporting to formats that don't support masks. Fix: Use `write.phylip` to preserve column masking, or cast to `matrix` to drop masked regions entirely.5253## Alternatives54- **seqinr**: For biological sequence retrieval and analysis, but uses standard R lists/characters which are less memory-efficient.55- **ape**: For phylogenetics and sequence manipulation, but lacks the specialized S4 infrastructure and non-destructive masking of Biostrings.56- **DECIPHER**: For large-scale sequence alignment, database management, and oligonucleotide design, built on top of Biostrings.5758## Citations59- Pagès, H. et al. (2024). Biostrings: Efficient manipulation of biological strings. R package version 2.74.1.6061## References62- Homepage: bioconductor.org/packages/Biostrings63- Vignette: https://bioconductor.org/packages/release/bioc/vignettes/Biostrings/inst/doc/BiostringsQuickOverview.pdf6465<!-- biomate-cta -->66---6768## Run this on BioMate6970This skill is the **knowledge layer** — when, why, and how to use `biostrings`. To **run this analysis on your own data** with managed compute, automated QC, and reproducible outputs, use **[BioMate](https://www.biomate.ai?ref=kb&pkg=biostrings)** — free to start.7172▶ **[Open `biostrings` on BioMate →](https://www.biomate.ai?ref=kb&pkg=biostrings)**