Skip to content

Releases: drieslab/Giotto

v4.0.0

29 Nov 18:26
2586767
Compare
Choose a tag to compare

Giotto is now a modularized suite of packages.
This version is paired with our bioRxiv pre-print

v3.3.2

29 Nov 18:21
f810559
Compare
Choose a tag to compare

Final Giotto version prior to 4.0.0 modularization.

v3.3.1

29 Nov 18:16
cde56f8
Compare
Choose a tag to compare

Breaking Changes

  • Change checkGiottoEnvironment(). Downgrade from error to message and return FALSE when a provided directory does not exist

Added

  • New file poly_influence.R
  • New function showPolygonSizeInfluence() within poly_influence.R to show if cells switch clusters when across resized polygon annotations
  • New function showCellProportionSwitchedPie() within poly_influence.R to visualize results from showPolygonSizeInfluence() in a pie chart
  • New function showCellProportionSwitchedSankey() within poly_influence.R to visualize results from showPolygonSizeInfluence() in a Sankey diagram
  • New function makePseudoVisium() within giotto_structure.R to generate a pseudo visium grid of circular spots
  • New function tessellate() within giotto_structure.R to generate a grid of hexagons or squares for spatial binning
  • New file feature_set_enrichment.R
  • New function doFeatureSetEnrichment() within feature_set_enrichment.R for GSEA analysis
  • New function doGiottoClustree() within clustering.R for visualizations of leiden clusters at varying resolutions
  • New createArchRProj() and CreateGiottoObjectFromArchR() functions to create a giotto object with ATAC or epigenetic features using the ArchR pipeline.
  • New giottoMasterToSuite() function to convert a giotto 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 for exprObj creation
  • New file spatial_manipulation.R
  • Add ext() methods for giottoPolygon, giottoPoints, spatialNetworkObj, spatLocsObj, giottoLargeImage
  • Add flip() methods for giottoPolygon, giottoPoints, spatialNetworkObj, spatLocsObj, SpatExtent, giottoLargeImage
  • Add access to terra plotting params for giottoLargeImage plot() method.

Changes

  • 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() with plot_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 as data.table and skip giottoPolygon creation. Downstream giottoPolygon 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 use terra::plot() instead of terra::plotRGB() for grayscale images
  • Remove unnecessary prints from subsetGiotto()
  • Fix bug in readCellMetadata() and readFeatMetadata()

v3.3.0

19 Apr 12:59
310ae37
Compare
Choose a tag to compare

Breaking Changes

  • Removed all deprecated accessors from accessors.R
  • set_default_feat_type() error downgraded to warning when no feat_types exist for given spat_unit
  • update loadGiotto() and saveGiotto() to allow using long strings as column names in the spatVector objects
  • 'active_spat_unit' and 'active_feat_type' params that can be set through instructions() are now used instead of 'giotto.spat_unit' and 'giotto.feat_type' global options
  • removed duplicate create_dimObject() internal function. Keeping create_dim_obj()

Added

  • New implementations of anndataToGiotto() and giottoToAnnData() for Nearest Neighbor and Spatial Networks
  • New check_py_for_scanpy() function, shifting code around in anndataToGiotto()
  • Add initialize() method for giotto
  • Add exported create constructor functions for Giotto S4 subobjects
  • Add activeSpatUnit() and activeFeatType() 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 for giotto to access and edit giottoInstructions
  • Add centroids() method for giottoPolygon to get centroid info
  • Add overlaps() generic for accessing overlaps slot of giottoPolygon
  • Add [ and [<- (empty) access generics to get the data from main slots of giottoPolygon and giottoPoints
  • Add cores detection to run on package attach. (getOption('giotto.cores'))
  • Add option to return as giottoPoints from getFeatureInfo (default is still SpatVector)
  • Add spatVector_to_dt2 internal as a barebones alternative to spatVector_to_dt()
  • Add getRainbowColors() color palette
  • New assign_objnames_2_list() and assign_listnames_2_obj() internals for passing list names to object @name slots and vice versa
  • New test_that test_createObject.R script for read functions/S4 subobject creation
  • New test_that test_accessors.R script for accessor functions
  • New test_that test_gobject.R script for gobject consistency checks

Changes

  • 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() and evaluate_expr_matrix() to be compatible with exprObj
  • 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() for giottoPoints 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() and saveGiotto() with path.expand to expand provided file/directory paths
  • Organize new and refactored slot check functions in giotto.R for checking gobject consistency during initialize()
  • Organize new and refactored evaluate functions in data_evaluation.R for data wrangling of external data
  • Organize new and refactored read functions in data_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

v3.2.0

18 Apr 21:55
2e3e46f
Compare
Choose a tag to compare

(Originally Released 2023-02-02)

Breaking Changes

  • Removed support for deprecated nesting in @nn_network slot
  • createSpatialNetwork() will now output a spatialNetworkObj by default when return_gobject = FALSE. It is possible to change this back to the data.table output by setting output = 'data.table'
  • Set incomplete classes in classes.R as virtual to prevent their instantiation
  • Only createGiottoCosMxObject() subcellular workflow available until the others are updated

Added

  • 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() and spatialExperimentToGiotto() to convert between Giotto and SpatialExperiment
  • New spatialAutoCorLocal() and spatialAutoCorGlobal() 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 in giotto
  • Add coord_fix_ratio param to spatFeatPlot2D() and spatFeatPlot2D_single()
  • Add order parameter to dimFeatPlot2D and spatDimFeatPlot2d to plot and order cells according to the levels of the selected feature (#477)
  • Add plot() method for spatialNetworkObj
  • New set_row_order_dt() internal for setting data.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 S4 nnNetObj
  • Add id_col, x_col, y_col params to polyStamp() to make stamp location input more flexible
  • Add optional and custom_msg params to package_check()
  • New wrap() and vect() generics for giotto, giottoPoints, and giottoPolygons
  • New rotate(), t(), and spatShift generics for giotto subobject spatial manipulation
  • New spatIDs() and featIDs() generics
  • New objName() and objName generics for setting the names of relevant S4 subobjects
  • New rbind() generic to append giottoPolygon objects
  • Add packages exactextractr and sf to "suggests" packages
  • Add package progressr to "imports" packages

Changes

  • Move giotto object method-specific creation functions from giotto.R to convenience.R
  • Update addFeatMetadata() to handle replacement of existing columns
  • Update show() method for giotto
  • Update show() method for spatEnrObj
  • Deprecate older snake_case accessors
  • Deprecate polygon_feat_names param in favor of z_indices in readPolygonFilesVizgenHDF5()
  • Deprecate xy_translate_spatial_locations() in favor of shift_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 over-allocation for data.tables-based objects after loading from disk

v3.0.1

21 Nov 02:30
0a9df62
Compare
Choose a tag to compare

Release of Giotto Suite branch.

v1.1.0

07 Nov 22:50
Compare
Choose a tag to compare

This is the first release after merging the development branch with master following the 'ours' strategy as detailed in https://stackoverflow.com/questions/2862590/how-to-replace-master-branch-in-git-entirely-from-another-branch

The previous master branch is copied to a new branch called 'old_master'.

v1.0.4

07 Nov 22:17
Compare
Choose a tag to compare

Last release of original master branch. This branch will be re-named old_master. Development and master will be merged.

v1.0.3

09 Nov 14:45
Compare
Choose a tag to compare

Release version with reduced dependencies and hf5 option for visium data

v1.0.0

10 Oct 20:00
Compare
Choose a tag to compare

Full update on Giotto.
See https://rubd.github.io/Giotto_site/news/index.html#giotto-1-0-0 for more details.