jive

A data analysis package for high-dimensional, multi-block data.

https://github.com/idc9/py_jive

Science Score: 20.0%

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

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Committers with academic emails
    1 of 2 committers (50.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.6%) to scientific vocabulary
Last synced: 11 months ago · JSON representation

Repository

A data analysis package for high-dimensional, multi-block data.

Basic Info
  • Host: GitHub
  • Owner: idc9
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 18 MB
Statistics
  • Stars: 11
  • Watchers: 5
  • Forks: 5
  • Open Issues: 3
  • Releases: 0
Created about 9 years ago · Last pushed over 4 years ago
Metadata Files
Readme License

README.rst

**This version of the package is now deprecated! The new version of the AJIVE code can be found under https://github.com/idc9/mvdr**


jive
----

**author**: `Iain Carmichael`_

Additional documentation, examples and code revisions are coming soon.
For questions, issues or feature requests please reach out to Iain:
iain@unc.edu.

Overview
========

**jive** is a data analysis package for high-dimensional, multi-block
(or multi-view) data. The multi-block data setting means two or more data
matrices with a fixed set of observations (e.g. patients) and multiple
sets of features (e.g. clinical features and gene expression data).


The primary algorithm in this package is Angle based Joint and
Individual Variation Explained (AJIVE) which is a data integration/feature
extraction algorithm. AJIVE finds joint modes of variation which are
common to all K data blocks as well as modes of *individual* variation which
are specific to each block. For a detailed discussion of AJIVE see
`Angle-Based Joint and Individual Variation Explained`_. An R version of
AJIVE can be found `here`_.

Installation
============
To install use pip:

::

    pip install jive


Or clone the repo:

::

    git clone https://github.com/idc9/py_jive.git
    python setup.py install

jive is currently available for python 3

Example
=======

.. code:: python

    from jive.AJIVE import AJIVE
    from jive.PCA import PCA
    from jive.ajive_fig2 import generate_data_ajive_fig2
    from jive.viz.block_visualization import data_block_heatmaps, jive_full_estimate_heatmaps
    import matplotlib.pyplot as plt
    # %matplotlib inline

    X, Y = generate_data_ajive_fig2()
    data_block_heatmaps([X, Y])

.. image:: doc/figures/data_heatmaps.png

.. code:: python

    # determine initial signal ranks by inspecting scree plots
    plt.figure(figsize=[10, 5])
    plt.subplot(1, 2, 1)
    PCA().fit(X).plot_scree()
    plt.subplot(1, 2, 2)
    PCA().fit(Y).plot_scree()

.. image:: doc/figures/scree_plots.png

.. code:: python

    ajive = AJIVE(init_signal_ranks={'x': 2, 'y': 3})
    ajive.fit(blocks={'x': X, 'y': Y})

    plt.figure(figsize=[10, 20])
    jive_full_estimate_heatmaps(ajive.get_full_block_estimates(),
                                blocks={'x': X, 'y': Y})

.. image:: doc/figures/jive_estimate_heatmaps.png

.. code:: python

    ajive.plot_joint_diagnostic()

.. image:: doc/figures/jive_diagnostic.png


Help and Support
================

Additional documentation, examples and code revisions are coming soon.
For questions, issues or feature requests please reach out to Iain:
iain@unc.edu.

Documentation
^^^^^^^^^^^^^

The source code is located on github:
`https://github.com/idc9/py\_jive`_. Currently the best math reference
is the `AJIVE paper`_.

Testing
^^^^^^^

Testing is done using `nose`_.

Contributing
^^^^^^^^^^^^

We welcome contributions to make this a stronger package: data examples,
bug fixes, spelling errors, new features, etc.

Citation
^^^^^^^^

.. image:: https://zenodo.org/badge/94366513.svg
   :target: https://zenodo.org/badge/latestdoi/94366513

.. _Iain Carmichael: https://idc9.github.io/
.. _Angle-Based Joint and Individual Variation Explained: https://arxiv.org/pdf/1704.02060.pdf
.. _here: https://github.com/idc9/r_jive
.. _these example notebooks: doc/example_notebooks/
.. _`https://github.com/idc9/py\_jive`: https://github.com/idc9/r_jive
.. _AJIVE paper: https://arxiv.org/pdf/1704.02060.pdf
.. _nose: http://nose.readthedocs.io/en/latest/
.. _Journal of Statistical Software: https://www.jstatsoft.org/index

Owner

  • Name: Iain Carmichael
  • Login: idc9
  • Kind: user

Statistics + computational pathology

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 163
  • Total Committers: 2
  • Avg Commits per committer: 81.5
  • Development Distribution Score (DDS): 0.018
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
idc9 i****9@c****u 160
Thomas Keefe t****e@g****m 3
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: over 2 years ago

All Time
  • Total issues: 6
  • Total pull requests: 1
  • Average time to close issues: 5 months
  • Average time to close pull requests: 1 day
  • Total issue authors: 2
  • Total pull request authors: 1
  • Average comments per issue: 0.33
  • Average comments per pull request: 2.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • idc9 (5)
  • saroudant (1)
Pull Request Authors
  • thomaskeefe (1)
Top Labels
Issue Labels
enhancement (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 42 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 8
  • Total maintainers: 1
pypi.org: jive

A data analysis package for high-dimensional, multi-block (multi-view) data.

  • Versions: 8
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 42 Last month
Rankings
Dependent packages count: 10.0%
Forks count: 14.2%
Stargazers count: 16.5%
Average: 17.3%
Dependent repos count: 21.7%
Downloads: 23.8%
Maintainers (1)
Last synced: 11 months ago