Skip to main content

A tool to simulate cell/guide matrices

Project description

muxsim

a python module for generate cell / guide matrices for demultiplex testing.

Installation

pip install muxsim

Usage

Muxsim is expected to be used as a python module. It has reasonable defaults for most use cases, but can be configured to your liking.

Here is a simple example of how to use muxsim:

from muxsim import MuxSim

ms = MuxSim()
matrix = ms.sample()

The sampling scheme can be fully parameterized like so:

from muxsim import MuxSim

ms = MuxSim(
    num_cells=10000,
    num_guides=100,
    n=10.0,
    p=0.1,
    λ=0.8,
    random_state=42,
)
matrix = ms.sample()

Methods

The simulator, muxsim, is based on a Multinomial distribution, where the number of draws $(\mathcal{S})$ of cell $(i)$ is drawn from a Negative Binomial distribution representing the number of observed UMIs of that cell.

$$ \begin{align} \mathbb{U}_i &\sim \text{Multinomial}(\mathbb{S}_i,\ f_i) \ \mathbb{S}_i &\sim \text{NegativeBinomial}(n,\ p) \ \end{align} $$

The frequencies of the multinomial distribution are cell specific and sum to 1:

$$ \sum_{j=1}^{M}{f_{ij}} = 1 $$

The background frequencies are assumed to be equiprobable (where $(\forall u,v \in M)(f_{iu} = f_{iv})$ ), except for signal guides - which would be a scaled by some value $(r)$. The number of signal guides is chosen using a Poisson prior to simulate situations where the expected multiplicity of infection (MOI) can change:

$$ \mathbb{I}_i \sim \text{Poisson}(\lambda) $$

The signal guides are chosen randomly from the guide set where the number of choices is equal to the MOI of that cell:

$$ \mathbb{C}_i \sim \text{Uniform}(M, \mathbb{I}_i) $$

This allows us to then set the the signal guides at a rate $(r)$ above the background with the following expression:

$$ t_{ij} = \begin{cases} r,& \text{if } j \in \mathbb{C}_i \ 1,& \text{if } j \not\in \mathbb{C}_i \end{cases} $$

Which can then be turned into the frequency matrix:

$$ f_i = \frac{t_{i}}{\sum_{j=1}^{M}t_{ij}} $$

Which forces $f_{ij}$ to sum to 1.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

muxsim-0.1.1.tar.gz (34.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

muxsim-0.1.1-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file muxsim-0.1.1.tar.gz.

File metadata

  • Download URL: muxsim-0.1.1.tar.gz
  • Upload date:
  • Size: 34.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.18

File hashes

Hashes for muxsim-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e7b1429577c135d1caf30c43df3c20f31f7359e13f572f30dae6372c1f297485
MD5 753425bbd67262cc9611f95123ba1fe9
BLAKE2b-256 8afbb9c4d1632a76bdf04693dd014d64c1a91abe646f05b0402f003ea50b20ed

See more details on using hashes here.

File details

Details for the file muxsim-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: muxsim-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 3.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.18

File hashes

Hashes for muxsim-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e82c4649f1c6c69d0bc8d3f3227da12f7363aa80d63e37b416d141002a73c6ac
MD5 3ff810ce375508773a18a663205d0d5a
BLAKE2b-256 fccd08563e4605876c7b967b4c06dda5ff0fc57f6404c2d40fa320b1d5506ced

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page