Metadata-Version: 2.3
Name: comet-toolbox
Version: 0.7
Summary: Dynamic functional connectivity toolbox for multiverse analysis
Project-URL: Homepage, https://github.com/mibur1/dfc-multiverse
Project-URL: Issues, https://github.com/mibur1/dfc-multiverse/issues
Author-email: Micha Burkhardt <micha.burkhardt@uol.de>
License-File: LICENSE
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Requires-Dist: bctpy>=0.6.1
Requires-Dist: importlib-resources>=6.4.0
Requires-Dist: ipykernel>=6.29.3
Requires-Dist: jinja2>=3.1.2
Requires-Dist: joblib>=1.3.2
Requires-Dist: mat73>=0.65
Requires-Dist: matplotlib>=3.8.2
Requires-Dist: networkx>=3.2.1
Requires-Dist: nibabel>=5.1.0
Requires-Dist: nilearn>=0.10.2
Requires-Dist: notebook>=7.0.6
Requires-Dist: numba>=0.58.1
Requires-Dist: numpy>=1.26.2
Requires-Dist: pandas>=2.1.3
Requires-Dist: pybids>=0.16.4
Requires-Dist: pycwt>=0.4.0b0
Requires-Dist: pydfc>=1.0.4
Requires-Dist: pyqt6-tools>=6.4.2
Requires-Dist: pytest>=8.2.2
Requires-Dist: qdarkstyle>=3.2.3
Requires-Dist: scikit-learn>=1.3.2
Requires-Dist: scipy>=1.11.4
Requires-Dist: seaborn>=0.13.0
Requires-Dist: statsmodels>=0.14.0
Requires-Dist: tqdm>=4.66.1
Provides-Extra: doc
Requires-Dist: nbsphinx>=0.9.4; extra == 'doc'
Requires-Dist: sphinx-autodoc-typehints>=1.14.0; extra == 'doc'
Requires-Dist: sphinx-rtd-theme>=1.0.0; extra == 'doc'
Requires-Dist: sphinx>=5.3.0; extra == 'doc'
Description-Content-Type: text/markdown

<div style="padding-top:1em; padding-bottom: 0.5em;">
<img src="src/comet/resources/img/logo.svg" width =130 align="right" />
</div>

# Comet - A toolbox for dynamic functional connectivity and multiverse analysis

[![DOI](https://img.shields.io/badge/DOI-10.1101%2F2024.01.21.576546-blue?logo=arxiv)](https://doi.org/10.1101/2024.01.21.576546) [![PyPI](https://img.shields.io/badge/PyPI-comet--toolbox-orange?logo=PyPI)](https://pypi.org/project/comet-toolbox/)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/2e766745c5c04d4786ea28f7135c193e)](https://app.codacy.com/gh/mibur1/comet/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade) [![Documentation Status](https://readthedocs.org/projects/comet-toolbox/badge/?version=latest)](https://comet-toolbox.readthedocs.io/en/latest/) [![Coverage Status](https://coveralls.io/repos/github/mibur1/dfc-multiverse/badge.svg?branch=main)](https://coveralls.io/github/mibur1/dfc-multiverse?branch=main)


## About the toolbox

Please refer to the **[documentation](https://comet-toolbox.readthedocs.io/en/latest/)** for detailed information about the toolbox. The following README will only provide a very brief overview.

Please also note that the package is in an early stage of development, with frequent changes being made. If you intend to use this package at this stage, please feel free to contact me via the email address in the [`pyproject.toml`](https://github.com/mibur1/dfc-multiverse/blob/main/pyproject.toml) file. Some features are also not yet tested, so there will be bugs (the question is just how many).

### Installation and usage

It is recommended to use a dedicated Python environment (e.g. through conda) to mitigate the risk of potential version conflicts. Installation is possible through the Python Package Index (PyPI) or from the source code in this repository:

```
pip install comet-toolbox
```

Usage of the toolbox is then possible through either the GUI:

```
comet-gui
```

or (for more versatile usage) through the scripting API. For this, **[demo scripts](https://github.com/mibur1/dfc-multiverse/tree/main/tutorials)** are provided as starting points:

* Demo script for **[calculating dFC](tutorials/example_dfc.ipynb)**
* Demo script for **[performing multiverse analysis](tutorials/example_multiverse.ipynb)**
* Demo script for **[multiverse analysis example from the preprint](tutorials/example_analysis.ipynb)** (+ additional visualizations)
* Demo script for **[graph analysis](tutorials/example_graph.ipynb)**

### Current features

<table style="width: 100%; border-collapse: collapse;">
    <tr>
        <th style="text-align: left; padding: 8px; border: 1px solid #ddd;">Functional Connectivity</th>
        <th style="text-align: left; padding: 8px; border: 1px solid #ddd;">Graph Analysis</th>
        <th style="text-align: left; padding: 8px; border: 1px solid #ddd;">Multiverse Analysis</th>
    </tr>
    <tr>
        <td style="vertical-align: top; padding: 8px; border: 1px solid #ddd;">
            <strong>Continuous</strong>
            <ul>
                <li>Sliding Window Correlation</li>
                <li>Jackknife Correlation</li>
                <li>Flexible Least Squares</li>
                <li>Spatial Distance</li>
                <li>Temporal Derivatives</li>
                <li>Phase Synchronization</li>
                <li>Leading Eigenvector Dynamics</li>
                <li>Wavelet Coherence</li>
                <li>Edge-centric connectivity</li>
            </ul>
            <strong>State-Based</strong>
            <ul>
                <li>SW Clustering</li>
                <li>Co-activation Patterns</li>
                <li>Discrete HMM</li>
                <li>Continuous HMM</li>
                <li>Windowless</li>
            </ul>
            <strong>Static</strong>
            <ul>
                <li>Pearson Correlation</li>
                <li>Partial Correlation</li>
                <li>Mutual Information</li>
            </ul>
        </td>
        <td style="vertical-align: top; padding: 8px; border: 1px solid #ddd;">
            <strong>Optimized implementation</strong>
            <ul>
                <li>Average Path Length</li>
                <li>Global Efficiency</li>
                <li>Nodal Efficiency</li>
                <li>Small-World Sigma</li>
                <li>Small-World Propensity</li>
                <li>Matching Index</li>
            </ul>
            <strong>Standard Graph Functions</strong>
            <ul>
                <li>Threshold</li>
                <li>Binarise</li>
                <li>Symmetrise</li>
                <li>Negative weights</li>
                 <li>...</li>
            </ul>
            <strong>BCT Integration</strong>
            <ul>
                <li>All BCT functions can be<br>used seamlessly fory<br>multiverse analysis</li>
                <li>Many BCT functions are available in the GUI</li>
            </ul>
        </td>
        <td style="vertical-align: top; padding: 8px; border: 1px solid #ddd;">
            <strong>Simple Definition</strong>
            <ul>
                <li>Forking paths as<br>python dictionary</li>
                <li>Analysis pipeline template with decision points</li>
            </ul>
            <strong>Generation</strong>
            <ul>
                <li>Universes are created<br>as individual scripts</li>
                <li>Modular approach</li>
            </ul>
            <strong>Analysis</strong>
            <ul>
                <li>Individual universes</li>
                <li>Entire multiverse (parallel)</li>
            </ul>
            <strong>Visualization</strong>
            <ul>
                <li>Multiverse summary</li>
                <li>Multiverse as a network</li>
                <li>Specification curve analysis</li>
            </ul>
        </td>
    </tr>
</table>
