Memory efficient string containers, string matching algorithms, and other utilities, for fast manipulation of large biological sequences or sets of sequences.
Start a fresh conversation. Replace the highlighted placeholders.
Use bioconductor-biostrings to propose an R workflow for [biological sequence or alignment file] that computes [requested sequence analysis], using appropriate Biostrings containers and masking where relevant.
Required inputs
[biological sequence or alignment file]
[requested sequence analysis]
User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗
SKILL.md
name: bioconductor-biostringsdescription: Memory efficient string containers, string matching algorithms, and other utilities, for fast manipulation of large biological sequences or sets of sequences.when_to_use: "Use when: 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.; Ca. Not for: 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 externa"user-invocable: false
Biostrings
Dependencies & Environment
Package-intrinsic requirements from the Bioconductor landing page — reproduce in any R environment.
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.
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.