Reflections on researchpages – the first research-specific community space on the web

Back in 2005 whilst working for SOLAS, an international research programme, I was struck by the inefficiency of the methods by which scientific websites, especially project websites were built and maintained. They looked awful (most still do) were built from scratch using dreamweaver, or worse still front page (honestly, in 2005 this was still pretty common in science) and updated via ftp (remember that?). Each project duplicated information (bio, publication list, research interests) about all of its members that could be found on other project websites, their institutional webpage and their personal one. In practice, most of this information was out of date and the html_edit-ftp process was such a “barrier to update” that most project websites were hideously static and barely worth visiting. Frankly pretty pointless.

It was time to try to bring scientific websites into the database-driven web world! I tried to get a CMS-driven, community updated website built for SOLAS, but failed (due to a lack of funding and engagement from project members).  Not put off, I decided to try to build the “universal solution” to this problem that would work for individuals and multiple projects alike.

At the dawn of the Facebook age, the idea behind researchpages would have been best described as “MySpace for research” and  such it was probably doomed from the start! However, to my knowledge it was the first research-specific community-based site on the web.  It was a place for individuals and projects to manage their forward-facing web presence, with some collaborative intra-group tools thrown in for good measure. Developed over the course of 2006 it was only a prototype, which I had hoped to find funding for to build the real deal (which would undoubtedly have been more ‘social’ and more a “Facebook for research”). After a couple of near-misses with substantial funding (enough to have allowed me to quit my day job and worked full time on the site) other (research) projects took priority and was put on the back burner.  It ticked over, mostly problem free for next 5 years, with a bunch of active users (maybe 100) and 5 times as many non-active ones. It was a multi-featured application with multi-column cms, user model, group model, auth model, publications model, wiki, blog, resource/file share, messaging and more! As my first (and to date only) database-driven web project that’s quite an achievement; I’m pretty pleased it survived, and provided a useful service to some people. Nice to know I could have been a proper web developer had I chosen that path. It may yet happen. The science funding runs out pretty soon!

The things I  think are still really good about researchpages:

  1. Simple CMS allows people and projects to maintain a media-rich web presence managed through a browser – no need to learn to build websites! Even the most luddite of users got to grips with the textile markup very quickly.
  2. Publications are shared between users – i.e. the authors of publications were interlinked. E.g. (I wish Mendeley did that!)
  3. An individual’s page can be rendered in isolation e.g. or under a group of which they are a member e.g. and– thus only a single page needs to be maintained with an individual’s details.

However, as it never got past the protoype stage and the internet has moved on and left it firmly on the wrong side of the social media revolution, I think it’s days are numbered. Maybe it was before its time…

Personally I have a blog, an online lab notebook and a twitter account now, and not much need of a personal website in the 2010s. If I were running a research programme I’d probably take the blog-and-twitter approach for that too, although that was a subject of discussion at the Digital Researcher earlier in the week and opinions were split on the value of a website as well as more dynamic content streams.

I’ve learned some important lessons from researchpages which might be useful:

1) keep it simple to start with – don’t have too many features. It confuses users and leaves a trail of mess that needs fixing when you discover bugs.

2) Marketing is all. Without marketing you don’t get the groundswell of users which moves you to the next level. These days that’s a lot easier, by harnessing the power of facebook and twitter – a remarkable number of academics are engaged with these now.

3) Keep developing – researchpages began a slow and painful death when I stopped developing it in 2007. It’s out of date. I’m so unfamiliar with the code now that fixing the problems raised by having to move servers after it got hacked is nigh-on impossible.

4) I thought that to maintain ‘authority’ and be attractive to academics, researchpages needed to have a controlled signup process. Either you ‘applied’ with evidence of your research, or you were signed up as part of a group signup by a group editor. This was silly. Open membership is the only way a) to grow a sufficient userbase to survive and b) to be inclusive. Academics are normal people too! Plus, I just made work for myself, ‘vetting’ people. It wasn’t very stringent – nobody who applied got turned down.

I regret not taking the leap and getting properly into researchpages 5 years ago. At the time it didn’t seem certain to me that the internet revolution would greatly affect academia, partly as I was faced with a great deal of cynicism and negativity from academics themselves when I talked to them about researchages and the ideas behind it. They are a conservative bunch and new concepts don’t progress easily through that sphere. Now it’s plain to see that in a decade or less academia (not just communication of results, but the whole academic process) will be almost unrecognisable as a result of the social media revolution. I hope to be part of that revolution, but researchpages isn’t the vehicle.

However, if anyone would like to take it on, I’m happy to let it go. Maybe or Mendeley would like to buy it 🙂


Preliminary response to researchpages user survey

Edit: There’ve been quite a few mentions of this on Twitter and elsewhere. Just to be clear – I’m aware this is a very small sample size at the moment, just put it up as I thought might be interesting and relevant to discussion at Digital Researcher meeting. Also, as mentioned below, the sample is heavily biased towards one area of science and age/career stage group


Just a quickie. I’m participating online in Digital Researcher 2012 (#dr12vitae on twitter). Lots of interesting discussions and hopefully a proper blog post to come later. But for now – an interesting preliminary result from the first 40-ish responses to the user survey question:

“what online services do you currently use?” Responders mostly contract researchers and lecturers (not many PhD students) and mostly in physical/chemical Environmental Sciences.

Key result – most respondents have never heard of most science-specific online services, and these guys are users of one (! There’s a long way to go…

I think this might be a useful analysis to do on a wider basis – I plan to make a wider survey asking this and maybe a couple of other key online science questions. Help with compiling a definitive list of services would be much appreciated – either in comments here or tweet me @martwine. Also, what other questions would you like to see asked of the research community regarding online science / open science…

Apologies for low quality of hastily put together figure and data table. Have discovered that I need a ‘publish to wordpress button’ in my spreadsheet software!

click to get the data!

Responses to question "which of the following online services do you use?" Click for a bigger one!

Rock-eating moss

In a paper published today we demonstrate how the first land plants (which were something like modern-day moss) could have had a significant effect on global temperature and atmospheric carbon dioxide. Moss was grown on a series of different rock types (Indonesian Basalt the pics below) and we found that in the process of growing the mosses weathered the rocks i.e. they released elements locked up in the rocks. Some went into the moss and some into the water which was in the microcosms the experiments were done in. As well as weathering of elements which are essential for plant growth in substantial amounts (Iron and Phosphorous), other elements which play an important role in the balance of carbon dioxide between the ocean and atmosphere were released. These alkaline earth metals change the balance of carbon chemistry in seawater and lead to uptake of carbon dioxide from the atmosphere. At the time when the first moss-like plants colonised the land surface, about 450 million years ago, there was a series of deep glaciations where global temperatures dropped substantially. It was previously though that the small rooted mosses couldn’t perform significant rock weathering and thus couldn’t be responsible for these glaciations through driving ocean uptake of carbon dioxide. This paper suggests that it may indeed have been the cause.

Photos courtesy of Mike Crouch / Andrew Davis / John Innes Centre

Media coverage:–earth-s-first-plants-may-have-triggered-series-of-ice-ages-study-finds

Also, we made slashdot 🙂

Oh, and this Continuing their CO2 fixation scientists now claim plants cause ice ages (

Researchpages – the final chapter

Below is an email sent out to users last week. I’ll blog the results of the user survey when they’re in.


Dear researchpages users,

You may have noticed that over the past few weeks that
has been inaccessible. This is because the server was compromised by a
serious hacking attack and was consequently taken down by the hosting
company. I have got the site back up and running, but without a serious
security audit and overhaul of the site code (which I haven’t touched
for more than 2 years) the server is likely to be hacked again. Given
the small number of active users, and the amount of work required to fix
the various problems with the site, I think it is unlikely that I wil
resurrect researchpages if it is hacked into again. I would advise you
to make backups of your files and web content from the site as soon as
possible. If it isn’t hacked, then I will give plenty of notice to you
before I take the site down (which I have no immediate plans to do).

I apologise to those of you who use the site regularly. I know a number
of you find it very useful. If anybody would like to take on the
responsibility for the site I’d be happy to do some sort of hand over,
but my feeling is that things have rather moved on on the web since
researchpages was created and there are probably better tools these days
to acheive most of what researchpages does.

Before researchpages was hacked I created a survey to be sent out to the
sites users to ascertain your views on the site – the good bits and the
problem bits,  how it compares to your experience of other online
services etc. I would be most grateful if you could find 5 minutes to
complete this quick survey at It
will help to figure out how best to move on from researchpages and I
will use it to make some reccommendations to site users over the next
month or so on how to achieve what researchpages did by using other free
web services.

Apologies again, particularly to those of you who have recently signed
up and put time and effort into creating your pages.

If anyone has any queries or suggestions I’d be glad to hear from you,
either through the survey at or
directly by email at or Please note I’m on paternity leave at the
moment so my response may not be swift!

Thanks for  your support of over the past 5 or so
years, sorry that it’s likely to come to an end soon.

Your faithfully

Martin Johnson 

Research frontiers in the analysis of coupled biogeochemical cycles

Adrien C Finzi, Jonathan J Cole, Scott C Doney, Elisabeth A Holland, and Robert B Jackson. 2011. Research frontiers in the analysis of coupled biogeochemical cycles. Frontiers in Ecology and the Environment 9: 74–80.

This is an interesting paper discussing research frontiers in global biogeochemistry. The authors identify our understanding of the coupling between the major (C,P,N,Si) elemental cycles with trace element cycles as being particularly lacking. For example, the coupling between the nitrogen and carbon cycles and the iron (Fe) and molybdenum (Mo) cycles. Fe and Mo are required for N-fixing apparatus in photosynthetic organisms, which allow plants to grow and thus take up carbon by taking nitrogen from the atmosphere when it is otherwise unavailable. This sets up a potentially important coupling between e.g. weathering of iron (Fe) and Molybdenum (Mo) on land and carbon uptake in the ocean.

They also identify the cross-boundary linkages between ecosystems as key understudied areas, for example streams, connecting the terrestrial biosphere with rivers and the ocean, or wildfires connecting terrestrial biomass and soils with the atmosphere and ocean and rebalancing soil nutrient stoichiometry.

In the context of understanding what mankind’s activity might do to the climate and ecosystem functioning of our planet we need predictive capacity and therefore better regional and global models of the Earth-system (so-called ‘coupled’ models which include physics, chemistry and biology all interacting simultaneously). As the authors recognise, to better constrain these models we need better understanding of the key underlying processes (often even to identify which processes are key!) and high qualtiy, high resolution time-series data with which to validate the biogeochemical interactions in the models. This is fundamental to being able to predict what might happen in the future – as multiple interacting processes can lead to highly non-linear responses to perturbations in the systems. 

“Feedback” is a word that appears only once in the paper, which is maybe a little surprising as this is ultimately what the understanding of the planet’s complex biogeochemistry is all about – how the whole system, or important parts of it, respond to the major changes we are visiting upon it? Will the Earth ‘bounce back’ from the huge temperature, carbon and nitrogen perturbations of the current period (negative feedback), or will it fly off to a new state that is much less hospitable to humans and the other inhabitants of this planet (positive feedback)? The Earth-system is made up of many interacting feedback loops, any of which may involve a number of different elemental cycles, physical and chemical processes, ecosystems and geographical regions in the ocean, atmosphere and on land. We can’t hope to identify all these ‘by hand’ so our best option is to represent all processes in coupled Earth-system models and  hope that the right balance of feedbacks falls out of the models at the end! Without the major ones being identified, we can’t hope to predict what effect our planet-wide changes are going to have, or what the side-effects of possible action (geoengineering) to ameliorate our negative effects could be.

How to calculate air-sea gas fluxes using R

A geeky post. If you haven’t a clue what I’m talking about, then apologies. If you’d like to know more, let me know and I’ll start from scratch some time.

A few months back I published a paper in the Open Access journal, Ocean Science, which described how to calculate the air-sea transfer velocity for any gas. It’s long and pretty tedious but brings together a whole bunch of stuff to enable other people to use the scheme to get the numbers they need without having to spend months trawling the literature for solubility data, diffusion coefficients, the equation of state for seawater etc. So all in all I hope it’s a useful contribution to science.

Along with the paper was an implementation of the scheme in R which is free for anybody to use. Since then I’ve put a copy up on github under an open source license. AS well as the core scheme from the paper there is a set of R functions which allow the reproduction of all the figures in the paper. I will also add extensions to the scheme into the github repository as I deem them useable by the community and/or publish them in future papers. Coming soon: chemical enhancement in the liquid and gas phases. Very exciting.

A few people have recently taken an interest in using the program to calculate air-sea trace gas fluxes for their gases of interest so I thought it would be useful to document how you might do that, starting with a spreadsheet containing temperature, salinity, wind speed and concentrations in both phases of the gas in question on each row, when one row equates to one flux calculation.

Here’s an example of some input data. It’s not very realistic a) because all the data is generated by picking random numbers from a gaussian distribution – most environmental data is skewed, especially concentration data and b) I don’t have time to check what a realistic concentration range for CH3I in atmosphere or ocean is. If someone would like to populate that spreadsheet with more realistic data in the future that’d be grand.

Anyway, step one is to generate a comma spaced value (.csv) file from your spreadsheet. In the case of the above you can get a csv version here, or in the case of your own data in (god forbid) Excel or some other spreadsheet, there’ll be a save as csv option.

So you’ve got your CSV file. Here I’ll assume that you have a working install of R pointed at your working directory which already contains the files from the github repository which make up the transfer velocity scheme. To test if the latter is the case, type (at the R console)


If nothing happens (i.e. R doesn’t complain that it has no idea what you’re talking about) then you’re good to go. Put your CSV file in the same directory (or somewhere else of your choosing if your happy to manipulate paths etc).

Now, to load that file in:


read.csv assumes that the first row is headings for each of the columns so this has worked out of the box. If your data is formatted differently you might need to use read.table, or specify header=FALSE in the command. For more info type


Anyway, the data is in and all is good at my end so we’ll press on.

In an R data frame you can get to each column of data in a number of ways. e.g.

> my_data[,3]
[1] 35.76926 35.36087 35.61887 35.35569 35.78936 35.47348 35.67157 35.45667
[9] 35.38169 35.77596 35.13184 35.57471 35.74122 35.60888 35.26568 34.96617
[17] 35.24797 35.19071 35.32195 35.34880
> my_data[,"Salinity"]
[1] 35.76926 35.36087 35.61887 35.35569 35.78936 35.47348 35.67157 35.45667
[9] 35.38169 35.77596 35.13184 35.57471 35.74122 35.60888 35.26568 34.96617
[17] 35.24797 35.19071 35.32195 35.34880

for convenience, let’s define some variables which are easy to remember:

> sal<-my_data[,"Salinity"]
> temp<-my_data[,"Temperature"]
> wind<-my_data[,"Windspeed"]
> sw_concn<-my_data[,6]
> atm_concn<-my_data[,5]

Simples. Next we need to use the K_calcs… program to calculate the transfer velocity for each compound.

make sure it’s loaded:


The function Kw calculates total transfer velocity for a gas with respect to a water phase concentration gradient.

You can see what a function does in R by calling it with no parentheses:

> Kw
#calculate total transfer velocity (Kw) after Liss and Slater

You can see from the above that the transfer velocity scheme is a series of nested function with the key parameters [compound, temperature, wind speed etc] all passed around between them. you can trace these through by looking at each function in turn in the same way as we did above for Kw. In fact you can call any function directly so if, e.g. you need the diffusivity of ammonia in air at 30 degrees you can call:

> D_air("NH3",30)
[1] 0.2111959

(diffusivities are in cm2/s)

Back to Kw. To calculate a single Kw value (e.g. for CH3I at 20 celcius, 5m/s windspeed and S=35) you’d do this:

> Kw("CH3I",20,5,35)
[1] 1.550430e-05

Which is great, but we want to calulate Kw for all the rows in our data at once. This is where R is particularly powerful. We can define a new column in my_data and use values in the other columns to calculate the value for each row of this new column, all at once!:

> my_data[,"Kw"]<-Kw("CH3I",temp,wind,sal)
[1] 7.708174e-06 5.370894e-05 8.074108e-05 2.681450e-05 1.489535e-05
[6] 3.510663e-05 3.820262e-05 5.879458e-05 4.813323e-05 1.059725e-04
[11] 4.354995e-05 2.856864e-05 1.078323e-05 1.036024e-05 4.048401e-06
[16] 3.977783e-05 6.687053e-05 2.779482e-05 3.426026e-05 3.584965e-07

Sweet huh?

So next let’s add a column which is the dimensionless henry’s law constant for CH3I at the temperature in each row:

> my_data[,"H"]<-KH("CH3I",temp,sal)
> my_data[,"H"]
[1] 0.1660876 0.1644287 0.1858428 0.1836445 0.1487224 0.1621694 0.1746626
[8] 0.2077991 0.1671034 0.1882404 0.2030620 0.1269990 0.1507726 0.1790700
[15] 0.1742638 0.1406145 0.1847995 0.1601485 0.2361064 0.1669096

Finally we can add a column which is the flux calculation, according to the flux equation:

F = Kw(Ca/H – Cw)

where F is the flux, Ca is the air concentration, Cw the water concentration, H the Henry’s law constant. [make sure all your units are correct -easy to go wrong here. The way I’m laying it out here is one correct way, but there are many others. Feel free to get in touch if you get stuck…]

In the case below I’ve multiplied by minus one to make a positive value of F represent a flux from sea to air – the way I like it ;-):

> my_data[,"F"]<-(my_data[,"Kw"]*((atm_concn/my_data[,"H"])-sw_concn))*(-1)

[1] 3.415365e-05 2.715205e-04 2.514285e-04 2.717888e-04 7.330746e-05
[6] 4.749550e-05 3.759730e-06 5.432819e-04 2.955133e-04 8.373667e-04
[11] 1.502132e-04 9.293719e-05 7.623237e-05 5.816068e-05 2.731569e-05
[16] 2.445745e-04 2.239382e-04 -1.252216e-05 3.216200e-04 6.304133e-07

* disclaimer: this has been done in a rush in the half hour before going away on holiday for a week – please check carefully before you rely on this. I’ll check it in detail when I get back.

You can then tell R to write you a nice CSV of all the data:


Download it here

Sorry about the ridiculous number of ‘significant’ figures throughout. R can be tamed in that respect but I haven’t had time. Example here.

Bob’s your uncle as they say.