New features:
- Added
SortIdents()
function to automatically order cell metadata according to similarity (@JavenTyr)
Other changes:
- Change to SeuratObject v5.0.2 dependency
- Increase R dependency to 4.1
- Deprecate
CoverageBrowser()
- Add informative error message for
ClosestFeature()
when gene annotations are not present in the object (#1681) - Fix error in
CreateChromatinAssay()
when supplying a pre-computed Motif object (#1657) - Fix error in
CoveragePlot()
when combiningcells
andgroup.by
parameters (#1724) - Added warning in
FeatureMatrix()
when requested features are on seqnames not present in the fragment file (#1754)
Bug fixes:
- Fix bug in
SetAssayData()
forChromatinAssay
objects (#1538) - Fix bug in
TSSEnrichment()
causing error on small example dataset (#1563) - Fix errors when using a CSI index (#1494)
- Fix error in
Footprint()
when running on a small number of regions (#1614) - Fix error in
CoveragePlot()
andPlotFootprint()
when setting bothident
andsplit.by
parameters (#1660) - Fix bug in
MatchRegionStats()
when NA values are present in only some of the feature metadata rows (#1655)
Other changes:
- Add ability to plot links for certain genes only in
CoveragePlot()
(#1459) - Add
corSparse()
, remove qlcMatrix from suggested packages (#1570) - Update documentation for
GetLinkedPeaks()
andGetLinkedGenes()
(#1654)
Bug fixes:
- Fixed bug in fragment file filtering with
FilterCells()
(#1509)
Other changes:
- Add support for SeuratObject v5
Bug fixes:
- Fix error when supplying genome string to
AddMotifs()
function (#1437) - Fix error in quantification with multiple fragment files (#1474)
Other changes:
- Added
region_extension
parameter toTSSEnrichment()
function to enable changing the size of the region used to compute TSS enrichment scores (#1444; @twmcart) - Allow fragment files with a CSI index (#1494)
New functionality:
- Added
DensityScatter()
function - Added
scale.linewidth
parameter toLinkPlot()
(#1412)
Bug fixes:
- Fixed error in
GetReadsInRegion()
when no fragments present that overlap the region (@nrockweiler; #1348) - Make motif names unique to avoid errors in motif-related functions (#1311)
- Ignore missing seqnames when constructing a Motif object (#1381)
- Fixed error in
BigwigTrack()
(#1389) - Fixed bug in
RegionMatrix()
where regions on minus strand were not handled correctly (#1368)
Other changes:
- Improved documentation for
AddMotifs()
function (#1361)
Bug fixes:
- Fixed Motif object subsetting when using only one feature (#1266)
- Avoid error in chromVAR when matrix contains NA values (#1254)
- Fixed error in
CoveragePlot()
when settingshow.bulk=TRUE
(#1294)
Other changes:
- Improved error message when no fragment file information stored (#1236)
- Add
tol
parameter toRunSVD()
to control theirlba::irlba()
tol
parameter - Added
split.by
parameters toCoveragePlot()
andPlotFootprint()
(#523)
Bug fixes:
- Fixed bug in Motif object subsetting (#1162)
- Fixed bug in
FeatureMatrix()
where cell names would not be converted correctly when running withcells=NULL
(#1198) - Fixed bug causing crash when fragment file line lengths are very large (#723)
Other changes:
- Improved fold change calculation (#1174)
- Added
subset()
method forFragment
-class objects - Set random seed within
CoverageTrack
to enable reproducible coverage plots (#1206) - Add ability to plot region using gene name in
PeakPlot()
,LinkPlot()
, andAnnotationPlot()
(#919) - Change
Motif
class definition to allow anyCsparseMatrix
in the data slot
New functionality:
- Added
method
parameter toLinkPeaks()
(@saketkc; #1030) - Added ability to plot transcript isoforms (set
annotation="transcript"
inCoveragePlot()
) - Added multiple testing correction to
FindMotifs()
, and newp.adjust
column in output dataframe - Added
p.adjust.method
parameter toFindMotifs()
to control multiple testing correction method used
Bug fixes:
- Fixed bug in
CallPeaks()
when project name contained whitespace (#981) - Fixed bug in
CoveragePlot()
whentile=TRUE
- Fixed bug in
InsertionBias()
that set the coordinates beyond the end of some chromosomes (#986) - Fixed bug in
BigwigTrack()
when supplying a single bigwig file (#1053) - Fixed bug in
GeneActivity()
when specifying biotypes (#1058) - Fixed bug in
GeneActivity()
when gene name is an empty string (#1055) - Fixed bug in
FeatureMatrix()
when using list of Fragment objects (#1056) - Fixed bug in
RegionMatrix()
when running on objects containing renamed cells (#1076) - Fixed bug in
Footprint()
when using a FASTA file (#1092) - Fixed bug in
Footprint()
when using list of genomic regions (#1098) - Add check for invalid features in
FindMotifs()
(#1109)
Other changes:
- Improved error message when no fragment file is supplied in
CallPeaks()
(#1062) - Moved
Seurat
,ggforce
,ggrepel
,ggseqlogo
,lsa
,qlcMatrix
to suggested packages - Added progress bar to
GetGRangesFromEnsDb()
New functionality:
- Added
RegionHeatmap()
function - Added
RegionPlot()
function - Added
RegionMatrix()
function - Added
MotifCounts()
function - Added ability to plot multiple assays simultaneously in
CoveragePlot()
by providing a list of assay names - Added
assay.scale
,bigwig.scale
, andsplit.assay
parameters toCoveragePlot()
- Added new option to provide quantile
ymax
value inCoveragePlot()
- Added
bigwig.scale
andymax
parameters toBigwigTrack()
- Added
peak.slot
parameter toLinkPeaks()
(#932)
Bug fixes:
- Fixed behaviour of
min.features
parameter inCreateChromatinAssay()
to retain cells with>= min.features
(#902) - Fixed behaviour of
min.cells
parameter inLinkPeaks()
(#932)
Other changes:
Bug fixes:
- Fixed bug in
FeatureMatrix()
when cells information not present in Fragment object (#803) - Fixed bug in object merging (#804)
- Add ability to run
LinkPeaks()
using Ensembl IDs (#858) - Fix issue in
GeneActivity()
when gene names areNA
(#865) - Fix bug in
FeatureMatrix()
when only one region supplied - Allow negative values in
ExpressionPlot()
when using scaled data (#893)
Other changes:
- Added
idf
parameter toRunTFIDF()
to use precomputed IDF vector - Added
gene.id
parameter toGeneActivity()
to allow output genes named using gene ID (#837) - Added
sep
parameter toConnectionsToLinks()
(#841)
New functionality:
- Added ability to display multiple assays in
CoveragePlot()
. Theassay
parameter can now be a list of assays to plot data from, with signal colored by assay of origin.
Bug fixes:
- Fixed bug in
FindMotifs()
when using only one region as input (#732) - Add check for correct number of columns in fragment file (#748)
- Fixed gene lookup when annotations contain NA values (#771)
- Fixed error in
ClosestFeature()
when query contained regions on contigs not present in gene annotation (#758) - Fixed bug in
TSSEnrichment()
when using multiple fragment files (#783) - Fixed bug in
CallPeaks()
when multiple fragment files used as input - Fixed bug in
CallPeaks()
to account for 0-based starts in called peaks - Fixed bug in gene name lookup when gene names contain
-
characters (#759)
Other changes:
- Updated documentation for
genome
parameter inAddMotifs()
andRunChromVAR()
(#712) - Updated the
FoldChange()
function to use normalized counts rather than raw counts (#795) - Improved error checking in
GeneActivity()
(#797) - Added
format
parameter toCallPeaks()
(#682)
Bug fixes:
- Fixed
LinkPeaks()
function when running on a single gene (#629) - Added
fragment.tempdir
parameter toCallPeaks()
to enable setting directory that split fragment files are written to during peak calling (#579) - Fixed error in
FeatureMatrix()
when settingsep
parameter (#626) - Fixed peak calling error when group names contain special characters
- Fixed issue with
RenameCells()
when cell information not present in Fragment object (#704)
Other changes:
- Improved error checking for
GeneActivity()
(#625) - Added
FoldChange()
method forChromatinAssay()
object that sets proper parameters for chromatin data. This fixes the calculation of fold changes when runningSeurat::FindMarkers()
on single-cell chromatin data.
New functionality:
- Added
head()
method forFragment
-class objects.
Bug fixes:
- Fixed bug in
ChromatinAssay
merging (#596)
Other changes:
- Added support for fragment files containing headers (cellranger-atac v2; #609)
New functionality:
- Added
BigwigTrack()
function to plot data from bigWig files - Added
bigwig
andbigwig.type
arguments toCoveragePlot()
to include bigWig files inCoveragePlot()
- Added
region.highlight
parameter toCoveragePlot()
- Added
biotypes
parameter toGeneActivity()
andGetTSSPositions()
functions - Added
max.width
parameter toGeneActivity()
- Added
min.distance
parameter toLinkPeaks()
(#561)
Bug fixes:
- Fixed fragment file reading when only one fragment found in requested region (#474)
- Fixed
standard.chromosomes
parameter inGetGRangesFromEnsDb()
(#513) - Fixed
group.by
parameter inPlotFootprint()
(#522) - Fixed bug that would cause some gene coordinates used by
GeneActivity()
to be incorrect (#521) - Fixed error message in
FindMotifs()
(#549) - Fixed bug in
CountsInRegion()
(#563)
Other changes:
- Improved speed of ChromatinAssay merging
- Improved error message for
TSSEnrichment()
(#485) - Improved error messages when trying to run
ChromatinAssay
-specific functions on non-ChromatinAssay
assays - Performance improvements
- Changed default value for
n
inNucleosomeSignal()
- Enabled parallization in
TSSEnrichment()
whenfast=TRUE
- Added early error checking in
LinkPeaks()
(#550) - Change to sparse matrix correlation in
LinkPeaks()
(#550) - Moved
biovizBase
andBiostrings
to suggested packages - Removed
ggbio
dependency - Re-implemented
AnnotationPlot()
New functionality:
- Added
group.by
parameter toPeakPlot()
to allow coloring plotted genomic ranges by metadata variables. - Added
peaks.group.by
andranges.group.by
parameters toCoveragePlot()
to allow coloring plotted genomic ranges inCoveragePlot()
to be colored by metadata variables.
Bug fixes:
- Update meta feature information (overall peak accessibility) when subsetting objects to avoid counts becoming inaccurate (#332)
- Prevent dropping features when creating a merged ChromatinAssay (#340)
- Fix compilation error when using g++ version <5 (#326)
- Retain motif positions during subset (#364)
- Fix
assay
parameter inCoveragePlot()
- Fix error when merging ChromatinAssay object (#355)
- Add more informative error message when all features or cells removed by parameter choices in
CreateChromatinAssay()
(#387) - Fix bug in
CreateChromatinAssay()
when setting bothmin.cells
andmin.features
arguments (#390) - Improved support for remote fragment files
- Fixed bug in
PlotFootprint()
when only one cell in an identity class (#406)
Other changes:
- Added citation information to the package
- Added
SeuratObject
dependency
New functionality:
- Added
CallPeaks()
function to call peaks using MACS2. Peaks can be called for different groups of cells separately by setting thegroup.by
parameter - Added
LinkPeaks()
function to link peaks to correlated genes. - Added
AddMotifs()
function to add motif information to a Seurat object or ChromatinAssay. - Added
AggregateTiles()
function to combine adjacent genome tiles - Added
ranges
parameter toCoveragePlot()
to plot addition sets of genomic ranges - Added
show.bulk
parameter toCoveragePlot()
to plot accessibility of all cells combined - Added ability to remove
Fragment
objects and modify the file path for existing fragment objects (#206)
Bug fixes:
- Fixed bugs in
AlleleFreq()
(#196 and #260) - Fixed bug in
FeatureMatrix()
(#205, #291) - Fixed bug in
CreateChromatinAssay()
when settingmin.features
argument (#194) - Fixed bug in
CreateChromatinAssay()
when settingmin.cells
argument (#292) - Fixed bug in
TSSEnrichment()
when cell information not set for fragment files (#203) - Fixed bug in
TSSEnrichment()
when no fragments present in TSS region (#244) - Removed
qvalue
calculation fromFindMotifs()
(#223) - Fixed bug in
SetAssayData()
when setting thescale.data
slot
Other changes:
- Improved feature matching in
MatchRegionStats()
function when matching distribution of multiple features (eg, GC content and overall accessibility) - Changed parameter names in
MatchRegionStats()
This release includes major updates to the Signac package, including new functionality, performance improvements, and new data structures.
The entire package has been updated to use the new ChromatinAssay
class for the
storage of single-cell chromatin data. This is an extension of the standard
Seurat Assay
that adds additional slots needed for the analysis of chromatin
data, including genomic ranges, genome information, fragment file information,
motifs, gene annotations, and genomic links.
In addition, we have defined a new Fragment
class to store information
relating to a fragment file. This makes use of the fragment files within Signac
more robust, as checks are now performed to verify that the expected cells are
present in the fragment file, and that the fragment file or index are not
modified on disk.
Key new functionality:
- Store multiple fragment files: you can now store as many fragment files as needed in a single object, and all functions that use the fragment file will pull data from each of the files. Cell barcodes in the fragment files do not need to match the cell barcodes in the object.
- Use remote fragment files: you can now use all the same functionality with
fragment files hosted on remote servers accessible through
http
orftp
. - Transcription factor footprinting: New
Footprint()
andPlotFootprint()
functions for TF footprinting analysis. - Bioconductor methods: call
granges()
,findOverlaps()
,seqinfo()
, and other Bioconductor generic functions directly on theChromatinAssay
orSeurat
object. - New multi-modal visualization methods: Jointly visualize RNA expression
and chromatin accessibility using the
CoveragePlot()
function. - New interactive visualizations: Interactively browse the genome using the
CoverageBrowser()
function. - Mitochondrial lineage tracing: New functions to identify informative mitochondrial alleles, find clonotypes, and predict cell lineage relationships using mitochondrial mutations.
Other changes:
- Updates to
NucleosomeSignal()
: we have greatly improved the scalability ofNucleosomeSignal()
, and fixed a bug present in previous versions. The score computed byNucleosomeSignal()
in 1.0.0 will be different to that computed by previous versions of Signac. - New
CountFragments()
function: a fast, memory-efficient function implemented in C++ that counts the total number of fragments for each cell barcode present in a fragment file. - New
fast
option in theTSSEnrichment()
function. Setting this toTRUE
will compute the TSS enrichment score per cell without storing the entire cell by TSS position matrix. This can significantly reduce memory requirements for large datasets, but does not allow subsequent plotting of the TSS signal for different groups of cells. - New
TilePlot()
function andtile
parameter forCoveragePlot()
to plot Tn5 integration events in a genomic region for individual cells. - Performance improvements for
FeatureMatrix()
,CoveragePlot()
, andTSSEnrichment()
- Added the manually curated hg38 genomic blacklist regions curated by Anshul
Kundaje and Anna Shcherbina. These are available as the
blacklist_hg38_unified
object. - Updated the
FRiP()
function to use total fragment counts per cell stored in object metadata.
- New
DepthCor
function to compute the correlation between sequencing depth and reduced dimension components. - Performance improvements for
RunTFIDF
. - Removed option to use EnsDb object in
ClosestFeatures
andCoveragePlot
. Use GRanges instead. - Removed
ucsc
parameter fromCoveragePlot
. - Fixed bug in FeatureMatrix that would cause fragments to be counted multiple
times if
nchunk
was greater than the number of features used. - Fixed bug in
CoveragePlot
that would prevent plotting multiple regions when usingGRanges
. - Fixed bug in
CoveragePlot
that would prevent plotting when a different assay was active. - Removed dependencies: GenomicFeatures
- Moved dependencies to suggests: Biostrings, BSgenome
- Removed from suggests: BSgenome.Hsapiens.UCSC.hg19, EnsDb.Hsapiens.v75, JASPAR2018
- First CRAN release.
- New
SubsetMatrix
function to subset a matrix based on number of non-zero elements in the rows or columns. - Removed
seed.use
parameter fromRunSVD
.
- New
UnifyPeaks
function to create a merged set of peaks from multiple samples.
- Bug fix for
RunSVD
: previously, scaling was applied to each cell rather than each component. Now, mean centering and SD scaling are applied to the cell embeddings within a component. - Added
scale.embeddings
option toRunSVD
to control whether embeddings are scaled and centered. - Added
irlba.work
parameter toRunSVD
. - Update to allow comment characters in fragment file cell names
- Removed
SingleCoveragePlot
from exported functions - Added executable examples for all functions
- Store raw SVD output in DimReduc misc slot in
RunSVD
- Fixed strand orientation for gene plot in
CoveragePlot
- Fix missing x-axis when plotting peaks but not genes in
CoveragePlot
- Removed dependency on TFBSTools, motifmatchr, AnnotationDbi, ggbio, AnnotationFilter
- Renamed
PeriodPlot
toFragmentHistogram
- Removed motif dimension reduction functions
- Removed motif clustering functions
- Removed
neighbors
andreductions
slots frommotif
class - Added
motif.names
slot tomotif
class - Added ability to plot peak ranges in
CoveragePlot
- Added ability to plot gene annotations from
GRanges
object - Changed gene plot style in
CoveragePlot
- Allow passing additional arguments to
FilterFragments
- Add inst/extdata
- Change DESCRIPTION file so that Bioconductor dependencies are automatically installed
- Bug fix for
GetCellsInRegion
- Improve documentation
- New
TSSEnrichment
andTSSPlot
functions for TSS enrichment scoring - New
InsertionBias
function - New options in
CoveragePlot
for scaling tracks - Major speed improvements for
CoveragePlot
- Improved documentation (added examples)
- Updates to
CoveragePlot
: now plots a Tn5 integration score per base, rather than the whole fragment.
- New
GetIntersectingFeatures
function to find overlapping peaks between objects - New
MergeWithRegions
function to perform region-aware Seurat object merging
- New
RunChromVAR
function to run chromVAR through Signac - New
RegionStats
function to add statistics about peak sequences to the feature metadata - Improvements to
FindMotifs
: now selects a set of background peaks matching the sequence characteristics of the input
- Added
IntersectMatrix
- Added unit tests
- Bug fixes for
ChunkGRanges
- This is the first release of Signac!