- 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
- 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