doScrubletDetect()
seed setting
labelTransfer()
now hasintegration_method = "harmony"
for label transferring with an integration pipeline. See ?labelTransfer and theintegration_method
section.importXenium()
load_transcripts()
can now return adata.table
rather than thegiottoPoints
representation
doMesmerSegmentation()
anddoStardistSegmentation()
segmentation wrappers.varexp()
internal for calculating SVD variance determined with support for partial SVDs.cumvar()
internal for calculating cumulative variance explained- re-export of
dotPlot()
from GiottoVisuals
- GiottoClass req raised to 0.4.5
- GiottoUtils req raised to 0.2.2
- GiottoVisuals req raised to 0.2.10
createGiottoXeniumObject()
auto loading for morphology focus images, image directory loading, auto centroid calculation, allow skipping transcript loading
- New Analysis mini tutorials for showing common processing functions independently of the spatial technology.
- New Slide-seq and OpenST examples.
- New Contributing tab with guidelines for contributing to the package and the website.
- New Visualizations tutorials.
- New Giotto workflow and Core Functions tutorials under Get Started tab.
- New Create and change Giotto instructions tutorial.
- New Spatial Patterns tutorials section.
- New tutorials under Interactivity for regions selection with vitessceR.
- New Multi-samples tutorials section.
- Updated technologies examples.
- Updated tutorials for using Docker and Singularity Giotto containers.
- Homogenized variable names across examples and tutorials.
createGiottoVisiumObject()
apply a modifier of 0.8461538 to visium spot diameter to reflect actual spot sizedoLeidenClusterIgraph()
deprecate paramresolution_parameter
in favor ofresolution
createGiottoVisiumObject()
append multiplicative scalefactor to get micron values from the current coordinate units during Visium object creation. Accessible throughinstructions(gobject, "micron_scale")
- Add
giottoToAnndataZarr()
to create a local anndata zarr folder and interact with the vitessceR package. reduceDims()
API function for dimension reductionsrunNMF()
implementation that works via RcppML
runWNN()
andrunIntegratedUMAP()
arguments were updated to make the function flexible to handle any number of modalities.- update
jackstrawPlot()
to make more flexible and efficient. Changed default params forscaling
,centering
, andfeats_to_use
to matchrunPCA()
- change warning when reduction "feats" is selected in
runtSNE()
to error to avoid accidentally wiping thegiotto
object.
- remove deprecated
PAGEEnrich()
. UserunPAGEEnrich()
instead - remove deprecated
rankEnrich()
. UserunRankEnrich()
instead - remove deprecated
hyperGeometricEnrich()
. UserunHyperGeometricEnrich()
instead - remove deprecated
createSpatialEnrich()
. UserunSpatialEnrich()
instead - remove deprecated
heatmSpatialCorGenes()
. UseheatmSpatialCorFeats()
instead - remove deprecated
runPAGEEnrich_OLD()
. UserunPAGEEnrich()
instead - remove
do_pca
,expression_values
,feats_to_use
args fromrunGiottoHarmony()
. Running PCA during theharmony::RunHarmony()
call is deprecated.
- add
'quantile'
normalization method tonormalizeGiotto()
limma
,plotly
, andRtsne
moved to Suggests- move
progressr
andjsonlite
dependencies to GiottoUtils v0.1.12 - remove
reshape2
dependency.
processGiotto()
can now skip adjust step by default
identifyTMAcores()
for assigning IDs to tissue microarray spatial data.labelTransfer()
for transferring labels between giotto objects or subsets thereof. SupercedesdoClusterProjection()
- Allow
giottoInstructions
passing for Xenium convenience functions
- Deprecate
screePlot()
name
in favor ofdim_reduction_name
param
- Deprecated
detectSpatialCorGenes()
removed. UsedetectSpatialCorFeats()
instead - Deprecated
findInteractionChangedGenes()
removed. UsefindInteractionChangedFeats()
instead - Deprecated
findCellProximityGenes()
removed. UsefindInteractionChangedFeats()
instead createGiottoXeniumObject()
has been overhauled and parameters have changed.
- Fix error in
plotInteractivePolygons()
when providing a spatial plot with a continuous scale #964 by jweis3 - Fix error in DWLS
find_dampening_constant()
whenS[subset, ]
produces only 1 gene. - Fix error in
interpolateFeatures()
where feature names with-
or starting with numbers did not work - Add catch in
runPCAprojectionBatch()
for when ncp requested exceeds number of feats used - Make
spatCellCellcom()
respectverbose
flag #949 by rbutleriii
- Dataset affine registration via interactive shiny app and automated SIFT detection
- Cell segmentation via Cellpose
read10xAffineImage()
for reading 10x affine transformed images- Several modular importer and convenience functions
- ONTraC implementation
print()
methods foricfObject
andcombIcfObject
- require GiottoUtils (>= 0.1.10)
- require GiottoClass (>= 0.3.3)
crossSectionGenePlot()
removed. UsecrossSectionFeatPlot()
insteadcrossSectionGenePlot3D()
removed. UsecrossSectionFeatPlot3D()
insteadinsertCrossSectionGenePlot3D()
removed UseinsertCrossSectionFeatPlot3D()
instead
binSpect()
param passing error introduced in v4.0.6- updated
viewHMRFresults3D()
andviewHMRFresults2D()
- updated
createCrossSections()
,insertCrossSectionSpatPlot3D()
,crossSectionPlot()
,crossSectionFeatPlot3D()
,insertCrossSectionFeatPlot3D()
,crossSectionPlot3D()
,crossSectionFeatPlot()
- GiottoVisuals (>= 0.2.2), GiottoClass (>= 0.3.1), GiottoUtils (>= 0.1.8) are now required.
- New
interpolateFeature()
for kriging interpolation of values
- GiottoVisuals (>= 0.2.0) and GiottoClass (>= 0.3.0) are now required.
- Fix Error "cannot coerce class ‘structure("spatLocsObj", package = "Giotto")’ to a data.frame" in
spatialDE()
readPolygonVizgenParquet()
now hascalc_centroids = TRUE
by default
- Remove
do_manual_adj
and image adjustment params fromcreateGiottoVisiumObject()
createGiottoVisiumObject()
now createsgiottoLargeImage
for spatial images.exprCellCellcom()
deprecatedgene_set_*
params removed
- Fix metadata appending/sorting issues introduced by GiottoClass v0.1.3 (2024/01/12). Affected functions:
addHMRF()
,addFeatsPerc()
,doScrubletDetect()
findNetworkNeighbors()
now has defaultspatial_network_name
value ofNULL
get10Xmatrix()
now obeyssplit_by_type = FALSE
- Deprecate
set.seed
in favor ofseed
param forbinSpect()
binSpect()
now sets a seed by default for reproducibility- pkgdown files moved to separate repo
- Use
mixedsort()
for unique clusters metadata info - Remove unnecessary matrix densification and expose
seed
param indoScrubletDetect()
- Remove unnecessary matrix densification in
makeSignMatrixRank()
- Remove old argument
type_default = list(pal = c('blue', 'yellow', 'red'))
in plotRankSpatvsExpr()
- fix bug in
doHclust()
- Move GiottoClass back to depends to fix access to some generics
- Remove
cell_ids
param forcalculateHVF()
in favor of simplerrandom_subset
- Move GiottoUtils, GiottoClass, and GiottoVisuals to imports
- Add
parse_affine()
for interpreting affine transform matrices - Add seed setting to
runGiottoHarmony()
- Add parallelized calculation for
calculateHVF()
when a future plan is set
- Fix
createGiottoXeniumObject()
feature metadata reading for.json
file - Update
runGiottoHarmony()
to callharmony::RunHarmony()
- Update Matrix requirement to >= 1.6.2 (a re-install of irlba may resolve issues with Matrix incompatibility.)
- Update to modular package organization with the main packages being
GiottoUtils
,GiottoClass
,GiottoVisuals
, andGiotto
as the analytical umbrella package.
- New File
spatial_enrichment_visuals.R
- New function
findCellTypesFromEnrichment()
withinspatial_enrichment_visuals.R
to show most probable cell types based on a provided enrichment - New function
plotCellTypesFromEnrichment()
withinspatial_enrichment_visuals.R
that generates a bar plot of cell types vs frequency based on a provided enrichment - New function
pieCellTypesFromEnrichment()
withinspatial_enrichment_visuals.R
that generates a pie chart of cell types based on a provided enrichment - New function
addVisiumPolygons()
withinconvenience.R
(along with its requisite internal functions) that adds circular polygons centered at the spatial locations of a Giotto Object made with Visium data. Takes a Giotto Object and a path to the Visium output filescalefactors_json.json
as input arguments. - Added
addVisiumPolygons()
tocreateGiottoVisiumObject()
workflow. - Add
cell_ids
param tocalculateHVF()
to allow calculation of HVFs on a subset of cells - Add seed setting to
runGiottoHarmony()
- Update
runGiottoHarmony()
to callharmony::RunHarmony()
- Update Matrix requirement to >= 1.6.3
- Change
checkGiottoEnvironment()
. Downgrade from error to message and return FALSE when a provided directory does not exist
- New file
poly_influence.R
- New function
showPolygonSizeInfluence()
withinpoly_influence.R
to show if cells switch clusters when across resized polygon annotations - New function
showCellProportionSwitchedPie()
withinpoly_influence.R
to visualize results fromshowPolygonSizeInfluence()
in a pie chart - New function
showCellProportionSwitchedSankey()
withinpoly_influence.R
to visualize results fromshowPolygonSizeInfluence()
in a Sankey diagram - New function
makePseudoVisium()
withingiotto_structure.R
to generate a pseudo visium grid of circular spots - New function
tessellate()
withingiotto_structure.R
to generate a grid of hexagons or squares for spatial binning - New file
feature_set_enrichment.R
- New function
doFeatureSetEnrichment()
withinfeature_set_enrichment.R
for GSEA analysis - New function
doGiottoClustree()
withinclustering.R
for visualizations of leiden clusters at varying resolutions - New
createArchRProj()
andCreateGiottoObjectFromArchR()
functions to create agiotto
object with ATAC or epigenetic features using the ArchR pipeline. - New
giottoMasterToSuite()
function to convert agiotto
object created with the master version to a Giotto suite object. - New
readPolygonVizgenParquet()
for updated parquet outputs - Add checkmate to Imports for assertions checking
- Add exported
create
function forexprObj
creation - New file
spatial_manipulation.R
- Add
ext()
methods forgiottoPolygon
,giottoPoints
,spatialNetworkObj
,spatLocsObj
,giottoLargeImage
- Add
flip()
methods forgiottoPolygon
,giottoPoints
,spatialNetworkObj
,spatLocsObj
,SpatExtent
,giottoLargeImage
- Add access to terra plotting params for
giottoLargeImage
plot()
method.
- Fix bug in
combine_matrices()
- Fix bug in
createGiottoObject()
that will not allow object creation without supplied expression information - Updated
polyStamp()
to replace an apply function with a crossjoin for better performance. - Updated
spatInSituPlotPoints()
withplot_last
parameter. Default output now plots polygons above points for better visibility. - Add check for spatLocsObj for spatlocs in polyStamp()
- Removed various print() and cat() statements throughout.
- Changed default verbose argument to FALSE for createGiottoObject
- Changed default verbose argument to FALSE for joinGiottoObjects
- Changed default verbose argument to FALSE for createGiottoObjectSubcellular
- Default verbose = FALSE argument added to cellProximityEnrichmentSpots
- Default verbose = FALSE argument added to .specific_CCCScores_spots
- Default verbose = FALSE argument added to runWNN
- Default verbose = FALSE argument added to subset_giotto_points_object
- Default verbose = FALSE argument added to subset_feature_info_data
- Default verbose = FALSE argument added to subsetGiotto
- Default verbose = FALSE argument added to subsetGiottoLocsSubcellular
- Default verbose = FALSE argument added to .createGiottoXeniumObject_subcellular
- Update
readPolygonFilesVizgenHDF5()
add option to return asdata.table
and skipgiottoPolygon
creation. DownstreamgiottoPolygon
creation refactored as new internal function - Update cell segmentation workflow to check for deepcell and PIL python packages
- Update cell segmentation workflow to return grayscale mask images instead of RGB
- Update
createGiottoVisiumObject()
image h5 scalefactors reading to use partial matching for whether hi or lowres image is supplied - Update
giottoLargeImage
plot()
method to useterra::plot()
instead ofterra::plotRGB()
for grayscale images - Remove unnecessary prints from
subsetGiotto()
- Fix bug in
readCellMetadata()
andreadFeatMetadata()
- Set Suite as default branch
- Removed all deprecated accessors from
accessors.R
set_default_feat_type()
error downgraded to warning when nofeat_type
s exist for givenspat_unit
- update
loadGiotto()
andsaveGiotto()
to allow using long strings as column names in the spatVector objects 'active_spat_unit'
and'active_feat_type'
params that can be set throughinstructions()
are now used instead of 'giotto.spat_unit' and 'giotto.feat_type' global options- removed duplicate
create_dimObject()
internal function. Keepingcreate_dim_obj()
- New implementations of
anndataToGiotto()
andgiottoToAnnData()
for Nearest Neighbor and Spatial Networks - New
check_py_for_scanpy()
function, shifting code around inanndataToGiotto()
- Add
initialize()
method forgiotto
- Add exported
create
constructor functions for Giotto S4 subobjects - Add
activeSpatUnit()
andactiveFeatType()
for getting and setting active defaults on gobject - New
get_*_list()
internal functions for retrieving list of all objects of a particular class for a spat_unit and feat_type - Add
instructions()
generic forgiotto
to access and editgiottoInstructions
- Add
centroids()
method forgiottoPolygon
to get centroid info - Add
overlaps()
generic for accessingoverlaps
slot ofgiottoPolygon
- Add
[
and[<*
(empty) access generics to get the data from main slots ofgiottoPolygon
andgiottoPoints
- Add cores detection to run on package attach. (
getOption('giotto.cores')
) - Add option to return as
giottoPoints
fromgetFeatureInfo
(default is stillSpatVector
) - Add
spatVector_to_dt2
internal as a barebones alternative tospatVector_to_dt()
- Add
getRainbowColors()
color palette - New
assign_objnames_2_list()
andassign_listnames_2_obj()
internals for passing list names to object@name
slots and vice versa - New test_that
test_createObject.R
script forread
functions/S4 subobject creation - New test_that
test_accessors.R
script foraccessor
functions - New test_that
test_gobject.R
script for gobject consistency checks
- Update
installGiottoEnvironment()
and downstream internal functions to allow custom python installation with a new argument,mini_install_path
. - Update
checkGiottoEnvironment()
to account for custom python installations with a new argument,mini_install_path
. - Update
removeGiottoEnvironment()
to account for custom python installations with a new argument,mini_path
. - Update
createGiottoObject()
with new data ingestion pipeline - Modify
cell_ID
,feat_ID
,cell_metadata
,feat_metadata
slot initialization - Update
read_expression_data()
andevaluate_expr_matrix()
to be compatible withexprObj
- Change
changeGiottoInstructions()
to allow addition of new params and enforce logical class of known params - Update and fix bugs in
createGiottoCosMxObject()
associated with polygon placement and generation - Update
plot()
forgiottoPoints
with faster rasterized plotting option. (Now used by default) - Fix bug in
doLouvainCluster()
(sub)functions and made them compatible with new Giotto Suite framework. - Fix bug in
gefToGiotto()
bin_size arguments. - Update
loadGiotto()
andsaveGiotto()
with path.expand to expand provided file/directory paths - Organize new and refactored slot
check
functions ingiotto.R
for checking gobject consistency duringinitialize()
- Organize new and refactored
evaluate
functions indata_evaluation.R
for data wrangling of external data - Organize new and refactored
read
functions indata_input.R
for ingesting data and converting to list of Giotto native S4 subobjects - Organize dummy documentation in
dd.R
for inheriting commonly used documentation - Moved
create_featureNetwork_object()
,create_giotto_points_object()
,create_giotto_polygon_object()
to classes.R - Moved
depth()
from giotto.R to utilities.R
- Removed support for deprecated nesting in
@nn_network
slot createSpatialNetwork()
will now output aspatialNetworkObj
by default whenreturn_gobject = FALSE
. It is possible to change this back to the data.table output by settingoutput = 'data.table'
- Set incomplete classes in classes.R as virtual to prevent their instantiation
- Removed
createGiottoCosMxObject()
aggregate
andall
workflows until they are updated
- New
gefToGiotto()
interoperability function to convert gef object from Stereo*seq to giotto - New
giottoToAnnData()
interoperability function to convert giotto object to squidpy flavor anndata .h5ad file(s) - New
giottoToSpatialExperiment()
andspatialExperimentToGiotto()
to convert between Giotto and SpatialExperiment - New
spatialAutoCorLocal()
andspatialAutoCorGlobal()
functions to find spatial autocorrelations from expression and cell metadata information - New
createSpatialWeightMatrix()
function to generate spatial weight matrix from spatial networks for autocorrelation - Add spatial_interaction_spot.R with functions adapted from master branch for working with the Giotto suite object.
- New exported accessors for slots (experimental)
- New
multiomics
slot ingiotto
- Add
coord_fix_ratio
param tospatFeatPlot2D()
andspatFeatPlot2D_single()
- Add
order
parameter todimFeatPlot2D
andspatDimFeatPlot2d
to plot and order cells according to the levels of the selected feature (#477) - Add
plot()
method forspatialNetworkObj
- New
set_row_order_dt()
internal for settingdata.table
to a specific row order by reference - New
fread_colmatch()
internal for fread loading a subset of rows based on matches in a specified column - Add missing
create_nn_net_obj()
internal constructor function for S4nnNetObj
- Add
id_col
,x_col
,y_col
params topolyStamp()
to make stamp location input more flexible - Add
optional
andcustom_msg
params topackage_check()
- New
wrap()
andvect()
generics forgiotto
,giottoPoints
, andgiottoPolygons
- New
rotate()
,t()
, andspatShift
generics for giotto subobject spatial manipulation - New
spatIDs()
andfeatIDs()
generics - New
objName()
andobjName
generics for setting the names of relevant S4 subobjects - New
rbind()
generic to appendgiottoPolygon
objects - Add packages
exactextractr
andsf
to "suggests" packages - Add package
progressr
to "imports" packages
- Move giotto object method*specific creation functions from
giotto.R
toconvenience.R
- Update
addFeatMetadata()
to handle replacement of existing columns - Update
show()
method forgiotto
- Update
show()
method forspatEnrObj
- Deprecate older snake_case accessors
- Deprecate
polygon_feat_names
param in favor ofz_indices
inreadPolygonFilesVizgenHDF5()
- Deprecate
xy_translate_spatial_locations()
in favor ofshift_spatial_locations()
- Optimize
readPolygonFilesVizgen()
- Fix bug in
replaceGiottoInstructions()
where instructions with more slots than previous are not allowed - Fix bug in
loadGiotto()
that prevents proper parsing of filenames when spat_unit or feat_type contains '_' characters - Fix
loadGiotto()
loss of overallocation for data.tablesbased objects after loading from disk
- New
initialize()
generic that callssetalloccol()
for data.table*based S4 subobjects to allow setting by reference - New
spatUnit
,spatUnit<*
,featType
, andfeatType<*
feat type generics for S4 subobjects for setting the relevant slots - Add
hexVertices()
to polygon shape array generation functionality
- Update
createGiottoCosMxObject()
for 3.0 and modularization of functions. 'subcellular' workflow has been tested to work along with an updated tutorial. - Update grid plotting behavior to set a default number columns to use based on number of elements to plot. Can be overridden by explicitly providing input to
cow_n_col
param - Fix bug in
annotateGiotto()
after 3.0 update (#433) - Fix bug in
joinGiottoObjects()
metadata processing - Update seed setting behavior in dimension_reduction.R and clustering.R
- New system color support detection (based on crayon package logic)
- Add ability to turn off colored text in
show
functions withoptions("giotto.color_show" = FALSE)
- Fix bug in
extract_polygon_list()
(#433) - Update Unicode character printing with
show
functions for Latin1 systems
- S4 subobjects framework will require giotto objects to be remade
- New
createGiottoXeniumObject()
for loading 10x Xenium data - New S4 subobjects. Details can be found in classes.R
- New basic generics for S4 subobjects. Mainly the use of
[]
and[]<*
to get or set information into the main data slot - New
@provenance
slot in S4 subobjects to track provenance of aggregated information (z_layers used for example) - New
calculateOverlapPolygonImages()
for calculating overlapped intensities from image*based information (e.g. IMC, IF, MIBI, ...) and polygon data (e.g. cell) - New
overlapImagesToMatrix()
converts intensity*polygon overlap info into an expression matrix (e.g. cell by protein) - New
aggregateStacks()
set of functions work with multiple subcellular layers when generating aggregated expression matrices
- Update
setter
functions to read the@spat_unit
and@feat_type
slots of subobjects to determine nesting - Update of
show
functions to display color coded nesting names and tree structure
- Update of python version to 3.10.2 details
- New
anndataToGiotto()
to convert scanpy anndata to Giotto
- New
GiottoData
package to work with spatial datasets associated with Giotto- Stores the minidatasets: preprocessed giotto objects that are ready to be used in any function
- Moved:
getSpatialDataset()
andloadGiottoMini()
functions to this package
- New
saveGiotto()
andloadGiotto()
for preserving memory*pointer based objects. In general_help.R- It saves a Giotto object into a folder using a specific structure. Essentially a wrapper around
saveRDS()
that also works with spatVector and spatRaster pointers.
- It saves a Giotto object into a folder using a specific structure. Essentially a wrapper around
- New
plotInteractivePolygon()
for plot*interactive polygonal selection of points. - New polygon shape array creation through
polyStamp()
,circleVertices
,rectVertices
. In giotto_structures.R - Add accessor functions
get_CellMetadata
(alias ofpDataDT()
),set_CellMetadata
,get_FeatMetadata
(alias offDataDT()
),set_FeatMetadata
. See accessors.R - New
filterDistributions()
to generate histogram plots from expression statistics
- Deprecate
plotInteractionChangedGenes()
,plotICG()
,plotCPG()
in favor ofplotInteractionChangedFeatures()
andplotICF()
andplotCPF()
- Deprecate
plotCellProximityGenes()
, in favor ofplotCellProximityFeatures()
- Deprecate
plotCombineInteractionChangedGenes()
,plotCombineICG()
,plotCombineCPG()
in favor ofplotCombineInteractionChangedFeatures()
andplotCombineICF()
- Deprecate
findInteractionChangedGenes()
,findICG()
,findCPG()
in favor offindInteractionChangedFeats()
andfindICF
- Deprecate
filterInteractionChangedGenes()
,filterICG()
,filterCPG()
in favor offilterInteractionChangedFeats()
andfilterICF()
- Deprecate
combineInteractionChangedGenes()
,combineICG()
,combineCPG()
in favor ofcombineInteractionChangedFeats()
andcombineICF()
- Deprecate
combineCellProximityGenes_per_interaction()
in favor ofcombineCellProximityFeatures_per_interaction()
- ICF output internal object structure names have changed to use feats instead of genes