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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7b1429577c135d1caf30c43df3c20f31f7359e13f572f30dae6372c1f297485
|
|
| MD5 |
753425bbd67262cc9611f95123ba1fe9
|
|
| BLAKE2b-256 |
8afbb9c4d1632a76bdf04693dd014d64c1a91abe646f05b0402f003ea50b20ed
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e82c4649f1c6c69d0bc8d3f3227da12f7363aa80d63e37b416d141002a73c6ac
|
|
| MD5 |
3ff810ce375508773a18a663205d0d5a
|
|
| BLAKE2b-256 |
fccd08563e4605876c7b967b4c06dda5ff0fc57f6404c2d40fa320b1d5506ced
|