Skip to main content

JointShrink

JointShrink estimates effects jointly across tissues or conditions using multivariate adaptive shrinkage. It learns covariance patterns from supplied effect estimates and their standard errors, then computes posterior summaries. A native Student-t likelihood and direct outcome-regression models extend this workflow. Fitting uses NumPy and SciPy and does not require R.

Installation

pip install jointshrink

For Matplotlib plots and pandas tables:

pip install "jointshrink[plot,table]"

From GitHub:

pip install "git+https://github.com/nilson01/jointshrink.git"

From a local checkout:

pip install .

Python 3.10 or later is required.

Fit effects across conditions

from jointshrink import set_data, fit

data = set_data(
    [[2, 1.7], [-2, -1.4], [0, .1], [.3, .5], [-.5, -.2], [1, .8]],
    standard_errors=.5,
    condition_names=["A", "B"],
)
result = fit(data, scales=[.2, 1, 2])
print(result.posterior_mean[:2].round(4))
[[ 1.6444  1.6444]
 [-1.5111 -1.5111]]

This constructed example favors a shared-effect pattern. Its intervals and sign probabilities condition on the fitted patterns and mixture weights.

Posterior summaries for constructed inputs

Choose an analysis

Input Models and entry points
Effect estimates and standard errors Gaussian MASH: set_data, fit, fit_prior
Effect estimates and supplied t scales Native multivariate Student-t: fit_student_t
Outcomes and predictors Gaussian, binomial, Poisson, negative-binomial: fit_regression
Event times and censoring indicators Cox and Weibull proportional hazards: fit_survival
Category codes Multinomial and ordinal: fit_multinomial, fit_ordinal
Counts with a separate zero process Poisson/NB zero-inflated and hurdle wrappers
Grouped outcomes Random intercepts or slopes through groups and random_design

The Gaussian summary route follows Urbut et al. (2019). Direct regression samples coefficients and mixture weights under separate Bayesian likelihood models. Check chain diagnostics before interpreting results. Residual SD, count dispersion, ordinal thresholds and Weibull shape are supplied and held fixed.

Documentation and citation

Documentation website

Cite the method paper and record the JointShrink version used. Numerical comparisons describe the checked cases and their limits. See NOTICE and LICENSE for credit and license terms.

Metadata

Release files for jointshrink 0.1.0

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

Source distribution (sdist)

Source distribution for jointshrink 0.1.0
File Size Uploaded Provenance
jointshrink-0.1.0.tar.gz 1.8 MB With provenance Details

Built distribution (wheel)

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

Total release size: 1.9 MB

Release files / jointshrink-0.1.0.tar.gz

Download URL jointshrink-0.1.0.tar.gz
Size 1.8 MB
Tags Source
SHA-256 checksum
How to use checksums
d7398f561a5940732331688b666a0786bdaaf632c81acd842e90284b4dbdafe0
BLAKE2b-256 checksum
How to use checksums
8f552353063dcde2807067c33f438508418589e150992a06a9fd37ba981ace59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Release files / jointshrink-0.1.0-py3-none-any.whl

Download URL jointshrink-0.1.0-py3-none-any.whl
Size 63.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
028d7c0b222e23c884e66ba37bd1dbdcce43e29a9783d6dfecc473df50a3b982
BLAKE2b-256 checksum
How to use checksums
bd3b8a731401f4b31deee6cbf807e3d85d31f2c6ba21c0293c7ca9bb2a356151
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Security for jointshrink 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for jointshrink-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

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