← LeaderboardThe Skill Leaderboard

bioconductor-affy

The package contains functions for exploratory oligonucleotide array analysis. The dependence on tkWidgets only concerns few convenience functions. 'affy' is fully functional without it.

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

Try your first task

bioconductor-affy

Start a fresh conversation. Replace the highlighted placeholders.

Use bioconductor-affy to outline an R workflow that performs raw Affymetrix probe-level QC, RNA-degradation assessment, and RMA summarization into an ExpressionSet for [AffyBatch data or CEL-file location], including required CDF dependencies and output plots.

Required inputs

  • [AffyBatch data or CEL-file location]

User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗

SKILL.md

name: bioconductor-affydescription: The package contains functions for exploratory oligonucleotide array analysis. The dependence on tkWidgets only concerns few convenience functions. 'affy' is fully functional without it.when_to_use: "Use when: Importing and summarizing raw Affymetrix probe-level data into an ExpressionSet using classic algorithms like rma() or mas5().; Performing quality control and exploratory data analysis on Affymetrix expression microarrays using MAplot(), boxplot(), and image().; Assessing 5'-to-3' RNA degradation gradients across samples using AffyRNAdeg() and plotAffyRNAdeg().. Not for: For newer Affymetrix Gene ST or Exon ST arrays, use oligo instead, because affy does not correctly handle the probe-design structure of these newer generation chips.; For Illumina, Agilent, or other non-Affymetrix microarray platforms, use limma or b"user-invocable: false

affy

Dependencies & Environment

Package-intrinsic requirements from the Bioconductor landing page — reproduce in any R environment.

  • Version: 1.90.0 · Bioconductor: 3.23 · R: ≥ 4.6
  • Depends: BiocGenerics, Biobase
  • Imports: affyio, BiocManager, preprocessCore
  • Install: BiocManager::install("affy")

When to Use

  • Importing and summarizing raw Affymetrix probe-level data into an ExpressionSet using classic algorithms like rma() or mas5().
  • Performing quality control and exploratory data analysis on Affymetrix expression microarrays using MAplot(), boxplot(), and image().
  • Assessing 5'-to-3' RNA degradation gradients across samples using AffyRNAdeg() and plotAffyRNAdeg().

When NOT to Use

  • For newer Affymetrix Gene ST or Exon ST arrays, use oligo instead, because affy does not correctly handle the probe-design structure of these newer generation chips.
  • For Illumina, Agilent, or other non-Affymetrix microarray platforms, use limma or beadarray because affy is strictly hardcoded for Affymetrix CDF structures.

Data Requirements

  • Input Format: Raw Affymetrix data loaded as an AffyBatch object (e.g., the Dilution dataset).
  • Structure: Probe-level data containing pm (perfect match) and mm (mismatch) intensities, mapped via a Chip Definition File (CDF) environment.
  • Normalization State: Raw, un-normalized probe-level intensities (prior to running normalize() or rma()).

Key Parameters

  • pairs (TRUE): Logical in MAplot() indicating whether to plot pairwise comparisons between arrays.
  • plot.method ("smoothScatter"): Character string in MAplot() specifying the method for plotting dense data.
  • col (c(2,3,4)): Vector of colors passed to boxplot() to differentiate arrays.
  • genenames (NULL): Vector of probe set names to extract specific data in probeset(), pmindex(), or mmindex().
  • locations (NULL): A list of physical pm and mm coordinates passed to probeset() for custom probe set definitions.
  • which ("pm"): Character string in indexProbes() specifying which probes to index ("pm", "mm", or "both").
  • addcdf (FALSE): Logical in cleancdfname() indicating whether to append "cdf" to the environment name.
  • compress.cel (TRUE): Logical option set via options() to allow reading compressed .CEL files.

Best Practices

  • Run AffyRNAdeg() and plotAffyRNAdeg() to check for RNA degradation gradients across samples before proceeding with normalization.
  • Use MAplot() with plot.method="smoothScatter" to visualize intensity-dependent biases between arrays.
  • Use boxplot() to compare the distribution of raw intensities across multiple arrays before normalization.
  • Extract specific probe set data using probeset() and inspect pm() and mm() values directly to understand probe-level behavior.

Common Pitfalls

  • Missing CDF environment: Functions like getCdfInfo() fail if the specific chip definition file (e.g., HG_U95Av2) is not installed. Fix: Install and load the corresponding CDF package from Bioconductor.
  • Memory exhaustion with large datasets: Loading many arrays into an AffyBatch can consume significant memory. Fix: Use rma() to directly compute the summarized ExpressionSet and discard raw probe data.
  • Incorrect probe indexing: Using pm() or mm() without knowing the exact probe locations can lead to misinterpretation. Fix: Use indexProbes() or pmindex() to retrieve the correct physical locations on the chip.

Alternatives

  • oligo: For preprocessing newer whole-transcript (WT) Affymetrix arrays.
  • affyPLM: For advanced probe-level linear modeling and detailed quality metrics (RLE, NUSE plots).
  • limma: For downstream differential expression analysis after rma() preprocessing.

Citations

  • Gautier, L. et al. (2004). "affy—analysis of Affymetrix GeneChip data at the probe level." Bioinformatics, 20(3), 307-315.
  • Irizarry, R. A. et al. (2003). "Exploration, normalization, and summaries of high density oligonucleotide array probe level data." Biostatistics, 4(2), 249-264.

References


Run this on BioMate

This skill is the knowledge layer — when, why, and how to use affy. To run this analysis on your own data with managed compute, automated QC, and reproducible outputs, use BioMate — free to start.

▶ Open affy on BioMate →