Metadata-Version: 2.1
Name: cmrsim
Version: 0.23
Summary: UNKNOWN
Home-page: https://gitlab.ethz.ch/jweine/cmrsim
Author: Jonathan Weine, Charles McGrath
License: UNKNOWN
Platform: UNKNOWN
Requires-Python: >=3.6
License-File: LICENSE
Requires-Dist: tensorflow (>=2.9)
Requires-Dist: pyvista (>=0.34)
Requires-Dist: numpy (>=0.19)
Requires-Dist: pint (>=0.18)
Requires-Dist: Deprecated (>=1.2.13)

.. image:: docs/source/_static/Logo_cmrsim.svg
   :align: right
   :scale: 150 %

Welcome to CMRsim!
==================================

CMRsim is a MRI - simulation framework that features bloch-simulations as well as analytic signal
evaluations for **moving objects** with an easy to use API written in pure python.
The computationally demanding calculations are implemented in `TensorFlow2`_ and therefore are
seamlessly executable on CPU and GPU environments, while also making efficient use of computational
resources!

.. _TensorFlow2: https://www.tensorflow.org/

What makes CMRsim special?

- CMRsim features bloch-simulations as well as simulations using analytical signal equations and even allows to combine elements of both.
- Convenient support for **moving** particles!
- Modularity that makes to designing comparative simulation experiments convenient.
- Architecture and implementation that allows to easily include your own simulation modules.
- Reproducibility by using versioned and documented open-source software.
- Easily scalable to detailed digital phantoms

Installation
==============


Pip
^^^^
CMRsim can be installed using the python package manager :code:`pip`. The package can be found
in the `registry`_  of the repository hosted on the ETH-Gitlab instance

.. _registry: https://gitlab.ethz.ch/jweine/cmrsim/-/packages

**Versioning:**
Stable release versions are denoted with the ususal :code:`major.minor` notation. Additionally,
development versions are constantly updated on solved issued and can be installed using the
:code:`major.minor.devX` notation

Installation in command line:

.. code-block::

    pip install cmrsim --extra-index-url https://__token__:<your_personal_token>@gitlab.ethz.ch/api/v4/projects/23798/packages/pypi/simple


Requirements
^^^^^^^^^^^^^^^^
CMRsim does rely on functionality of 3 non-standard python stack packages:

1. `TensorFlow`_: Pretty much all computationally heavy calculations.
2. `Pyvista`_: For processing and visualizing graphs (e.g. 3D Velocity fields).
3. `CMRseq`_: For defining MR-sequences used for Fourier-Encoding calculation and Bloch-simulation.

.. _TensorFlow: https://www.tensorflow.org/
.. _Pyvista: https://docs.pyvista.org/
.. _CMRseq: https://people.ee.ethz.ch/~jweine/cmrseq/index.html

Further (already indirectly included) requirements are:
-h5py~=2.10.0
-scipy>=1.4.1
-tqdm


Docker
^^^^^^^^
For each major release a set of docker images are compiled and published in the
`container registry`_ associated with repository. Within the docker images, all requirements
are installed for simulation deployment.

.. _container registry: https://gitlab.ethz.ch/jweine/cmrsim/container_registry

Furthermore, there are three image-tags available. To use the pull the docker image
use (e.g. for jupyter tag):

.. code-block::

    docker pull registry.ethz.ch/jweine/cmrsim/jupyter:latest

CPU
""""
Based on the Tensorflow:...-cpu:latest docker image. Containing all cmrsim dependencies and cmrsim

GPU
""""
Based on the Tensorflow:...-gpu:latest docker image. Containing all cmrsim dependencies and cmrsim

Jupyter
""""""""
Based on the gpu:latest tag, but also includes an installation of jupyter-lab for interactive
simulation / rendering.


