Imperial College Research Software Community Newsletter - July 2023

It’s July, summer is here (apparently!), the College is much quieter as we’ve reached the end of term, but there’s still lots going on in the world of Research Software Engineering. Whether you are taking a break during August, or you’re working through the summer, I hope you find something of interest and some inspiriation from our selection of items in this month’s newsletter.

This month we continue our popular profiles of people working in the research computing and research software fields at Imperial. As AI continues to feature regularly within the news, we highlight some tools that might be of interest if you’re looking to bring AI-assistance into your software development workflow. We also have our regular digest of upcoming events, activities and deadlines so read on to find out more…

Dates for your diary

Research Computing at Imperial

Over the last few months, we’ve been highlighting members of the Research Software Champions scheme in this section. The project which supported the setup and running of the Champions scheme is now coming to a close and we thank our Champions for all their excellent work raising awareness of the importance of research software within their departments.

This month we hear from Rich FitzJohn who leads the RESIDE Research Software Engineering team:

I run the RESIDE RSE team within the MRC Centre for Global Infectious Disease Analysis in the School of Public Health at Imperial. Our team supports a large group of computational epidemiologists, most of whom could be considered RSEs as they primarily work in code, writing simulation or statistical models. My team’s work with the researchers focusses on scaling their work - reducing the “time to model” through new libraries and frameworks, increasing the robustness and reproducibility through better tooling and workflows and in delivering research to stakeholders and end-users (often in resource-poor environments) through bespoke web applications.

Before coming to Imperial College in 2015, I had a highly collaborative research career, starting with Manaaki Whenua/Landcare Reseach in NZ building databases, through to a postdoc at Macquarie University working with industry software engineers and ML specialists. I find collaborative work very rewarding, particularly when you find the thing that a group can build together with their joint expertise that none of the constituent parts could manage.

The best thing about my work is being able to see the results of the work my team or I do put into practice immediately, along with the varied nature of what needs doing. Throughout the COVID-19 response I was working directly with the researchers and we were coping with a changing data landscape while helping implement new statistical methods that were put into use right away - a level of impact that it’s hard to imagine in most other jobs!

Research Software of the Month

This month we highlight a code developed by the Pore-Scale Modelling and Imaging group in the Department of Earth Science and Engineering: pnextract - pore-network extraction

Flow in porous media is ubiquitous in natural and manufactured settings, from rainfall falling on soil and transpiration in plants, to filling a baby’s nappy and fluid exchange in electrochemical devices, such as electrolysers and fuel cells. Underground, most of the world’s fresh water is held in porous rock and soil, while deeper formations may contain oil and gas; otherwise the pore space is filled with salty water which can be displaced to store carbon dioxide or hydrogen. The design and management of flow processes in porous media require accurate tools for analysis and modelling. The advent of micron-resolution three-dimensional X-ray imaging has allowed us to image the pore space and the fluids within it. However, how do we make sense of images that often contain 10s of billions of voxels?

pnextract is an open-source software written in C++ that extracts pore networks from images or statistical reconstructions of porous materials. These pore networks preserve the topology of the pore space and also calculate other parameters, such as the pore size distribution, interfacial area and volume needed for analysis and simulations.

The program has been used thousands of times by hundreds of researchers around the world for a variety of applications. These include manufactured porous media, particularly those found in electrochemical devices, such as the characterization of porous electrodes in batteries to create a digital twin, and to predict and design the performance of fibrous materials used in electrolysers and fuel cells. The tool has even been used to quantify the efficiency of surgical masks. The other main application is to study natural porous media – rocks, soils, coal and gas hydrates – for applications in hydrocarbon recovery and carbon dioxide storage, as well as contaminant transport. Here the characterization of the pore space is a powerful tool to enable the prediction of flow properties to manage subsurface recovery and storage projects.

In the commercial domain, the original developer of the method, and a former PhD student, Dr. Hu Dong, has founded a successful start-up company, iRock Technologies, based in Beijing to develop network extraction and other tools to provide rock characterization services to the energy industry.

For more in-depth understanding of the code, users can refer to specific papers related to this topic, which may provide additional insights [1, 2].

Network extraction is normally the first step for further analysis and modelling, to predict flow and transport processes in porous materials, and to analyse three-dimensional images. For over 20 years Imperial College has pioneered new techniques in imaging, analysis and modelling of porous media. We also host a suite of codes for modelling and image analysis which complements the network extraction code at https://github.com/ImperialCollegeLondon/porescale. Overall, our code repository provides an open-source resource to the community, including colleagues in industry as well as in academia, for the analysis, characterization, and prediction of processes in porous media with a wide range of applications.

Please visit our webpage to become more familiar with what we are doing.

RSE Bytes

News

Blog posts, tools & more

AI-assisted Coding

While many of us enjoy nothing more than some time spent writing code, what if you’re finding coding to be a bit much of a chore?! The world of AI-assisted coding is advancing rapidly and could be here to help you!

Following on from a recent AI-assisted coding workshop/hackathon run at Imperial by the Graduate School’s Research Computing and Data Science Skills team, we thought we’d highlight some of the tools that are out there in this space.

Maybe you’ve tried some of these yourself. Maybe you even use them regularly as part of your software development workflow?

These are just some examples of a wide range of tools and services that are available in a space that is changing and growing incredibly rapidly.

Want to tell members of the Imperial research software community about your experiences with AI-assisted coding? Maybe you’d like to run a tutorial on a tool you love to use that has revolutionised your coding practices? Maybe you’ve tried out a few different options and have some useful feedback for the community? Maybe you’d just like to tell us what you use and why. Feel free to get in touch with the Community Committee at rse-committee@imperial.ac.uk.

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 HPC Wiki pages. 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 Jeremy Cohen. All previous newsletters are available in our online archive.