Code Monkey home page Code Monkey logo

osipi.github.io's Introduction

Disclaimer:

This package is under development. All the details mentioned below are long-term intentions behind the production of this package.

OSIPI: Open Science Initiative for Perfusion Imaging

OSIPI is a Python package developed by the Open Source Initiative for Perfusion Imaging OSIPI, a project under the Perfusion Study Group of the International Society for Magnetic Resonance in Medicine ISMRM. It serves as the authoritative tool for perfusion MRI analysis.

OSIPI's aim is to create open access resources for perfusion imaging research to eliminate duplicate development, to improve the reproducibility and to speed up the translation of perfusion imaging for clinical practice.

The osipi package structure and logic follows the lexicon defined by OSIPI, and wraps around selected implementations collected in the code contributions of OSIPI.

Features

  • Comprehensive set of tools for analyzing perfusion MRI data
  • Follows the lexicon defined by OSIPI
  • Incorporates selected implementations contributed by the community

Quick Start

Installation

To install OSIPI, you can use pip:

  `pip install osipi`

Usage

To use OSIPI in your Python scripts, import the package:

  `import osipi`

Contributions

We welcome contributions to OSIPI! To contribute, follow these steps:

  • Fork the OSIPI repository on GitHub.
  • Create a new branch for your feature or bug fix.
  • Make your changes and commit them with descriptive messages.
  • Push your changes to your fork.
  • Submit a pull request to the main OSIPI repository.

Development Setup

We use poetry to manage the dependencies for this project.

Using Poetry

  1. If you don't have Poetry installed, you can install it using pip:

    pip install poetry

    Or, if you're using a Unix-based system, you can install it using the following command:

    curl -sSL https://install.python-poetry.org | python3 -

    For more information on installing Poetry, see the official documentation

  2. Clone the repository to your local machine.

  3. Navigate to the project directory.

  4. Install the project dependencies with Poetry:

    poetry install
  5. Activate the Poetry environment:

    poetry shell

Setting up pre-commit

pre-commit is a tool that we use to maintain high-quality code in this project. It runs checks (hooks) on your code each time you commit changes. Here's how to set it up:

Pre-Commit Hooks

Pre-commit hooks are scripts that run automatically before a commit is made in a Git repository. They help catch common issues like syntax errors, formatting problems, and other code quality issues.

Example hooks

  • flake8 - a linter that checks your code for common errors and style issues.
  • trailing-whitespace - a hook that removes trailing whitespace from your files.
  • ruff - also a linter that checks your code for common errors and style issues.
  • end of file fixer - a hook that ensures that all files end with a newline.
  • check yaml

We are using pre-commit configuration file to define our hooks. You can find the configuration file here

  1. In the project directory, run the following command to install the pre-commit hooks:

    pre-commit install
  2. You can run all pre-commit hooks on all files with:

    pre-commit run --all-files

NOTE:

  • Next time you commit changes, pre-commit will run the hooks automatically.
  • Some hooks automatically fix/format your files to specific standards. If you see that some of your files have been changed after a commit, don't worry! It's just pre-commit doing its job. Add the changes and commit them again.

For more details on how to contribute, visit the Developer Guide.

As mentioned before, this project is still in the early stages of development. If you'd like to contribute by adding functionality, we recommend opening an issue first to discuss your proposed functionality and the best ways to implement it.

Details

For more detail please see the documentation.

osipi.github.io's People

Contributors

amadhuranthakam avatar anahitafk avatar aotgsp avatar cdebus avatar dependabot[bot] avatar fedorov avatar henkmutsaerts avatar ikompan avatar jan-petr avatar jjamor avatar lauracbell avatar lchenze avatar ltorres6 avatar mjt320 avatar mprah1 avatar nerk avatar notzaki avatar pcasl avatar petravanhoudt avatar phlow avatar plaresmedima avatar plutonik-a avatar rbdixon avatar rphaedrus avatar slevyrosetti avatar teschi avatar thegands avatar twisterrob avatar yafred avatar yuriko52 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

osipi.github.io's Issues

Mechanisms to maintain inventories

Need to discuss what makes sense - ideas:

  • shared google spreadsheet
    • pros: easy, integration with forms
    • cons: cumbersome to browse or format, limits to adding links, pictures, etc
  • readthedocs documents (example: https://dicom4qi.readthedocs.io/)
    • pros: much nicer organization, easy access
    • cons: more difficult to edit content, has a (not so steep) learning curve

ISMRM logo

Can someone work out a way to add the ISMRM logo to the footer of the webpage? This can be small and discreet but good to have the endorsement signposted.

Shape of the headshot is different across pages

It's not a huge deal, but I find it rather idiosyncratic and not very professional to have differences in styling of the headshot - sometimes those are round, sometimes ellipsoid with different aspect ratios. Is this intentional, or just because fixing it is not straightforward?

Revisit landing page

At the very least, we should add a new page/section on top ("Info" or "About"), which should be linked from the "More" button on the front page

Remove New Blog Articles from home page

I wanted to remove the links to New blog articles from the home page. They are not new and anyway they can be foudn directly via the News link at the top. I can't seem to find where this link is made though - can someone help?

News page only showing last 5 entries

Can we change this so that the news simply shows one long list of items? The last one is always on top anyway so it's Ok to have a long list below. Makes it easier to scroll through.

Sorry but I don't know how!

Fix https

When switching to https, site becomes broken. Likely some resources are external via http? Need to check and see if can be fixed.

Editing task force pages

Currently task force leads need two links to edit their page, one to the yml file in case they want ro edit the fact sheet, and one to the .md file in case they want to add free text. Can this be combined so they need to edit in one place only?

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.