Imperial College Research Software Community Newsletter - January 2025

Happy New Year (just barely!) and welcome to the January issue of the Imperial College Research Software Community Newsletter! It might be the end of the month, but hopefully you are still riding that fresh-start energy, because in research software, every month is a chance to explore new tools, tackle emerging trends, or celebrate the brilliant work happening across the community.

Whether you are diving into 2025 with big resolutions or just resolving to keep your code running, we are here to give you an overview of what’s going on in the research software world, with our usual highlight of important dates, news and online resources. And, if you’re feeling the chill outside, let this newsletter warm you up with the latest updates. Enjoy!

Dates for your diary

Research Computing at Imperial

This month, in our series highlighting members of the College community helping to support research computing, we hear from Irufan Ahmed:

I’m excited to be back at Imperial as a Senior Research Software Engineer, 16 years after completing my undergraduate degree in Aeronautics. My interest in fluid mechanics led me to a PhD in computational combustion at Cambridge, where I developed a model to simulate combustion in spark-ignition engines. As part of this, I built an in-house Computational Fluid Dynamics (CFD) code to study spherically expanding turbulent flames.

After my PhD, I worked as a consultant in the oil and gas industry, using CFD to simulate fires and explosions on offshore platforms. I then moved to Ricardo as a Senior Software Engineer, where I developed combustion models for a commercial CFD software used by automotive engine manufacturers. This role introduced me to professional software development, agile workflows, and product roadmaps.

Wanting to broaden my experience, I completed an MBA at Cambridge and took on roles in operations and product management. However, I was keen to return to engineering, which led me to the RSE role at Imperial. This position allows me to combine my software engineering background with my passion for fluid mechanics, while also working across a range of projects rather than focusing on a single niche area.

As an RSE at Imperial, I’ll be working on three open-source CFD codes in Aeronautics—PyFR, Nektar++, and Xcompact3D. My focus will be on understanding these codebases and contributing to their improvement and sustainability. I’m also eager to leverage my industrial experience to enhance these codes and help attract more industry users.

I started last month and am looking forward to contributing to these projects. A key part of my role is also training PhD students and research associates in good software engineering practices—something I wish I had known more about during my own PhD! I’m excited to be part of the RS community and look forward to connecting with others at Imperial.

Research Software of the Month

This month, our Research Software of the month is grafify also available on CRAN:

grafify is an R package offering a quick-n-simple way to plot publication-ready graphs and perform ANOVA analyses with linear models (including mixed effects models). The package is an easy user-interface to ggplot2 and offers a range of graph customisations via arguments and avoids the need for many lines of code. This makes common tasks such as plotting data much easier so that researchers can spend more time ‘eye-balling’ and analysing their data than writing code. Those familiar with ggplot2 would know that it takes many lines of code to make bar graphs from factorial ANOVA data and even more to calculate error bars; grafify simplifies this to one line with options to plot SD, SEM or CI95 error bars, thus saving users much time and effort!

grafify can generate many types of graphs, including bars, boxplots, violins, distributions, residual plots, before-after plots, and randomised blocks. For inclusiveness, grafify only uses colourblind-friendly colour schemes - there are 12 discrete palettes and 5 continuous palettes to pick from. Advanced ggplot2 users who want to benefit from grafify can use exported functions to customise any ggplot2 object. This includes all colour schemes (scale_fill_grafify()and scale_colour_grafify()), theme_grafify() and plot_logscale() for easily generating images suitable for scientific papers, presentations, and reports.

Among the analyses options are consistent code interface for ANOVA (through lm() and lmer() functions) for ordinary and mixed effects linear models. Post-hoc comparisons are also easy to do (through emmeans() as the backend). An extensive user manual for graphs and analyses is available at the grafify vignettes website.

The future plan for grafify is to add functions and/or arguments to make routine graphing and analyses easier, and to create a shiny web app for non-R users.

If you use grafify, please cite: Shenoy, A. R. (2021) grafify: an R package for easy graphs, ANOVAs and post-hoc comparisons. Zenodo. http://doi.org/10.5281/zenodo.5136508.

RSE Bytes

News

Blog posts, tools & more

Some reminders…

RS Community Slack

The Imperial Research Software Community Slack workspace is a place for general community discussion as well as featuring channels for individuals interested in particular tools or topics. If you’re an OpenFOAM user, why not join the #OpenFOAM channel where regular code review sessions are announced (amongst other CFD-related discussions…). Users of the Nextflow workflow tool can find other Imperial Nextflow users in #nextflow. You can find other R developers in #r-users and there is the #DeepLearners channel for AI/ML-related questions and discussion. Take a look at the other available channels by clicking the “+” next to “Channels” in the Slack app and selecting “Browse channels”.

If you want to start your own group around a tool, programming language or topic not currently represented, feel free to create a new channel and advertise it in #general.

Research Software Engineering support

If you need support with your code, seek no more! The Central RSE Team, within the Research Computing Service is here to help. Have a look at the variety of ways the team can work with you:

HPC documentation and tips

All the documentation, tutorials and howtos for using Imperial’s HPC are available in the Imperial RCS User Guide. See also the Research Computing Service’s Research Computing Tips series for a variety of helpful tips for using RCS resources and related tools and services.

Research Software Directory

Imperial’s Research Software Directory provides details of a range of research software and tools developed by groups and individuals at the College. If you’d like to see your software included in the directory, you can open a pull request in the GitHub repository or get in touch with the Research Software Community Committee.

Get in Touch, Get Involved!

Drop us a line with anything you’d like included in the newsletter, ideas about how it could be improved, or even offer to guest-edit a future edition! rse-committee@imperial.ac.uk.

If you’re reading this on the web and would like to receive the next newsletter directly to your inbox then please subscribe to our Research Software Community Mailing List.


This issue of the Research Software Community Newsletter was edited by Stefano Galvan. All previous newsletters are available in our online archive.