Git Product home page Git Product logo

tomolab's Introduction

TomoLab : TomographyLab software for tomographic vision

This project is a Python 3 porting of our previous project Occiput.io, which is now no longer supported


TomoLab is (or will be) a tomographic reconstruction software for PET, PET-MRI and SPECT in 2D, 3D (volumetric) and 4D (spatio-temporal) for Python 3.x.

The software provides high-speed reconstruction using Graphics Processing Units (GPU). Note: an NVidia CUDA-compatible GPU is required.

TomoLab can be utilized with arbitrary scanner geometries. It can be utilized for abstract tomographic reconstruction experiments to develop new algorithms and explore new system geometries, or to connect to real-world scanners, providing production quality image reconstruction with standard (MLEM, OSEM, Ordinary Poisson OSEM) and advanced algorithms.

TomoLab implements algorithms for motion correction (direct motion estimation), kinetic imaging, multi-modal reconstruction, respiratory and cardiac gated imaging. The source code contains Jupyter notebooks with examples.

Installation

Given the early stage of this project, no installation instruction are currently available, as a lot of the code originally written for Python 2.7 still needs to be ported to Python 3.x

If you want to try out TomoLab while it is being developed, we provide a (devlopment) Docker Image, build to natively support current version of TomoLab. For more information about this, please refer to TomographyLab/DockerImage.

If, instead, you would like to install TomoLab directly in your system, you can (for the time being) have a look at this DockerFile to see what the main dependencies are.

If you have troubles with any of these steps, please just open an Issue here and we will try to sort it out.

Getting started

Examples and demos of the features of TomoLab are in the /tomolab/Examples folder. A better documentation, and instruction about the best order in which you can study those notebooks will come (hopefully) very soon.

Website

For more information check out our website: it is still based on Occiput.io, previous version of this project, but it should still be a valid starting point to understand the ideas behind this project, and to access some of the publications produced thanks to it.


Current status of the porting of Occiput.io (python 2.7) to TomoLab (python 3.x)

  • Reorganization of the code

    • integrating major (Occiput.io's) dependencies within the main TomoLab project
    • switching to relative imports throughout the code
    • consistently following PEP8 style rules
    • choosing a naming convention for modules, classes and variable (in therm of Captialization, usage of underscores, and so on) and keeping it consistent
  • Simulation

    • Several synthetic phantoms ready to be generated. A set of routines allow to create complex geometries (which may also be combined together by addition or subtraction), specifying the desired size and shape.
    • Prepared a documentation notebook to showcase synthetic phantom generation capabilities
    • Python 3.x interfaces to projection and backprojection operation successfully built on top of NityRec low level (C++, CUDA) libraries.
  • PET reconstruction

    • Static reconstruction using OSEM and MLEM
    • Implementing basic smoothing prior for OSL-MAP-OSEM
    • Dynamic Reconstruction
    • Class for efficiently handling 2D+t reconstruction (for research purpose)
    • Cyclic Scan Reconstruction, informed of motion information coming from MR vNAV data
  • MR reconstruction

    • Everything still needs to be checked after moving from python 2 to python 3
  • SPECT reconstruction

    • Everything still needs to be checked after moving from python 2 to python 3
  • CT reconstruction

    • CT reconstruction is not yet available. Anyway, it should be straightforward to leverage PE ray-tracing system for CT reconstruction, in the next future.
  • Image registration

    • [ ]
  • (PET and DCE-MRI) Kinetic modeling

    • [ ]

tomolab's People

Contributors

mscipio avatar tomographylab avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.