Git Product home page Git Product logo

swepy's Introduction

Documentation

Swepy is a basic user interface to load and analyse shear wave elastography files recorded with Hologic Supersonic machines.

The script works with DICOM files and is optimised for Mach30 machines but should work with other machines from the Mach range. Scans from Aixplorer machines also seem to be compatible but have not yet been tested thoroughly.

The analysis currently consists in a graphical preview of the elastography measurements for each frame (violin plots), and calculations of mean and median values. Results can be exported to a csv or xlsx file.

NB: For now, the analysis only works for cine loops.

Dependencies

The scripts run with Python 3.8. All package dependencies are listed in requirements.txt.

Get started

  • Clone this repository
  • Install dependencies
  • Run the swepy/start.py file to start the user interface
  • Load a DICOM file containing an image sequence (generally a video clip, takes a few seconds)
  • Enter the following parameters found on the image frame:
    • acquisition frequency of SWE frames (SWE fhz parameter)
    • maximal scale value (max. scale parameter, in kPa or m/s)

  • (optional) Change ROI size or shape
  • Press Analyse
  • Find results preview and export interface in the Results tab.

  • Export to a csv or xlsx file

Acknowledgements

I am grateful to Neil Cronin (University of Jyväskylä) for his input early in the project.
I also thank Valentin Doguet, Antoine Nordez and Aurélie Sarcher (Nantes Université) for sharing their experience and views, based on the development or utilisation of the excellent ElastoGUI.

Citation

swepy is a project developed at the Norwegian School of Sport Sciences. If needed, this code can be referenced from the cff file of this repository, or as follows:

@software{Seynnes_swepy_2023,
author = {Seynnes, Olivier},
license = {MIT},
month = apr,
title = {{swepy}},
url = {https://github.com/oseynnes/swepy},
year = {2023}
}

swepy's People

Contributors

oseynnes avatar

Watchers

 avatar

swepy's Issues

Implement video pause

Make the play_video function pause when either the play_btnbutton or another one is clicked.

def play_video(self):
    if self.ds:
        while self.frame < self.ds.NumberOfFrames:
            self.set_image()
            self.frame += 1
            self.after(50, self.play_video)  # 50ms
    else:
        showinfo(title='No video', message='Please load a Dicom file first')
      return

Reset dicom sequence to start frame in player function

Make the video "rewind" to frame 1 if the play_video function is called but the current frame is the last frame (self.frame = last frame).

    def play_video(self):
        if self.ds:
            while self.frame < self.ds.NumberOfFrames:
                self.set_image()
                self.frame += 1
                self.after(50, self.play_video)  # 50ms
        else:
            showinfo(title='No video', message='Please load a Dicom file first')
            return

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.