ampscan
ampscan: A lightweight Python package for shape analysis of prosthetics and orthotics - Published in JOSS (2020)
Science Score: 95.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 8 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
✓Committers with academic emails
5 of 10 committers (50.0%) from academic institutions -
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Scientific Fields
Repository
ampscan is an open-source Python package for analysis and visualisation of digitised surface scan data, specifically for applications within Prosthetics and Orthotics (P&O), with an aim to improve evidence-based clinical practice towards improved patient outcomes.
Basic Info
- Host: GitHub
- Owner: abel-research
- License: mit
- Language: Python
- Default Branch: master
- Homepage: https://ampscan.readthedocs.io/en/latest/
- Size: 22.1 MB
Statistics
- Stars: 24
- Watchers: 9
- Forks: 8
- Open Issues: 13
- Releases: 1
Topics
Metadata Files
README.md
Join chat:
Build status:
Docs:
License:
DOI:
ampscan is an open-source Python package for analysis and visualisation of digitised surface scan data, specifically for applications within Prosthetics and Orthotics, developed with the ABEL at the University of Southampton. These industries are increasingly using surface scanners as part of clinical practice to capture the patient's individual geometry to design personalised devices. ampscan gives researchers within this field access to powerful tools to analyse the collected scans to help inform clinical practice towards improved patient-outcomes. This package has been designed to be accessible for researchers and clinicians with only a limited knowledge of Python. Therefore, analysis procedures can all be accessed using the lightweight Graphical User Interface within the git repo, and will soon be available as a standalone web-app.

The typical ampscan process is demonstrated above (Figure 1) and the core functionality summarised below, with a more detailed description available in the online documentation:
AmpObject: this is the key object of the package and holds the key data and methods. The key data held within the AmpObject is the mesh data including arrays of the vertices, faces, normals and field values. The vtk actor for visualisation is also stored. The core methods of the AmpObject include imports for .stl files, saving .stl files, rotation and translation. Further methods on the core AmpObject include smoothing, trimming and visualisation.
Alignment: This takes two AmpObjects, one fixed and one moving, and applies a rigid transformation to the moving AmpObject in order to minimise the spatial error between the two AmpObjects. This means that when the registration process is performed, only the true shape deviations are calculated.
Registration: This takes two AmpObjects, one baseline and one target, and applies a non-rigid transformation to morph the baseline vertices onto the surface of the target. Following this, a detailed map of the spatial difference between the two shapes can be visualised and analysed.
Analysis: This is used to extract key geometrical infomation about the shape, including volume and serial slice cross section areas and perimeters.
Graphical User Interface: This enables visualisation to multiple AmpObjects within a single window, giving access to the automated and manual alignment tools as well as registration. This facilitates the core analysis of the scan data for users who are not experienced Python users. The python version of the GUI is available in the gui folder from the git repo and a standalone webapp is now avilable.
Potential applications of ampscan include tracking how the limb shape and volume has changed over time, digitising manual prosthetic socket design modifications, and comparing the outputs of different scanning technologies.
ampscan relies heavily on NumPy and SciPy to perform mathematical operations with visualisation handled by PyQt and VTK. The package is still under development by researchers at the University of Southampton. For full documentation, visit the ampscan website.
Installing ampscan
ampscan has a number of dependencies, namely; NumPy, SciPy, Matplotlib, PyQt and VTK. We recommend using pip for installation. It is possible to install via conda, but in our experience, VTK can be challenging to install via this route. If you do choose to use conda, we recommend the conda-forge channel for VTK. Before installation, ensure your environment is using Python 3.
ampscan currently is supported on Python 3.6-3.9 for Linux, Windows and Mac.
For the most up to date version of ampscan, clone directly from the github repository using:
git clone https://github.com/abel-research/ampscan
To install via pip, navigate to the ampscan/ directory and run a pip install using:
pip install -r requirements.txt
Followed by:
pip install -e .
ampscan will soon be available on pip once v0.3 is released
If you are installing on Red Hat, you may need to install the dependencies listed in the Yum Requirements file.
Maintainer Notes
If you wish to help develop ampscan, then please read our contributing guidelines.
Documentation for the ampscan library is automatically generated using sphinx. Any additional code should be documented in accordance with 'numpy style' docstrings. A template can be found here.
Testing
Testing is performed automatically using Gitlab Actions. New tests can be added to the repo.
License
At ampscan we use the MIT license, which can be found here here
How to acknowledge
ampscan has been published in JOSS. Please cite as: Steer et al., (2020). ampscan: A lightweight Python package for shape analysis of prosthetics and orthotics. Journal of Open Source Software, 5(48), 2060, https://doi.org/10.21105/joss.02060
Owner
- Name: abel-research
- Login: abel-research
- Kind: organization
- Repositories: 3
- Profile: https://github.com/abel-research
JOSS Publication
ampscan: A lightweight Python package for shape analysis of prosthetics and orthotics
Authors
Bioengineering Sciences Research Group, School of Engineering, Faculty of Engineering and Physical Sciences, University of Southampton
Bioengineering Sciences Research Group, School of Engineering, Faculty of Engineering and Physical Sciences, University of Southampton
Bioengineering Sciences Research Group, School of Engineering, Faculty of Engineering and Physical Sciences, University of Southampton
Tags
prosthetics orthotics scanning meshes measurementGitHub Events
Total
- Watch event: 2
- Fork event: 1
Last Year
- Watch event: 2
- Fork event: 1
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Joshua Steer | J****r@s****k | 339 |
| ojs1g14 | o****4@s****k | 298 |
| jack-parsons | j****k@i****m | 107 |
| Joshua Steer | j****r@g****m | 64 |
| Omar Animashaun | o****6@s****k | 23 |
| Jerome1434 | 6****4 | 6 |
| asd202 | a****n@s****k | 1 |
| Sam Mangham | m****m@g****m | 1 |
| Steer J.W | j****6@s****k | 1 |
| JoshuaSteer | j****h@r****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 62
- Total pull requests: 18
- Average time to close issues: 3 months
- Average time to close pull requests: 21 days
- Total issue authors: 7
- Total pull request authors: 4
- Average comments per issue: 1.08
- Average comments per pull request: 0.11
- Merged pull requests: 18
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- JoshuaSteer (29)
- jack-parsons (28)
- Kevin-Mattheus-Moerman (1)
- weililiuo (1)
- FionaSunderland (1)
- raabuchanan (1)
Pull Request Authors
- JoshuaSteer (12)
- Jerome1434 (4)
- jack-parsons (1)
- smangham (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- PyPDF2 >=1.20
- PyQt5 >=5,<=5.13
- jupyter_sphinx *
- matplotlib >=2
- nbsphinx *
- numpy >=1.12
- reportlab >=3
- scipy >=1.2.1
- sphinx *
- sphinx_rtd_theme *
- sphinxcontrib-napoleon *
- vtk >=8
- PyPDF2 >=1.20
- PyQt5 >=5,<=5.13
- Pyrsistent *
- matplotlib >=2
- numpy >=1.12
- reportlab >=3
- scipy >=1.2.1
- sphinxcontrib-napoleon *
- vtk >=8
- libXt *
- libXt-devel *
- mesa-libGLU-devel *
- python3-tkinter *
- actions/checkout v2 composite
- actions/setup-python v2 composite