Category Archives: Blog

Southwark Local Elections 2014 – A guide for cycling voters

Jump to:

All People’s Party // Conservatives // Greens // Labour // LibDems // Others // UKIP

(Experiences gleaned volunteering for London Cycling Campaign / Southwark Cyclists – but this post still reflects my personal opinion, not LCC/SC policy or views. You can check which candidates support the cycling ask in your ward here – updates live.)

About ‘Space4Cycling’

This year, for the first time since 2010, every single councillor in Southwark is up for election/re-election. Southwark Council – not TfL – is responsible for more than 90% of the roads in Southwark, including a lot of the dangerous ones. So I’ve been doing a fair bit of volunteering for the #space4cycling campaign. You can read more about it in the link, and I’ll give my personal opinion of the parties further down, but in a nutshell, what is ‘Space4Cycling’? It means:

Making streets safer and more pleasant for all road users, specifically cyclists of all ages, sexes and abilities.

Small boy on cycle
This guy should be able to cycle safely in Southwark (Wikimedia; cc-by-sa)

Well, essentially every party political manifesto in history has made this ‘pledge’ and yet, oddly, we’re still not there. The blindingly obvious reason is that although this pledge is very praiseworthy, it’s also incredibly general. Seasoned campaigners know that the way to get politicians to ‘do something’ is to make that ‘something’ very specific indeed, so they can’t wriggle out of it later. That’s why party manifestos don’t (any longer) say things like ‘fewer hungry school children’, because the anti-poverty campaigners would rightly collar them for making a vague flaky commitment that’s hard to measure progress against. Instead manifesto pledges around ‘traditional big issues’ say things like ‘free school meals for all under-5s’ – the specificity reassures us, the voters, that the party in question is serious.

So now that cycling is a Big Issue Of The Day, London Cycling Campaign members (12,000 of us!) decided last year that we needed some highly specific pledges against which cycling voters could compare the parties. And that’s how the Space4Cycling campaign works:

Ask for a single, specific, badly-needed piece of physical cycling infrastructure in every electoral ward in London, and lobby all the candidates to support it so that the ‘ask’ gets built, no matter who gets elected.

Ballot box
(Wikimedia Commons; cc-by-sa)

The Parties

I volunteered for Southwark Cyclists / London Cycling Campaign, and we attempted to contact all the major parties. Even for a professional lobbying organisation it’s a big effort, and the number of candidates just in Southwark is staggering. But we tried. Individual candidates were encouraged to go on record as supporting the ‘ask’ in each ward, to demonstrate a concrete commitment to safer cycling. The ideal situation (happily realised in some London wards) is for 100% of candidates to support the ask. Where that happens we can rejoice as campaigners, because as far as cycling goes, the candidates’ commitment are identical and there’s nothing more we can add to inform your choice – as far as cycling goes.

You can check which candidates support the cycling ask in your ward here (live updating). You can also use this link to email your local candidates with one click – as 83,000+ Londoners have already done!

Unfortunately at the time of writing not all the candidates / parties have made this commitment. Some of them were hard to contact at all. Some we simply ran out of time for. And some, well, they’ve talked about cycling, but stopped short of supporting our asks. This puts us voters in a difficult position, as we have to try and judge some parties’ will to act on a critical issue of safety, the daily commute, based on some very vague information. Here’s my personal effort (I’ve included manifestos where I can find them).

All People’s Party – manifesto

APP are a new and small party focused on social issues. However I was able to speak to one candidate, who was broadly supportive of cycling issues. Their manifesto is short on cycling detail but they do have highly specific pledges, including repair of all potholes within 7 days. All candidates have signed up to Space4Cycling where fielded.

Specific support for asks: Complete support

Party line on safe cycling: No coherent policy, but specific where relevant.

Conservatives – manifesto

The picture for the Conservatives in Southwark is very mixed. Broadly speaking, those candidates in the north of the Borough (e.g. Bermondsey, Borough) ‘got’ the campaign, and those elsewhere across Southwark either opposed Space4Cycling, or hadn’t even heard of the campaign. Although I couldn’t find a canonical manifesto item on cycling, at the 11th hour they’ve issued these pledges, which apply to Bermondsey and Old Southwark, but not the South of the Borough. So as with Labour, I suggest you check the Space4Cycling site to see if your candidates are on board.

Specific support for asks: Bermondsey and Old Southwark – check for details

Party line on cycling: Promising, short some on specifics

Greens – manifesto | cycling policy

The Greens are the party most obviously associated with cycling, and Green politicians in government have backed that up with legislatory support and regulatory oversight of cycling issues in local, national and European government – but then all the major parties have politicians who do similar work (apart from UKIP). Unlike the 80s, the Greens no longer have a monopoly on sustainable transport as a policy issue.

Greens have not held control or balance of power in Southwark so we can’t judge them on that record, but a Green council in Brighton was one of the first to adopt citywide 20mph limits. All the candidates standing support the Space4Cycling asks, and their (London-wide) manifesto pledges infrastructure improvements on ‘… all roads where people live, work and shop’ (Manifesto, pp.13). This is a big promise (‘all’ roads?) but it is ambitious and specific, which is what cycle campaigners have been asking for, after all. They also have a cycling policy specific to Southwark.

Specific support for asks: Complete support

Party line on cycling: Promising and specific

Labour – manifesto

Labour took full control of the council in 2010. So, although this period includes the financial crisis and consequent spending cuts, it is fair to look back on their record as well as their manifesto. There have been some improvements to road maintenance, some improved ASLs (green boxes at traffic lights) and cycling programmes. But the killed / seriously injured (KSI) statistics show that cycling casualties have increased since 2010. Cyclists should be concerned about this trend. On a positive note, Southwark Labour councillors in office who ‘get’ cycling have engaged actively with Southwark Cycles, including the formation of a joint steering group.

Their manifesto pledges to ‘…deliver Southwark a safer cycling network’ (Manifesto, pp.7). This is a promising pledge but a vague one. Engagement continues, but unlike the Lib Dems or Green party, Labour haven’t given a blanket commitment to Space4Cycling across Southwark. For instance, although Brunswick Park candidates Mark Williams and Radha Burgess won’t support the Space4Cycling ask in Southampton Way, they have agreed to meet Southwark Cyclists in June, if elected, to discuss alternative ways to prevent rat-running there.

As with the Tories, I suggest you check the Space4Cycling site to see if your candidates are on board.

Specific support for asks: Some wards – check for details

Party line on cycling: Promising, short on specifics

LibDems – manifesto | cycling policy

The Lib Dems held control of the council in 2002-2006, and were equal-largest block (with Labour) from 2006-2010, sharing power with the Tories. So a lot of responsibility for infrastructure spending (or lack of) in this period might be laid at their door. However they have made the right ‘cycling noises’ throughout this campaign and were the only major party (along with the Greens) to make a blanket commitment to Space4Cycling in every ward in Southwark. They made this commitment very early on in their campaign.

Their manifesto also has pledges which are specific, including “introduce protected cycle lanes alongside all major roads in Southwark” (Manifesto, pp.8). Overall, of the two parties most likely to win control in Southwark, they have the strongest support on record and the most specific manifesto commitments. They also have a cycling policy specific to Southwark, which includes a 20% target modal share by 2025.

Specific support for asks: Complete support

Party line on cycling: Promising and specific

Others

I wasn’t able to meet personally with any independent candidates, or any of the other parties, e.g. TUSC, BNP etc. I have a day job! However you can have a look for yourself which are supporting cycling in your ward at the space4cycling site. A lot of independents are…

Specific support for asks: n/a

Party line on safe cycling: n/a

UKIP – manifesto

No contact from UKIP, despite LCC/SC trying to. So we have to judge on their individual support, and party cycling policy. At the time of writing, no UKIP candidates are supporting any of the ward asks I’ve been monitoring. UKIP do have a policy on cycling, which you can read about. It’s more about enforcement against anti-social cycling (personally I’m against any anti-social behaviour, whether via bike, car or steam-roller, like most sensible adults), but there is very little commitment to safer cycling.

Specific support for asks: no

Party line on safe cycling: No coherent policy

 

So… how will Southwark vote? It’ll be interesting to find out.

Space for Cycling in Southwark – Ride and campaign

We need safer environments to cycle in – everyone knows that. Safe protected space to cycle in reduces conflict with motor traffic and pedestrians, improves congestion and most importantly brings the health and wellbeing benefits of cycling to all cyclists, old and very young – not just macho 30-somethings like me.

Well-designed cycle facilities have been tough to find in London for years, but things are changing, with real momentum to finally sort it out properly. The Space4Cycling campaign is a good example of that. Launched by London Cycling Campaign and other groups last year, it really effectively highlighted the dangers we face, and the easy ways to remove them.

This year’s campaign is a once-quadrennially (ahem) opportunity to get things done using this year’s local elections to put pressure on councils effectively. Teams of LCC volunteers have polled thousands of London’s cycle commuters to highlight the most important sections of their particular routes and drawn up a proposed infrastructure improvement, or ‘ask’ in every singleBy joining the campaign, you can send a message to every prospective council candidate in your ward that you want to sort cycling out – and they’re listening. At the time of writing this, more than 1-in-3 candidates across London have responded to over 33,000 messages from the public by committing to deliver the cycling ask in their ward over the next 4 years.


Space4Cycling in Southwark – Ride Sat 10th May

Southwark, where I live, is one of the best and busiest boroughs in London. As well as hosting thousands of cyclists (>3000 LCC members live in Southwark!) there are tens of thousands of commuter trips through the Borough every day. Of course, our central location means lots of other road traffic as well, and it doesn’t help that the Council is one of the poorest in London.

Things are changing though, with the Cycle Superhighways CS7 and CS2 due to be improved ‘soon’ (crossing my fingers) and joined by CS5 from New X to Victoria (after a terrible start and a couple of rounds of consultation, TfL are now looking at more physical segregation here).

So to get the maximum possible impact Southwark Cyclists, the LCC local group, are running a fact-finding ride / demonstration this Saturday 10th May through some of the most dangerous parts of central Southwark. Candidates are invited to see for themselves, and a number (including all major parties) are likely to come. So come along, and you can tell them in person about the dangers you face on Southwark’s streets.

The ride will be guided, and take approximately 1 hour from 11am, finishing at midday at the Park Life Café, in Burgess Park.  Meet at Queen St on the north end of Southwark Bridge (start of CS7) – just look out for a load of cyclists!


The Big Ride – Saturday 17th May

The focus of all the cross-London campaigns is The Big Ride, where thousands of cycle campaigners, celebs, politicians and well, the rest of us are marching (cycling) on Westminster to show our demand for change.

Last year’s ride attracted tens of thousands of cyclists and as a direct result, Boris signed up to Love London, Go Dutch at the eleventh hour. Come along for the ride this year and get some real change on London’s roads!

Installing Ubuntu 12.04 LTS on a Dell Windows 8 machine with UEFI

Quick post this – originally on evolve.sbcs but behind a wall there so reposted here – both in case anyone’s interested and in case something breaks and we have to remember what we did, exactly (the far more likely scenario)

Ubuntu. Everyone loves it – probably the world’s easiest dual-boot install going and you get a lot of features out of the box as well. So, for the Windows user who needs Linux features / reliability / configurations but wants to keep a copy of Windows on their system for Office or just build testing, Ubuntu is a great solution.

Well, at least, it used to be. Then Microsoft went and released Windows 8. Quite apart from being an even worse resources hog than W7, it also introduced the horror that is UEFI and a whole load of hell was unleashed. That’s because UEFI – a seemingly harmless set of ‘improvements’ to bootloader management (the bit of firmware on your motherboard which loccates the OS, introduces it to RAM and disk controllers, and generally makes everything you see happen) – is actually a right pain in the arse. Typically for Microsoft, UEFI isn’t just overloaded with features which dilute it’s core purpose: it actually introduces unpredictable behaviour which makes life for anyone nosing beneath the surface of the operating system (Windows) the machine comes with (not just on those trying to dual boot – although I suspect they were the main targets, as millions of people trying Ubuntu for free and realising what an unstable rip-off Windows 8 is wouldn’t play well with shareholders…)

Which is all a ranty way to say that the lovable Ubuntu install process I’ve used for pretty much a decade on Windows 7, XP, Vista and even 98 machines – all of which happily budge up a bit to make room for a dual-boot Ubuntu installation – has been well and truly borked by Windows 8 and their crappy UEFI lock-in. In particular, Hernani, one of our new students, has been issued a shiny new Dell (good for him) with Windows 8 loaded via UEFI (not so good). The install process was markedly more complicated than other Windows / BIOS versions, and while this is a common problem, I couldn’t find a single tutorial online able to help our specific problem – so here you go (PS: I / the lab / QMUL disclaim all liability, express or implied, should you attempt the steps below and suffer…):

  • Create an Ubuntu Live / bootable install USB
  • Shrink your Windows partition
  • Back up your files and make a Windows Restore CD / USB
  • Access the UEFI bootloader
  • Install Ubuntu
  • Re-activate UEFI
  • Check GRUB
  • Install boot-repair
  • Check GRUB
  • Keep backing up your files!

Create an Ubuntu Live / bootable install USB (or CD)

First we need to create a CD or a USB which we’ll use to install Ubuntu (and/or run a ‘live’ session, where you run the OS directly off the disk without installing to the hard drive. This lets you test Ubuntu and verify it works on your machine). This is a very well covered topic, not least from Ubuntu.com themselves, but I’ll just note that we installed Ubuntu 12.04 LTS (long-term stable), 64-bit release onto a USB – the machine in question having no optical drive. We used Unetbootin for this.

Shrink your Windows partition to create space on the hard drive for Ubuntu

To install Ubuntu we’ll need at least 100Gb free disk space. How much of the available space you want to give to Ubuntu is up to you, and probably depends on whether you plan to use your machine mainly in Windows 8 or Ubuntu; Ubuntu can see the Windows partitions, but not the other way round. To do this we need to shrink the existing Windows partition and repartition the existing space. This subject is well covered in this guide (which we started with) but the subsequent steps gave us more trouble (hence this post)…

Back up your files and make a Windows Restore CD / USB

There is a fairly high chance that this will result in a fried filesystem, and you may not even be able to get Windows to boot. You might also lose data if you screw up the disk partitions. So back up all your files. This is very important – not doing so practically guarantees the jinns of Murphy will screw up your hard drive for you. I don’t care how you do this, just do it.

Equally, since we might bork Windows well-and-truly (possibly a good thing but it would be nice to do so on purpose rather than accidentally) it makes sense to burn a Windows Recovery CD (or USB) at the very least. Again, you can do this easily and there’s lots of tutorials out there, so I won’t deal with it here, except to say you’ll need this to be on a separate USB/CD to the Ubuntu one we just made.

Access the UEFI layer and switch to legacy BIOS

The operating system itself (Windows, OSX, Linus etc) doesn’t actually run straight away when you start the computer. This is, in fact, why you can install / upgrade / change / dual-boot various different OSes. Instead, a small piece of software hardcoded onto your motherboard which runs when you hit the power button to start the machine. This is the black screen you glimpse as the machine reboots. Most commonly this software (‘firmware’ in fact, since it is rarely changed or updated) is called BIOS, but a new standard called EFI has become more common in recent years (Windows’ own flavour is the hellish UEFI). It’s main job is to find all the various device drivers (monitor, keyboard, hard disks, USB ports), introduce them to the CPU and RAM, and then hand the whole lot over to an operating system on a disk somewhere to make the good stuff happen. Note that I said ‘an‘ operating system, located somewhere on ‘a’ disc – there’s no reason why Windows should be picked, and why the disc should be the hard drive, and not… say… an Ubuntu install USB! 🙂

So, to access this magical BIOS-y, UEFI-y world where we can tinker about with the default OS we need to shut the computer down, then restart it, and in most personal computers until now hitting a setup key on restart (usually something like F2 or F12) repeatedly would stop the BIOS/UEFI from loading and access a special setup screen. Unfortunately, Windows 8 has a ‘feature’ (read: ‘restriction’) built in called Secure Boot which normally prevents you from doing this insanely simple procedure. Instead there’s a vastly more complicated process which is luckily well explained in this SO thread. Scroll down to ‘Windows 8 + Ubuntu‘ to do this.

Once you have rebooted into BIOS/UEFI, the version that shipped with this Dell (an Opteron 9020 ultra-compact) has a screen with an ‘advanced boot/UEFI options’ submenu and a ‘secure boot’ submenu. Enter the secure boot menu, disable secure boot and click ‘apply’ to save changes then enter the UEFI screen. The most important option on this screen selects between bootloader modes: ‘UEFI’ and ‘legacy’ (which means BIOS). We’ll need the legacy / BIOS mode to install Ubuntu from USB, so select this. The previous set of UEFI options will be replaced by a set of devices. This is the main difference from our point of view – in BIOS mode the computer will try each device for a bootloader file, in the order in which they appear, and the first one found will be run. EFI, on the other hand, is able to look non-sequentially on a device (e.g. a disc) for a specific bootloader. However: we just want to get on with our Ubuntu installation, so make sure the device with your Ubuntu installer (USB or CD) is listed first, click ‘apply’ then ‘exit’ (making sure said media is actually inserted!)

Install Ubuntu

The process to install Ubuntu itself is actually simple enough, and covered in truly exhaustive (some might say ‘tedious’) detail elsewhere – but there’s a couple of installation points we need to note at this stage for our specific application. Again, if you’re doing a complete wipe of Windows you can just to a complete erase and you’ll be fine:

  • Select ‘something else’  in the main install options – do not erase Windows if you want to dual-boot.
  • There’s probably not much point in installing the updates and third-party stuff at this stage – I had to reinstall Ubuntu a few times by trial and error, and the extra packages take a while to download, unpack, and install. Anyway, you can get them later on when the installation’s debugged.
  • The order and location of your partitions matters, a lot. This process is covered in more detail in this SO thread, but to summarise (you should read the whole SO post though):
    • You’ll need 50Gb (50000Mb) for the Ubuntu OS itself, formatted as ext4 and mounted as root ‘/’. On our Dell this is /dev/sda7
    • You’ll need 16Gb (15999Mb) for swap space (Windows users will know this as ‘virtual RAM’. This is technically optional but running without it is very likely to crash frequently from RAM shortages.
    • Don’t touch the existing (Windows) partitions
    • You’ll want to partition the remaining disk space as ext4 (probably) and mount it at ‘/home’
  • Make a note of the password you select for Ubuntu! Otherwise you’ll have to reinstall…
  • Finally – and this is important – although other guides say the bootloader should be written to:
    /dev/sda

    we found this didn’t work with our Dell UEFI. Instead we had to install the bootloader to:

    /dev/sda1

    which worked fine.

Re-activate UEFI

The install process complete, we now need to switch the UEFI back on; this will continue to be the main way you call the bootloader from now on, but hopefully we’ll be using GRUB (a linux bootloader) instead of the Windows bootloader. GRUB allows you to pick which OS to boot every time you restart the computer (it defaults to Ubuntu, but you can choose Windows 8 if you want, it won’t care!) and should be configured automatically. However, we’ll need to turn UEFI back on first: shut the computer down. Wait 5-10 seconds. Now restart it, hitting F2 (or other BIOS / UEFI setup menu hotkey) as soon as you hit the power button to access the UEFI / BIOS screen again.

From the BIOS / UEFI, find the advanced boot options, deselect Legacy mode (BIOS) and reselect UEFI. This will put us in UEFI mode again, so we have to configure the UEFI options to choose the GRUB bootloader. You should see that an ‘ubuntu’ option has appeared in the UEFI list as well as the Windows boot manager. Select this, then click ‘view’ to see which bootloader file it points to.

In our installation, ‘ubuntu’ pointed to (filesystem FS0): /EFI/boot/shimx64.efi. This will simply load ubuntu directly. If you only plan to use Ubuntu, you can stop here, as this option will find Ubuntu every time you reboot. However, we wanted to use GRUB to pick Ubuntu or Windows, so there’s an additional step here: Click ‘add boot option’ (or ‘path’, or similar) to create a new UEFI boot option. Give it a name (we went for ‘GRUB’, logically enough). Then we need to pick the bootloader file itself – this is the file the UEFI will try and find, which will then handle the OS selection and initialisation. In our case, the file we were looking for was (again on filesystem ‘FS0’): /EFI/boot/grubx64.efi. This is the file to load GRUB, but while you’re poking about in here you may also see a directory for Windows and the bootloaders (there’s a few) associated with it. Select this file, save the UEFI option and make sure this is the first boot option in the list (use arrows to move it up) and/or uncheck (don’t delete…) the other options (‘Windows boot manager’ and ‘ubuntu’ probably).

Click ‘apply’ then ‘exit’ and the machine will reboot…

 

Check GRUB

If we were installing next to Windows 7, Vista, XP, NT, 2000, 98 – or almost any other OS – we’d be able to have a cup of tea and a celebratory hobnob at this point, as after rebooting the machine the friendly GRUB boot selection screen would pop up at this point and let us select Ubuntu, Ubuntu recovery mode, memtest or indeed Windows with a simple dialog. We found that GRUB loaded OK, but although all the linux-y options came up, it couldn’t show the Windows boot option. Damn you, Windows 8 – in W7 this is no problem at all. We also wouldn’t have had to prat about with UEFI settings, either but hey, Windows 8 is shiny and looks a bit like iOS, so it must be better, right…

A fair few people have actually managed to get GRUB to function correctly at this stage on W8, but then they’re not reading this blog, are they? 😉

Install boot-repair

If the GRUB bootloader works (that is, you see the GRUB selection screen) but the Windows installation you irrationally cherish so much isn’t shown, you’ll need to edit the GRUB config files to include the location of the Windows bootloader files so that GRUB can display them as an option for you. You can sleuth about the hard drive to find both the GRUB config and Windows .efi files but luckily there’s a handy script from YannUbuntu called boot repair which does this for you. I followed instructions from the SO thread we used before (here, section ‘REPAIRING THE BOOT’). In their words, “In Ubuntu after it boots, open a Terminal and type the following:


sudo add-apt-repository ppa:yannubuntu/boot-repair  
sudo apt-get update
sudo apt-get install boot-repair

“Now run

boot-repair"

That will bring up the boot-repair script (even has a handy GUI). This is pretty easy to use; the ‘recommended repair’ will probably fix things for you assuming you’ve set everything else up OK.

Check GRUB again

Reboot. Pray. Sorry, but ours was working after this step, so you’re on your own if you haven’t had much luck by now. The first thing I would do if this failed would be to check the BIOS was set to UEFI, and that the GRUB option you edited with boot-repair was active (and first) in the list.

Keep backing up your files!

The forums seem to suggest there’s a chance your system will randomly fall over in the next few weeks. So while you should back up your files in general anyway – especially if you’re working with RCUK data – it pays to be extra-vigilant for the next month.

 

That’s all.. good luck!

 

Reviewing FastCodeML, a potential replacement for PAML’s codeml

(first posted at SBCS-Evolve)

Valle and colleagues have just released FastCodeML, an application for the detection of positive selection in DNA datasets. This is a successor SlimCodeML, which is itself an improved implementation of the codeml program from Ziheng Yang’s workhorse phylogenetic analysis package PAML, which continues to be extremely popular, moving through several versions and has at long last acquired a GUI . Note ‘analysis’ – these programs are not intended for phylogeny inference (finding phylogenetic trees from data, although they will do a rough search if required). In fact, for many people the main program of choice for phylogeny inference itself is RAxML, which is also produced by the same lab (Stamatakis). So – given this lab’s pedigree, I was interested to see how FastCodeML compares to codeml, the implementation the authors seek to replace.

Installation

To install FastCodeML you’ll find a set of tar’ed distributions at their FTP site, ftp://ftp.vital-it.ch/tools/FastCodeML/. It wasn’t immediately clear which is the most recent build, but I downloaded both a June 2013 version and the 1.01 release just in case. This includes a precompiled binary for Linux (we’re on CentOS for our dev cluster) and as I was feeling lazy keen to test the performance of the un-optimised binary that ships with the package, I used this. However a simple configure / make / make check / make install will do the job as well. I had to fiddle with a couple of permissions, but that’s all stuff unique to our dev cluster and common to everything we install, so it’s hardly fair to penalise FastCodeML for that…

Interface

FastCodeML, like RAxML, uses arguments passed to the command-line at runtime rather than a GUI (like, say HYPHY or Garli) or a configuration script (like PAML or BEAST.) As a result (assuming you’ve added the FastCodeML executable, fast, to your $PATH) you can paste and go, e.g.:

fast -m 22 -bf -hy 1 ./<tree-file> <sequence-file>

I’m ambivalent about passing arguments on the command line for phylogenetic analyses. Let’s look at the pros and cons: A GUI is more attractive to many users, but with the important caveat that it is well designed, otherwise the useability traded off against performance / flexibility will be degraded. A lot of phylogeneticists are used to working without GUIs and (more importantly) crunching large genomic datasets these days; so the lack of a GUI isn’t really a problem.

What about config files, the approach taken by the original PAML package? Well, they are fiddly at times, but there are a number of advantages. Firstly, the config file itself is a useful aide-memoire, and default parameter values can be suggested. Secondly, and perhaps most importantly in a phylogenomic context, the config file acts as a record of the analysis settings. It can be easier to debug pipelines with config files as well. However, a drawback of config files is their size, and in a pipeline context relying on another file existing where and when you need it can be risky. Passing arguments on the other hand avoids this, and also allows you to work more efficiently with pipes.

About the most significant drawback of the pass-by-argument approach is that as the number of parameters/options increases, keeping track of your own intentions becomes much harder. For example, running a BEAST analysis using arguments would be virtually impossible. In our pipeline API I coded a wrapper for RAxML where the various options could be laid out clearly in the comments, and various operation modes defined as enumerated types; but despite years of using RAxML I still forget certain command-line options from time-to-time if running single analyses. Overall, though, for simple applications like RAxML, MUSCLE or FastCodeML, I think I prefer command-line arguments as simpler and cleaner. Hopefully feature creep won’t bloat the option set of future releases.

Output

The output from FastCodeML is pleasingly clean and simple:

Doing branch 0

LnL1: -2393.120011398291808 Function calls: 1259

  0.1982869  0.1727072  0.2111106  0.0741396  0.0443093  0.0160066  0.0102474  0.0050577
  0.0084463  0.0254361  0.1328334  0.0754612

p0:  0.4817193  p1:  0.5182807  p2a:  0.0000000  p2b:  0.0000000
w0:  0.0000010  k:   5.1561766  w2:   1.1258227

This contrasts with several screens’ worth of ramblings from PAML, on both stdout and output streams (even with verbose disabled). To get the same data from PAML you have to dig about a bit in the stdout or results file, or else look at rst and find:

dN/dS (w) for site classes (K=3)

site class             0         1         2
proportion        0.55182   0.32889   0.11929
branch type 0:    0.05271   1.00000   3.43464
branch type 1:    0.05271   1.00000   0.00000

The two methods are broadly in agreement, to a first approximation: both the proportions and omegas (dN/dS) estimated are fairly similar. I wasn’t too worried about the numerical value of the estimates here, as there are subtle differences in the implementation of both.

But what about their speed? This is the major selling-point of FastCodeML after all; there are many competing methods to detect natural selection but the pedigree of Stamatakis and colleagues promises a substantial improvement over PAML. There are two considerations here: wall-clock time, the time the calculation appears to take to the user (most relevant to single local analyses); and  CPU time, which excludes I/O and time the thread spends sleeping or suspended – for cluster work this is far more important since a majority of jobs will be scheduled and CPU time rationed.

Well, according to POSIX::time(), PAML does fairly well:

real	0m50.872s
user	0m50.781s
sys	0m00.006s

But what about FastCodeML?

real	0m05.641s
user	1m22.698s
sys	0m01.158s

Pow. The important thing to note here is that the speed-up is better across both CPU/real time and wall clock/user time; but that the improvement factor is much greater for CPU (around x2 better for wall clock time, vs. x10 for CPU time.) This is extremely promising and suggests that cluster/pipeline operations should be significantly faster using FastCodeML…

 

Conclusions

If I’d been bothered enough to use some sort of boxing analogy throughout this post, I’d be using metaphors like ‘sucker punch’ and ‘knockout blow’ by now. FastCodeML really is fast, and impressively so. It also offers a reduced filesystem footprint and cleaner I/O, which will likely make it ideal for cluster/pipeline work. Assuming the accuracy and specificity of its implementation are at least comparable to PAML (but that’s a much harder thing to test) I’m likely to use FastCodeML for most analyses of natural selection in future.

Antarctic adventure: beginnings

On Friday 8th November, I’m flying to Rio where he will board a sailing ship bound for the Antarctic on a songwriting mission like no other, battling fierce storms, icebergs and randy penguins, armed only with some blank musical notepaper, a melodica and a pencil.

The plan is to take two months to sail down the Atlantic coasts of Brazil, Uruguay and Argentina, making the crossing from Cape Horn across Drake’s Passage to Antarctica sometime in December. Fingers crossed we get good weather, because we’re sailing the whole thing…

Iceberg by Uta Wollf (Wikimedia Commons, CC-BY-SA )
Iceberg by Uta Wollf (Wikimedia Commons, CC-BY-SA )

I’ll be writing as much music as I can manage in between taking watches on deck. Unlike my normal writing practice, I won’t be able to crack open a laptop and fire up GarageBand to record demos as I go; most of the time we’ll be without much spare power, and in any case I’m not taking my own laptop. Instead, I’ll be transcribing everything by hand onto notepaper, using a melodica (a small keyboard-cum-mouth organ you blow into) to check as I go.

The boat’s being crewed by the Adventure 2013 collective, most of whom know from volunteering with sail training charity OYT South. Now, this isn’t as hard as it was 400 years ago – I’m not going to pretend that – but many of the things we take for granted about sailing the the West, like 24/7 air-sea rescue, detailed forecasts and the RNLI, won’t be available. I also have no idea how much time and energy I’ll actually have spare for writing (we’ll be on watch every day), or even any energy (it’ll be summer in the Southern Hemisphere, but still regularly -5 or -10 degrees). Plus almost everything I write, I’ll have forgotten by the time I get back to London, so I’ll only have my transcribed notes to go on.

Will I return with an album of trancendental beauty? With an album about my crewmates’ washing habits? Will I return at all (really hope so)?

Who knows. But the first chapter in any travelogue is the leaving do, which will be at The Islington, London N1.

Free entry, music all night and Lonely Joe Parker, live with band. See you there shipmates!


http://www.adventure2013.co.uk/

Using x-windows to render GUIs for server-client phylogenomics

The power of modern computers allied to high-throughput next-generation sequencing will usher in a new era of quantitative biology that will deliver the moon on a stick to every researcher on Earth…

Well, quite.

But something we’ve run up against recently in the lab is actually performing useful analyses on our phylogenomic datasets after the main evolutionary analyses. That is, once you’ve assembled, aligned, built phylogenies and measured interesting things like divergence rates and dN/dS – how do you display and explore the collected set of loci?

I’ll give you an example – suppose we have a question like “what is the correlation between tree length and mean dS rate in our 1,000 loci?” It’s fairly simple to spit the relevant statistics out into text files and then cat them together for analysis in R (or Matlab, but please, for the love of God, not Excel…). And so far, this approach has got a lot of work done for us.


But suppose we wanted to change the question slightly – maybe we notice some pattern when eyeballing a few of the most interesting alignments – and instead ask something like “what is the correlation between tree length and mean dS rate in our 1,000 loci, where polar residues are involved with a sitewise log-likelihood of ≤ 2 units?” Or <3? or <10? Most of this information is already available at runtime, parsed or calculated. We could tinker with our collation script again, re-run it, and do another round of R analyses; but this is wasteful on a variety of levels. It would be much more useful to interact with the data on the server while it’s in memory. We’ve been starting to look at ways of doing this, and that’s for another post. But for now there’s another question to solve before that becomes useful, namely – how do you execute a GUI on a server but run it on a client?

There are a variety of bioinformatics applications (Geneious; Galaxy; CLCBio) with client-server functionality built-in, but in each case we’d have to wrap our analysis in a plugin layer or module in order to use it. Since we’ve already got the analysis in this case, that seems unnecessary, so instead we’re trialling X-windows. This is nothing to do with Microsoft Windows. It’s just a display server which piggybacks an SSH connection to display UNIX Quartz (display) device remotely. It sounds simple, and it is!

To set up an x-windowing session, we just have to first set up the connection to the bioinformatics server:

ssh -Y user@host.ac.uk

Now we have a secure x-window connection, our server-based GUI will display on the client if we simply call it (MDK.jar):

User:~ /usr/bin/java -jar ~/Documents/dev-builds/mdk/MDK.jar

Rather pleasingly simple, yes? Now there’s a few issues with this, not least a noticeable cursor lag. But – remembering that the aim here is simply to interact with analysis data held in memory at runtime, rather than any do complicated editing – we can probably live with that, for now at least. On to the next task!

(also published at evolve.sbcs)

Our Nature paper! Genome-wide molecular convergence in echolocating mammals

Exciting news from the lab this week… we’ve published in one of the leading journals, Nature!!!

Much of my work in the Rossiter BatLab for the last couple of years has centred around the search for genomic signatures of molecular convergence. This means looking for similar genetic changes in otherwise unrelated organisms. We’d normally expect unrelated organisms to differ considerably in their genetic sequences, because over time random mutations occur in their genomes; the more time has passed since two species diverged, the more changes we expect. However, we know that similar structures may evolve in unrelated species due to shared selection pressures (think of the streamlined body shapes of sharks, icthyosaurs and dolphins, for example). Can these pressures produce identical changes right down at the level of genetic sequences? We hoped to detect identical genetic changes in unrelated species (in this case, the echolocation – ‘sonar hearing’ – in some species of bats and whales) caused by similar selection pressures operating on the evolution of the genes required for those traits.

It’s been a long slog – we’ve had to write a complicated computer program to look at millions of letters of DNA – but this week it all bears fruit. We found that a <em>staggering</em> number of genes in the genomes of echolocating bats and whales (a bottlenose dolphin, if you must) showed evidence of these similar genetic changes, known technically as ‘genetic convergence’.

Obviously we started jumping up and down when we found this, and because we imagined other scientists would too, we wrote up our findings and sent them to the journal <em>Nature</em>, one of the top journals in the world of science… and crossed our fingers.

Well, today we can finally reveal that we were able to get through the peer-review process (where anonymous experts scrutinise your working – a bit like an MOT for your experiments), and the paper is out today!

But what do we actually say? Well:
<blockquote>Evolution is typically thought to proceed through divergence of genes, proteins and ultimately phenotypes. However, similar traits might also evolve convergently in unrelated taxa owing to similar selection pressures. Adaptive phenotypic convergence is widespread in nature, and recent results from several genes have suggested that this phenomenon is powerful enough to also drive recurrent evolution at the sequence level. Where homoplasious substitutions do occur these have long been considered the result of neutral processes. However, recent studies have demonstrated that adaptive convergent sequence evolution can be detected in vertebrates using statistical methods that model parallel evolution, although the extent to which sequence convergence between genera occurs across genomes is unknown. Here we analyse genomic sequence data in mammals that have independently evolved echolocation and show that convergence is not a rare process restricted to several loci but is instead widespread, continuously distributed and commonly driven by natural selection acting on a small number of sites per locus. Systematic analyses of convergent sequence evolution in 805,053 amino acids within 2,326 orthologous coding gene sequences compared across 22 mammals (including four newly sequenced bat genomes) revealed signatures consistent with convergence in nearly 200 loci. Strong and significant support for convergence among bats and the bottlenose dolphin was seen in numerous genes linked to hearing or deafness, consistent with an involvement in echolocation. Unexpectedly, we also found convergence in many genes linked to vision: the convergent signal of many sensory genes was robustly correlated with the strength of natural selection. This first attempt to detect genome-wide convergent sequence evolution across divergent taxa reveals the phenomenon to be much more pervasive than previously recognized.</blockquote>
Congrats to Steve, Georgia and Joe! After a few deserved beers we’ll have our work cut out to pick through all these genes and work out exactly what all of them do (guessing the genes’ biological functions, especially in non-model (read:not us or things we eat) organisms like bats and dolphins is notoriously tricky. So we’ll probably stick our heads out of the lab again in <em>another</em> two years…

The full citation is: Parker, J., Tsagkogeorga, G., Cotton, J.A.C., Liu, R., Stupka, E., Provero, P. &amp; Rossiter, S.J. (2013) Genome-wide signatures of convergent evolution in echolocating mammals. <em>Nature</em> (epub ahead of print), 4th September 2013. doi:10.1038/nature12511. This work was funded by Biotechnology and Biological Sciences Research Council (UK) grant BB/H017178/1.

&nbsp;

Please sponsor me for Safer Cycling!

Hi all,

in a fortnight I’ll join 20,000 other riders (most, if not all, faster than me) in tackling 100 miles of the Olympic Road Race course from Stratford, through the Surrey hills and back to the Mall for a sprint finish / wobble over the line.

It’s the first time I’ve done something like this, but I’m reliably assured it will be painful and hellish. But hopefully not pointless: Only this week we heard sad news: a cyclist was crushed in a preventable accident with a lorry for the third week running. It has to stop.

I’m raising money for London Cycling Campaign, who work to make cycling safer and more accessible for all Londoners. Their work is vital in improving safety for cyclists but also pedestrians and other road users, delivering benefits in training and infrastructure, as well as providing post-accident support.

Sponsor me here: http://uk.virginmoneygiving.com/SponsorJoeParker
Read about London Cycling Campaign here: http://lcc.org.uk/pages/about-us

Any dosh you can spare, of any amount, would be extremely welcome. 100% of all donations will go straight to LCC.

Thanks very much, and have a great weekend,
Joe