October 9, 2018
I (Yannick) spent the week of August 5th at the 18th Congress of the International Society for the Study of Social Insects in Guarujá, Brazil. This is a big quadrennial conference uniting researchers from around the world who study ants, bees, wasps, termites and a few other animals.
Part of my trip was funded by the Software Sustainability Institute which lobbies for and helps people do better research through improving software. Hence this blog post.
The study of social insects has traditionally used approaches including behavioral observation and taxonomic sampling, with genetic analyses becoming more common since the mid 2000s. A pleasant surprise at the conference was the recent increase in highly molecular, genome-wide approaches where whole or partial genomes or transcriptome sequences of many individuals are obtained in order to make specific comparisons within species, or sometimes also between species.
This disruptive shift is largely due to the 50,000-fold drop in DNA sequencing costs over the past 10 years. See Émeline’s recent review on the genes and processes underpinning evolution of social behavior in ants.
In light of this, as part of a workshop on genomics approaches organised with Tim Linksvayer and Alex Mikheyev, I gave an overview of some of the lessons we can transfer from the worlds of “other” data sciences to our expanding world of social insect genomics. This includes:
My slides are here:
It is worth highlighting three additional, important points raised during the congress that have more to do with interpretation, vocabulary and experimental design than anything technical:
A fun and highly stimulating conference.
October 1, 2018
How do you structure your files and folders for genomics analyses?
One challenge is that many analyses actually require multiple steps, thus having all steps in one place becomes a mess.
So we should structure our analyses across multiple folders. But how should we name them and keep track of their order?
Another (key) challenge in performing genomics analyses is that we often have to perform analyses multiple times.
The standard approach we use for all projects in the lab is derived from ideas initially proposed by William Noble in A Quick Guide to Organizing Computational Biology Projects. That initial model has been adjusted based on our experience of dozens of projects over the years, as well as discussions with Julien Roux, Anurag Priyam, and Roddy Pracana.
Best to just illustrate with an example of how this works at the simplest level.
2016-04-14-bombus_variant_calling ├── input │ ├── 2016-04-14-bombus_raw_28_samples │ │ ├── sample1.fq # could link to /data/SBCS-WurmLab/archive/db/genomic/reads/... │ │ ├── sample2.fq │ │ ├── sample3.fq │ │ ├── bombus_genome.fa -> ~/db/genomic/B_terrestris/Bter20110317-genome.fa │ │ └── WHATIDID.sh # list of ln -s, cp or wget/curl commands │ └── 2016-04-16-cleaned_reads │ ├── sample1.fq.gz -> ../../results/2016-04-14-read_cleaning/results/sample1.clean.fq.gz │ ├── sample2.fq.gz -> ../../results/2016-04-14-read_cleaning/results/sample2.clean.fq.gz │ ├── sample3.fq.gz -> ../../results/2016-04-14-read_cleaning/results/sample3.clean.fq.gz │ └── WHATIDID.sh # just the ln -s commands. ├── results │ ├── 2016-04-14-read_cleaning │ │ ├── input -> ../../input/2016-04-14-bombus_raw_28_samples │ │ ├── results # only few files here │ │ ├── sratoolkit -> ../../soft/sratoolkit-2.4.2/bin/ │ │ ├── tmp # use real scratch dir if more appropriate | | ├── ENVIRONMENT.sh # if any particular software, modules or containers need to be loaded │ │ └── WHATIDID.txt # or equivalent .sh or .Rmd (or knitr/jupyter) │ ├── 2016-04-16-mapping_to_reference │ │ ├── input -> ../../input/2016-04-16-cleaned_reads │ │ ├── results # only few files here │ │ ├── tmp # use real scratch dir if more appropriate | | ├── ENVIRONMENT.sh # if any particular software, modules or containers need to be loaded │ │ └── WHATIDID.txt # or equivalent .sh or .Rmd (or knitr/jupyter) │ └── WHATIDID.txt # for overall rationale └── soft ├── sratoolkit-2.4.2 # if installed locally ├── bwa -> /share/apps/sbcs/bwa/0.6.2/bin/bwa └── # links to other software if needed
resultsdir should contain a link named
inputto an input directory with a self explanatory name;
WHATIDID.txt(or an equivalent ruby/perl/jupyter/R/knitR/Sweave/Rmarkdown script) that contains all relevant commands. required to get from
July 5, 2018
Interested in supercharging the productivity of genome biologist researchers?
We have an exciting 4-year bioinformatics PhD position open through the London BBSRC LiDO Doctoral Training Programme.
Apply by 5pm July 20th here at LIDO to start in September.
A description of the project is below. It is highly interdisciplinary - no need to already be able to understand all the details today.
Great candidates fulfill 3 of the following four criteria: smart, hard working, understands genomes, and not scared of data analysis or coding.
If you have any questions regarding scope or nature of the project, or whether your skills are potentially sufficient, please don’t hesitate to get in touch with me (Yannick).
(Standard UKRI eligibility criteria apply (i.e. I think one must be UK resident). - the LiDO people can explain this better).
(apologies for the use of domain-specific jargon!)
The first generation of molecular-genetic research focused on traditional model organisms including mouse, yeast, zebrafish, Drosophila, and C. elegans. Genetic research increasingly uses diverse organisms that are much more relevant models for specific questions. For example, some such emerging organisms exhibit unique phenotypes including 100-fold intra-specific variation in lifespan, resistance to harsh environmental conditions, represent novel animal models for disease or development, provide crucial ecosystem services, or are key to food security because they are crops or may pollinate them.
A major challenge when working with such “emerging” model organisms is making sense of the “gene lists” that result from genome-wide analyses (e.g., of gene expression or genome-wide associations).
Here, we will develop a bioinformatics tool that takes a list of genes or genomic locations from a new species as input, and transparently produces relevant functional information describing this list of loci. When presented with data for which no direct information exists, the tool will in a first instance identify relationships of orthology to regions of other species. This will create a trail of links to databases in which functional information for orthologous regions does exist. These databases will be interrogated following hierarchical set of rules (initially defined based on human-curated examples). Using using cutting-edge “learning to rank” machine learning techniques the rulesets will be refined over time by tracking user behaviour (based on logs of which relationships/trails users retain) as well as explicitly allowing users to flag issues. The tool hereby makes it possible to extract significant value from largescale datasets that would otherwise require laborious case-by-case engineering efforts to connect. Summary data will be returned to the user using visualisations, statistics and tables in a manner that facilitates interpretation. Inferences and relationship calculations taking seconds will be available immediately; those taking minutes (e.g., distant orthology) will appear asynchronously as they complete; and those taking longer will result in email notification.
We will package our work in a manner that makes it accessible to biologists working with new or existing genomes. This builds on our extensive success with including with the SequenceServer and OMA software. Overall, our approach will substantially improve the ability of genome biologists to generate meaningful biological insight when working with new organisms.
This project is in collaboration with Christophe Dessimoz at UCL/Lausanne.
May 23, 2018
We have just posted a new manuscript to bioRxiv, where we describe the structural differences between the SB and Sb versions of the fire ant social chromosome pair.
We find that Sb is larger than SB and discuss how the suppression of recombination of Sb would lead to this type of ‘degenerative expansion’, as hypothesised for Y chromosomes and other non-recombining chromosomal regions. Read the manuscript, and tell us what you think!
May 18, 2018
This year the Wurm Lab were out in force at the annual Festival of Communities held in Stepney Green Park on Saturday 12 May. We brought some of our lab colonies of social invertebrates to demonstrate differences in social complexity including: Messor barbarus ants, Bombus terrestris bumblebees, and Stegodyphus dumicola social spiders. We had a fantastic time talking to the public about our research, taking groups around the park on minibeast safaris, and running a kids’ craft table where solitary bee hotels made from recycled drinks cartons were beautifully decorated. It was an immensely enjoyable day meeting people from the local community and some very enthusiastic and inspiring future scientists.
February 20, 2018
What is it? We called it the Index, it is our monthly reading review, tailored to our areas of interest and research.
Why do you do it? Because there are so many articles being published it can be quite difficult to keep up with reading new material. We want to increase our general knowledge of important questions, techniques and discoveries in our wider research areas while decreasing the likelihood of missing any relevant “key papers”. We are also keen to efficiently help each other out by sharing our readings. Finally, we are getting to read more broadly - including topics outside our comfort zone.
How does it work? Each month, each Wurmlab member gets a list of three journals to review from our own journal generator. The script is on Github here. Three articles that are relevant to the group or a particular lab member are picked form each journal’s table of contents. These articles are added to a document that anyone in the lab group can read at any time.
Great, where can I see an example? See the last instalment of the Index here.
February 15, 2018
Join us in Guarujá!
We (Emeline, Carlos & Yannick) are excited to host a symposium on the evolution of social organisation at the upcoming IUSSI conference.
We welcome a diversity of approaches and study systems. If you’re unsure about the relevance of your work, don’t hesitate to get in touch.
Full symposium title and abstract below:
How an insect society is organized varies tremendously between but also within species and populations. Such diversity includes variation in numbers of reproductive individuals, modes of reproduction and of dispersal, relationships with neighboring colonies, degrees of morphological and behavioral caste specialization, and interactions (mutualistic, parasitic, predatory…) with closely or distantly related species.
Understanding how and when changes in social lifestyle occur is central to the study of social evolution. More specifically, can we measure the evolutionary pressures involved in changes of social organisation? Are particular ecological conditions involved? Can molecular, genetic or physiological features constrain or facilitate social evolution? What are the effects of a change in social interactions on how natural selection can act?
Encompassing the complexities of such multifaceted topics requires interdisciplinary discussion. This symposium will thus include both theoretical and empirical research addressing the topic from a variety of scales and angles.
January 3, 2018
It shouldn’t really be necessary to share this. But it keeps popping up (in particular when students are learning to program in R).
It is nonsensical to compare text to numbers. But R will let you. For example:
> "a" > 1  TRUE > "A" > 1  TRUE > "bob" > 99  TRUE
I suspect that this is a remnant of the desire to be able to compare letters (e.g., for sorting ASCII characters alphabetically “A” < “D”).
When new to programming in R, you might ask the user to input a number. For example with
input_number <- readline(prompt="Enter a number: ")
This comes into R as text, not as a number. Unless you run
strtoi() on the input, it will remain text. Comparisons are then equivalent to the following
> 1 == "10"  FALSE > 10 == "10"  TRUE > 100 == "10"  FALSE > 11 < "10"  FALSE > 1 < "10"  TRUE > 9 < "10" # <- uh-oh  FALSE > 3 < "10"  FALSE
Note that some of these comparisons yield the result that you would expect if only comparing numbers. But some of them (e.g., the last 2) give you an incorrect response. This is dangerous.
R does not show an error message; it acts as is everything is ok, and gives you a response that looks reasonable (i.e., TRUE or FALSE). It would thus be easy for this type of mistake to go undetected.
strtoion something text that is not unambiguously a number, R will show an error message or return
testtthatto ensure that even the small pieces of code you write behave as you would expect.
December 27, 2017
Despite the lack of updates, things have been happening!
After our discovery of extremely low genetic diversity in the Sb variant of the fire ant social chromosome, we asked what is going on with Gp-9? This is the original odorant binding protein that Ken Ross found - using starch gel electrophoresis - to be fully associated with single vs multiple-queen colonies.
The patterns described back then still hold, but surprisingly we find that nine additional Gp-9-like odorant binding protein genes are in the social chromosome region of suppressed recombination. The descriptions of all 23 fire ant Odorant Binding Proteins, their expression profiles, and the differences between social chromosome alleles are detailed in Evolution Letters:
In a different paper, we review findings from the most recent analyses of the 23 ant genomes and 38 ant transcriptomes.
Lab members had the opportunity to present at many occassions, including:
Finally, we congratulate Gino Brignoli & Abdoulie Kanteh for the high marks achieved for their MSc disserations, and Roddy Pracana for submitting his PhD:
August 29, 2017
Written by Hiten Chowdhary, cross-posted from (http://www.hiten.io/blog/articles/gsoc-17/)[http://www.hiten.io/blog/articles/gsoc-17/]
This is a summary of the work done during this summer as part of Google Summer of Code 2017 under the organisation Open Genome Informatics under the guidance of my mentors Yannick Wurm and Anurag Priyam.
Problem Statement: Performance and user centric improvements to Afra’s annotation editor.
Brief explanation: Gene prediction models are visually inspected and manually corrected for any mistakes. Curation of gene models is carried out on Afra, a crowdsourcing platform. Afra has two models - an annotation editor and a task processor. The annotation editor is build using JBrowse and WebApollo. This project focuses on migrating Afra to the latest JBrowse and getting a unit test suite ready to optimize the annotation editor and ease the learning curve of manual curation.
For migration of Afra, we took a look at JBrowse and Afra’s codebase. We examined the files added to Afra’s codebase, which exhibited the annotation editor functionality along with additional features of Afra. These differences in codebase were carried over to JBrowse as a plugin. This provided the annotation editor functionality which could be easily plugged into JBrowse or any other Genome browser.
Annotation editor uses Jasmine for unit tests. Jasmine was easy to setup and can be executed using a simple web server. I examined the already implemented tests for different functionalities of Afra. This provided me an insight into the processing of tests implemented in Afra. Further, I added some tests for the annotation editor functionality. These tests were:
Here is the link to my commits for the test suite.
We started building a plugin for the JBrowse to carry over the annotation editor functionality to JBrowse. This would provide Afra’s annotation edition functionality to use the latest JBrowse features, making the migration process smoother. The plugin development took place in the following steps :-
Now we had a basic plugin in place that had implemented the basic annotation editing functionality. (commit)
Now additional features of Afra had to be carried over. These feature are :-
Finally, we had successfully implemented the annotation editor of Afra as a plugin of JBrowse, along with extra features of Afra too. Further, to test whether all the annotation editing functionalities are working properly we implemented the test suite for the plugin.(commit)