Metadata-Version: 2.4
Name: dmri-commit
Version: 2.4.1
Summary: Convex Optimization Modeling for Microstructure Informed Tractography (COMMIT)
Author-email: Alessandro Daducci <alessandro.daducci@univr.it>
Maintainer-email: DICE lab <DICE_lab@strutture.univr.it>
License: ################################################################################
                               COMMIT software license agreement
                                  Version 2, 24 July 2023
        ################################################################################
        
        ------------------------------------PREAMBLE------------------------------------
        This license agreement (“Agreement”) is a legal agreement between you and the
        Diffusion Imaging and Connectivity Estimation laboratory (“DICE lab”) for the
        use of the COMMIT software (“Software”). By downloading and/or using the
        Software, you hereby accept and agree to all the terms and conditions of this
        Agreement. As used in this Agreement, “you” refers to any individual or
        organization that uses the Software.
        
        
        ------------------------------TERMS AND CONDITIONS------------------------------
        [1] License Grant
        Subject to all the terms and conditions of this Agreement, the DICE lab hereby
        grants you a worldwide, non-exclusive, non-transferable, limited license to
        copy, use, modify, and redistribute the Software solely for research and
        educational purposes, free of charge.
        
        [2] Commercial use
        You may not use the Software and/or any work based on or using the Software for
        any commercial purpose, including but not limited to selling, licensing,
        distributing, renting, or leasing the Software for profit. If you want to use
        the Software for commercial purposes, you may contact the DICE lab to obtain a
        commercial license agreement. The DICE lab may consider offering a commercial
        license, subject to negotiation of appropriate terms and conditions, including
        but not limited to the payment of a license fee and compliance with any
        additional restriction on the use of the Software.
        
        [3] Attributions and Acknowledgments
        You agree to provide an acknowledgement identifying the Software and referencing
        its use in any publication, presentation, research result, and product related
        to or arising from the use of the Software. You also agree to give proper
        attribution to the original Software and reproduce this Agreement in any
        modified and/or redistributed work based on the Software.
        
        [4] Patents
        If you plan to file a patent application based on or using the Software, you
        must contact the DICE lab. The DICE lab may have certain rights or restrictions
        related to such patents that need to be addressed before filing the application.
        
        [5] Compliance with Law
        In exercising your rights under this Agreement, you agree to comply with all
        applicable governmental laws and regulations, including but not limited to the
        use, export, and transmission of the Software. You are solely responsible for
        ensuring that your use of the Software complies with such laws and regulations.
        The DICE lab is not responsible for any violations of such laws or regulations
        by you.
        
        [6] Warranty
        The Software is provided "AS IS" without warranty of any kind, express or
        implied, including but not limited to the warranties of merchantability, fitness
        for a particular purpose and non-infringement of third-party rights. The
        Software may also contain errors and is subject to further development and
        revision. The DICE lab does not guarantee the accuracy of the Software or any
        result or data arising from the use of the Software.
        
        [7] Disclaimers
        The Software has been designed for research purposes only and has not been
        reviewed or approved by the Food and Drug Administration or by any other agency.
        You acknowledge and agree that clinical applications are neither recommended nor
        advised.
        
        [8] Limitation of Liability
        In no event shall the DICE lab be liable to any party for any direct, indirect,
        special, incidental, exemplary, or consequential damages, however caused and
        under any theory of liability, arising in any way related to the Software, even
        if the DICE lab has been advised of the possibility of such damages. Except to
        the extent prohibited by law or regulation, you assume all risk and liability
        for your use of the Software. You also agree to indemnify and hold harmless the
        DICE lab from and against all claims, suits, actions, demands, and judgments
        arising from your use or misuse of the Software.
        
        
        ------------------------------------CONTACT-------------------------------------
        If you have any question about the terms of this Agreement, you may contact the
        head of the DICE lab Alessandro Daducci at alessandro.daducci@univr.it
        
Project-URL: Homepage, https://github.com/daducci/COMMIT.git
Project-URL: Documentation, https://github.com/daducci/COMMIT/wiki
Project-URL: Repository, https://github.com/daducci/COMMIT.git
Project-URL: Issues, https://github.com/daducci/COMMIT/issues
Project-URL: Changelog, https://github.com/daducci/COMMIT/blob/master/CHANGELOG.md
Keywords: Neuroimaging
Classifier: Intended Audience :: Science/Research
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: C++
Classifier: Programming Language :: Cython
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: dmri-amico>=2.0.1
Requires-Dist: dmri-dicelib>=1.1.0
Requires-Dist: numpy<2.0.0,>=1.24.4
Requires-Dist: scipy>=1.10.1
Dynamic: license-file

[![PyPI](https://img.shields.io/pypi/v/dmri-commit)](https://pypi.org/project/dmri-commit/)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/dmri-commit)](#)
[![LICENSE](https://img.shields.io/github/license/daducci/commit)](https://github.com/daducci/COMMIT/blob/master/LICENSE)
[![GitHub top language](https://img.shields.io/github/languages/top/daducci/commit?color=lightgray)](#)
[![reference](https://img.shields.io/badge/DOI-10.1109/TMI.2014.2352414-red.svg)](https://ieeexplore.ieee.org/document/6884830)

[![GitHub stars](https://img.shields.io/github/stars/daducci/COMMIT?style=social)](#)
[![GitHub forks](https://img.shields.io/github/forks/daducci/COMMIT?style=social)](#)
[![GitHub watchers](https://img.shields.io/github/watchers/daducci/COMMIT?style=social)](#)
[![GitHub followers](https://img.shields.io/github/followers/daducci?style=social)](#)
[![GitHub contributors](https://img.shields.io/github/contributors-anon/daducci/COMMIT?style=social)](#)
[![Twitter Follow](https://img.shields.io/twitter/follow/ADaducci)](https://twitter.com/intent/follow?screen_name=ADaducci)

# COMMIT

The reconstructions recovered with existing tractography algorithms are not really quantitative even though diffusion MRI is a quantitative modality. COMMIT stands for *Convex Optimization for Microstructure Informed Tractography* and is a **powerful framework for enhancing the anatomical accuracy of the reconstructions** by combining tractography with microstructural features of the neuronal tissue.

<img align="right" src="https://github.com/daducci/COMMIT/wiki/images/filtering_methods.png" height="225">

**How?** Starting from an input set of candidate fiber-tracts estimated using standard fiber-tracking techniques, COMMIT models the diffusion MRI signal in each voxel of the image as a *linear combination* of the restricted and hindered contributions generated in every location of the brain by these candidate tracts. Then, COMMIT seeks for the effective contribution of each of them such that they globally fit the measured signal at best.
These weights can be *efficiently estimated by solving a convenient linear system*.

Results clearly demonstrated the benefits of the proposed formulation, opening new perspectives for a more quantitative and biologically-plausible assessment of the structural connectivity of the brain. See the [references](https://github.com/daducci/COMMIT/wiki/References) for more information.

<p align="center">
<img src="https://github.com/daducci/COMMIT/wiki/images/COMMIT_example.png" height="450">
</p>

## Main features

- Very efficient: COMMIT is implemented in Python but the core of the algorithm is implemented in C++ and using **multi-thread programming** for efficient parallel computation.
- Accepts and works with **any input tractogram** (i.e. set of fiber tracts).
- Can easily implement and consider **any multi-compartment model** available in the literature: possibility to account for restricted, hindered as well as isotropic contributions into the signal forward model.
- **Low memory** consumption using optimized sparse data structures, e.g. it can easily run on a standard laptop with 8GB RAM a full-brain tractogram from the HCP data (1M fibers, 3 shells, 1.25 mm^3 resolution).
- **Soon**: **GPU implementation** for even faster model fitting.


## Documentation

More information/documentation, as well as a series of tutorials, can be found in the [wiki pages](https://github.com/daducci/COMMIT/wiki/Home).

### Installation
To install COMMIT, refer to the [installation guide](https://github.com/daducci/COMMIT/wiki/Installation).

### Getting started

To get started with the COMMIT framework, have a look at [this tutorial](https://github.com/daducci/COMMIT/wiki/Getting-started), which will guide you through the main steps of the processing.

