Contribution Guidelines

As PHOTONAI is a framework developed to unify the machine learning worfklow and integrate state-of-the-art algorithm implementations, contributions are more than welcome.


  • Add custom preprocessing algorithm
    In order to integrate a custom transformer element, simply adhere to the scikit-learn object API as depicted here

  • Add custom learning algorithm
    In order to integrate a custom learning algorithm, integrate scikit-learn object API for estimators as depicted here

Python Style Guide

We require each contribution to

  • PEP 8 Style Guide
  • be programmed in an object-oriented manner
  • include Docstring documentations

PHOTONAI Requirements

In addition we ask each contributor to the following steps

  • Create a new feature branch derived from the current development branch
  • Add your feature to either the PHOTONAI core files, or if you want to add a custom algorithm, add it to the modelwrapper folder
  • Please add an example script, to showcase the syntax to use your feature in the examples folder. Based on that, we will integrate it in the online documentation.
  • Make sure you add unit tests to the unit test folder to a) make sure your feature is working properly and b) help other developers to assure any new code does not affect your feature.
  • In order to output information, please use the PHOTONAI Logger that can be imported from photonai.photonlogger.logger. This will make sure that all your information is included in the log files that are written to the user's specified output folders.
  • Finally please add a pull request to our github repository and we will take care of your feature's integration.

If you want to integrate a complete module e.g. to handle a specific data modularity, please contact us for a suggestion to structure and register your module with PHOTONAI.