One aspect of my EPSRC Research Software Engineering fellowship is to spread basic good practice in research software to different academic fields. Last year, I was invited to participate in a Reproducible research in Ecology workshop which was part of the 2016 International Society of Behavioural Ecology Conference. My contributions included a talk (your research software correct?) and a workshop on using projects and version control using R and RStudio.
The latest output from this stream of work is a paper in Behavioral Ecology called Striving for transparent and credible research: practical guidelines for behavioral ecologists which discusses various topics including preregistration, open science and, of course, research software practices with shout-outs to initiatives such as Software Carpentry, Research Software Engineering and the Software Sustainability Institute. The lead author is Malika Ihle with contributions from Isabel S Winney, Anna Krystalli and me.
One of the great things about being a Research Software Engineer is the diversity of work you can get involved with. I specialise in smaller interventions which means that I can be working with physicists on Monday, engineers on Tuesday, geneticists on Wednesday….you get the idea.
Last month, I got to work with some Ecologists along with Anna Krystalli. We undertook the arduous journey from Sheffield down to Exeter to deliver talks and workshops at a post-conference symposium on reproducibility in science, organised by Malika Ihle and Isabel Winney, at the International Symposium on Behavioural Ecology.
I gave my talk, Is your research software correct?, and also delivered a workshop on using projects and version control using R and RStudio in the Code Cafe style. For the full write up of the day, see the excellent blog post by Anna over at the Mozilla Science Lab blog.
Updates : More resources
Back in December 2014, I learned that I’d be moving from The University of Manchester to The University of Sheffield to do the type of thing I’ve always done which is a combination of research software engineering and research software support.
I’ve been in Sheffield for two months now and am having a blast! There’s so much cool stuff going on here that it makes my head spin a little and the community at Sheffield have welcomed me with open arms. It truly is a wonderful place in which to work.
One of the departments I’ve started working with is The Sheffield Institute for Translation Neuroscience (SITraN). My contributions have been relatively minor so far – A bit of Python coding for a machine learning project called GPy and some code speed-up work in R for Winston Hide and his collaborators. When I hang out in SITraN, I usually sit with the machine learning people and listen in on their conversions about Python, MATLAB, GPUs, C++ and R — it’s essentially Nerdvana for someone like me.
On to the point of this blog post. SITraN now have their own blog called SITraNsmissions where they’ll be discussing various aspects of their work and how it applies the principles of neuroscience to help treat diseases such as Motor Neurone Disease (MND). In the video below, taken from SITraNsmissions first blog post, Professor Pamela Shaw gives an overview of the work that SITraN does.
Research Software Engineers (RSEs) are the people who develop software in academia: the ones who write code, but not papers. The Software Sustainability Institute (a group of which I am a Fellow) believes that Research Software Engineers lack the recognition and reward they deserve for their contribution to research. A campaign website – with more information – launched last week:
The campaign has had some early successes and has been generating publicity for the cause, but nothing will change unless the Institute can show that a significant number of Research Software Engineers exist.
Hence this post. If you agree with the issues and objectives on the website, please sign up to the mailing list. If you know of any other Research Software Engineers, please pass this post onto them.
One of my favourite parts of my job at The University of Manchester is the code optimisation service that my team provides to researchers there. We take code written in languages such as MATLAB, Python, Mathematica and R and attempt (usually successfully) to make them go faster. It’s sort of a cross between training and consultancy, is a lot of fun and we can help a relatively large number of people in a short time. It also turns out to be very useful to the researchers as some of my recent testimonials demonstrate.
Other researchers,however, need something more. They already have a nice piece of code with several users and a selection of papers. They also have a bucket-load of ideas about how to turn this nice code into something amazing. They have all this good stuff and yet they find that they are struggling to get their code to the next level. What these people need is some quality time with a team of research software engineers.
Enter the Software Sustainability Institute (SSI), an organisation that I have been fortunate enough to have a fellowship with throughout 2013. These guys are software-development ninjas, have extensive experience with working with academic researchers and, right now, they have an open call for projects. It’s free to apply and, if your application is successful, all of their services will be provided for free. If you’d like an idea of the sort of projects they work on, take a look at the extensive list of past projects.
So, if you are a UK-based researcher who has a software problem, and no one else can help, maybe you can hire* the SSI team.
I am extremely short sighted and have a contact lens prescription of the order of -10 dioptres or so. Recently, I was trying to explain to my wife exactly how I see the world when I am not wearing my contact lenses or glasses and the best I could do was ‘VERY blurry!’
This got me thinking. Would it be possible to code something up that took an input picture and a distance from my eyes and return an image that would show how it looks to my unaided eyes?
Would anyone like to give this a go? How hard could it be?
One of my academic colleagues, Fumie Costen, recently asked members of The University of Manchester GPU Club the following question
‘I am looking for a journal with high impact factor where I can publish our work on GPU for FDTD computations. Can anyone help?’
So far, we haven’t had any replies so I’m throwing the question open to the world. Any suggestions?
Earlier this year I was awarded a fellowship from the software sustainability institute, an organization that works to improve all aspects of research software. During their recent collaborations workshop in Oxford, it occurred to me that I was aware of only a relatively tiny number of software projects at my own institution, The University of Manchester. I decided to change that and started contacting our researchers to see what software they had released freely to the world as part of their research activities.
Research software comes in many forms; from small but useful MATLAB, Python or R scripts with just a handful of users and one developer right through to fully-fledged applications used by large communities of researchers and supported by teams of specialist developers. I’m interested in knowing about all of it. After all, we live in a time when even a mistake in an Excel spreadsheet can change the world.
The list below is what’s been sent to me so far and is a mirror of an internal list that’s been doing the rounds at Manchester. I’ll update it as more information becomes available. If you are at Manchester and know of a project that I’ve missed, feel free to contact me.
Last updated: 26th Jan 2015
Centre for Imaging Sciences
- BoneFinder – BoneFinder is a fully automatic segmentation tool to extract bone contours from 2D radiographs. It is written in C++ and is available for Linux and Windows.
Faculty of Life Sciences
- antiSMASH – Genome annotation tool for secondary metabolite gene clusters.
- MultiMetEval – Flux-balance analysis tool for comparative and multi-objective analysis of genome-scale metabolic models.
- mzMatch/mzmatch.R/mzMatch.ISO – Comprehensive LC/MS metabolomics data processing toolbox.
- Rank Products – Statistical tool for the identification of differentially expressed entities in molecular profiles.
- openCDMS – The openCDMS project is a community effort to develop a robust, commercial-grade, full-featured and open source clinical data management system for studies and trials.
- idiffh – Research software can produce huge text files (e.g. logs). The GNU diff program needs to read the files into memory and therefore has an upper bound on file size. idiffh might only use a simple heuristic but is only bounded by the maximum file size (and free file store).
- nearest_correlation – Python versions of nearest correlation matrix algorithms
- ParaFEM – A portable library for parallel finite element analysis. Contributions from MACE, SEAES, School of Materials.
- Shadow – This is an Apple Mac OS X shell level application that can monitor Dropbox shared folders for file deletions and restore them.
- The Reality Grid Steering Library – A software library for steering and monitoring numerical simulations, APIs available for Fortran/C++/Java and steering clients available for installation on laptops and mobile devices. Developed in collaboration with the School of computer science.
Manchester Institute of Biotechnology
- Copasi – COPASI is a software application for simulation and analysis of biochemical networks and their dynamics.
- Condor Copasi – Condor-COPASI is a web-based interface for integrating COPASI with the Condor High Throughput Computing (HTC) environment.
School of Chemical Engineering & Analytical Science
- SurfaceSpectra Identity– is free software that allows you to view and export isotope patterns.
School of Chemistry
- DOSY Toolbox – A free, open source programme for processing PFG NMR diffusion data (a.k.a. DOSY data).
- Clinical NERC – Clinical NERC is a simple customizable state-of-the-art named entity recognition, and classification software for clinical concepts or entities.
- EasyChair – EasyChair is a free conference management system.
- GPC – The University of Manchester GPC library is a flexible and highly robust polygon set operations library for use with C, C#, Delphi, Java, Perl, Python, Haskell, Lua, VB.Net (and other) applications.
- HiPLAR – High Performance Linear Algebra in R. A collaboration between Manchester and Imperial.
- iProver – 7 times word champion in theorem proving.
- INSEE – Interconnection Networks Simulation and Evaluation Environment
- KUPKB (The Kidney & Urinary Pathway Knowledge Base) – The KUPKB is a collection of omics datasets that have been extracted from scientific publications and other related renal databases. The iKUP browser provides a single point of entry for you to query and browse these datasets.
- ManTIME – ManTIME is an open-source machine learning pipeline for the extraction of temporal expressions from general domain texts.
- MethodBox – MethodBox provides a simple, easy to use environment for browsing and sharing surveys, methods and data.
- myExperiment – myExperiment makes it easy to find, use and share scientific workflows and other Research Objects, and to build communities.
- Open PHACTS Discovery Platform – Freely available, this platform integrates pharmacological data from a variety of information resources and provides tools and services to question this integrated data to support pharmacological research.
- OWL API – A Java API and reference implementation for creating, manipulating and serialising OWL Ontologies. The latest version of the API is focused towards OWL 2. The OWL API is open source and is available under either the LGPL or Apache Licenses.
- OWL Tools – a collection of tools for working with OWL ontologies
- OWL Webapps – a collection of web apps for working with OWL ontologies
- RightField – Semantic annotation by stealth. RightField is tool for adding ontology term selection to Excel spreadsheets to create templates which are then reused by Scientists to collect and annotate their data without any need to understand, or even be aware of, RightField or the ontologies used. Later the annotations can be collected as RDF
- SEEK – SEEK is a web-based platform, with associated tools, for finding, sharing and exchanging Data, Models and Processes in Systems Biology.
- ServiceCatalographer – ServiceCatalographer is an open-source Web-based platform for describing, annotating, searching and monitoring REST and SOAP Web services.
- Simple Spreadsheet Extractor – A simple ruby gem that provides a facility to read an XLS or XLSX Excel spreadsheet document and produce an XML representation of its content.
- Taverna – Taverna is an open source and domain-independent Workflow Management System – a suite of tools used to design and execute scientific workflows and aid in silico experimentation.
- TERN – TERN is a temporal expressions identification and normalisation software; designed for clinical data.
- Utopia Documents – Utopia Documents brings a fresh new perspective to reading the scientific literature, combining the convenience and reliability of the PDF with the flexibility and power of the web.
School of Earth, Atmospheric and Environmental Sciences
- ManUniCast – iPad/iPhone app. Weather and Air-Quality Forecasts for the UK and Europe
School of Electrical and Electronic Engineering
- Automatic classification of eye fixations – Identify fixations and saccades from point-of-gaze data without parametric assumptions or expert judgement. MATLAB code.
- Bootstrap Threshold Software – Estimate a threshold and a robust SD from stimulus-response data with a normal cumulative distribution. Written in C.
- LDLTS – Laplace transform Transient Processor and Deep Level Spectroscopy. A collaboration between Manchester and the Institute of Physics Polish Academy of Sciences in Warsaw
- Model-Free Psychometric Function Software – Fit a stimulus-response curve and estimate a threshold and SD without a parametric model
- Raspbian – Raspbian is a free operating system based on Debian optimized for the Raspberry Pi hardware.
- Signal Wizard – Digital signal processing software.
School of Mathematics
- EIDORS – Electrical Impedance Tomography and Diffuse Optical Tomography Reconstruction Software.
- Fractional Matrix Powers – MATLAB functions to compute fractional matrix powers with Frechet derivatives and condition number estimate
- fAbcond – Python code for the condition number of a matrix exponential times a vector
- funm_quad – Quadrature-based Arnoldi restarts for matrix function computations in MATLAB
- IFISS – IFISS is a graphical package for the interactive numerical study of incompressible flow problems which can be run under Matlab or Octave.
- MARKOVFUNMV – An adaptive black-box rational Arnoldi method for the approximation of Markov functions.
- Matrix Computation Toolbox – The Matrix Computation Toolbox is a collection of MATLAB M-files containing functions for constructing test matrices, computing matrix factorizations, visualizing matrices, and carrying out direct search optimization.
- Matrix Function Toolbox – The Matrix Function Toolbox is a MATLAB toolbox connected with functions of matrices.
- Matrix Logarithm – MATLAB Files. Two functions for computing the matrix logarithm by the inverse scaling and squaring method.
- Matrix Logarithm with Frechet Derivatives and Condition Number – MATLAB files
- NLEVP A Collection of Nonlinear Eigenvalue Problems – This MATLAB Toolbox provides a collection of nonlinear eigenvalue problems.
- oomph-lib – An object-oriented, open-source finite-element library for the simulation of multiphysics problems.
- rktoolbox – A Rational Krylov Toolbox for MATLAB
- Shrinking (MATLAB) – MATLAB codes for restoring definiteness of a symmetric matrix by shrinking
- Shrinking (Python) – Python codes for restoring definiteness of a symmetric matrix by shrinking
- Simfit – Free software for simulation, curve fitting, statistics, and plotting.
- SmallOverlap – SmallOverlap is a GAP 4 package which implements new, highly efficient algorithms for computing with finitely presented semigroups and monoids whose defining presentations satisfy small overlap conditions (in the sense of J.H.Remmers)
- Symmetric eigenvalue decomposition and the SVD – MATLAB files
- testing_matrix_functions – MATLAB files for testing matrix function algorithms using identities such as exp(log(A)) = A
School of Mechanical, Aerospace and Civil Engineering (MACE)
- DualSPHysics – DualSPHysics is based on the Smoothed Particle Hydrodynamics model named SPHysics and makes use of GPUs.
- FLIGHT – FLIGHT specialises in the prediction and modelling of fixed-wing aircraft performance
- SPHYSICS – SPHysics is a platform of Smoothed Particle Hydrodynamics (SPH) codes inspired by the formulation of Monaghan (1992) developed jointly by researchers at the Johns Hopkins University (U.S.A.), the University of Vigo (Spain), the University of Manchester (U.K.) and the University of Rome La Sapienza (Italy).
- SWAB Online – Innovative and User Friendly Web Application in Running Fortran-based 1-D Shallow Water near Shore Wave Simulation Modelling
School of Physics and Astronomy
- Herwig++ – Herwig++ is a new event generator, written in C++, built on the experience gained with the well-known event generator HERWIG, which was used by the particle physics community for nearly 30 years. Herwig++ is used by the LHC experiments to predict the results of their collisions and as an essential component of their data analysis. It is developed by a consortium of four main nodes, including Manchester, and its published write-up has been cited over 500 times.
- im3shape – Im3shape measures the shapes of galaxies in astronomical survey images, taking into account that they have been distorted by a point-spread function.
- MAD8/madinput – Mathematica code and MAD8 installer for performing optics calculations for particle accelerator design.
- PolyParticleTracker – MATLAB code for particle tracking against complex optical backgrounds
One of the benefits of working at a university is that you are surrounded by a lot of smart people doing very interesting things and it usually doesn’t take much effort to get them to talk about their research. I work in the faculty of Engineering and Physical Sciences which means that I’m pretty well covered in subjects such as mathematics, physics, chemistry, engineering, computer science, materials and earth sciences but I have to go all the way to the other side of campus if I want to learn a little about the life sciences.
Last week, I attended a free event called The Rogue Cell which was arranged by The Wellcome Trust Centre for Cell-Matrix Research and hosted by The Manchester Museum as part of World Cancer Day. I had no idea what to expect out of the evening but if you were to press me I would have guessed that there was going to be a lot of power point slides and row upon row of gently dozing delegates. I could not have been more wrong.
The event was arranged in a workshop format where all of the attendees were split into five groups of six or so. Each group was then assigned a Wellcome Trust Researcher who’s job it was to explain to us one of five defining characteristics of a cancer cell which were
- Evading the immune system
- Angiogenesis (formation of blood vessels)
- Lack of apoptosis (programmed cell death).
Each group kept their researcher for 20 minutes or so before they got assigned a new one who discussed a different topic from the five. So, by the end of the evening we had covered the lot. The presentations were intimate, informal and highly interactive and it felt to me like I was having a good chat down my local pub with a group of people who just happened to be world-class cancer researchers. If only all learning experiences were like this one!
There was a great cross section of attendees from PhD biology students through to clinicians, undergraduates, random people off the street and, of course, the occasional math software geek. One of the great things about this event was the fact that everyone seemed to get a lot out of it, no matter what their background. I asked a lot of questions, many of which would have been blindingly obvious to a student of the life sciences but not once was I made to feel stupid or out of place. It must have been exhausting for the presenters but I can honestly say that it was one of the most enjoyable learning experiences I’ve had for quite some time.
I sincerely hope that The Wellcome Trust Centre for Cell-Matrix Research and The Manchester Museum will be arranging more events like this in the future.
The following links were sent to us following the event. I include them here for anyone who’s interested.
Evasion of Immune System:
- New cancer therapy:http://www.youtube.com/watch?v=t3bI9nBa4FY
- Herceptin mechanism of action:http://www.youtube.com/watch?v=IeE3K7U9fTQ
As everyone knows, Graphene is the Chuck Norris of materials. Sometimes pure, sometimes mixed with a little of this or that, it has an astonishing array of uses. Here’s a list of some of the things it can do
- Amplify light
- Cool microchips
- Detect diseases
- Enable CPUs that can operate at 100s of Ghz
- Desalinate water
- Generate electricity from flowing water
- Generate electicty from heat
- Generate electricity from light
- Generate electricity by being squeezed (Piezoelectricity)
- Kill Bacteria
- Make alcohol stronger
- Make an invisibility cloak
- Measure the fine structure constant
- Produce gas sensors capable of detecting a single atom
- Produce a better MRI contrast agent
- Support hyperfast optical networks
Here’s a brief list of some of its more interesting properties
- Highest known thermal conductivity
- Longest mean free path of any material at room temperature
- Repair Itself
- Stiffest known material
- Strongest known material
- Thinnest known material (Since it is one atom thick)