Saturday, 31 October 2015

Fluorescent fats

Desaturated fats generally have a methylene-interrupted configuration, where a double bond is separated by two single bonds. Conjugated fatty acids (aka. polyene fatty acids) are fluorescent when in a lipid bilayer (Sklar et al., 1977), but few examples are know.
One example is parinaric acid (octadecatetraenoic acid; pictured) from Impatiens balsamina (formerly Parinarium laurinum) with four double bonds (ex. 320 nm → em. 420 nm) and with a characterised conjugase (Cahoon et al., 1999). Other conjugases have been studied (Rawat et al., 2012) and other conjugated fatty acids are known, including one with 5 double bonds (bosseopentaenoic (eicosapentaenoic) acid).
A single enzyme that makes a fluorescent reportable signal is rather appealing for synthetic biology. 
The wavelength is rather limiting compared to aromatic compounds obviously. Namely conjugated butadiene, hexatriene, octatetraene, decapentaene  and dodecahexaene absorb at 217 nm, 252 nm, 304 nm, 324 and 340 nm respectively. The fact that two or three conjugated ene bonds would not suffice as a tool raises the question of whether a conjugase could be evolved to make even more conjugated systems, such one acting on cervonic acid (22:6(n-3)), which would make a fluorophore of seven conjugated ene bonds. As a fluorescent signal is easily selectable by FACS, it would be definitely doable (if the UV lasers were available). The only problem is that E. coli lacks variety when it comes to membrane facts as is mainly composed of palmitic (hexadecanoic) acid, palmitoleic (cis-9-hexadecenoic) acid and cis-vaccenic (cis-11-octadecenoic) acid (Mansilla et al., 2004), therefore, the desaturation machiner to make the precursors would be needed. Nevertheless, it is rather interesting and I would love to see more colourful E. coli...

EDIT. Isoprenoid and is condensed derivatives (geranyl-PP, farnesyl-PP, geranylgeranyl-PP etc.) already have a methylene-interrupted configuration and geranylgeranyl is condensed into phytoene which is desaturated by phytoene dehydrogenase to lycopene.

Archaea use diphytanylglyceryl phosphoglycerol is their cell membranes: phytanol is reduced geranylgeranol. So their reduce it as opposed to desaturating it, if they did you'd 5-7 conjugated ene bonds, which would absorb in the yellow region.

Wednesday, 28 October 2015

Pseudomonas, Ralstonia and Burkholderia: HGT buddies

Recently I was reminded of an interesting thing that intrigued me: Ralstonia and Burkholderia were formerly classed as Pseudomonas spp. and now are from different proteobacterial classes, but they share several close genes. One hypothesis that can be made is that a series of horizontal gene transfer events occurred at some point and the phenotypes of the three species became so close that they were mistakenly grouped together.

I came across the quirk while doing research for a paper from Dr. Monica Gerth and Prof. Paul Rainey:
Gerth ML, Ferla MP, Rainey PB. The origin and ecological significance of multiple branches for histidine utilization in Pseudomonas aeruginosa PAO1. Environ Microbiol. 2012 Aug;14(8):1929-40. doi: 10.1111/j.1462-2920.2011.02691.x. Epub 2012 Jan 9. PubMed PMID: 22225844.


The Ralstonia and Burkholderia are in different families within the Burkholderiales (Betaproteobacteria), while the Pseudomonas is in the Gammaproteobacteria. The taxonomic genus Burkholderia was coined when 7 Pseudomonas spp. were moved in 1993, while Ralstonia was created when two Burkholderia spp. were moved in 1996. The two are not sister genera.
In addition to the hut operon these three species are phylogenetically close to each other for many protein.

Using the Darkhorse server set to genus level detail, the top hits for Pseudomonas aeruginosa are

  1. Azotobacter vinelandii, a bona fide pseudomonad, but given its own genus for silly reasons —okay, technically it is the Pseudomonas genus should be split.
  2. Ralstonia metallidurans
  3. Bermanella marisrubri
  4. Chromohalobacter salexigens
  5. Burkholderia xenovorans
  6. Burkholderia thailandensis
With Pseudomonas fluorescens B. xenovorans is in third place. With Pseudomonas putida it's in second place, while R. metallidurans in fourth. While Ralstonia and Burkholderia pick each other up. The results for Ralstonia eutropha indicate that 2/3 of its large genome are from Cupriavidus taiwanensis (sister species of Burkholderia), which in reality means that there is some phylogenetic issue afoot.
Nevertheless, it does not explain the pseudomonad link, which is probably because the ancestors of Pseudomonas and of Burkholderia/Ralstonia got to know each other well and as a result today we have:

  • Burkholderia spp. have two chromosomes and lots of plasmids, R. eutropha has over six and half thousand genes and pseudomonads are gene collectors too.
  • They all have weird relationship with their sister genera or families.
  • The seem to have similar lifestyles.
  • The share lots of genes
  • They were mistaken as pseudomonads morphologically.
This is just a mix of speculation and quick checks, but there is nevertheless a link. Which is not only curiosity, it finds data in mistakes from the past and potentially tells of dangers that may assail genome-concatenation studies.

Wednesday, 14 October 2015

A note about serving static files with Python's wsgi

Openshift is great and making a python server is really straight forward. The only catch is that wsgi tries to serve static files. The solution serverside is to add a folder wsgi/static, which works a treat, locally it is a different matter. Some Python subversions ago, I could get the localhost to server from static (not wsgi/static), which is fine given that the localhost wsgi.py is __main__, while on Openshift it isn't, so I just had two copies of static. Since some upgrade, my locally run wsgi.py hates serving static files. I looked on the web and nothing was the quick botch I needed. This is what I added to the part where a GET method is processed.

Sunday, 11 October 2015

KEGG map colo(u)rs

KEGG has a handy map colouring feature, where one can feed it a list of KEGG IDs from whatever database of theirs and a colour, which it will use to colour the image of the pathway. KOBAS and other severs offer similar features, but this is the original.
Two things are frustrating. One is the classic strangeness of the maps that seem to have everything and more, except when you want a certain reaction, which inexplicably is not annotated on that map. The other are the colours, which are annoying but strangely addictive.
Basically, the colours can be RGB codes or names. The former scheme is fine, except the latter is more human readable and trying to figure out what is okay or not is rather addictive. Colours, or more correctly colors as the web is written in US English, can be described in many ways.
The code system ("hex triplet") is formed of three consecutive hexadecimal double-digit numerals prefixed with a hashtag (e.g. #c3a0d2), where each pair corresponds to Red, Green or Blue (RGB). KEGG accepts these fine.
In HTML and CSS colors have proper names —the most official source of the exact names of colours is Pantone, but this comes close. KEGG implements some single word ones, e.g. gray —not grey: an HTML mistake I always make—, red, blue, green, yellow, orange and gainsboro —a handy colour for padded div boxes, which seems like a mispelt Gainsborough—. Puce is not an HTML colour, so I am not surprised it does not like it, however, aqua is but it does not like it. It also accepts some of the two word names, like GreenYellow, but not others, like DarkGray. Funnily the capitalisation seems to matter: lower-case only for single word names, while CamelCase for the compound ones —HTML and CSS are case insensitive. "Brewer colors" can be excluded as dgray or lgray don't seem to work either. This all seems to point to the fact that some poor chap had to write the dictionary server side to covert the names to hex=triplets
One curious thing is that several names collapse into one colour. lavender is the same as gainsboro and lightgray.
All in all the hex-triplets and the smattering of names fulfil all needs, but the strange quirkiness is fun to unpick...
Here is a wee series of Reaction identifiers to colour down the glycolysis pathway if you want to try your luck at colour picking:

R00959 gray
R02740 purple
R02738 GreenYellow
R09084 orange
R04779 green
R01070 red
R01061 gray
R01512 gainsboro
R01518 #ddeedd

Tuesday, 6 October 2015

PrettyFastaJS

I wrote a small script to allow one to easily and prettily embed both nucleic acid and protein FASTA sequences on a webpage (it guesses based on EFILPQ which are not degerate bases, but residues). It was a mix of "I need this" and "I want to play with colours". The latter was rather painful. But the result is a JS modified and CSS coloured fasta files.
The files can be found in my GitHub repository for PrettyFastaJS and so are the explanations of how to use it. As a demo, here are two curious sequences. Two consecutive genes in the same operon that encode each a full length glycine dehydrogenases, which in other species is a homodimer, which suggests this may be a cool heterodimer.
>Gthg02641 Glycine dehydrogenase (EC 1.4.4.2) [Geobacillus thermoglucosidasius TM242] MLKNWGIAMHKDQPLIFELSKPGRIGYSLPELDVPAVRVEEVVPADYIRTEEPELPEVSELDIMRHYTALSKRNHGVDSGFYPLGSCTMKYNPKINENVARLAGFAHIHPLQPEETVQGALELMYDLQEHLKEITGMDAVTLQPAAGAHGEWTGLMMIRAYHEANGDFQRTKVIVPDSAHGTNPASATVAGFETITVKSTEDGLVDLEDLKRVVGPDTAALMLTNPNTLGLFEENILEMAKIVHDAGGKLYYDGANLNAVLSKARPGDMGFDVVHLNLHKTFTGPHGGGGPGSGPVGVKADLIPFLPKPVVEKGENGYYLDDDRPQSIGRVKPFYGNFAINVRAYTYIRSMGPEGLKAVAEYAVLNANYMMRRLAEYYDLPYDRHCKHEFVLSGKRQKKLGVRTLDIAKRLLDFGFHPPTVYFPLIVEECMMIEPTETESKETLDAFIDAMIQIAKEAEENPEIVQEAPHTTVVKRLDETKAARKPILRYQKQ >Gthg02642 Glycine dehydrogenase (EC 1.4.4.2) [Geobacillus thermoglucosidasius TM242] MLHRYLPMTEEDKREMLNVIGVDSIDDLFADIPESVRFRGELNIKKAKSEVELWKELSALAAKNADVKKYTSFLGAGVYDHYIPAIVDHVISRSEFYTAYTPYQPEISQGELQAIFEFQTMICELTGMDVANSSMYDGGTALAEAMLLSAAHTKKKKVLLAKTVHPEYRGVVKTYAKGQRLHVVEIPFQHGVTDLEALKAEMDDEVACVIVQYPNFFGQIEPLKDIEPVAHSCKSMFVVASNPLALGILAPPGKFGADIVVGDVQPFGIPMQFGGPHCGYFAVKAELMRKIPGRLVGQTTDEEGRRGFVLTLQAREQHIRRDKATSNICSNQALNALAASVAMTALGKKGIKEMATMNIQKAQYAKNELVKHGFAVPFTGPFFNEFVVCLAKPVAEVNKQLLRKGIIGGYDVGRDYPELQNHMLIAVTELRTKEEIDMFVKELGDCHA