I recently needed to make a simple, two dimensional figure of a beta-barrel membrane protein. I went hunting for programs that might take a sequence and/or structure and produce a pretty looking diagram to save me constructing everything by hand. Here are two I found and tried.
Ioannis C. Spyropoulos, Theodore D. Liakopoulos, Pantelis G. Bagos and Stavros J. Hamodrakas TMRPres2D: high quality visual representation of transmembrane protein models Bioinformatics. 2004; 20: 3258-3260. (link)
Pros:
- Cross-platform (Java)
- Simple interface, GUI (zero learning curve)
- Lots of input options (defines transmembrane regions directly from SwissP
rot or PIR annotations online, takes input from several transmembrane region predictors) - Lots of output formats and options (Postscript, gif, jpg, png, svg, bmp)
- Various colouring options (hydrophobicity, charge, “printer friendly”)
- Makes reasonable looking diagrams of helical transmembrane proteins
Cons:
- Doesn’t handle beta-barrel membrane proteins gracefully (strand drawing is overlapped, messy).
- The membrane is assumed to be a eukaryotic plasma membrane, with labels “cytoplasmic/extracellular” (which should be, for instance, “extracellular/periplasm” for a bacterial outer membrane protein). This is easily changed on the diagram with external editing.
Beitz, E. (2000), TeXtopo: shaded membrane protein topology plots in LaTeX2e. Bioinformatics 16: 1050-1051. (link). See the original publication or Professor Eric Beitz’s site for a better example than my image.
Pros:
- Beautiful, clean, publication quality diagrams, courtesy of LaTeX
- Multiple input options (Swissprot format, PHD, HMMTOP, user defined)
- Multiple sequence annotation options including colouring by various physiochemical properties (hydrophobicity, charge), sequence conservation or user defined schemes.
- Will depict membrane embedded half-loops and lipid anchors.
- Versatile output (Postscript, pdf, dvi, basically anything that LaTex can be rendered as)
- Also can generate attractive looking helical wheel plots
- Did I mention the output is clean and looks great … ?
Cons:
- Steep learning curve for the uninitiated, despite extensive documentation (ie LaTeX code, no GUI)
- No support for beta-barrel membrane proteins
If I ever need to make a 2D diagram of a helical membrane protein for a publication, TeXtopo would be my first choice. For quickly getting an overview of some transmembrane prediction results or a protein with defined tranmembrane regions in Uniprot, TMRPres2D is the quickest and easiest method.
In the end, since neither program would do a decent job at cleanly depicting the strands of a beta-barrel in a simple 2D plot, I ended up coding my own hackish solution (svg_barrel.tar.gz or svg_barrel_gui_win32.zip) using Python and a tweaked version of SVGdraw.py. This allowed me to generate some SVG graphics to use as a starting point, and then hand edit the result in Inkscape to align strands to loosely match the real hydrogen bonding patterns. I also added some simple beizer curves for the loops, since neat placement of loop residues was the tricky part that I decided I didn’t have time to tackle.
Here’s the end result, after hand editing:
And here is the 3D version, as a point of reference:
The 2D vector diagram could do with some work to aid in a more accurate representation (unfortunately ‘flat’ views of a 3D barrel always have to make some compromises), but it does the job. The goal was to keep it simple … simple it is. One day I may extend this code to actually use known structure coordinates to automatically align the strands (saving tedious manual alignment), and write some code that properly lays out the loops.
Anyone know any other programs of similar functionality I’ve missed ?
The Software review: producing two dimensional diagrams of membrane proteins by Andrew Perry, unless otherwise expressly stated, is licensed under a Creative Commons CC0 1.0 Universal License.



I am beginner in this area and have been used TMRPres2D. ALthough, it was easy to use, it generated an incorrect protein structure by reversing the orientation. Then I attempted to try textopo, which worked much better but I was not able to get the half loop function. I was just wondering if you could provide some help in how to draw half loops.
Thanks.
Sorry for the slow reply Ashish – you happened to catch me when I was away on holiday with limited internet access. I’m not sure I can be much help, since I really only did a quick review of the capabilities of these programs before rolling my own solution to do what I wanted to do.
From the TeXtopo docs, it looks like any membrane region (as defined in your annotation file or via \MRs{} ) less than 14 residues long is automatically drawn as a ‘half-loop’. I couldn’t find any documented setting to change this minimum cutoff, but you may be able to find it in the TeXtopo source. I wouldn’t be shy about emailing Prof. Beitz and asking him – you may have uncovered a missing feature that probably should be there (the ability to explicitly flag regions as half-loops).
I need to draw a figure for one of the membrane protein that I identified similar to Fig 3b from the paper “TonB-dependent receptors—structural perspectives- Biochimica et Biophysica Acta 1565 (2002) 318– 332″. Can you please guide me on what software to use or have the authors done it manually. I am a Microbiologist and have no idea about these applications.
Hi Subha: I suspect the authors probably did most of the work manually. Although this post is ~4 years old, I haven’t heard of any new tool appearing to make this easier since I wrote it.
The little Windows program in the post above (svg_barrel_gui_win32.zip) may help you get started – just download it, unzip it, and run double click on svg_barrel_gui.exe and it should run.
You can put your protein sequence for the barrel domain into the box. You need to put square brackets around the strands (there’s an example sequence in to help you get the idea). If there is no actual 3D structure of your protein, use PSI-PRED predicted secondary structure as a guide, or if it is similar enough to FhuA / FepA to make a reasonable pairwise alignment, use the PDB secondary structure for equivalent aligned residues, (eg from http://www.rcsb.org/pdb/explore/remediatedSequence.do?structureId=2FCP).
Once you’ve written the SVG output, load it up in Inkscape to clean it up and edit it as required.
The bottom line is, you are probably going to have to just bite the bullet and spend a few tedious hours making this figure. Hopefully my little program above can at least save you building each residue in the strands manually.