← LeaderboardThe Skill Leaderboard

bioconductor-dnacopy

Implements the circular binary segmentation (CBS) algorithm to segment DNA copy number data and identify genomic regions with abnormal copy number.

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

Try your first task

bioconductor-dnacopy

Start a fresh conversation. Replace the highlighted placeholders.

Use bioconductor-dnacopy to draft a CBS copy-number segmentation workflow for [log-ratio data with chromosome and position], including smoothing, segmentation settings, gain/loss calling guidance, and limitations for bulk total-copy-number data.

Required inputs

  • [log-ratio data with chromosome and position]

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

SKILL.md

name: bioconductor-dnacopydescription: Implements the circular binary segmentation (CBS) algorithm to segment DNA copy number data and identify genomic regions with abnormal copy number.when_to_use: "Use when: Copy Number Segmentation: Finding change-points in array DNA copy number data (e.g., array CGH) using the segment() function.; Identifying Gains and Losses: Determining regions of gained and lost copy number by plotting segment means with plot().; Outlier Smoothing: Smoothing single point outliers in log-ratio data prior to segmentation using smooth.CNA().. Not for: For allele-specific copy number estimation or tumor purity/ploidy correction, use PureCN because DNAcopy only segments total copy number.; For single-cell DNA copy number profiling where specialized noise models are required, use AneuFinder because D"user-invocable: false

DNAcopy

Dependencies & Environment

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

  • Version: 1.86.0 · Bioconductor: 3.23 · R: ≥ 4.6
  • Depends: Imports
  • System requirements: URL
  • Install: BiocManager::install("DNAcopy")

When to Use

  • Copy Number Segmentation: Finding change-points in array DNA copy number data (e.g., array CGH) using the segment() function.
  • Identifying Gains and Losses: Determining regions of gained and lost copy number by plotting segment means with plot().
  • Outlier Smoothing: Smoothing single point outliers in log-ratio data prior to segmentation using smooth.CNA().

When NOT to Use

  • For allele-specific copy number estimation or tumor purity/ploidy correction, use PureCN because DNAcopy only segments total copy number.
  • For single-cell DNA copy number profiling where specialized noise models are required, use AneuFinder because DNAcopy assumes bulk-level signal distributions.
  • For multi-sample joint segmentation, use copynumber because DNAcopy processes samples independently.

Data Requirements

  • Input Object: Data must be converted into a CNA object using the CNA() function.
  • Required Columns: A matrix or vector of log-ratio data, a vector of Chromosome identifiers, and a vector of Position (map locations).
  • Data Type: Typically specified as data.type="logratio".

Key Parameters

  • undo.splits ("sdundo"): Method to get rid of unnecessary change-points due to local trends.
  • undo.SD (3): The number of standard deviations used when undo.splits="sdundo" to remove splits.
  • plot.type ("w", "s", "c", "p"): Determines the layout of the plot() function (e.g., whole genome, by chromosome, across studies, or ordered by plateau).
  • p.method ("perm"): Method for p-value computation. The default is a faster hybrid approach, but full permutations can be forced.
  • nperm (10000): Number of permutations used in the hybrid method.
  • alpha: Significance level for the test to accept change-points.
  • verbose (1): Controls the printing of progress during the segment() run.

Best Practices

  • Smooth Data First: Always run smooth.CNA() on your CNA object to mitigate the effect of single point outliers before running segment().
  • Undo Local Trends: Use undo.splits="sdundo" with undo.SD=3 in segment() to remove false-positive change-points caused by local data trends.
  • Subset Large Data: Use subset.CNA() to subset by chromosome and sample so that segmentation does not have to be run on a whole data set at once.
  • Determine Thresholds: Use plot() with plot.type="p" to order segments by their chromosome means, helping to visually determine the plateaus for calling gains (e.g., 0.4) and losses (e.g., -0.6).

Common Pitfalls

  • Over-segmentation from Local Trends: The algorithm may find change-points due to local trends rather than true copy number shifts. Fix: Apply the undo.splits="sdundo" parameter in segment().
  • Slow Computation on Large Datasets: Running the full permutation algorithm takes O(N^2) computations. Fix: Rely on the default hybrid approach (Gaussian approximation + permutation) rather than setting p.method='perm', or reduce nperm.
  • Plotting Clutter: Plotting multiple chromosomes at once can be hard to read. Fix: Use plot.type="s" to plot by chromosome within a study.

Alternatives

  • copynumber: For multi-sample segmentation and joint segmentation of copy number data.
  • PureCN: For joint estimation of tumor purity, ploidy, and absolute copy number.
  • AneuFinder: For copy number analysis of single-cell sequencing data.

Citations

  • Olshen, A. B., Venkatraman, E. S., Lucito, R., and Wigler, M. (2004). Circular binary segmentation for the analysis of array-based dna copy number data. Biostatistics, 5:557–72.
  • Venkatraman, E. S. and Olshen, A. B. (2007). A faster circular binary segmentation algorithm for the analysis of array cgh data. Bioinformatics, 23:657–63.

References


Run this on BioMate

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

▶ Open dnacopy on BioMate →