Skip to main content

geomux

A tool that assigns guides to cell barcodes.

Uses a hypergeometric distribution to calculate the pvalue of observing the specific count of a guide for each guide in each barcode. This can be used to calculate the MOI of the cell and assigned guides for each cell. The resulting dataframe can then be used to intersect with your original data to assign every cell to a barcode and allows you to filter for the MOI you're interested in working with.

Installation

geomux is distributed via uv

uv tool install geomux
geomux --help

Usage

Geomux can be used either as a commandline tool or as a python module

Geomux supports two modes of operation:

  1. Hypergeometric testing
  2. Gaussian Mixture Model testing

This can be set with the --method flag on the CLI or by using the relevant function (geomux or gaussian_mixture)

Commandline

when installing via uv, an executable will be placed in your bin path. So you can call it directly from wherever in your filesystem

# example usage
geomux <input.tab / input.h5ad>

You can also run the help flag to see the help menu for parameter options.

 Usage: geomux [OPTIONS] INPUT [OUTPUT]

╭─ Arguments ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ *    input       TEXT      Input file path (tsv/h5ad) to assign guides. [required]                                                                 │
│      output      [OUTPUT]  Output file path (tsv) to save assignments. [default: geomux.tsv]                                                       │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --min-umi-cells                           INTEGER  Minimum UMI count to consider a barcode [default: 5]                                            │
│ --min-umi-guides                          INTEGER  Minimum number of barcodes to consider a guide [default: 5]                                     │
│ --fdr-threshold                           FLOAT    Maximum pvalue (fdr) to consider a guide-assignment [default: 0.05]                             │
│ --lor-threshold                           FLOAT    Log odds ratio threshold to use (None for adaptive thresholding)                                │
│ --adaptive-lor-scalar                     FLOAT    Scalar to adaptively set log odds ratio threshold                                               │
│ --subtract               --no-subtract             Subtract 1 from counts before testing. [default: subtract]                                      │
│ --stats                                   TEXT     Output file to write assignment statistics to as json                                           │
│ --method                                  TEXT     Method to use for assignment (geomux/mixture) [default: geomux]                                 │
│ --n-jobs                                  INTEGER  Number of jobs to use for parallel processing (mixture model only). -1 for all available cores. │
│                                                    [default: -1]                                                                                   │
│ --help                                             Show this message and exit.                                                                     │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Python Module

Processing an h5ad file format

import anndata as ad
from geomux import geomux, gaussian_mixture

input = "filename.h5ad"

adata = ad.read_h5ad(input)

assignments_geomux = geomux(adata)
print(assignments_geomux)

assignments_mixture = gaussian_mixture(adata)
print(assignments_mixture)

Processing an gene x guide sparse matrix

import anndata as ad
from geomux import geomux

input = "filename.h5ad"

adata = ad.read_h5ad(input)
matrix = adata.X.tocsr()
assignments = geomux(matrix)
print(assignments)

Outputs

The results of geomux will be an assignment dataframe that has as many observations as there are input cells.

The columns of this dataframe will include:

Column Name Description
cell_id The numerical index of this cell in the count matrix.
submatrix_id The numerical index of this cell in the filtered count matrix.
cell The numerical index of this cell or the name of the cell if provided.
moi The number of assigned guides for this cell.
n_umi The number of total UMIs observed in the cell.
assignment A '|' separated string of the assigned guides for this cell.
guide_ids_original A '|' separated string of the assigned guide numerical indices.
umis A '|' separated string of the assigned guide UMIs.
fdr A '|' separated string of the false discovery rate of each assignment.
log_odds A '|' separated string of the log-odds of each assignment.
tested A bool designating whether this cell met the testing criteria.

Release files for geomux 0.5.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for geomux 0.5.5
File Size Uploaded
geomux-0.5.5.tar.gz 12.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for geomux 0.5.5
File Interpreter ABI Platform
geomux-0.5.5-py3-none-any.whl Python 3 none any Details

Total release size: 23.1 kB

Release files / geomux-0.5.5.tar.gz

Download URL geomux-0.5.5.tar.gz
Size 12.1 kB
Tags Source
SHA-256 checksum
How to use checksums
a58d4bd5835b3427e1d60a3ec162e62bb06125db1d2b22e3cef808a7f98c0335
BLAKE2b-256 checksum
How to use checksums
718b731b0c594e29b548bf430229766cc9855c5f0897ba264ca447f8cc4e146d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.3

Release files / geomux-0.5.5-py3-none-any.whl

Download URL geomux-0.5.5-py3-none-any.whl
Size 11.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b6c9772f8af584a6baca4dc78e6e0b9ecf558e8bb91d643a8639e813dfb29369
BLAKE2b-256 checksum
How to use checksums
2e8dc19a8026bc0d386019df0d2b19999d733f08ffe7fbe816602dd6ff512b11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.3

Release history Release notifications | RSS feed

This release

0.5.5 This release

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.1

2 release files

0.3.0

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page