pymare

PyMARE: Python Meta-Analysis & Regression Engine

https://github.com/neurostuff/pymare

Science Score: 46.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    3 of 5 committers (60.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary

Keywords

meta-analysis python

Keywords from Contributors

neuroimaging
Last synced: 6 months ago · JSON representation

Repository

PyMARE: Python Meta-Analysis & Regression Engine

Basic Info
Statistics
  • Stars: 55
  • Watchers: 6
  • Forks: 14
  • Open Issues: 19
  • Releases: 17
Topics
meta-analysis python
Created about 6 years ago · Last pushed 10 months ago
Metadata Files
Readme Contributing License Code of conduct Zenodo

README.md

PyMARE: Python Meta-Analysis & Regression Engine

A Python library for mixed-effects meta-regression (including meta-analysis).

Latest Version PyPI - Python Version License DOI Documentation Status GitHub CI Codecov

PyMARE is alpha software under heavy development; we reserve the right to make major changes to the API.

Quickstart

Install PyMARE from PyPI: pip install pymare

Or for the bleeding-edge GitHub version:

pip install git+https://github.com/neurostuff/pymare.git

Suppose we have parameter estimates from 8 studies, along with corresponding variances, and a single (fixed) covariate:

python y = np.array([-1, 0.5, 0.5, 0.5, 1, 1, 2, 10]) # study-level estimates v = np.array([1, 1, 2.4, 0.5, 1, 1, 1.2, 1.5]) # study-level variances X = np.array([1, 1, 2, 2, 4, 4, 2.8, 2.8]) # a fixed study-level covariate

We can conduct a mixed-effects meta-regression using restricted maximum-likelihood (ReML)estimation in PyMARE using the high-level meta_regression function:

```python from pymare import meta_regression

result = metaregression(y, v, X, names=['mycov'], addintercept=True, method='REML') print(result.todf()) ```

This produces the following output:

name estimate se z-score p-val ci_0.025 ci_0.975 0 intercept -0.106579 2.993715 -0.035601 0.971600 -5.974153 5.760994 1 my_cov 0.769961 1.113344 0.691575 0.489204 -1.412153 2.952075

Alternatively, we can achieve the same outcome using PyMARE's object-oriented API (which the meta_regression function wraps):

```python

from pymare import Dataset from pymare.estimators import VarianceBasedLikelihoodEstimator

A handy container we can pass to any estimator

dataset = Dataset(y, v, X)

Estimator class for likelihood-based methods when variances are known

estimator = VarianceBasedLikelihoodEstimator(method='REML')

All estimators expose a fit_dataset() method that takes a Dataset

instance as the first (and usually only) argument.

estimator.fit_dataset(dataset)

Post-fitting we can obtain a MetaRegressionResults instance via .summary()

results = estimator.summary()

Print summary of results as a pandas DataFrame

print(result.to_df()) ```

And if we want to be even more explicit, we can avoid the Dataset abstraction entirely (though we'll lose some convenient validation checks):

```python estimator = VarianceBasedLikelihoodEstimator(method='REML')

X must be 2-d; this is one of the things the Dataset implicitly handles.

X = X[:, None]

estimator.fit(y, v, X)

results = estimator.summary() ```

Owner

  • Name: The NeuroStore Ecosystem
  • Login: neurostuff
  • Kind: organization

Tools for neuroimaging meta-analysis

GitHub Events

Total
  • Release event: 5
  • Watch event: 6
  • Issue comment event: 3
  • Push event: 7
  • Pull request event: 11
  • Create event: 5
Last Year
  • Release event: 5
  • Watch event: 6
  • Issue comment event: 3
  • Push event: 7
  • Pull request event: 11
  • Create event: 5

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 292
  • Total Committers: 5
  • Avg Commits per committer: 58.4
  • Development Distribution Score (DDS): 0.171
Top Committers
Name Email Commits
Tal Yarkoni t****i@g****m 242
Taylor Salo t****6@f****u 35
nicholst t****s@b****k 9
JulioAPeraza j****4@f****u 4
Julio A. Peraza 5****a@u****m 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 53
  • Total pull requests: 56
  • Average time to close issues: 4 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 8
  • Total pull request authors: 4
  • Average comments per issue: 2.09
  • Average comments per pull request: 1.3
  • Merged pull requests: 53
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 7
  • Average time to close issues: N/A
  • Average time to close pull requests: 2 days
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.86
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tsalo (37)
  • tyarkoni (8)
  • jdkent (2)
  • JulioAPeraza (2)
  • nicholst (1)
  • safoora174 (1)
  • shashankbansal6 (1)
  • TKMarkCheng (1)
Pull Request Authors
  • tsalo (29)
  • tyarkoni (16)
  • JulioAPeraza (12)
  • jdkent (11)
Top Labels
Issue Labels
bug (13) enhancement (13) documentation (6) testing (4) maintenance (3) breaking-change (2) help wanted (2) question (2) wontfix (1) good first issue (1)
Pull Request Labels
enhancement (12) maintenance (8) bug (7) documentation (7) ignore-for-release (5) breaking-change (2) testing (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 1,500 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 2
  • Total versions: 20
  • Total maintainers: 2
pypi.org: pymare

PyMARE: Python Meta-Analysis & Regression Engine

  • Versions: 20
  • Dependent Packages: 1
  • Dependent Repositories: 2
  • Downloads: 1,500 Last month
Rankings
Dependent packages count: 4.7%
Downloads: 8.7%
Average: 9.3%
Stargazers count: 10.2%
Forks count: 11.4%
Dependent repos count: 11.6%
Maintainers (2)
Last synced: 7 months ago

Dependencies

.github/workflows/python-publish.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/testing.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • codecov/codecov-action v1 composite
  • mstachniuk/ci-skip master composite
pyproject.toml pypi
setup.py pypi