[Neuroimaging] Looking for advice regarding releasing some analysis software

Ariel Rokem arokem at gmail.com
Thu Jun 16 10:20:19 EDT 2016

Hi Blaise,

On Thu, Jun 16, 2016 at 6:44 AM, Frederick, Blaise B. <
bbfrederick at mclean.harvard.edu> wrote:

> Hi all,
> For the last few years my lab has been doing time delay analysis on fMRI
> and concurrent fMRI/NIRS data, and I’ve written a number of python tools
> for performing the analysis, and they’ve been refined for several years at
> this point, and I think they could be generally useful to people, so I’m
> looking to release the software.  I’m fairly new at this, and I’ve found a
> bunch of recommendations on how to do this, some of which are
> contradictory.  I’d appreciate any help I could get on this.
> What I’ve done so far:
> 1) Chosen a license (Apache 2, based on a lot of reading and some
> conversations)
> 2) Put the core programs up on github (
> https://github.com/bbfrederick/delaytools)
> 3) Tried to put together rudimentary documentation and installation
> directions.
> As things exist now, if you install the prerequisites, download the code,
> and add the main directory to your path, you should be able to run the
> tools, which is a fine start, but there seems to be a lot more to
> installation than that (automatically installing dependancies and all that)
> that I’m unable to figure out. I’d appreciate any feedback on this.  I’m a
> little mystified by the vagaries of constructing a setup.py file, and what
> constitutes a ‘package’ and a ‘module’.

You might find this template project useful:

It has examples for some of these things (including testing and

> Some of the questions I have:
> 1) In addition to the main program, I have scads of command line utilities
> that make preparing and interpreting the data easier - do I just put them
> all in the top level directory, or in a bin directory?

You can put these in a bin directory and install them using the `scripts`
kwarg to the `setup` function. Shablona doesn't have that, but here's how
it happens on Dipy: https://github.com/nipy/dipy/blob/master/setup.py#L216

> 2) The dependancies for the majority of the tools are very simple (numpy,
> scipy, scikits-learn, matplotlib, nibabel), but there’s a kind of useful
> gui tool that requires pyqt4 and pyqtgraph - pyqt does not seem to be
> installable with pip, so I’m not sure how to handle that (installing it all
> with anaconda is easy though). How should I handle this?

I would handle that as an optional dependency, that only gets imported when
it's needed. Another Dipy story: we use VTK in some visualizations, but
this is an optional dependency. As of recently, we try to raise an
informative error when the import is triggered in the absence of VTK.
Something like:"you are trying to use a feature that requires pyqt and
pyqtgraph, for instructions on installing these see https://
would be helpful, I think.

3) What’s the best way to publicize this?  This won’t be useful if nobody
> can find it.

Announcing your releases to this list (and other lists where potential
users hang out) is a good idea. Presenting it at conferences also helps
spread the word. Another idea: you can write a paper about your software,
so that people can make reference to your software when using it (see
recent conversation about that here:

I hope that all helps and I am sure others will chime in with their


> Thanks,
> Blaise
> --------------
> Blaise Frederick
> Associate Professor of Psychiatry/Biophysicist
> Harvard Medical School/McLean Hospital
> bbfrederick at mclean.harvard.edu
> http://www.nirs-fmri.net
> The information in this e-mail is intended only for the person to whom it
> is
> addressed. If you believe this e-mail was sent to you in error and the
> e-mail
> contains patient information, please contact the Partners Compliance
> HelpLine at
> http://www.partners.org/complianceline . If the e-mail was sent to you in
> error
> but does not contain patient information, please contact the sender and
> properly
> dispose of the e-mail.
> _______________________________________________
> Neuroimaging mailing list
> Neuroimaging at python.org
> https://mail.python.org/mailman/listinfo/neuroimaging
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/neuroimaging/attachments/20160616/8d14b5a0/attachment.html>

More information about the Neuroimaging mailing list