smoppix
Single-molecule spatial omics models analyzed through the probabilistic index
Science Score: 49.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 2 DOI reference(s) in README -
○Academic publication links
-
✓Committers with academic emails
1 of 2 committers (50.0%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.7%) to scientific vocabulary
Last synced: 7 months ago
·
JSON representation
Repository
Single-molecule spatial omics models analyzed through the probabilistic index
Basic Info
- Host: GitHub
- Owner: sthawinke
- Language: R
- Default Branch: main
- Size: 25.1 MB
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Created about 2 years ago
· Last pushed 7 months ago
Metadata Files
Readme
README.Rmd
--- output: github_document title: "SMOPPIX: Single-MOlecule sPatial omics data analysed using the Probabilistic IndeX" --- This repo provides code for analyzing single-molecule spatial omics data and cell type location data using probabilistic indices as introduced in our [preprint](https://doi.org/10.1101/2025.05.20.654270). A simple use-case is shown below, more extensive documentation can be found in the vignette. The package can be installed from Bioconductor as follows: ```{r install, eval = FALSE} library(Biocmanager) install("smoppix") ``` The latest version can be installed from this Github repo as: ```{r installAndLoadGitHub, eval = FALSE} library(devtools) install_github("sthawinke/smoppix") ``` Once installed, you can load the package ```{r loadSmoppix} library(smoppix) ``` Patterns that can be detected by _smoppix_:
![]()
For illustration, we now load an example dataset, contained in the package. It is in table format, so we first convert it to a _spatstat_ hyperframe. ```{r loadYang} data(Yang) hypYang <- buildHyperFrame(Yang, coordVars = c("x", "y"), imageVars = c("day", "root", "section") ) ``` The number of unique images found is printed, make sure that this is what you expected. Now to make completely sure the software has understood us, we make an exploratory plot: ```{r explPlot, fig.height = 6} plotExplore(hypYang) ``` As an example analysis, we estimate the univariate nearest neighbour probabilistic index as a measure of aggregation (clustering): ```{r nn} nnObj <- estPis(hypYang, pis = "nn", null = "background", verbose = FALSE) ``` We add a variance weighting function to prepare for analysis and plot it: ```{r wf} nnObj <- addWeightFunction(nnObj, designVars = c("day", "root")) plotWf(nnObj, pi = "nn") ``` As expected, the weight allotted to the point pattern increases with the number of molecules in it: denser patterns provide more precise estimates of localization patterns. Next is the inference step: we fit linear mixed models, and show the most significant results: ```{r inference} allModsNN <- fitLMMs(nnObj, fixedVars = "day", randomVars = "root") head(getResults(allModsNN, "nn", "Intercept")) ``` Let's make it visual and plot the most significantly aggregated transcripts: ```{r plotTopRes} plotTopResults(hypYang, allModsNN, pi = "nn") ``` Finally write the results to a spreadsheet: ```{r writeToSpreadsheet, eval = FALSE} writeToXlsx(allModsNN, file = "myfile.xlsx") ```
Owner
- Login: sthawinke
- Kind: user
- Repositories: 1
- Profile: https://github.com/sthawinke
PhD in BioStatistics at Ghent University, Belgium
GitHub Events
Total
- Delete event: 4
- Push event: 37
- Create event: 2
Last Year
- Delete event: 4
- Push event: 37
- Create event: 2
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| stijn | s****l@p****e | 872 |
| A Wokaty | a****y@s****u | 2 |
Committer Domains (Top 20 + Academic)
sph.cuny.edu: 1
psb.ugent.be: 1
Packages
- Total packages: 1
-
Total downloads:
- bioconductor 1,523 total
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 1
- Total maintainers: 1
bioconductor.org: smoppix
Analyze Single Molecule Spatial Omics Data Using the Probabilistic Index
- Homepage: https://github.com/sthawinke/smoppix
- Documentation: https://bioconductor.org/packages/release/bioc/vignettes/smoppix/inst/doc/smoppix.pdf
- License: GPL-2
-
Latest release: 1.0.0
published 12 months ago
Rankings
Dependent repos count: 0.0%
Dependent packages count: 30.3%
Average: 40.8%
Downloads: 92.0%
Maintainers (1)
Last synced:
7 months ago
Dependencies
DESCRIPTION
cran
- R >= 4.3.0 depends
- BiocParallel * imports
- Matrix * imports
- Rcpp >= 1.0.11 imports
- Rdpack * imports
- SpatialExperiment * imports
- SummarizedExperiment * imports
- extraDistr * imports
- ggplot2 * imports
- grDevices * imports
- graphics * imports
- lme4 * imports
- lmerTest * imports
- methods * imports
- openxlsx * imports
- scam * imports
- spatstat.geom >= 3.2.0 imports
- spatstat.model * imports
- spatstat.random * imports
- stats * imports
- utils * imports
- DropletUtils * suggests
- RImageJROI * suggests
- ape * suggests
- knitr * suggests
- polyCub * suggests
- rmarkdown * suggests
- sp * suggests
- testthat * suggests
SMOPPIX: Single-MOlecule sPatial omics data analysed using the Probabilistic IndeX"
---
This repo provides code for analyzing single-molecule spatial omics data and cell type location data using probabilistic indices as introduced in our [preprint](https://doi.org/10.1101/2025.05.20.654270). A simple use-case is shown below, more extensive documentation can be found in the vignette.
The package can be installed from Bioconductor as follows:
```{r install, eval = FALSE}
library(Biocmanager)
install("smoppix")
```
The latest version can be installed from this Github repo as:
```{r installAndLoadGitHub, eval = FALSE}
library(devtools)
install_github("sthawinke/smoppix")
```
Once installed, you can load the package
```{r loadSmoppix}
library(smoppix)
```
Patterns that can be detected by _smoppix_:
For illustration, we now load an example dataset, contained in the package. It is in table format, so we first convert it to a _spatstat_ hyperframe.
```{r loadYang}
data(Yang)
hypYang <- buildHyperFrame(Yang,
coordVars = c("x", "y"),
imageVars = c("day", "root", "section")
)
```
The number of unique images found is printed, make sure that this is what you expected. Now to make completely sure the software has understood us, we make an exploratory plot:
```{r explPlot, fig.height = 6}
plotExplore(hypYang)
```
As an example analysis, we estimate the univariate nearest neighbour probabilistic index as a measure of aggregation (clustering):
```{r nn}
nnObj <- estPis(hypYang, pis = "nn", null = "background", verbose = FALSE)
```
We add a variance weighting function to prepare for analysis and plot it:
```{r wf}
nnObj <- addWeightFunction(nnObj, designVars = c("day", "root"))
plotWf(nnObj, pi = "nn")
```
As expected, the weight allotted to the point pattern increases with the number of molecules in it: denser patterns provide more precise estimates of localization patterns.
Next is the inference step: we fit linear mixed models, and show the most significant results:
```{r inference}
allModsNN <- fitLMMs(nnObj, fixedVars = "day", randomVars = "root")
head(getResults(allModsNN, "nn", "Intercept"))
```
Let's make it visual and plot the most significantly aggregated transcripts:
```{r plotTopRes}
plotTopResults(hypYang, allModsNN, pi = "nn")
```
Finally write the results to a spreadsheet:
```{r writeToSpreadsheet, eval = FALSE}
writeToXlsx(allModsNN, file = "myfile.xlsx")
```