scikit-surgerytf

Examples for running surgical segmentations using Tensor Flow

https://github.com/scikit-surgery/scikit-surgerytf

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    4 of 5 committers (80.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.3%) to scientific vocabulary

Keywords

scikit-surgery segmentation tensorflow-tutorials ucl

Keywords from Contributors

surgery augmented-reality opencv vtk ndi aruco augmented-reality-applications opencv-python scikit-surgerybard vtk-applications
Last synced: 6 months ago · JSON representation ·

Repository

Examples for running surgical segmentations using Tensor Flow

Basic Info
Statistics
  • Stars: 1
  • Watchers: 3
  • Forks: 0
  • Open Issues: 2
  • Releases: 0
Topics
scikit-surgery segmentation tensorflow-tutorials ucl
Created over 5 years ago · Last pushed about 3 years ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.rst

scikit-surgerytf
===============================

.. image:: https://github.com/SciKit-Surgery/scikit-surgery/blob/web/assets/logo.svg
   :width: 256px
   :target: https://github.com/UCL/scikit-surgerytf
   :alt: Logo

|

.. image:: https://github.com/UCL/scikit-surgerytf/workflows/.github/workflows/ci.yml/badge.svg
   :target: https://github.com/UCL/scikit-surgerytf/actions
   :alt: GitHub Actions CI status

.. image:: https://coveralls.io/repos/github/UCL/scikit-surgerytf/badge.svg?branch=master&service=github
    :target: https://coveralls.io/github/UCL/scikit-surgerytf?branch=master
    :alt: Test coverage

.. image:: https://readthedocs.org/projects/scikit-surgerytf/badge/?version=latest
    :target: http://scikit-surgerytf.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status

.. image:: https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg
   :target: https://github.com/SciKit-Surgery/scikit-surgery/blob/master/CODE_OF_CONDUCT.md

.. image:: https://img.shields.io/twitter/follow/scikit_surgery?style=social
   :target: https://twitter.com/scikit_surgery?ref_src=twsrc%5Etfw
   :alt: Follow scikit_surgery on twitter


Author: Matt Clarkson

scikit-surgerytf is part of the `SciKit-Surgery`_ software project, developed at the `Wellcome EPSRC Centre for Interventional and Surgical Sciences`_, part of `University College London (UCL)`_.

scikit-surgerytf supports Python 3.6+, and tensorflow >= 2.0.0.

The aim of scikit-surgerytf is to provide a home for various Tensor Flow examples and
utilities and to show best practice. It's NOT meant to be a layer on-top of Tensor Flow
or provide a new kind-of platform. The aim is that researchers can learn from examples,
and importantly, learn how to deliver an algorithm that can be used by other people
out of the box, with just a ```pip install```, rather than a new user having to
re-implement stuff, or struggle to get someone else's code running. Researchers
can commit their research to this repository, or use the `PythonTemplate`_ to
generate their own project as a home for their new world-beating algorithm!

.. features-start

Features/Networks
-----------------

* `Liver Segmentation UNet `_: Based on ``_.
* `The usual FashionMNIST example `_, for learning purposes.

.. features-end

Design Principles
-----------------

Each project herein should provide the following:

* Code that passes pylint.
* Unit testing, as appropriate. In all likelihood, testing will cover individual functions, not large training cycles.
* Sufficient logging, including date, time, software (git) version, runtime folder, machine name.
* A main class containing a network that can be run separately in train/test mode.
* Visualisation with TensorBoard.
* Saving of learned network weights at the end of training.
* Loading of pre-train weights, initialising the network ready for inference.
* The ability to be run repeatedly for hyper-parameter tuning via python scripting, not bash.
* The ability to be callable from within a Jupyter Notebook, and thereby amenable to weekly writup's for supervisions.
* One or more command line programs that are pip-installable, enabling a subsequent user to train and test your algorithm with almost-zero faff.
* Visualisation for debugging purposes, such as printing example image thumbnails etc. should be done in Jupyter notebooks, or in tensorboard, not in the same class as your algorithm.

Optional features could include:

* Small test projects that train quickly to completion won't need checkpointing, but large ones will.


Usage
-----

Typical instructions for use:

First create a clean python environment, just installing tox::

    # Create a clean conda environment
    conda create -n myenv python=3.6
    conda activate myenv
    pip install tox


Then you get the code, and use tox to install all other dependencies::

    git clone https://github.com/UCL/scikit-surgerytf
    cd scikit-surgerytf
    # edit requirements.txt, changing tensorflow to tensorflow-gpu.
    # The default is the CPU version just for cross platform testing,
    # but for real use, you should swap it to GPU.
    # Then run tox to install all dependencies.
    tox


Then you can activate the tox created virtualenv and run top-level entry points directly from the root folder::

    source .tox/py36/bin/activate
    python sksurgeryrgbunet.py --help


Windows users would run::

    .tox\py36\Scripts\activate
    python sksurgeryrgbunet.py --help

So, for example, to run the sksurgeryrgbunet.py program and train on some data, you would do::

    python sksurgeryrgbunet.py -d DATA -w working_dir -s output.hdf5

where DATA is a directory like::

    DATA/P1/masks
    DATA/P1/images
    DATA/P2/masks
    DATA/P2/images
    .
    .
    DATA/PN/masks
    DATA/PN/images

and P1,P2..PN just represents some patient identifier. Images and masks, though in different
folders, must have the same name.

Developing
----------

Cloning
^^^^^^^

You can clone the repository using the following command:

::

    git clone https://github.com/SciKit-Surgery/scikit-surgerytf


Running tests
^^^^^^^^^^^^^
Pytest is used for running unit tests, but you should run using tox,
as per the `PythonTemplate`_ instructions.


Linting
^^^^^^^

This code conforms to the PEP8 standard. Pylint is used to analyse the code.
Again, follow the `PythonTemplate`_ instructions and run via tox.


Installing
----------

You can pip install directly from the repository as follows:

::

    pip install git+https://github.com/SciKit-Surgery/scikit-surgerytf



Contributing
------------

Please see the `contributing guidelines`_.


Useful links
------------

* `Source code repository`_
* `Documentation`_


Licensing and copyright
-----------------------

Copyright 2019 University College London.
scikit-surgerytf is released under the Apache Software License 2.0. Please see the `license file`_ for details.


Acknowledgements
----------------

Supported by `Wellcome`_ and `EPSRC`_.


.. _`Wellcome EPSRC Centre for Interventional and Surgical Sciences`: http://www.ucl.ac.uk/weiss
.. _`source code repository`: https://github.com/Scikit-Surgery/scikit-surgerytf
.. _`Documentation`: https://scikit-surgerytf.readthedocs.io
.. _`SciKit-Surgery`: https://github.com/SciKit-Surgery 
.. _`University College London (UCL)`: http://www.ucl.ac.uk/
.. _`Wellcome`: https://wellcome.ac.uk/
.. _`EPSRC`: https://www.epsrc.ac.uk/
.. _`contributing guidelines`: https://github.com/SciKit-Surgery/scikit-surgerytf/blob/master/CONTRIBUTING.rst
.. _`license file`: https://github.com/UCL/scikit-surgerytf/blob/master/LICENSE
.. _`PythonTemplate`: https://github.com/SciKit-Surgery/PythonTemplate

Owner

  • Name: SciKit-Surgery
  • Login: SciKit-Surgery
  • Kind: organization
  • Email: s.thompson@ucl.ac.uk

Compact Libraries for Surgical Navigation

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use SciKit-Surgerytf in your research, please cite it as below."
authors:
- family-names: "Thompson"
  given-names: "Stephen"
  orcid: "https://orcid.org/0000-0001-7286-1326"
- family-names: "Dowrick"
  given-names: "Thomas"
  orcid: "https://orcid.org/0000-0002-2712-4447"
- family-names: "Ahmad"
  given-names: "Mian"
  orcid: "https://orcid.org/0000-0002-4706-4146"
- family-names: "Clarkson"
  given-names: "Matthew"
  orcid: "https://orcid.org/0000-0002-5565-1252"
title: "SciKit-Surgery"
url: "https://github.com/SciKit-Surgery/scikit-surgerytf"
preferred-citation:
  type: article
  authors:
  - family-names: "Thompson"
    given-names: "Stephen"
    orcid: "https://orcid.org/0000-0001-7286-1326"
  - family-names: "Dowrick"
    given-names: "Thomas"
    orcid: "https://orcid.org/0000-0002-2712-4447"
  - family-names: "Ahmad"
    given-names: "Mian"
    orcid: "https://orcid.org/0000-0002-4706-4146"
  - family-names: "Xiao"
    given-names: "Guofang"
  - family-names: "Koo"
    given-names: "Bongjin"
    orcid: "https://orcid.org/0000-0002-3611-4988"
  - family-names: "Bonmati"
    given-names: "Ester"
    orcid: "https://orcid.org/0000-0001-9217-5438"
  - family-names: "Kahl"
    given-names: "Kim"
  - family-names: "Clarkson"
    given-names: "Matthew"
    orcid: "https://orcid.org/0000-0002-5565-1252"
  doi: 10.1007/s11548-020-02180-5
  journal: "International journal of computer assisted radiology and surgery"
  start: 1075
  end: 1084
  title: "SciKit-Surgery: Compact Libraries for Surgical Navigation"
  volume: 15
  issue: 7
  year: 2020

GitHub Events

Total
Last Year

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 147
  • Total Committers: 5
  • Avg Commits per committer: 29.4
  • Development Distribution Score (DDS): 0.143
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Matt Clarkson m****n@u****k 126
Thomas Dowrick t****k@g****m 11
Stephen Thompson s****n@u****k 8
Mian Ahmad m****d@u****k 1
BongjinKoo b****o@u****k 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 17
  • Total pull requests: 10
  • Average time to close issues: 4 days
  • Average time to close pull requests: 3 months
  • Total issue authors: 4
  • Total pull request authors: 3
  • Average comments per issue: 8.29
  • Average comments per pull request: 0.7
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 7
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
  • tdowrick (13)
  • MattClarkson (2)
  • thompson318 (1)
  • mianasbat (1)
Pull Request Authors
  • dependabot[bot] (7)
  • tdowrick (2)
  • thompson318 (1)
Top Labels
Issue Labels
gitlab merge request (2)
Pull Request Labels
dependencies (7)

Dependencies

requirements-dev.txt pypi
  • coverage * development
  • coveralls * development
  • mock * development
  • parameterized * development
  • pyfakefs * development
  • pyinstaller * development
  • pylint * development
  • pytest * development
  • pyyaml * development
  • sphinx * development
  • sphinx_rtd_theme * development
  • tox * development
requirements.txt pypi
  • Pillow *
  • h5py *
  • ipykernel *
  • matplotlib *
  • nbsphinx *
  • opencv-contrib-python-headless >=4.2.0.32,<4.6
  • pyyaml *
  • scipy *
  • tensorflow *
  • tensorflow-datasets *
setup.py pypi
  • Pillow *
  • h5py *
  • ipykernel *
  • matplotlib *
  • nbsphinx *
  • opencv-contrib-python-headless >=4.2.0.32
  • pyyaml *
  • scipy *
  • tensorflow *
  • tensorflow-datasets *
.github/workflows/ci.yml actions
  • actions/checkout v2 composite
  • actions/checkout master composite
  • actions/setup-python v1 composite
  • pypa/gh-action-pypi-publish master composite