Sharing source code

ICES has joined GitHub to share and develop source code on scientific methods.

Published:
6 January 2017

Page Content

​The web-based repository hosting service GitHub allows anyone to view and download data tools and analytical methods, as well as suggest changes. ICES has three GitHub sites for different purposes: products, tools in development, and expert groups.

The product site is home to software maintained by the ICES Secretariat that is ready for use. This includes, for example, packages to download ICES data straight into the statistical software R.

The development site is for tools that are under development, either by ICES or other institutes and projects. It is a place for both experimental scripts and fully tested software.

"You could think of it as being a toolbox, a place for groups to explore the tools that are out there and find out how to work with them. It's also an area for our groups to develop new ideas and tools while making things consistent across assessments," explained Scott Large, Advisory Programme Professional Officer at the ICES Secretariat.

It's about source code

GitHub works similarly to other social network sites: individual scientists have their own profiles, but instead of sharing pictures or other personal interests, they can share software and source code. For ICES, the sharing of such information is not only intended for scientists in its own network but for everyone.

"We share a variety of tools that are used by ICES scientists but can be useful for others as well. For example, we have shared the Maximum Sustainable Yield (MSY) package to calculate and evaluate reference points that are used in fisheries advice," added Large.

GitHub vs SharePoint?

ICES continues to use SharePoint as a working space for expert groups to write reports or share presentations. However, source code on SharePoint is not very visible or accessible to the scientific community, and that's where GitHub comes into the picture.

"This is not something we are requiring our scientists to use, but we hope that people take advantage of it to find and develop new ideas and tools," Large envisioned.

"Using GitHub has allowed the expert groups I participate in to become much more efficient. Sharing input data and analytical methods with each other has now become far more practical. By sharing R code with each other we also save a lot of time, as we can borrow each other's methods to produce similar diagnostic plots, process large datasets, or write tables to file that need to find their way into actual paper reports. I like having the code we use to run stock assessments in a central location to allow enthusiasts in other fields to reproduce what we've been doing and give us feedback on how we can improve our methods."