Final report

As it is the last week of Google Summer of Code, this post is also my final project report, summarizing what I have worked on during the past 3 months, what I have learned, and what is left to do.

The result

I worked on developing Nighres — a Python package for processing of high-resolution neuroimaging data. It provides a Python framework for the Java-based CBS High-Res Brain Processing Tools, aiming to make those tools easier to install, use and extend.

The experience

It is cool to have built a software package. But even more satisfying to know that every step to get there meant learning something I had never done before. Without a course, or a book, simply by doing it. I have written about most of these steps in previous posts, but here is an overview with links:

What I have learned
What I got better at
  • Writing good Python code

  • Writing good docstrings

  • Using Git and Github

  • Using virtualenv for clean Python environments

  • Raising exceptions, errors, warnings in Python

The future

Open issues can be found on the Github issue tracker. In my opinion, these are the most crucial next steps:

  • Writing unittests and testing against different versions of Python, Numpy and Nibabel on Travis

  • Supporting different platforms and architectures

  • Becoming part of the Nipy community of practice

  • Writing instructions for developers to make contributing easy

  • Wrapping more CBS Tools modules and writing the interfaces for them

  • Adding more examples and make them executable on readthedocs (currently too big)

  • Providing a docker image