TransWikia.com

Is it possible to draw ligand binding pathways in LaTeX?

TeX - LaTeX Asked on May 28, 2021

I would like to create a figure displaying the binding pathways of a ligand between a lipid bilayer and a protein.

  • Ligand moves into the membrane and back into the extracellular environment (in equilibrium)
  • Ligand moves from within the membrane into the binding pocket of the protein (in equilibrium)
  • Ligand moves from the protein binding pocket into the extracellular environment (in equilibrium)

These three pathways in turn are in equilibrium with each other – I’ve drawn a (very) rough idea here.

Rough idea

I don’t really know where to start!

One Answer

Starting from this code here I came to this result. I think it is a start:

documentclass{standalone}
usepackage{tikz}
usetikzlibrary{decorations,decorations.pathreplacing}
usepackage{chemfig}
usepgflibrary{arrows}


begin{document}

%%%%%%Source of lipid layer: https://texample.net/tikz/examples/lipid-vesicle Published 2009-03-05 | Author: Henrik Skov Midtiby. Modified by Roland Tresky 2020-12-16

    pgfdeclaredecoration{lipidleaflet}{initial}
    {
        % Place as many segments as possible along the path to decorate
        % the minimum distance between two segments is set to 7 pt.
        state{initial}[width=pgfdecoratedpathlength/floor(pgfdecoratedpathlength/7pt)]
        {
            % Draw the two acyl chains
            pgfpathmoveto{pgfpoint{-1pt}{0pt}}
            pgfpathlineto{pgfpoint{-1pt}{-10pt}}
            pgfpathmoveto{pgfpoint{1pt}{0pt}}
            pgfpathlineto{pgfpoint{1pt}{-10pt}}
            % Draw the head group
            pgfpathmoveto{pgfpoint{1pt}{0pt}}
            pgfpathcircle{pgfpoint{0pt}{2pt}}{2.5pt}pgfusepath{fill,stroke}
        }
        state{final}
        {
            pgfpathmoveto{pgfpointdecoratedpathlast}
        }
    }
    
    begin{tikzpicture}[node distance=2cm]
            
%%%%%%%%% Lipid bilayer right
        draw[decorate, decoration={lipidleaflet, mirror}]
        (-1, -2.8) -- (2, -2.8);
        draw[decorate, decoration={lipidleaflet}]
        (-1, -2) -- (2, -2);
        draw[decorate, decoration={lipidleaflet, mirror}]
        (3, -2.8) -- (6, -2.8);
        draw[decorate, decoration={lipidleaflet}]
        (3, -2) -- (6, -2);
        %draw (0, -3.5) node {Lipid bilayer};
        
        %membraneprotein
        draw[rounded corners,red!60,fill=red!60] (2,-1.5) rectangle (2.8,-3);
        draw[cyan,fill=cyan] (2.2,-1.4) circle (4pt);
        
        %constants
        node (A) at (0, 0) {Ktextsubscript{mb}};
        node (B) at (2, 0) {Ktextsubscript{bm}};
        draw[>=triangle 45, <->] (0.5,0) -- (1.5,0);
        
        %double arrow
        draw[-{Stealth[right][length=2mm, width=1mm]},red,thick, shorten >=3pt] (2.1,-1.1) -- (1.1,-0.4);
        draw[-{Stealth[right][length=2mm, width=1mm]},red,thick, shorten >=3pt] (1.1,-0.5) -- (2.1,-1.2);
        
        %arrow
        draw[{Triangle[length=2mm, width=1mm]}-{Triangle[length=2mm, width=1mm]},shorten >=5pt] (-1.4,-2.4) -- (-3,-2.4);
        
        
%%%%%%%%% Lipid bilayer left
        draw[decorate, decoration={lipidleaflet, mirror}]
        (-6,-2.8) -- (-3, -2.8);
        draw[decorate, decoration={lipidleaflet}]
        (-6, -2) -- (-3, -2);
        draw[decorate, decoration={lipidleaflet, mirror}]
        (-10, -2.8) -- (-7, -2.8);
        draw[decorate, decoration={lipidleaflet}]
        (-10, -2) -- (-7, -2);
        
        %membraneprotein
        draw[rounded corners,red!60,fill=red!60] (-7,-1.5) rectangle (-6.2,-3);
        draw[cyan,fill=cyan] (-8,-0.4) circle (4pt);
        
        %double arrow
        draw[-{Stealth[right][length=2mm, width=1mm]},red,thick, shorten >=3pt] (-8,-1.6) -- (-8,-0.6);
        draw[-{Stealth[right][length=2mm, width=1mm]},red,thick, shorten >=3pt] (-8.1,-0.7) -- (-8.1,-1.7);
        
        %constants
        node (A) at (-9, 0) {Ktextsubscript{am}};
        node (B) at (-7, 0) {Ktextsubscript{ma}};
        draw[>=triangle 45, <->] (-8.5,0) -- (-7.5,0);
        
%%%%%%%%% Lipid bilayer below
        draw[decorate, decoration={lipidleaflet, mirror}]
        (-1.4,-6.8) -- (2, -6.8);
        draw[decorate, decoration={lipidleaflet}]
        (-1.4, -6) -- (2, -6);
        draw[decorate, decoration={lipidleaflet, mirror}]
        (-5.8, -6.8) -- (-2.4, -6.8);
        draw[decorate, decoration={lipidleaflet}]
        (-5.8,-6) -- (-2.4,-6);
        
        %membraneprotein
        draw[rounded corners,red!60,fill=red!60] (-2.4,-7) rectangle (-1.6,-5.6);
        draw[cyan,fill=cyan] (-2.3,-5.5) circle (4pt);
        
        %double arrow
        draw[-{Stealth[right][length=2mm, width=1mm]},red,thick,shorten >=3pt] (-3.45,-6.2) -- (-2.45,-5.6);
        draw[-{Stealth[right][length=2mm, width=1mm]},red,thick,shorten >=3pt] (-2.6,-5.6) -- (-3.6,-6.2);
        
        %constants
        node (A) at (-3, -8) {Ktextsubscript{ab}};
        node (B) at (-1, -8) {Ktextsubscript{ba}};
        draw[>=triangle 45, <->] (-2.5,-8) -- (-1.5,-8);
        
        %arrow
        draw[{Triangle[length=2mm, width=1mm]}-{Triangle[length=2mm, width=1mm]},shorten >=5pt] (-6,-3.5) -- (-4,-5);
        
        %arrow
        draw[{Triangle[length=2mm, width=1mm]}-{Triangle[length=2mm, width=1mm]},shorten >=5pt] (2,-3.5) -- (0,-5);
        
    end{tikzpicture}
    
end{document} 

enter image description here

Answered by Roland on May 28, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP