Datacamp Nipype Tutorial

Is there any interest in having a datacamp nipype tutorial? it would essentially be rewriting @miykael’s great tutorials in a datacamp class. Right now, it’s pretty hacky in order to get the environment variables to work correctly, but hopefully the people at datacamp get back to me on how to best do this (or someone here may be able to give me advice).

proof of concept (you have to have an account to test it though)

github repo

Have other people already tried this? Are there downsides towards using datacamp that I’m not seeing?

I think the main benefit is that it’s completely browser based and a bit gamified, reducing the barrier of entry to these concepts to almost zero (just need an internet connection, no need to install anything). Binder already accomplishes this, but datacamp also has a nice way chunking the lessons and giving feedback.

4 Likes

This sounds like a great idea! I did not know that you can add new courses on datacamp. https://www.datacamp.com/teach/

1 Like

I agree; a course covering nipype would be incredibly helpful to people who are new to everything!

3 Likes

@jdkent, that sounds really cool! I think every additional medium is highly welcomed and I’m happy to help where I can.

Do I see correctly that content can be created through github? That’s really cool and important. Otherwise it would be rather difficult to keep the content up to date. Also, I don’t know Datacamp yet, but there’s the possibility to upgrade ones account to a paid version, is this necessary for the suggested Nipype Tutorial? Because I cannot access the proof of concept link and it’s not clear to me why. And a free and open access to the content would be best.

Additionally, the current nipype_tutorial docker image is rather big (above 8GB). Is it possible to use docker images to create the computation environment on Datacamp or can we only use python software packages?

Just a small comment, the current image is so big also because we decided to copy ~2G data inside (just to make it easier for users). Most of these data files, as well as some of the software, are only used in examples_* notebooks, so docker image for introductory notebooks only, i.e. from “Introduction” and “Basic Concept” parts, could be much smaller.

I can also double check if I can significantly decrease the size of dataset.

@victoriaakelly - in case you’re the person who is new to everything and you are not aware of the current Nipype Tutorial: https://miykael.github.io/nipype_tutorial/
You can also try to use a browser based version using [Binder service] (https://mybinder.org/v2/gh/miykael/nipype_tutorial/master), just so you know Binder is under active development, so you might sometimes experience problems with the service and have to retry launching the server.

1 Like

jdkent, that sounds really cool! I think every additional medium is highly welcomed and I’m happy to help where I can.

Awesome, thanks for being on board!

Also, I don’t know Datacamp yet, but there’s the possibility to upgrade ones account to a paid version, is this necessary for the suggested Nipype Tutorial? Because I cannot access the proof of concept2 link and it’s not clear to me why. And a free and open access to the content would be best.

The course should be free and open, but right now it’s in development (they have a special link share for courses in development. I got a 404 when I tried the link too, but when I logged into my account and went to edit the course and then tried the link again, it worked… Maybe the link is only kept alive for courses that are actively being developed (e.g. within the past day?).

Additionally, the current nipype_tutorial docker image is rather big (above 8GB). Is it possible to use docker images to create the computation environment on Datacamp or can we only use python software packages?

This is where I’m currently having some issues. Datacamp uses docker, but we can only use their base images (which currently appears to be based on Ubuntu xenial 16.04). Our only (apparent) access to modify the Image is through the requirements.sh script. The boilerplate text inside the script suggests all they want is for the developer to add pip install commands, but I found I can install FSL, AFNI, and any packages though apt-get as long as the commands are in requirements.sh. However, I have not found a way to get the fsl/afni/etc. binaries accessible (via $PATH) during the build, or really set any environmental variables. In a Dockerfile, we can use ENV to set environmental variables, but I don’t see I can have the same functionality within requirements.sh. Right now there is a Dockerfile in the github repository (I put it there to test it), but that is not used during the build.

I stumbled on it when I was looking at all the free courses on Datacamp (since a lot of their “professional” course stuff is for paying users), and wondered how this many people were making content. Lo and behold, anyone can make content. :slight_smile: