Changelog
Source:NEWS.md
comma 0.6.0
Bioconductor submission preparation
Version bumped to 0.6.0 for Bioconductor submission preparation.
Package passes
R CMD checkwith zero code-level errors or warnings. Remaining check notes are environment-specific (locale, pdflatex availability) and will not be present in Bioconductor’s check infrastructure.Full
roxygen2documentation for all exported functions, including\donttest{}examples throughout.
comma 0.5.0
Major new features
plot_methylation_distribution()— beta value density plot per sample, coloured by sample name, and faceted by modification type when multiple types are present. Useful for QC and comparing methylation level distributions.plot_genome_track()— genome browser-style scatter plot of methylation beta values vs. genomic position. Supports positional windowing viastart/endarguments,mod_typefiltering, and optional feature annotation rectangles fromannotation(object).plot_metagene()— average methylation profile across a class of genomic features, normalized to fractional position [0 = TSS, 1 = TTS]. UsesannotateSites(type = "metagene")internally.plot_volcano()— volcano plot for differential methylation results. Accepts thedata.frameoutput ofresults(). Colors points as Hypermethylated, Hypomethylated, or Not significant based on user-suppliedpadj_thresholdanddelta_beta_threshold.plot_heatmap()—geom_tileheatmap of the top differentially methylated sites (ranked by adjusted p-value) across all samples. Usesggplot2only; noComplexHeatmapdependency required.plot_pca()— PCA of per-sample methylation profiles usingstats::prcomp(). Points colored and optionally shaped by any column insampleInfo(object).plot_coverage()— histogram of sequencing depth per site, per sample. Useful for coverage QC before differential methylation testing.
Documentation
- Added two vignettes required for Bioconductor submission:
-
"Getting Started with comma"— end-to-end workflow usingcomma_example_data. -
"Working with Multiple Modification Types"— joint 6mA + 5mC analysis.
-
- Added package-level documentation (
?comma) describing the overall workflow.
Dependency changes
Added
BiocStyle,ComplexHeatmap,ggrepel, andpatchworktoSuggests. None are required for core functions;patchworkenables combined annotation tracks inplot_genome_track()andplot_heatmap().Added
VignetteBuilder: knitrto DESCRIPTION.Added
VisualizationtobiocViews.
comma 0.4.0
Major new features
-
diffMethyl()— the core differential methylation function. Accepts acommaDataobject and a design formula, tests each methylation site for differential methylation between conditions, and returns the object enriched with per-site statistics inrowData. Supports two statistical backends:-
method = "beta_binomial"(default): per-site quasibinomial GLM via base Rstats::glm(). No extra packages required. -
method = "methylkit": wrapsmethylKit::calculateDiffMeth()for users who prefer the methylKit pipeline. RequiresmethylKitto be installed.
New
rowDatacolumns:dm_pvalue,dm_padj(Benjamini-Hochberg by default),dm_delta_beta(effect size: treatment minus control mean beta), and onedm_mean_beta_<condition>column per condition level. Analysis parameters are stored inmetadata(object)$diffMethyl_params. -
results()— S4 method to extract differential methylation results from acommaDataobject as a tidydata.frame. Supports optionalmod_typefiltering.filterResults()— S4 method to filter the results table by adjusted p-value (padj) and absolute effect size (delta_beta) thresholds..parseDorado()— full Dorado BAM parser replacing the previous stub. Reads MM/ML base modification tags from Dorado-aligned BAM files usingRsamtools::scanBam(), parses modification positions from CIGAR-decoded read coordinates, and aggregates per-read calls into per-site beta values. Supports 6mA, 5mC, and 4mC in the same BAM file. Invoked automatically bycommaData(..., caller = "dorado").
comma 0.3.0
Major new features
-
annotateSites()— new vectorized annotation function that replacesannotateMethylSites(),annotateTSS(), andannotateTTS(). Accepts acommaDataobject and usesGenomicRanges::findOverlaps()internally — no nested for-loops. Supports three annotation modes:-
type = "overlap": assigns feature type and name to each site; non-overlapping sites are labelled"intergenic". -
type = "proximity": reports the nearest feature, its distance (in bp), and a signed relative position relative to the feature’s TSS. -
type = "metagene": reports a fractional position (0–1) within the overlapping feature, strand-aware. Returns an updatedcommaDatawith new columns inrowData.
-
slidingWindow()— new generalised sliding window function that replacesmethylRollingMedian()andmethylRollingMean(). Accepts acommaDataobject; genome size is always read fromgenome(object)— no hardcoded values. Supportsstat = "median"orstat = "mean", per-sample output,mod_typefiltering, and circular genome wrap-around. Returns a tidydata.frame.methylomeSummary()— new function that computes per-sample summary statistics (mean/median/SD of beta values, fraction methylated, mean/median coverage). Returns a tidydata.framesuitable forggplot2or tabular reporting. Supportsmod_typefiltering.coverageDepth()— new function that bins the genome into non-overlapping windows and computes mean or median sequencing depth per window per sample. ReplacescalculateMethylSiteDepth(). Returns a tidydata.frame.varianceByDepth()— new function that computes per-sample methylation variance as a function of sequencing depth. ReplacesvarByCoverage(). Accepts acommaDataobject; no hardcoded column names. Returns a tidydata.frame.writeBED()— rewritten from scratch. Accepts acommaDataobject, an output path, and a sample name. Removes all hardcoded developer paths and chromosome names. Writes a standard BED9 file with an optional blue-to-reditemRGBmethylation scale.
Breaking changes
annotateMethylSites(),annotateTSS(), andannotateTTS()have been removed. UseannotateSites()instead.methylRollingMedian()andmethylRollingMean()have been removed. UseslidingWindow()instead.calculateMethylSiteDepth()andvarByCoverage()have been removed (they were not exported). UsecoverageDepth()andvarianceByDepth()instead.
Package changes
Root-level clutter removed:
functions.R,testscript.R,WT_6mA_Mg.txt,WT_6mA_all_callers.txt,all_site_annotations.txt, andall_site_annotations_60p.txthave been deleted.methylKitGATC.R(historical analysis script) moved toinst/scripts/methylKitGATC_historical.Rwith a descriptive header comment. It is not part of the package.Version bumped to
0.3.0.
comma 0.2.0
Major new features
Added
commaDataS4 class (extendsSummarizedExperiment) — the central data object for all comma analyses. Stores methylation beta values and coverage as assay matrices with per-site and per-sample metadata.Added
commaData()constructor: parses one or more modkit pileup BED files (or Megalodon files) and merges them into acommaDataobject with consistent site × sample matrices. Supports multi-sample, multi-modification-type data.Added modkit parser (
.parseModkit()): reads modkitpileupBED output (primary ONT methylation calling format). Supports all three modification types: 6mA (a), 5mC (m), and 4mC (21839).Added Megalodon parser (
.parseMegalodon()): reads legacy Megalodon per-read BED output for backward compatibility with existing datasets.Added Dorado BAM parser stub (
.parseDorado()): not yet implemented; provides a clear error message directing users to usemodkit pileupfirst.Added
findMotifSites(): locates all instances of a DNA sequence motif (e.g., GATC, CCWGG) in a genome (BSgenome object or FASTA file) and returns aGRangesof all positions on both strands.Added
loadAnnotation(): reads GFF3 or BED annotation files and returns aGRangeswith standardizedfeature_typeandnamemetadata columns.Added accessor functions:
methylation(),coverage(),sampleInfo(),siteInfo(),modTypes(),genome(),annotation(),motifSites().Added subsetting:
[for sites/samples andsubset()for filtering bymod_type,condition, orchrom.Added internal genome utilities:
.validateGenomeInfo(),.circularIndex(),.makeSeqinfo().
Data changes
Removed all 9 MG1655-specific bundled datasets (
data/*.rda). These were specific to E. coli K-12 MG1655 and not usable with other organisms.Added
comma_example_data: a syntheticcommaDataobject with a simulated 100 kb genome, 3 samples (2 conditions), and two modification types (6mA and 5mC). Used in vignettes and tests. Rundata-raw/create_example_data.Rto regenerate.Added
inst/extdata/example_modkit.bed: small modkit pileup BED for constructor tests and examples.Added
inst/extdata/example.gff3: matching GFF3 annotation for the example genome.
Dependency changes
Added to
Imports:GenomicRanges,SummarizedExperiment,IRanges,S4Vectors,BiocGenerics,Rsamtools,zooAdded to
Suggests:BSgenome,Biostrings,rtracklayerRemoved from
Imports:forcats
Package changes
Package renamed from
CoMMAtocomma(Comparative Methylomics for Microbial Analysis). The new name reflects the broader scope — all modification types (6mA, 5mC, 4mC), not just adenine methylation.Version bumped to
0.2.0.R (>= 4.1.0)is now the minimum R version requirement.Added
biocViewsfield in preparation for Bioconductor submission.