Drawing enzyme with TikZ

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
12
down vote

favorite
7












It is possible to draw something like the figure below using TikZ enter image description hereor any other Latex package?







share|improve this question


















  • 2




    You can certainly create an image with TikZ or PSTricks. But in my opinion it is too complicated as image. I am often very brief, especially in my questions/answers. I believe that with InkScape you could convert your image to a TikZ or PSTricks code if I remember correctly and save a lot of time.
    – Sebastiano
    Aug 12 at 20:12











  • @Sebastiano It is a good point, but I don't think this is too much for TikZ really. When I read the title I was worried the OP wanted to draw something more like en.wikipedia.org/wiki/Alpha-amylase#/media/… and came here with the intention of saying the same thing as you! :P But this cartoon is well within TikZ's capabilities I think, if one can be bothered
    – Au101
    Aug 12 at 21:54














up vote
12
down vote

favorite
7












It is possible to draw something like the figure below using TikZ enter image description hereor any other Latex package?







share|improve this question


















  • 2




    You can certainly create an image with TikZ or PSTricks. But in my opinion it is too complicated as image. I am often very brief, especially in my questions/answers. I believe that with InkScape you could convert your image to a TikZ or PSTricks code if I remember correctly and save a lot of time.
    – Sebastiano
    Aug 12 at 20:12











  • @Sebastiano It is a good point, but I don't think this is too much for TikZ really. When I read the title I was worried the OP wanted to draw something more like en.wikipedia.org/wiki/Alpha-amylase#/media/… and came here with the intention of saying the same thing as you! :P But this cartoon is well within TikZ's capabilities I think, if one can be bothered
    – Au101
    Aug 12 at 21:54












up vote
12
down vote

favorite
7









up vote
12
down vote

favorite
7






7





It is possible to draw something like the figure below using TikZ enter image description hereor any other Latex package?







share|improve this question














It is possible to draw something like the figure below using TikZ enter image description hereor any other Latex package?









share|improve this question













share|improve this question




share|improve this question








edited Aug 12 at 19:54









Bernard

155k762189




155k762189










asked Aug 12 at 19:51









Thales Souza Freire

1009




1009







  • 2




    You can certainly create an image with TikZ or PSTricks. But in my opinion it is too complicated as image. I am often very brief, especially in my questions/answers. I believe that with InkScape you could convert your image to a TikZ or PSTricks code if I remember correctly and save a lot of time.
    – Sebastiano
    Aug 12 at 20:12











  • @Sebastiano It is a good point, but I don't think this is too much for TikZ really. When I read the title I was worried the OP wanted to draw something more like en.wikipedia.org/wiki/Alpha-amylase#/media/… and came here with the intention of saying the same thing as you! :P But this cartoon is well within TikZ's capabilities I think, if one can be bothered
    – Au101
    Aug 12 at 21:54












  • 2




    You can certainly create an image with TikZ or PSTricks. But in my opinion it is too complicated as image. I am often very brief, especially in my questions/answers. I believe that with InkScape you could convert your image to a TikZ or PSTricks code if I remember correctly and save a lot of time.
    – Sebastiano
    Aug 12 at 20:12











  • @Sebastiano It is a good point, but I don't think this is too much for TikZ really. When I read the title I was worried the OP wanted to draw something more like en.wikipedia.org/wiki/Alpha-amylase#/media/… and came here with the intention of saying the same thing as you! :P But this cartoon is well within TikZ's capabilities I think, if one can be bothered
    – Au101
    Aug 12 at 21:54







2




2




You can certainly create an image with TikZ or PSTricks. But in my opinion it is too complicated as image. I am often very brief, especially in my questions/answers. I believe that with InkScape you could convert your image to a TikZ or PSTricks code if I remember correctly and save a lot of time.
– Sebastiano
Aug 12 at 20:12





You can certainly create an image with TikZ or PSTricks. But in my opinion it is too complicated as image. I am often very brief, especially in my questions/answers. I believe that with InkScape you could convert your image to a TikZ or PSTricks code if I remember correctly and save a lot of time.
– Sebastiano
Aug 12 at 20:12













@Sebastiano It is a good point, but I don't think this is too much for TikZ really. When I read the title I was worried the OP wanted to draw something more like en.wikipedia.org/wiki/Alpha-amylase#/media/… and came here with the intention of saying the same thing as you! :P But this cartoon is well within TikZ's capabilities I think, if one can be bothered
– Au101
Aug 12 at 21:54




@Sebastiano It is a good point, but I don't think this is too much for TikZ really. When I read the title I was worried the OP wanted to draw something more like en.wikipedia.org/wiki/Alpha-amylase#/media/… and came here with the intention of saying the same thing as you! :P But this cartoon is well within TikZ's capabilities I think, if one can be bothered
– Au101
Aug 12 at 21:54










3 Answers
3






active

oldest

votes

















up vote
31
down vote



accepted










I'd use pics for that. This allows you to draw the same thing, possibly with some variation, over and over. In this example, I use



draw (1.2,2.9) pic[rotate=25] Enzyme B=3;


Here, Enzyme B is the second of your enzymes, and 3 means both receptors (?) are filled. If I would had chosen 0, 1 or 2 instead, none, the lower one or the upper one would have been filled. (1.2,2.9) is the coordinate, and as you see, you can rotate the pic (or subject it to other transformations like scale for instance). I have left a few enzymes to be placed for you as an exercise. ;-) (EDIT: Made the radii of the bummies a bit smaller and adjustable.)



documentclass[tikz, margin=3.14mm]standalone 
pgfkeystikz/.cd,
bummy radius/.store in=BummyRadius,
bummy radius=1.6mm

tikzsetpics/.cd,
Enzyme A/.style=
code=
draw[thin,fill=green!30] (0.3,0) arc(90:270:0.15) -- (0.3,-0.3) to[out=-90,in=0] (0,-0.5)
to[out=180,in=-90] (-0.3,-0.3) to (-0.3,0.3) to[out=90,in=180] (0,0.5)
to[out=0,in=90] (0.3,0.3) arc(90:270:0.15) --cycle;
ifnum#1=1
fill[red!80] (1.1mm+BummyRadius,-0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,-0.21) circle (BummyRadius);
fi
ifnum#1=2
fill[red!80] (1.1mm+BummyRadius,0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,0.21) circle (BummyRadius);
fi
ifnum#1=3
fill[red!80] (1.1mm+BummyRadius,-0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,-0.21) circle (BummyRadius);
fill[red!80] (1.1mm+BummyRadius,0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,0.21) circle (BummyRadius);
fi

,
Enzyme B/.style=
code=- (0.1,0.4)
,


begindocument
begintikzpicture
draw[blue!40,ultra thick] plot[domain=-7.5:7.5,variable=x,smooth,samples=50]
(x,tanh(x/1.5)+3*exp(-0.5*x*x));
foreach X in -2.5,2.5
draw[thick,dashed] (X,-1) -- (X,8);
% left panel
foreach X in 0,1.5
foreach Y in 1,...,5
draw (X-7+0.1*rand,1.5*Y+0.1*rand) pic[rotate=rand*20] Enzyme A=0;
draw (-3.3,6.8) pic[rotate=rand*20] Enzyme B=0;
draw (-3.4,5.3) pic[rotate=rand*20] Enzyme B=0;
% middle
foreach X in 0,1.25
foreach Y [evaluate=Y as Z using int(5-Y)]in 3,4,5
draw (X-2+0.1*rand,1.5*Y+0.1*rand) pic[rotate=rand*20] Enzyme A=Z;
draw (-1.2,2.8) pic Enzyme A=3;
foreach X in 0,1.25
foreach Y [evaluate=Y as Z using int(5-Y)]in 3,4,5
draw (X+0.75+0.1*rand,1.5*Y+0.1*rand) pic[rotate=rand*20] Enzyme B=Z;
draw (1.2,2.9) pic[rotate=25] Enzyme B=3;
% right panel
foreach X in 0,1.5
foreach Y in 1,...,5
draw (X+5.5+0.1*rand,1.25*Y+1+0.1*rand) pic[rotate=rand*20] Enzyme B=3;
draw (3.3,6.8) pic[rotate=rand*20] Enzyme A=3;
draw (3.4,5.3) pic[rotate=rand*20] Enzyme A=3;
endtikzpicture
enddocument


enter image description here






share|improve this answer


















  • 13




    Wow! You are truly a TikZ wizard-marmot.
    – Alan Munn
    Aug 13 at 2:39






  • 5




    My eyes find it hard to believe that you have created a code exactly identical to the figure. You are extraordinary.
    – Sebastiano
    Aug 13 at 7:41






  • 1




    Impressive! Now I'll try do adjust to my problem. Thank you very much!
    – Thales Souza Freire
    Aug 13 at 19:09

















up vote
12
down vote













just for fun and recognizing that marmot's code is really practical, a version with other options that require manual positioning, to get the result as close to the example; the enzymes have conditional parts derived from marmot's answer, but these are activated or deactivated with 0 or 1 to avoid defining 4 states.



RESULT:
enter image description here



MWE:



documentclass[border=0pt]standalone
usepackagetikz
definecolormygreenHTMLBED395
definecolormyblueHTML87ABEC
definecolorlinegreenHTML989F7F
definecolorcolor1HTMLDFD8C8
begindocument
pagecolorcolor1
begintikzpicture
defactivator(#1)
beginscope[shift=(#1)]
draw[line width=1pt,linegreen,fill=red](0,0)
arc (180:40:0.15) arc (140:0:0.15) arc (0:-140:0.15) arc (-40:-180:0.15);
endscope


defenzymeA(#1)[#2]#3#4 cycle;
ifnum#3=1 activator(0.3,0.26) fi
ifnum#4=1 activator(0.3,-0.26) fi
endscope


defenzymeB(#1)[#2]#3#4 cycle;
ifnum#3=1 activator(0.4,0.24) fi
ifnum#4=1 activator(0.4,-0.25) fi
endscope

%Start drawing the thing
draw[myblue,line width=3pt]
(1.5,0)
to [out=0, in=180,out looseness=1.8,in looseness=0.4] ++(9,6)
to [out=0, in=180,out looseness=0.4,in looseness=2] ++(9,-4);
draw[dash pattern = on 10pt off 10pt, very thick](0,0)++(6,0) -- ++(0,14);
draw[dash pattern = on 10pt off 10pt, very thick](6,0)++(9,0) -- ++(0,14);
%Draw void enzymes B
foreach x/y/rotation in
0/4/-5,
1.5/5/10,
3/4/10,
0.2/6/-15,
2/7/10,
3.5/6/-15,
0.2/8/5,
1.5/9/5,
0.1/10/-10,
1.5/11/26,
0.2/12/-10,
1.7/13/10,
7/12/26,
9/13/-10


enzymeB(x,y)[rotation]00

%Draw activated enzymes B
foreach x/y/rotation in
8/6/-20,
16/10/15,
16/12/-15


enzymeB(x,y)[rotation]11

%Draw void enzymes A
foreach x/y/rotation in
5/9/10,
4.5/11/-5,
13/13/-15


enzymeA(x,y)[rotation]00

%Draw activated enzymes A
foreach x/y/rotation in
20/3.5/-15,
18.2/3.5/26,
20/5.4/15,
18.5/5.4/10,
19.2/7.3/-5,
17.7/7.1/-5,
19.7/9.1/-15,
18/9/10,
20./11/15,
18.2/11/-5,
20/13/15,
18.2/13/-15,
14/5.4/-10,
12.5/6.2/26


enzymeA(x,y)[rotation]11

%Incomplete activation enzymes
enzymeB(7,8)[26]01
enzymeB(7,10)[-15]01
enzymeB(9,8.5)[15]10
enzymeB(9,10.5)[-15]01
enzymeA(12,11)[15]10
enzymeA(14,11)[-15]01
enzymeA(12,8.5)[15]10
enzymeA(14,8.5)[-26]01
endtikzpicture

enddocument





share|improve this answer






















  • Great! Thanks for the solution!
    – Thales Souza Freire
    Aug 13 at 19:12

















up vote
10
down vote













Since that is just a very quick answer, here are just the “styles“ that are necessary:



documentclass[border=5pt,tikz]standalone
begindocument
begintikzpicture[green!70!black]
beginscope[rotate=75]
draw (0,0) arc(0:180:.5);
draw (1,0) arc(0:180:.5);
draw (-1.5,.5) arc(180:270:.5);
draw (-1.5,.5) --+ (0,.5) arc(-180:-270:.5) --+ (2,0);
draw (1.5,1) arc(0:90:.5);
draw (1.5,1) --+ (0,-.5) arc(0:-90:.5);
endscope
fill[yshift=-4cm,xshift=-1.7cm,green!70!black!50] (0,2) -- (0,0) --+ (1.5,0) --+ (1.5,.3) --+ (1.1,.3) --+ (1.1,.9) --+ (1.5,.9) --+ (1.5,1) -- (1.1,1) --+ (0,.7) --+ (.4,.7) --+ (.4,1) -- cycle;
beginscope[xshift=-1.2cm,yshift=-5cm]
draw[very thick,red!70!black,fill=red!70!black!80] (0,0) circle(.5);
draw[very thick,red!70!black,fill=red!70!black!80] (.5,0) circle(.5);
draw[red!70!black!80,fill=red!70!black!80] (0,0) circle(.5);
draw[red!70!black!80,fill=red!70!black!80] (.5,0) circle(.5);
endscope
endtikzpicture
enddocument


Here is the output:



Screenshot






share|improve this answer




















    Your Answer







    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "85"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    convertImagesToLinks: false,
    noModals: false,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













     

    draft saved


    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f445801%2fdrawing-enzyme-with-tikz%23new-answer', 'question_page');

    );

    Post as a guest






























    3 Answers
    3






    active

    oldest

    votes








    3 Answers
    3






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    31
    down vote



    accepted










    I'd use pics for that. This allows you to draw the same thing, possibly with some variation, over and over. In this example, I use



    draw (1.2,2.9) pic[rotate=25] Enzyme B=3;


    Here, Enzyme B is the second of your enzymes, and 3 means both receptors (?) are filled. If I would had chosen 0, 1 or 2 instead, none, the lower one or the upper one would have been filled. (1.2,2.9) is the coordinate, and as you see, you can rotate the pic (or subject it to other transformations like scale for instance). I have left a few enzymes to be placed for you as an exercise. ;-) (EDIT: Made the radii of the bummies a bit smaller and adjustable.)



    documentclass[tikz, margin=3.14mm]standalone 
    pgfkeystikz/.cd,
    bummy radius/.store in=BummyRadius,
    bummy radius=1.6mm

    tikzsetpics/.cd,
    Enzyme A/.style=
    code=
    draw[thin,fill=green!30] (0.3,0) arc(90:270:0.15) -- (0.3,-0.3) to[out=-90,in=0] (0,-0.5)
    to[out=180,in=-90] (-0.3,-0.3) to (-0.3,0.3) to[out=90,in=180] (0,0.5)
    to[out=0,in=90] (0.3,0.3) arc(90:270:0.15) --cycle;
    ifnum#1=1
    fill[red!80] (1.1mm+BummyRadius,-0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,-0.21) circle (BummyRadius);
    fi
    ifnum#1=2
    fill[red!80] (1.1mm+BummyRadius,0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,0.21) circle (BummyRadius);
    fi
    ifnum#1=3
    fill[red!80] (1.1mm+BummyRadius,-0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,-0.21) circle (BummyRadius);
    fill[red!80] (1.1mm+BummyRadius,0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,0.21) circle (BummyRadius);
    fi

    ,
    Enzyme B/.style=
    code=- (0.1,0.4)
    ,


    begindocument
    begintikzpicture
    draw[blue!40,ultra thick] plot[domain=-7.5:7.5,variable=x,smooth,samples=50]
    (x,tanh(x/1.5)+3*exp(-0.5*x*x));
    foreach X in -2.5,2.5
    draw[thick,dashed] (X,-1) -- (X,8);
    % left panel
    foreach X in 0,1.5
    foreach Y in 1,...,5
    draw (X-7+0.1*rand,1.5*Y+0.1*rand) pic[rotate=rand*20] Enzyme A=0;
    draw (-3.3,6.8) pic[rotate=rand*20] Enzyme B=0;
    draw (-3.4,5.3) pic[rotate=rand*20] Enzyme B=0;
    % middle
    foreach X in 0,1.25
    foreach Y [evaluate=Y as Z using int(5-Y)]in 3,4,5
    draw (X-2+0.1*rand,1.5*Y+0.1*rand) pic[rotate=rand*20] Enzyme A=Z;
    draw (-1.2,2.8) pic Enzyme A=3;
    foreach X in 0,1.25
    foreach Y [evaluate=Y as Z using int(5-Y)]in 3,4,5
    draw (X+0.75+0.1*rand,1.5*Y+0.1*rand) pic[rotate=rand*20] Enzyme B=Z;
    draw (1.2,2.9) pic[rotate=25] Enzyme B=3;
    % right panel
    foreach X in 0,1.5
    foreach Y in 1,...,5
    draw (X+5.5+0.1*rand,1.25*Y+1+0.1*rand) pic[rotate=rand*20] Enzyme B=3;
    draw (3.3,6.8) pic[rotate=rand*20] Enzyme A=3;
    draw (3.4,5.3) pic[rotate=rand*20] Enzyme A=3;
    endtikzpicture
    enddocument


    enter image description here






    share|improve this answer


















    • 13




      Wow! You are truly a TikZ wizard-marmot.
      – Alan Munn
      Aug 13 at 2:39






    • 5




      My eyes find it hard to believe that you have created a code exactly identical to the figure. You are extraordinary.
      – Sebastiano
      Aug 13 at 7:41






    • 1




      Impressive! Now I'll try do adjust to my problem. Thank you very much!
      – Thales Souza Freire
      Aug 13 at 19:09














    up vote
    31
    down vote



    accepted










    I'd use pics for that. This allows you to draw the same thing, possibly with some variation, over and over. In this example, I use



    draw (1.2,2.9) pic[rotate=25] Enzyme B=3;


    Here, Enzyme B is the second of your enzymes, and 3 means both receptors (?) are filled. If I would had chosen 0, 1 or 2 instead, none, the lower one or the upper one would have been filled. (1.2,2.9) is the coordinate, and as you see, you can rotate the pic (or subject it to other transformations like scale for instance). I have left a few enzymes to be placed for you as an exercise. ;-) (EDIT: Made the radii of the bummies a bit smaller and adjustable.)



    documentclass[tikz, margin=3.14mm]standalone 
    pgfkeystikz/.cd,
    bummy radius/.store in=BummyRadius,
    bummy radius=1.6mm

    tikzsetpics/.cd,
    Enzyme A/.style=
    code=
    draw[thin,fill=green!30] (0.3,0) arc(90:270:0.15) -- (0.3,-0.3) to[out=-90,in=0] (0,-0.5)
    to[out=180,in=-90] (-0.3,-0.3) to (-0.3,0.3) to[out=90,in=180] (0,0.5)
    to[out=0,in=90] (0.3,0.3) arc(90:270:0.15) --cycle;
    ifnum#1=1
    fill[red!80] (1.1mm+BummyRadius,-0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,-0.21) circle (BummyRadius);
    fi
    ifnum#1=2
    fill[red!80] (1.1mm+BummyRadius,0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,0.21) circle (BummyRadius);
    fi
    ifnum#1=3
    fill[red!80] (1.1mm+BummyRadius,-0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,-0.21) circle (BummyRadius);
    fill[red!80] (1.1mm+BummyRadius,0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,0.21) circle (BummyRadius);
    fi

    ,
    Enzyme B/.style=
    code=- (0.1,0.4)
    ,


    begindocument
    begintikzpicture
    draw[blue!40,ultra thick] plot[domain=-7.5:7.5,variable=x,smooth,samples=50]
    (x,tanh(x/1.5)+3*exp(-0.5*x*x));
    foreach X in -2.5,2.5
    draw[thick,dashed] (X,-1) -- (X,8);
    % left panel
    foreach X in 0,1.5
    foreach Y in 1,...,5
    draw (X-7+0.1*rand,1.5*Y+0.1*rand) pic[rotate=rand*20] Enzyme A=0;
    draw (-3.3,6.8) pic[rotate=rand*20] Enzyme B=0;
    draw (-3.4,5.3) pic[rotate=rand*20] Enzyme B=0;
    % middle
    foreach X in 0,1.25
    foreach Y [evaluate=Y as Z using int(5-Y)]in 3,4,5
    draw (X-2+0.1*rand,1.5*Y+0.1*rand) pic[rotate=rand*20] Enzyme A=Z;
    draw (-1.2,2.8) pic Enzyme A=3;
    foreach X in 0,1.25
    foreach Y [evaluate=Y as Z using int(5-Y)]in 3,4,5
    draw (X+0.75+0.1*rand,1.5*Y+0.1*rand) pic[rotate=rand*20] Enzyme B=Z;
    draw (1.2,2.9) pic[rotate=25] Enzyme B=3;
    % right panel
    foreach X in 0,1.5
    foreach Y in 1,...,5
    draw (X+5.5+0.1*rand,1.25*Y+1+0.1*rand) pic[rotate=rand*20] Enzyme B=3;
    draw (3.3,6.8) pic[rotate=rand*20] Enzyme A=3;
    draw (3.4,5.3) pic[rotate=rand*20] Enzyme A=3;
    endtikzpicture
    enddocument


    enter image description here






    share|improve this answer


















    • 13




      Wow! You are truly a TikZ wizard-marmot.
      – Alan Munn
      Aug 13 at 2:39






    • 5




      My eyes find it hard to believe that you have created a code exactly identical to the figure. You are extraordinary.
      – Sebastiano
      Aug 13 at 7:41






    • 1




      Impressive! Now I'll try do adjust to my problem. Thank you very much!
      – Thales Souza Freire
      Aug 13 at 19:09












    up vote
    31
    down vote



    accepted







    up vote
    31
    down vote



    accepted






    I'd use pics for that. This allows you to draw the same thing, possibly with some variation, over and over. In this example, I use



    draw (1.2,2.9) pic[rotate=25] Enzyme B=3;


    Here, Enzyme B is the second of your enzymes, and 3 means both receptors (?) are filled. If I would had chosen 0, 1 or 2 instead, none, the lower one or the upper one would have been filled. (1.2,2.9) is the coordinate, and as you see, you can rotate the pic (or subject it to other transformations like scale for instance). I have left a few enzymes to be placed for you as an exercise. ;-) (EDIT: Made the radii of the bummies a bit smaller and adjustable.)



    documentclass[tikz, margin=3.14mm]standalone 
    pgfkeystikz/.cd,
    bummy radius/.store in=BummyRadius,
    bummy radius=1.6mm

    tikzsetpics/.cd,
    Enzyme A/.style=
    code=
    draw[thin,fill=green!30] (0.3,0) arc(90:270:0.15) -- (0.3,-0.3) to[out=-90,in=0] (0,-0.5)
    to[out=180,in=-90] (-0.3,-0.3) to (-0.3,0.3) to[out=90,in=180] (0,0.5)
    to[out=0,in=90] (0.3,0.3) arc(90:270:0.15) --cycle;
    ifnum#1=1
    fill[red!80] (1.1mm+BummyRadius,-0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,-0.21) circle (BummyRadius);
    fi
    ifnum#1=2
    fill[red!80] (1.1mm+BummyRadius,0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,0.21) circle (BummyRadius);
    fi
    ifnum#1=3
    fill[red!80] (1.1mm+BummyRadius,-0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,-0.21) circle (BummyRadius);
    fill[red!80] (1.1mm+BummyRadius,0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,0.21) circle (BummyRadius);
    fi

    ,
    Enzyme B/.style=
    code=- (0.1,0.4)
    ,


    begindocument
    begintikzpicture
    draw[blue!40,ultra thick] plot[domain=-7.5:7.5,variable=x,smooth,samples=50]
    (x,tanh(x/1.5)+3*exp(-0.5*x*x));
    foreach X in -2.5,2.5
    draw[thick,dashed] (X,-1) -- (X,8);
    % left panel
    foreach X in 0,1.5
    foreach Y in 1,...,5
    draw (X-7+0.1*rand,1.5*Y+0.1*rand) pic[rotate=rand*20] Enzyme A=0;
    draw (-3.3,6.8) pic[rotate=rand*20] Enzyme B=0;
    draw (-3.4,5.3) pic[rotate=rand*20] Enzyme B=0;
    % middle
    foreach X in 0,1.25
    foreach Y [evaluate=Y as Z using int(5-Y)]in 3,4,5
    draw (X-2+0.1*rand,1.5*Y+0.1*rand) pic[rotate=rand*20] Enzyme A=Z;
    draw (-1.2,2.8) pic Enzyme A=3;
    foreach X in 0,1.25
    foreach Y [evaluate=Y as Z using int(5-Y)]in 3,4,5
    draw (X+0.75+0.1*rand,1.5*Y+0.1*rand) pic[rotate=rand*20] Enzyme B=Z;
    draw (1.2,2.9) pic[rotate=25] Enzyme B=3;
    % right panel
    foreach X in 0,1.5
    foreach Y in 1,...,5
    draw (X+5.5+0.1*rand,1.25*Y+1+0.1*rand) pic[rotate=rand*20] Enzyme B=3;
    draw (3.3,6.8) pic[rotate=rand*20] Enzyme A=3;
    draw (3.4,5.3) pic[rotate=rand*20] Enzyme A=3;
    endtikzpicture
    enddocument


    enter image description here






    share|improve this answer














    I'd use pics for that. This allows you to draw the same thing, possibly with some variation, over and over. In this example, I use



    draw (1.2,2.9) pic[rotate=25] Enzyme B=3;


    Here, Enzyme B is the second of your enzymes, and 3 means both receptors (?) are filled. If I would had chosen 0, 1 or 2 instead, none, the lower one or the upper one would have been filled. (1.2,2.9) is the coordinate, and as you see, you can rotate the pic (or subject it to other transformations like scale for instance). I have left a few enzymes to be placed for you as an exercise. ;-) (EDIT: Made the radii of the bummies a bit smaller and adjustable.)



    documentclass[tikz, margin=3.14mm]standalone 
    pgfkeystikz/.cd,
    bummy radius/.store in=BummyRadius,
    bummy radius=1.6mm

    tikzsetpics/.cd,
    Enzyme A/.style=
    code=
    draw[thin,fill=green!30] (0.3,0) arc(90:270:0.15) -- (0.3,-0.3) to[out=-90,in=0] (0,-0.5)
    to[out=180,in=-90] (-0.3,-0.3) to (-0.3,0.3) to[out=90,in=180] (0,0.5)
    to[out=0,in=90] (0.3,0.3) arc(90:270:0.15) --cycle;
    ifnum#1=1
    fill[red!80] (1.1mm+BummyRadius,-0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,-0.21) circle (BummyRadius);
    fi
    ifnum#1=2
    fill[red!80] (1.1mm+BummyRadius,0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,0.21) circle (BummyRadius);
    fi
    ifnum#1=3
    fill[red!80] (1.1mm+BummyRadius,-0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,-0.21) circle (BummyRadius);
    fill[red!80] (1.1mm+BummyRadius,0.21) circle (BummyRadius) (1.1mm+2.8*BummyRadius,0.21) circle (BummyRadius);
    fi

    ,
    Enzyme B/.style=
    code=- (0.1,0.4)
    ,


    begindocument
    begintikzpicture
    draw[blue!40,ultra thick] plot[domain=-7.5:7.5,variable=x,smooth,samples=50]
    (x,tanh(x/1.5)+3*exp(-0.5*x*x));
    foreach X in -2.5,2.5
    draw[thick,dashed] (X,-1) -- (X,8);
    % left panel
    foreach X in 0,1.5
    foreach Y in 1,...,5
    draw (X-7+0.1*rand,1.5*Y+0.1*rand) pic[rotate=rand*20] Enzyme A=0;
    draw (-3.3,6.8) pic[rotate=rand*20] Enzyme B=0;
    draw (-3.4,5.3) pic[rotate=rand*20] Enzyme B=0;
    % middle
    foreach X in 0,1.25
    foreach Y [evaluate=Y as Z using int(5-Y)]in 3,4,5
    draw (X-2+0.1*rand,1.5*Y+0.1*rand) pic[rotate=rand*20] Enzyme A=Z;
    draw (-1.2,2.8) pic Enzyme A=3;
    foreach X in 0,1.25
    foreach Y [evaluate=Y as Z using int(5-Y)]in 3,4,5
    draw (X+0.75+0.1*rand,1.5*Y+0.1*rand) pic[rotate=rand*20] Enzyme B=Z;
    draw (1.2,2.9) pic[rotate=25] Enzyme B=3;
    % right panel
    foreach X in 0,1.5
    foreach Y in 1,...,5
    draw (X+5.5+0.1*rand,1.25*Y+1+0.1*rand) pic[rotate=rand*20] Enzyme B=3;
    draw (3.3,6.8) pic[rotate=rand*20] Enzyme A=3;
    draw (3.4,5.3) pic[rotate=rand*20] Enzyme A=3;
    endtikzpicture
    enddocument


    enter image description here







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Aug 13 at 2:34

























    answered Aug 12 at 22:37









    marmot

    54.9k459119




    54.9k459119







    • 13




      Wow! You are truly a TikZ wizard-marmot.
      – Alan Munn
      Aug 13 at 2:39






    • 5




      My eyes find it hard to believe that you have created a code exactly identical to the figure. You are extraordinary.
      – Sebastiano
      Aug 13 at 7:41






    • 1




      Impressive! Now I'll try do adjust to my problem. Thank you very much!
      – Thales Souza Freire
      Aug 13 at 19:09












    • 13




      Wow! You are truly a TikZ wizard-marmot.
      – Alan Munn
      Aug 13 at 2:39






    • 5




      My eyes find it hard to believe that you have created a code exactly identical to the figure. You are extraordinary.
      – Sebastiano
      Aug 13 at 7:41






    • 1




      Impressive! Now I'll try do adjust to my problem. Thank you very much!
      – Thales Souza Freire
      Aug 13 at 19:09







    13




    13




    Wow! You are truly a TikZ wizard-marmot.
    – Alan Munn
    Aug 13 at 2:39




    Wow! You are truly a TikZ wizard-marmot.
    – Alan Munn
    Aug 13 at 2:39




    5




    5




    My eyes find it hard to believe that you have created a code exactly identical to the figure. You are extraordinary.
    – Sebastiano
    Aug 13 at 7:41




    My eyes find it hard to believe that you have created a code exactly identical to the figure. You are extraordinary.
    – Sebastiano
    Aug 13 at 7:41




    1




    1




    Impressive! Now I'll try do adjust to my problem. Thank you very much!
    – Thales Souza Freire
    Aug 13 at 19:09




    Impressive! Now I'll try do adjust to my problem. Thank you very much!
    – Thales Souza Freire
    Aug 13 at 19:09










    up vote
    12
    down vote













    just for fun and recognizing that marmot's code is really practical, a version with other options that require manual positioning, to get the result as close to the example; the enzymes have conditional parts derived from marmot's answer, but these are activated or deactivated with 0 or 1 to avoid defining 4 states.



    RESULT:
    enter image description here



    MWE:



    documentclass[border=0pt]standalone
    usepackagetikz
    definecolormygreenHTMLBED395
    definecolormyblueHTML87ABEC
    definecolorlinegreenHTML989F7F
    definecolorcolor1HTMLDFD8C8
    begindocument
    pagecolorcolor1
    begintikzpicture
    defactivator(#1)
    beginscope[shift=(#1)]
    draw[line width=1pt,linegreen,fill=red](0,0)
    arc (180:40:0.15) arc (140:0:0.15) arc (0:-140:0.15) arc (-40:-180:0.15);
    endscope


    defenzymeA(#1)[#2]#3#4 cycle;
    ifnum#3=1 activator(0.3,0.26) fi
    ifnum#4=1 activator(0.3,-0.26) fi
    endscope


    defenzymeB(#1)[#2]#3#4 cycle;
    ifnum#3=1 activator(0.4,0.24) fi
    ifnum#4=1 activator(0.4,-0.25) fi
    endscope

    %Start drawing the thing
    draw[myblue,line width=3pt]
    (1.5,0)
    to [out=0, in=180,out looseness=1.8,in looseness=0.4] ++(9,6)
    to [out=0, in=180,out looseness=0.4,in looseness=2] ++(9,-4);
    draw[dash pattern = on 10pt off 10pt, very thick](0,0)++(6,0) -- ++(0,14);
    draw[dash pattern = on 10pt off 10pt, very thick](6,0)++(9,0) -- ++(0,14);
    %Draw void enzymes B
    foreach x/y/rotation in
    0/4/-5,
    1.5/5/10,
    3/4/10,
    0.2/6/-15,
    2/7/10,
    3.5/6/-15,
    0.2/8/5,
    1.5/9/5,
    0.1/10/-10,
    1.5/11/26,
    0.2/12/-10,
    1.7/13/10,
    7/12/26,
    9/13/-10


    enzymeB(x,y)[rotation]00

    %Draw activated enzymes B
    foreach x/y/rotation in
    8/6/-20,
    16/10/15,
    16/12/-15


    enzymeB(x,y)[rotation]11

    %Draw void enzymes A
    foreach x/y/rotation in
    5/9/10,
    4.5/11/-5,
    13/13/-15


    enzymeA(x,y)[rotation]00

    %Draw activated enzymes A
    foreach x/y/rotation in
    20/3.5/-15,
    18.2/3.5/26,
    20/5.4/15,
    18.5/5.4/10,
    19.2/7.3/-5,
    17.7/7.1/-5,
    19.7/9.1/-15,
    18/9/10,
    20./11/15,
    18.2/11/-5,
    20/13/15,
    18.2/13/-15,
    14/5.4/-10,
    12.5/6.2/26


    enzymeA(x,y)[rotation]11

    %Incomplete activation enzymes
    enzymeB(7,8)[26]01
    enzymeB(7,10)[-15]01
    enzymeB(9,8.5)[15]10
    enzymeB(9,10.5)[-15]01
    enzymeA(12,11)[15]10
    enzymeA(14,11)[-15]01
    enzymeA(12,8.5)[15]10
    enzymeA(14,8.5)[-26]01
    endtikzpicture

    enddocument





    share|improve this answer






















    • Great! Thanks for the solution!
      – Thales Souza Freire
      Aug 13 at 19:12














    up vote
    12
    down vote













    just for fun and recognizing that marmot's code is really practical, a version with other options that require manual positioning, to get the result as close to the example; the enzymes have conditional parts derived from marmot's answer, but these are activated or deactivated with 0 or 1 to avoid defining 4 states.



    RESULT:
    enter image description here



    MWE:



    documentclass[border=0pt]standalone
    usepackagetikz
    definecolormygreenHTMLBED395
    definecolormyblueHTML87ABEC
    definecolorlinegreenHTML989F7F
    definecolorcolor1HTMLDFD8C8
    begindocument
    pagecolorcolor1
    begintikzpicture
    defactivator(#1)
    beginscope[shift=(#1)]
    draw[line width=1pt,linegreen,fill=red](0,0)
    arc (180:40:0.15) arc (140:0:0.15) arc (0:-140:0.15) arc (-40:-180:0.15);
    endscope


    defenzymeA(#1)[#2]#3#4 cycle;
    ifnum#3=1 activator(0.3,0.26) fi
    ifnum#4=1 activator(0.3,-0.26) fi
    endscope


    defenzymeB(#1)[#2]#3#4 cycle;
    ifnum#3=1 activator(0.4,0.24) fi
    ifnum#4=1 activator(0.4,-0.25) fi
    endscope

    %Start drawing the thing
    draw[myblue,line width=3pt]
    (1.5,0)
    to [out=0, in=180,out looseness=1.8,in looseness=0.4] ++(9,6)
    to [out=0, in=180,out looseness=0.4,in looseness=2] ++(9,-4);
    draw[dash pattern = on 10pt off 10pt, very thick](0,0)++(6,0) -- ++(0,14);
    draw[dash pattern = on 10pt off 10pt, very thick](6,0)++(9,0) -- ++(0,14);
    %Draw void enzymes B
    foreach x/y/rotation in
    0/4/-5,
    1.5/5/10,
    3/4/10,
    0.2/6/-15,
    2/7/10,
    3.5/6/-15,
    0.2/8/5,
    1.5/9/5,
    0.1/10/-10,
    1.5/11/26,
    0.2/12/-10,
    1.7/13/10,
    7/12/26,
    9/13/-10


    enzymeB(x,y)[rotation]00

    %Draw activated enzymes B
    foreach x/y/rotation in
    8/6/-20,
    16/10/15,
    16/12/-15


    enzymeB(x,y)[rotation]11

    %Draw void enzymes A
    foreach x/y/rotation in
    5/9/10,
    4.5/11/-5,
    13/13/-15


    enzymeA(x,y)[rotation]00

    %Draw activated enzymes A
    foreach x/y/rotation in
    20/3.5/-15,
    18.2/3.5/26,
    20/5.4/15,
    18.5/5.4/10,
    19.2/7.3/-5,
    17.7/7.1/-5,
    19.7/9.1/-15,
    18/9/10,
    20./11/15,
    18.2/11/-5,
    20/13/15,
    18.2/13/-15,
    14/5.4/-10,
    12.5/6.2/26


    enzymeA(x,y)[rotation]11

    %Incomplete activation enzymes
    enzymeB(7,8)[26]01
    enzymeB(7,10)[-15]01
    enzymeB(9,8.5)[15]10
    enzymeB(9,10.5)[-15]01
    enzymeA(12,11)[15]10
    enzymeA(14,11)[-15]01
    enzymeA(12,8.5)[15]10
    enzymeA(14,8.5)[-26]01
    endtikzpicture

    enddocument





    share|improve this answer






















    • Great! Thanks for the solution!
      – Thales Souza Freire
      Aug 13 at 19:12












    up vote
    12
    down vote










    up vote
    12
    down vote









    just for fun and recognizing that marmot's code is really practical, a version with other options that require manual positioning, to get the result as close to the example; the enzymes have conditional parts derived from marmot's answer, but these are activated or deactivated with 0 or 1 to avoid defining 4 states.



    RESULT:
    enter image description here



    MWE:



    documentclass[border=0pt]standalone
    usepackagetikz
    definecolormygreenHTMLBED395
    definecolormyblueHTML87ABEC
    definecolorlinegreenHTML989F7F
    definecolorcolor1HTMLDFD8C8
    begindocument
    pagecolorcolor1
    begintikzpicture
    defactivator(#1)
    beginscope[shift=(#1)]
    draw[line width=1pt,linegreen,fill=red](0,0)
    arc (180:40:0.15) arc (140:0:0.15) arc (0:-140:0.15) arc (-40:-180:0.15);
    endscope


    defenzymeA(#1)[#2]#3#4 cycle;
    ifnum#3=1 activator(0.3,0.26) fi
    ifnum#4=1 activator(0.3,-0.26) fi
    endscope


    defenzymeB(#1)[#2]#3#4 cycle;
    ifnum#3=1 activator(0.4,0.24) fi
    ifnum#4=1 activator(0.4,-0.25) fi
    endscope

    %Start drawing the thing
    draw[myblue,line width=3pt]
    (1.5,0)
    to [out=0, in=180,out looseness=1.8,in looseness=0.4] ++(9,6)
    to [out=0, in=180,out looseness=0.4,in looseness=2] ++(9,-4);
    draw[dash pattern = on 10pt off 10pt, very thick](0,0)++(6,0) -- ++(0,14);
    draw[dash pattern = on 10pt off 10pt, very thick](6,0)++(9,0) -- ++(0,14);
    %Draw void enzymes B
    foreach x/y/rotation in
    0/4/-5,
    1.5/5/10,
    3/4/10,
    0.2/6/-15,
    2/7/10,
    3.5/6/-15,
    0.2/8/5,
    1.5/9/5,
    0.1/10/-10,
    1.5/11/26,
    0.2/12/-10,
    1.7/13/10,
    7/12/26,
    9/13/-10


    enzymeB(x,y)[rotation]00

    %Draw activated enzymes B
    foreach x/y/rotation in
    8/6/-20,
    16/10/15,
    16/12/-15


    enzymeB(x,y)[rotation]11

    %Draw void enzymes A
    foreach x/y/rotation in
    5/9/10,
    4.5/11/-5,
    13/13/-15


    enzymeA(x,y)[rotation]00

    %Draw activated enzymes A
    foreach x/y/rotation in
    20/3.5/-15,
    18.2/3.5/26,
    20/5.4/15,
    18.5/5.4/10,
    19.2/7.3/-5,
    17.7/7.1/-5,
    19.7/9.1/-15,
    18/9/10,
    20./11/15,
    18.2/11/-5,
    20/13/15,
    18.2/13/-15,
    14/5.4/-10,
    12.5/6.2/26


    enzymeA(x,y)[rotation]11

    %Incomplete activation enzymes
    enzymeB(7,8)[26]01
    enzymeB(7,10)[-15]01
    enzymeB(9,8.5)[15]10
    enzymeB(9,10.5)[-15]01
    enzymeA(12,11)[15]10
    enzymeA(14,11)[-15]01
    enzymeA(12,8.5)[15]10
    enzymeA(14,8.5)[-26]01
    endtikzpicture

    enddocument





    share|improve this answer














    just for fun and recognizing that marmot's code is really practical, a version with other options that require manual positioning, to get the result as close to the example; the enzymes have conditional parts derived from marmot's answer, but these are activated or deactivated with 0 or 1 to avoid defining 4 states.



    RESULT:
    enter image description here



    MWE:



    documentclass[border=0pt]standalone
    usepackagetikz
    definecolormygreenHTMLBED395
    definecolormyblueHTML87ABEC
    definecolorlinegreenHTML989F7F
    definecolorcolor1HTMLDFD8C8
    begindocument
    pagecolorcolor1
    begintikzpicture
    defactivator(#1)
    beginscope[shift=(#1)]
    draw[line width=1pt,linegreen,fill=red](0,0)
    arc (180:40:0.15) arc (140:0:0.15) arc (0:-140:0.15) arc (-40:-180:0.15);
    endscope


    defenzymeA(#1)[#2]#3#4 cycle;
    ifnum#3=1 activator(0.3,0.26) fi
    ifnum#4=1 activator(0.3,-0.26) fi
    endscope


    defenzymeB(#1)[#2]#3#4 cycle;
    ifnum#3=1 activator(0.4,0.24) fi
    ifnum#4=1 activator(0.4,-0.25) fi
    endscope

    %Start drawing the thing
    draw[myblue,line width=3pt]
    (1.5,0)
    to [out=0, in=180,out looseness=1.8,in looseness=0.4] ++(9,6)
    to [out=0, in=180,out looseness=0.4,in looseness=2] ++(9,-4);
    draw[dash pattern = on 10pt off 10pt, very thick](0,0)++(6,0) -- ++(0,14);
    draw[dash pattern = on 10pt off 10pt, very thick](6,0)++(9,0) -- ++(0,14);
    %Draw void enzymes B
    foreach x/y/rotation in
    0/4/-5,
    1.5/5/10,
    3/4/10,
    0.2/6/-15,
    2/7/10,
    3.5/6/-15,
    0.2/8/5,
    1.5/9/5,
    0.1/10/-10,
    1.5/11/26,
    0.2/12/-10,
    1.7/13/10,
    7/12/26,
    9/13/-10


    enzymeB(x,y)[rotation]00

    %Draw activated enzymes B
    foreach x/y/rotation in
    8/6/-20,
    16/10/15,
    16/12/-15


    enzymeB(x,y)[rotation]11

    %Draw void enzymes A
    foreach x/y/rotation in
    5/9/10,
    4.5/11/-5,
    13/13/-15


    enzymeA(x,y)[rotation]00

    %Draw activated enzymes A
    foreach x/y/rotation in
    20/3.5/-15,
    18.2/3.5/26,
    20/5.4/15,
    18.5/5.4/10,
    19.2/7.3/-5,
    17.7/7.1/-5,
    19.7/9.1/-15,
    18/9/10,
    20./11/15,
    18.2/11/-5,
    20/13/15,
    18.2/13/-15,
    14/5.4/-10,
    12.5/6.2/26


    enzymeA(x,y)[rotation]11

    %Incomplete activation enzymes
    enzymeB(7,8)[26]01
    enzymeB(7,10)[-15]01
    enzymeB(9,8.5)[15]10
    enzymeB(9,10.5)[-15]01
    enzymeA(12,11)[15]10
    enzymeA(14,11)[-15]01
    enzymeA(12,8.5)[15]10
    enzymeA(14,8.5)[-26]01
    endtikzpicture

    enddocument






    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Aug 13 at 5:24

























    answered Aug 13 at 5:18









    J Leon V.

    5,946527




    5,946527











    • Great! Thanks for the solution!
      – Thales Souza Freire
      Aug 13 at 19:12
















    • Great! Thanks for the solution!
      – Thales Souza Freire
      Aug 13 at 19:12















    Great! Thanks for the solution!
    – Thales Souza Freire
    Aug 13 at 19:12




    Great! Thanks for the solution!
    – Thales Souza Freire
    Aug 13 at 19:12










    up vote
    10
    down vote













    Since that is just a very quick answer, here are just the “styles“ that are necessary:



    documentclass[border=5pt,tikz]standalone
    begindocument
    begintikzpicture[green!70!black]
    beginscope[rotate=75]
    draw (0,0) arc(0:180:.5);
    draw (1,0) arc(0:180:.5);
    draw (-1.5,.5) arc(180:270:.5);
    draw (-1.5,.5) --+ (0,.5) arc(-180:-270:.5) --+ (2,0);
    draw (1.5,1) arc(0:90:.5);
    draw (1.5,1) --+ (0,-.5) arc(0:-90:.5);
    endscope
    fill[yshift=-4cm,xshift=-1.7cm,green!70!black!50] (0,2) -- (0,0) --+ (1.5,0) --+ (1.5,.3) --+ (1.1,.3) --+ (1.1,.9) --+ (1.5,.9) --+ (1.5,1) -- (1.1,1) --+ (0,.7) --+ (.4,.7) --+ (.4,1) -- cycle;
    beginscope[xshift=-1.2cm,yshift=-5cm]
    draw[very thick,red!70!black,fill=red!70!black!80] (0,0) circle(.5);
    draw[very thick,red!70!black,fill=red!70!black!80] (.5,0) circle(.5);
    draw[red!70!black!80,fill=red!70!black!80] (0,0) circle(.5);
    draw[red!70!black!80,fill=red!70!black!80] (.5,0) circle(.5);
    endscope
    endtikzpicture
    enddocument


    Here is the output:



    Screenshot






    share|improve this answer
























      up vote
      10
      down vote













      Since that is just a very quick answer, here are just the “styles“ that are necessary:



      documentclass[border=5pt,tikz]standalone
      begindocument
      begintikzpicture[green!70!black]
      beginscope[rotate=75]
      draw (0,0) arc(0:180:.5);
      draw (1,0) arc(0:180:.5);
      draw (-1.5,.5) arc(180:270:.5);
      draw (-1.5,.5) --+ (0,.5) arc(-180:-270:.5) --+ (2,0);
      draw (1.5,1) arc(0:90:.5);
      draw (1.5,1) --+ (0,-.5) arc(0:-90:.5);
      endscope
      fill[yshift=-4cm,xshift=-1.7cm,green!70!black!50] (0,2) -- (0,0) --+ (1.5,0) --+ (1.5,.3) --+ (1.1,.3) --+ (1.1,.9) --+ (1.5,.9) --+ (1.5,1) -- (1.1,1) --+ (0,.7) --+ (.4,.7) --+ (.4,1) -- cycle;
      beginscope[xshift=-1.2cm,yshift=-5cm]
      draw[very thick,red!70!black,fill=red!70!black!80] (0,0) circle(.5);
      draw[very thick,red!70!black,fill=red!70!black!80] (.5,0) circle(.5);
      draw[red!70!black!80,fill=red!70!black!80] (0,0) circle(.5);
      draw[red!70!black!80,fill=red!70!black!80] (.5,0) circle(.5);
      endscope
      endtikzpicture
      enddocument


      Here is the output:



      Screenshot






      share|improve this answer






















        up vote
        10
        down vote










        up vote
        10
        down vote









        Since that is just a very quick answer, here are just the “styles“ that are necessary:



        documentclass[border=5pt,tikz]standalone
        begindocument
        begintikzpicture[green!70!black]
        beginscope[rotate=75]
        draw (0,0) arc(0:180:.5);
        draw (1,0) arc(0:180:.5);
        draw (-1.5,.5) arc(180:270:.5);
        draw (-1.5,.5) --+ (0,.5) arc(-180:-270:.5) --+ (2,0);
        draw (1.5,1) arc(0:90:.5);
        draw (1.5,1) --+ (0,-.5) arc(0:-90:.5);
        endscope
        fill[yshift=-4cm,xshift=-1.7cm,green!70!black!50] (0,2) -- (0,0) --+ (1.5,0) --+ (1.5,.3) --+ (1.1,.3) --+ (1.1,.9) --+ (1.5,.9) --+ (1.5,1) -- (1.1,1) --+ (0,.7) --+ (.4,.7) --+ (.4,1) -- cycle;
        beginscope[xshift=-1.2cm,yshift=-5cm]
        draw[very thick,red!70!black,fill=red!70!black!80] (0,0) circle(.5);
        draw[very thick,red!70!black,fill=red!70!black!80] (.5,0) circle(.5);
        draw[red!70!black!80,fill=red!70!black!80] (0,0) circle(.5);
        draw[red!70!black!80,fill=red!70!black!80] (.5,0) circle(.5);
        endscope
        endtikzpicture
        enddocument


        Here is the output:



        Screenshot






        share|improve this answer












        Since that is just a very quick answer, here are just the “styles“ that are necessary:



        documentclass[border=5pt,tikz]standalone
        begindocument
        begintikzpicture[green!70!black]
        beginscope[rotate=75]
        draw (0,0) arc(0:180:.5);
        draw (1,0) arc(0:180:.5);
        draw (-1.5,.5) arc(180:270:.5);
        draw (-1.5,.5) --+ (0,.5) arc(-180:-270:.5) --+ (2,0);
        draw (1.5,1) arc(0:90:.5);
        draw (1.5,1) --+ (0,-.5) arc(0:-90:.5);
        endscope
        fill[yshift=-4cm,xshift=-1.7cm,green!70!black!50] (0,2) -- (0,0) --+ (1.5,0) --+ (1.5,.3) --+ (1.1,.3) --+ (1.1,.9) --+ (1.5,.9) --+ (1.5,1) -- (1.1,1) --+ (0,.7) --+ (.4,.7) --+ (.4,1) -- cycle;
        beginscope[xshift=-1.2cm,yshift=-5cm]
        draw[very thick,red!70!black,fill=red!70!black!80] (0,0) circle(.5);
        draw[very thick,red!70!black,fill=red!70!black!80] (.5,0) circle(.5);
        draw[red!70!black!80,fill=red!70!black!80] (0,0) circle(.5);
        draw[red!70!black!80,fill=red!70!black!80] (.5,0) circle(.5);
        endscope
        endtikzpicture
        enddocument


        Here is the output:



        Screenshot







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Aug 12 at 21:40









        current_user

        2,412428




        2,412428



























             

            draft saved


            draft discarded















































             


            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f445801%2fdrawing-enzyme-with-tikz%23new-answer', 'question_page');

            );

            Post as a guest













































































            Comments

            Popular posts from this blog

            What does second last employer means? [closed]

            List of Gilmore Girls characters

            Confectionery