Skip to main content

phlashlib

This library computes the log-likelihood of binary heterozygosity sequences under a sequentially Markov coalescent model with recombination.

API

phlashlib.loglik(
    data: Int[ArrayLike, "L"],
    iicr: IICRCurve,
    times: Float[ArrayLike, "T"],
    theta: ScalarLike,
    rho: ScalarLike,
    warmup: int = 500,
    chunk_size: int = None,
) -> Scalar

Features

  • JAX-compatible: vmap, jit, grad, etc.
  • GPU-accelerated via cuda.core.experimental (fallback to CPU if unavailable)

Example

from phlashlib.iicr import PiecewiseConstant
from phlashlib.loglik import loglik
import jax.numpy as jnp

times = jnp.array([0.0, 0.1, 0.5, 2.0])
rates = jnp.array([100.0, 10.0, 1.0])
iicr = PiecewiseConstant(t=times[:-1], c=rates)

data = jnp.array([0, 1, 1, 0, -1, 1, 0, 0], dtype=jnp.int8)
theta = 1.5
rho = 0.5

ll = loglik(data, iicr, times, theta, rho)

JAX Use

from jax import jit, vmap, grad

# JIT
f = jit(loglik)

# Vectorized over data
batched_ll = vmap(loglik, in_axes=(0, None, None, None, None))(batch_data, iicr, times, theta, rho)

# Gradient w.r.t. theta
dtheta = grad(loglik, argnums=3)(data, iicr, times, theta, rho)

Notes

  • data: 1D int8, values in {0, 1, -1}
  • iicr: subclass of IICRCurve, e.g. PiecewiseConstant
  • theta, rho: scalar mutation and recombination rates
  • Internally uses a fused CUDA kernel with jax.custom_vjp if available
  • Fallback implementation uses pure JAX

Download files

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

Source Distribution

phlashlib-0.2.2.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

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

phlashlib-0.2.2-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file phlashlib-0.2.2.tar.gz.

File metadata

  • Download URL: phlashlib-0.2.2.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for phlashlib-0.2.2.tar.gz
Algorithm Hash digest
SHA256 61ed2a31dcc32a32c00389aa13c3d6df80585dfb0b02d0d68f8c6ebe6aa567df
MD5 7d0cf1ff28e7bf94f9234180e152e6ad
BLAKE2b-256 e24c2725d296efd338d11b40c8964bc3374f888d44ca68a5119f33efccd98c10

See more details on using hashes here.

File details

Details for the file phlashlib-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: phlashlib-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 13.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for phlashlib-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6e2e87923db7d5fd06cf3a6e35aa52be0ca4ded991f7700876caae18ab415ba4
MD5 8908f3d2527aa0f86c22bea60a2aee8e
BLAKE2b-256 08a9ebb763fee5c2c283c4532e190e404a0751b03b7daaade7c8b2d252d6797d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 files

0.2.1

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

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