500.0750500750.0800.0109false22.0false18.0283.0false22.0truefalse111.0131.0285.0false25.0truefalse73.0512.0281.0false20.0false24.0726.0285.0false25.0false18.01.0157.0false27.0truefalse256.0162.0156.0false17.0truefalse70.0514.0162.0false18.0false101.0648.0167.0false11.0false65.066.0318.0false45.0false8.0121.0272.0false7.0false37.0120.0260.0false48.0false9.0162.0215.0false15.0false93.068.0143.0false41.0false8.0152.0176.0false55.0false10.0246.0250.0false10.0false49.0261.0253.0false56.0false11.0314.0249.0false55.0false7.0407.0228.0false191.0false11.0420.0141.0false215.0false12.0463.0129.0false19.0false35.0480.0142.0false18.0false29.0480.0309.0false9.0false20.0479.0331.0false35.0false27.0236.0324.0false13.0false42.0267.0343.0false38.0false29.0309.0325.0false14.0false97.0237.0308.0false33.0false7.0605.0309.0false23.0false10.0592.0307.0false48.0truefalse10.0712.0282.0false38.0truefalse35.0660.0303.0false180.0false14.019.0147.0false155.0false9.066.0161.0false216.0false9.0615.0130.0false83.0false87.0646.0188.0false26.0false38.0647.0139.0false20.0false19.0693.0145.0false7.0false22.0591.0151.0false181.0false7.046.0141.0false202.0false5.0638.0132.0false204.0false17.0443.0140.0false9.0truefalse7.037.0139.0false10.0truefalse8.056.0141.0false8.0truefalse8.0432.0137.0false10.0truefalse9.0629.0127.0false54.0truefalse358.0200.0442.0false22.0truefalse92.0327.0285.0false144.0false13.0498.0162.0false144.0false15.0586.0161.0filenamepage6$0.mmldate1238440852000url/Users/ddamelin/Desktop/desktop detritus/test activities/page6$0.mmlsize212998codebase/public/part2/crselect atom all;
set heatbath 0;
set vx 0;
set vy 0;
set temperature 800;
set heatbath 800;
select atom none;
define %arrowFadeTag 7000;
define %greenness 250;
define %msg 0;
define %msgOn 1;
define %msgIndexToFind 0;
define %msgUQRed 6000;
define %msgNADHOx 6001;
define %msgHMoving 6002;
define %msgSuccOx 6003;
define %msgUQRed2 6004;
define %msgUQOx 6005;
define %msgHMove2 6006;
define %msgCytCRed 6007;
define %msgCytCOx 6008;
define %msgHmove3 6009;
define %msgOxyBind 6010;
define %msgOxyRed 6011;
define %msgOxyRed2 6012;
define %msgWater 6013;
define %msgWater2 6014;
define %msgMaxIndex 6014;
define %msgOnFlag array("%msgMaxIndex - 5999");
set %msgOnFlag[10] 1;
define %showUQRedMsgTime 0;
define %uqRedMsgOn 0;
define %showUQRed2MsgTime 0;
define %uqRed2MsgOn 0;
define %showCytcRedMsgTime 0;
define %cytcRedMsgOn 0;
define %showCytcRedMsgTime2 0;
define %cytcRedMsgOn2 0;
define %showCytcOxMsgTime 0;
define %cytcOxMsgOn 0;
define %showWaterMsgTime 0;
define %waterMsgOn 0;
define %msgImage 0;
define %hatom -1;
define %weakRestraint 1;
define %strongRestraint 1000;
define %mediumRestraint 100;
define %dampingFriction 3;
define %mediumRadius 3;
define %closeRadius 0.6;
define %oxidationState 0;
define %uqOxHeight 3.3;
define %nadhWElecHeight 5.5;
define %succinateHeight 5.4;
define %nadPlusHeight 3.2;
define %fumarateHeight 2.8;
define %cytcOxHeight 3.3;
define %nadhOxidized 0;
define %currentImageSucc 0;
define %currentImageNADH 0;
define %lastImage 0;
define %endNADHox 0;
define %succOxidized 0;
define %endSuccOx 0;
define %grabSuccDelay 0;
define %nadhDelay 0;
define %nadhDelaySet 0;
define %succDelaySet 0;
define %succDelay 0;
define %cytc1Reduced 0;
define %cytc2Reduced 0;
define %cytcDelaySet 0;
define %cytcDelay 0;
define %currentImageC3 0;
define %currentImageC4 0;
define %endCytcRed 0;
define %cytc1Finished 0;
define %cytc2Finished 0;
define %isPartOfMolecule -1;
define %horzDist 0;
define %vertDist 0;
define %krebsArea 45;
define %krebsImage 12;
define %krebsImageTag 2000;
define %krebsAtom 66;
define %krebsAtomImage 0;
define %transMemImage 14;
define %transMemImageTag 4000;
define %krebsAtomTag 1000;
define %atomInsideKrebs 0;
define %complexImage 13;
define %complexImageTag 3000;
define %newNADHx 0;
define %newNADHy 0;
define %newAtom 0;
define %newImage 0;
set image[%complexImage].custom %complexImageTag;
set image[%krebsImage].custom %krebsImageTag;
set image[%transMemImage].custom %transMemImageTag;
//Oxygen
define %o1x 66.7;
define %o1y 29;
define %o1h1x 65.2;
define %o1h1y 27.9;
define %o1h2x 65.2;
define %o1h2y 30;
define %o2x 69.1;
define %o2y 29;
define %o2h1x 70.6;
define %o2h1y 27.9;
define %o2h2x 70.6;
define %o2h2y 30;
define %o1 -1;
define %o2 -1;
define %oxyMol -1;
define %closeOxy -1;
define %oxyArea 13;
define %grabbingOxy 1;
define %farOxyGrabbed 0;
define %o1grabbed 10;
define %o2grabbed 11;
define %grabbingO1H1 0;
define %grabbingO1H2 0;
define %grabbingO2H1 0;
define %grabbingO2H2 0;
define %whichH 0;
define %oxygenReduced 0;
define %cyt4oxyTag 50;
define %oxyImageAdded 0;
define %readyForElectron 1;
define %cytOxyDelay 0;
define %cytOxyDelaySet 0;
define %endcytOxyDelay 0;
//H1
define %h1x 4.1;
define %h1y 33.2;
define %h1 -1;
define %closeH1 -1;
define %h1Area 6;
define %grabbingH1 1;
define %farH1Grabbed 0;
define %h1Tag 16;
//H2
define %h2x 6.1;
define %h2y 33.3;
define %h2 -1;
define %closeH2 -1;
define %h2Area 7;
define %grabbingH2 1;
define %farH2Grabbed 0;
define %h2Rect 1;
define %h2Tag 17;
//H3
define %h3x 43.7;
define %h3y 34;
define %h3 -1;
define %closeH3 -1;
define %h3Area 8;
define %grabbingH3 1;
define %farH3Grabbed 0;
define %h3Tag 18;
//H4
define %h4x 63.2;
define %h4y 34.4;
define %h4 -1;
define %closeH4 -1;
define %h4Area 10;
define %grabbingH4 1;
define %farH4Grabbed 0;
define %h4Tag -4;
define %h4Tag 19;
//H5
define %h5x 65.2;
define %h5y 34.2;
define %h5 -1;
define %closeH5 -1;
define %h5Area 9;
define %grabbingH5 0;
define %farH5Grabbed 0;
define %h5tag 20;
define %h5DelaySet 0;
define %h5Delay 0;
define %h5FinalGrab 0;
//H6
define %h6x 65.2;
define %h6y 34.2;
define %h6 -1;
define %closeH6 -1;
define %h6Area 9;
define %grabbingH6 0;
define %farH6Grabbed 0;
define %h6tag 21;
define %h6DelaySet 0;
define %h6Delay 0;
define %h6FinalGrab 0;
//H7
define %h7x 70.4;
define %h7y 34.3;
define %h7 -1;
define %close76 -1;
define %h7Area 9;
define %grabbing7 0;
define %farH7Grabbed 0;
define %h7tag 22;
define %h7DelaySet 0;
define %h7Delay 0;
define %h7FinalGrab 0;
//H8
define %h8x 70.4;
define %h8y 34.3;
define %h8 -1;
define %closeH8 -1;
define %h8Area 9;
define %grabbingH8 0;
define %farH8Grabbed 0;
define %h8tag 23;
define %h8DelaySet 0;
define %h8Delay 0;
define %h8FinalGrab 0;
//C1UQ
define %c1UQx 18.8;
define %c1UQy 20;
define %c1UQ -1;
define %closeC1UQ -1;
define %c1UQArea 11;
define %grabbingC1UQ 1;
define %farC1UQGrabbed 0;
define %c1UQTag 100;
//C2UQ
define %c2UQx 28.6;
define %c2UQy 24;
define %c2UQ -1;
define %closeC2UQ -1;
define %c2UQArea 11;
define %grabbingC2UQ 1;
define %farC2UQGrabbed 0;
define %c2UQTag 200;
//C3UQ
define %c3UQx 39.9;
define %c3UQy 20.9;
define %c3UQ -1;
define %closeC3UQ -1;
define %c3UQArea 11;
define %grabbingC3UQ 1;
define %farC3UQGrabbed 0;
define %c3UQTag 300;
//C3cytc
define %c3CytCx 50.5;
define %c3CytCy 12.9;
define %c3Cytc -1;
define %closeC3Cytc -1;
define %c3CytcArea 12;
define %grabbingC3Cytc 1;
define %farC3CytcGrabbed 0;
define %c3CytcTag 400;
//C4cytc
define %c4CytCx 59.3;
define %c4CytCy 13.3;
define %c4Cytc -1;
define %closeC4Cytc -1;
define %c4CytcArea 12;
define %grabbingC4Cytc 1;
define %farC4CytcGrabbed 0;
define %c4CytcTag 500;
//NADH
define %NADHx 9.49;
define %NADHy 34.36;
define %NADH -1;
define %closeNADH -1;
define %NADHArea 13;
define %grabbingNADH 1;
define %farNADHGrabbed 0;
define %atom1 -1;
define %NADHTag 600;
define %nadhNum 1;
//succinate
define %succx 28.6;
define %succy 37.2;
define %succ -1;
define %closeSucc -1;
define %succArea 13;
define %grabbingSucc 1;
define %farSuccGrabbed 0;
define %succTag 700;
define %succNum 1;
//electric potential
define %imSpace 18;
define %elecPot 20;
define %blueCount 0;
define %pinkCount 0;
//protein complexes
define %comp1 14;
define %comp2 15;
define %comp3 16;
define %comp4 17;
define %compOn 0;
define %comp1Tag 5000;
define %comp2Tag 5001;
define %comp3Tag 5002;
define %comp4Tag 5003;
define %comp1Image 15;
define %comp2Image 16;
define %comp3Image 17;
define %comp4Image 18;
beginmouse:pressed;
define %comp1x2 (%rectangle[%comp1].x + %rectangle[%comp1].width)*10;
define %comp1y2 (%rectangle[%comp1].y + %rectangle[%comp1].height)*10;
define %comp1x1 %rectangle[%comp1].x*10;
define %comp1y1 %rectangle[%comp1].y*10;
define %comp2x2 (%rectangle[%comp2].x + %rectangle[%comp2].width)*10;
define %comp2y2 (%rectangle[%comp2].y + %rectangle[%comp2].height)*10;
define %comp2x1 %rectangle[%comp2].x*10;
define %comp2y1 %rectangle[%comp2].y*10;
define %comp3x2 (%rectangle[%comp3].x + %rectangle[%comp3].width)*10;
define %comp3y2 (%rectangle[%comp3].y + %rectangle[%comp3].height)*10;
define %comp3x1 %rectangle[%comp3].x*10;
define %comp3y1 %rectangle[%comp3].y*10;
define %comp4x2 (%rectangle[%comp4].x + %rectangle[%comp4].width)*10;
define %comp4y2 (%rectangle[%comp4].y + %rectangle[%comp4].height)*10;
define %comp4x1 %rectangle[%comp4].x*10;
define %comp4y1 %rectangle[%comp4].y*10;
set %comp1Image findindexbycustom(IMAGE, %comp1Tag);
set %comp2Image findindexbycustom(IMAGE, %comp2Tag);
set %comp3Image findindexbycustom(IMAGE, %comp3Tag);
set %comp4Image findindexbycustom(IMAGE, %comp4Tag);
if (%compOn);
set image[%comp1Image].visible off;
set image[%comp2Image].visible off;
set image[%comp3Image].visible off;
set image[%comp4Image].visible off;
set %compOn 0;
else;
if ((%mouse_x > %comp1x1) and (%mouse_x < %comp1x2) and (%mouse_y > %comp1y1) and (%mouse_y < %comp1y2));
set image[%comp1Image].visible on;
set image[%comp1image].layer FRONT;
set %compOn %comp1;
else;
if ((%mouse_x > %comp2x1) and (%mouse_x < %comp2x2) and (%mouse_y > %comp2y1) and (%mouse_y < %comp2y2));
set image[%comp2Image].visible on;
set image[%comp2image].layer FRONT;
set %compOn %comp2;
else;
if ((%mouse_x > %comp3x1) and (%mouse_x < %comp3x2) and (%mouse_y > %comp3y1) and (%mouse_y < %comp3y2));
set image[%comp3Image].visible on;
set image[%comp3image].layer FRONT;
set %compOn %comp3;
else;
if ((%mouse_x > %comp4x1) and (%mouse_x < %comp4x2) and (%mouse_y > %comp4y1) and (%mouse_y < %comp4y2));
set image[%comp4Image].visible on;
set image[%comp4image].layer FRONT;
set %compOn %comp4;
endif;
endif;
endif;
endif;
endif;
endmouse:pressed;grab h1-h4200grabH1-4if (%grabbingH1);
//print grabH1;
if (%farH1Grabbed != 1);
set %h1 nearest(0, %h1x, %h1y, %rectangle[%h1Area].x, %rectangle[%h1Area].y, %rectangle[%h1Area].width, %rectangle[%h1Area].height);
if (%h1 != -1);
set %isPartOfMolecule whichMolecule(%h1);
if (%isPartOfMolecule != -1);
set %h1 -1;
endif;
endif;
if ((%h1 != -1) and (%h1 != %h2));
set %farH1Grabbed 1;
set atom[%h1].friction 0.1;
set atom[%h1].restraint %weakRestraint;
set atom[%h1].restraint.x %h1x;
set atom[%h1].restraint.y %h1y;
set atom[%h1].custom %h1Tag;
endif;
else;
set %closeH1 nearest(0, %h1x, %h1y, %closeRadius);
if (%closeH1 != -1);
set %isPartOfMolecule whichMolecule(%closeH1);
if (%isPartOfMolecule != -1);
set %closeH1 -1;
endif;
endif;
set %horzDist abs(%atom[%h1].rx - %h1x);
set %vertDist abs(%atom[%h1].ry - %h1y);
if ((%atom[%h1].ry < %h1y) and (%horzDist < 1) and (%vertDist < 2));
set %closeH1 %h1;
endif;
if ((%closeH1 != -1) and (%closeH1 != %h2));
if (%closeH1 != %h1);
set atom[%h1].restraint 0;
set atom[%h1].friction 0;
set atom[%h1].custom 0;
set %h1 %closeH1;
endif;
set atom[%h1].friction 0;
set atom[%h1].restraint %strongRestraint;
set atom[%h1].restraint.x %h1x;
set atom[%h1].restraint.y %h1y;
set atom[%h1].custom %h1Tag;
set rectangle[%h2Rect].efield -0.2;
set %grabbingH1 0;
set %farH1Grabbed 0;
endif;
endif;
endif;
if ((%grabbingH2) and (%grabbingH1 != 1));
//print grab h2;
if (%farH2Grabbed != 1);
set %h2 nearest(0, %h2x, %h2y, %rectangle[%h2Area].x, %rectangle[%h2Area].y, %rectangle[%h2Area].width, %rectangle[%h2Area].height);
if (%h2 != -1);
set %isPartOfMolecule whichMolecule(%h2);
if (%isPartOfMolecule != -1);
set %h2 -1;
endif;
endif;
if ((%h2 != -1) and (%h1 != %h2));
set %farH2Grabbed 1;
set atom[%h2].friction 0.1;
set atom[%h2].restraint %weakRestraint;
set atom[%h2].restraint.x %h2x;
set atom[%h2].restraint.y %h2y;
set atom[%h2].custom %h2Tag;
endif;
else;
set %closeH2 nearest(0, %h2x, %h2y, %closeRadius);
if (%closeH2 != -1);
set %isPartOfMolecule whichMolecule(%closeH2);
if (%isPartOfMolecule != -1);
set %closeH2 -1;
endif;
endif;
set %horzDist abs(%atom[%h2].rx - %h2x);
set %vertDist abs(%atom[%h2].ry - %h2y);
if ((%atom[%h2].ry < %h2y) and (%horzDist < 1) and (%vertDist < 2));
set %closeH2 %h2;
endif;
if ((%closeH2 != -1) and (%h1 != %h2));
if (%closeH2 != %h2);
set atom[%h2].restraint 0;
set atom[%h2].friction 0;
set atom[%h2].custom 0;
set %h2 %closeH2;
endif;
set atom[%h2].friction 0;
set atom[%h2].restraint %strongRestraint;
set atom[%h2].restraint.x %h2x;
set atom[%h2].restraint.y %h2y;
set atom[%h2].custom %h2Tag;
set %grabbingH2 0;
set %farH2Grabbed 0;
endif;
endif;
endif;
if (%grabbingH3);
//print grab h3;
if (%farH3Grabbed != 1);
set %h3 nearest(0, %h3x, %h3y, %rectangle[%h3Area].x, %rectangle[%h3Area].y, %rectangle[%h3Area].width, %rectangle[%h3Area].height);
if (%h3 != -1);
set %isPartOfMolecule whichMolecule(%h3);
if (%isPartOfMolecule != -1);
set %h3 -1;
endif;
endif;
if (%h3 != -1);
set %farH3Grabbed 1;
set atom[%h3].friction 0.1;
set atom[%h3].restraint %weakRestraint;
set atom[%h3].restraint.x %h3x;
set atom[%h3].restraint.y %h3y;
set atom[%h3].custom %h3Tag;
endif;
else;
set %closeH3 nearest(0, %h3x, %h3y, %closeRadius);
if (%closeH2 != -1);
set %isPartOfMolecule whichMolecule(%closeH2);
if (%isPartOfMolecule != -1);
set %closeH2 -1;
endif;
endif;
set %horzDist abs(%atom[%h3].rx - %h3x);
set %vertDist abs(%atom[%h3].ry - %h3y);
if ((%atom[%h3].ry < %h3y) and (%horzDist < 1) and (%vertDist < 2));
set %closeH3 %h3;
endif;
if (%closeH3 != -1);
if (%closeH3 != %h3);
set atom[%h3].restraint 0;
set atom[%h3].friction 0;
set atom[%h3].custom 0;
set %h3 %closeH3;
endif;
set atom[%h3].friction 0;
set atom[%h3].restraint %strongRestraint;
set atom[%h3].restraint.x %h3x;
set atom[%h3].restraint.y %h3y;
set atom[%h3].custom %h3Tag;
set %grabbingH3 0;
set %farH3Grabbed 0;
endif;
endif;
endif;
if (%grabbingH4);
//print grab h4;
if (%farH4Grabbed != 1);
set %h4 nearest(0, %h4x, %h4y, %rectangle[%h4Area].x, %rectangle[%h4Area].y, %rectangle[%h4Area].width, %rectangle[%h4Area].height);
if (%h4 != -1);
set %isPartOfMolecule whichMolecule(%h4);
set %h5 findindexbycustom(ATOM,%h5Tag);
set %h6 findindexbycustom(ATOM,%h6Tag);
set %h7 findindexbycustom(ATOM,%h7Tag);
set %h8 findindexbycustom(ATOM,%h8Tag);
if ((%isPartOfMolecule != -1) or (%h5 == %h4) or (%h6 == %h4) or (%h7 == %h4) or (%h8 == %h4));
set %h4 -1;
endif;
endif;
if (%h4 != -1);
set %farH4Grabbed 1;
set atom[%h4].friction 0.1;
set atom[%h4].restraint %weakRestraint;
set atom[%h4].restraint.x %h4x;
set atom[%h4].restraint.y %h4y;
set atom[%h4].custom %h4Tag;
endif;
else;
set %closeH4 nearest(0, %h4x, %h4y, %closeRadius);
set %h4 findindexbycustom(ATOM,%h4Tag);
if (%closeH4 != -1);
set %isPartOfMolecule whichMolecule(%closeH4);
set %h5 findindexbycustom(ATOM,%h5Tag);
set %h6 findindexbycustom(ATOM,%h6Tag);
set %h7 findindexbycustom(ATOM,%h7Tag);
set %h8 findindexbycustom(ATOM,%h8Tag);
if ((%isPartOfMolecule != -1) or (%h5 == %closeH4) or (%h6 == %closeH4) or (%h7 == %closeH4) or (%h8 == %closeH4));
set %closeH4 -1;
endif;
endif;
set %horzDist abs(%atom[%h4].rx - %h4x);
set %vertDist abs(%atom[%h4].ry - %h4y);
if ((%atom[%h4].ry < %h4y) and (%horzDist < 1) and (%vertDist < 2));
set %closeH4 %h4;
endif;
if (%closeH4 != -1);
if (%closeH4 != %h4);
set atom[%h4].restraint 0;
set atom[%h4].friction 0;
set atom[%h4].custom 0;
set %h4 %closeH4;
endif;
set atom[%h4].friction 0;
set atom[%h4].restraint %strongRestraint;
set atom[%h4].restraint.x %h4x;
set atom[%h4].restraint.y %h4y;
set atom[%h4].custom %h4Tag;
set %grabbingH4 0;
set %farH4Grabbed 0;
endif;
endif;
endif;manage UQ200grab UQif (%grabbingC1UQ);
//print grab c1UQ;
if (%farC1UQGrabbed != 1);
set %c1UQ nearest(2, %c1UQx, %c1UQy, %rectangle[%c1UQArea].x, %rectangle[%c1UQArea].y, %rectangle[%c1UQArea].width, %rectangle[%c1UQArea].height);
if ((%c1UQ != -1) and (%c1UQ != %c2UQ));
set %oxidationState whichimageisattached(%c1UQ, 0);
if (%image[%oxidationState].height == %uqOxHeight);
set %farC1UQGrabbed 1;
set atom[%c1UQ].friction 0.1;
set atom[%c1UQ].restraint %weakRestraint;
set atom[%c1UQ].restraint.x %c1UQx;
set atom[%c1UQ].restraint.y %c1UQy;
set atom[%c1UQ].custom %c1UQTag;
endif;
endif;
else;
set %closeC1UQ nearest(2, %c1UQx, %c1UQy, %mediumRadius);
if ((%closeC1UQ != -1) and (%closeC1UQ != %c2UQ));
set %oxidationState whichimageisattached(%closeC1UQ, 0);
if (%image[%oxidationState].height == %uqOxHeight);
set %c1UQ findindexbycustom(ATOM,%c1UQTag);
if (%closeC1UQ != %c1UQ);
set atom[%c1UQ].restraint 0;
set atom[%c1UQ].friction 0;
set atom[%c1UQ].custom 0;
set %c1UQ %closeC1UQ;
endif;
set atom[%c1UQ].friction %dampingFriction;
set atom[%c1UQ].restraint %mediumRestraint;
set atom[%c1UQ].restraint.x %c1UQx;
set atom[%c1UQ].restraint.y %c1UQy;
set atom[%c1UQ].custom %c1UQTag;
set %grabbingC1UQ 0;
set %farC1UQGrabbed 0;
endif;
endif;
endif;
endif;
if (%grabbingC2UQ);
//print grab c2UQ;
if (%farC2UQGrabbed != 1);
set %c2UQ nearest(2, %c2UQx, %c2UQy, %rectangle[%c2UQArea].x, %rectangle[%c2UQArea].y, %rectangle[%c2UQArea].width, %rectangle[%c2UQArea].height);
if ((%c2UQ != -1) and (%c1UQ != %c2UQ));
set %oxidationState whichimageisattached(%c2UQ, 0);
if (%image[%oxidationState].height == %uqOxHeight);
set %farC2UQGrabbed 1;
set atom[%c2UQ].friction 0.1;
set atom[%c2UQ].restraint %weakRestraint;
set atom[%c2UQ].restraint.x %c2UQx;
set atom[%c2UQ].restraint.y %c2UQy;
set atom[%c2UQ].custom %c2UQTag;
endif;
endif;
else;
set %closeC2UQ nearest(2, %c2UQx, %c2UQy, %mediumRadius);
if ((%closeC2UQ != -1) and (%closeC2UQ != %c1UQ));
set %oxidationState whichimageisattached(%closeC2UQ, 0);
if (%image[%oxidationState].height == %uqOxHeight);
set %c2UQ findindexbycustom(ATOM,%c2UQTag);
if (%closeC2UQ != %c2UQ);
set atom[%c2UQ].restraint 0;
set atom[%c2UQ].friction 0;
set atom[%c2UQ].custom 0;
set %c2UQ %closeC2UQ;
endif;
set atom[%c2UQ].friction %dampingFriction;
set atom[%c2UQ].restraint %mediumRestraint;
set atom[%c2UQ].restraint.x %c2UQx;
set atom[%c2UQ].restraint.y %c2UQy;
set atom[%c2UQ].custom %c2UQTag;
set %grabbingC2UQ 0;
set %farC2UQGrabbed 0;
endif;
endif;
endif;
endif;
if (%grabbingC3UQ);
//print grab c3UQ;
if (%farC3UQGrabbed != 1);
set %c3UQ nearest(2, %c3UQx, %c3UQy, %rectangle[%c3UQArea].x, %rectangle[%c3UQArea].y, %rectangle[%c3UQArea].width, %rectangle[%c3UQArea].height);
if (%c3UQ != -1);
set %oxidationState whichimageisattached(%c3UQ, 0);
if (%image[%oxidationState].height != %uqOxHeight);
set %farC3UQGrabbed 1;
set atom[%c3UQ].friction 0.1;
set atom[%c3UQ].restraint %weakRestraint;
set atom[%c3UQ].restraint.x %c3UQx;
set atom[%c3UQ].restraint.y %c3UQy;
set atom[%c3UQ].custom %c3UQTag;
endif;
endif;
else;
set %closeC3UQ nearest(2, %c3UQx, %c3UQy, %mediumRadius);
if (%closeC3UQ != -1);
set %oxidationState whichimageisattached(%closeC3UQ, 0);
if (%image[%oxidationState].height != %uqOxHeight);
set %c3UQ findindexbycustom(ATOM,%c3UQTag);
if (%closeC3UQ != %c3UQ);
set atom[%c3UQ].restraint 0;
set atom[%c3UQ].friction 0;
set atom[%c3UQ].custom 0;
set %c3UQ %closeC3UQ;
endif;
set atom[%c3UQ].friction %dampingFriction;
set atom[%c3UQ].restraint %mediumRestraint;
set atom[%c3UQ].restraint.x %c3UQx;
set atom[%c3UQ].restraint.y %c3UQy;
set atom[%c3UQ].custom %c3UQTag;
set %grabbingC3UQ 0;
set %farC3UQGrabbed 0;
endif;
endif;
endif;
endif;
grab cytcfalse200grab cytcif (%grabbingC3Cytc);
//print grab C3cytc;
if (%farC3CytcGrabbed != 1);
set %c3Cytc nearest(2, %c3Cytcx, %c3Cytcy, %rectangle[%c3CytcArea].x, %rectangle[%c3CytcArea].y, %rectangle[%c3CytcArea].width, %rectangle[%c3CytcArea].height);
if (%c3Cytc != -1);
set %oxidationState whichimageisattached(%c3Cytc, 0);
if (%image[%oxidationState].height == %cytcOxHeight);
set %farC3CytcGrabbed 1;
set atom[%c3Cytc].friction 0.1;
set atom[%c3Cytc].restraint %weakRestraint;
set atom[%c3Cytc].restraint.x %c3Cytcx;
set atom[%c3Cytc].restraint.y %c3Cytcy;
set atom[%c3Cytc].custom %c3CytcTag;
endif;
endif;
else;
set %closeC3Cytc nearest(2, %c3Cytcx, %c3Cytcy, %mediumRadius);
if (%closeC3Cytc != -1);
set %oxidationState whichimageisattached(%closeC3Cytc, 0);
if (%image[%oxidationState].height == %cytcOxHeight);
set %c3Cytc findindexbycustom(ATOM,%c3CytcTag);
if (%closeC3Cytc != %c3Cytc);
set atom[%c3Cytc].restraint 0;
set atom[%c3Cytc].friction 0;
set atom[%c3Cytc].custom 0;
set %c3Cytc %closeC3Cytc;
endif;
set atom[%c3Cytc].friction %dampingFriction;
set atom[%c3Cytc].restraint %mediumRestraint;
set atom[%c3Cytc].restraint.x %c3Cytcx;
set atom[%c3Cytc].restraint.y %c3Cytcy;
set atom[%c3Cytc].custom %c3CytcTag;
set %grabbingC3Cytc 0;
set %farC3CytcGrabbed 0;
endif;
endif;
endif;
endif;
if (%grabbingC4Cytc);
//print grab C4cytc;
if (%farC4CytcGrabbed != 1);
set %c4Cytc nearest(2, %c4Cytcx, %c4Cytcy, %rectangle[%c4CytcArea].x, %rectangle[%c4CytcArea].y, %rectangle[%c4CytcArea].width, %rectangle[%c4CytcArea].height);
if (%c4Cytc != -1);
set %oxidationState whichimageisattached(%c4Cytc, 0);
if (%image[%oxidationState].height != %cytcOxHeight);
set %farC4CytcGrabbed 1;
set atom[%c4Cytc].friction 0.1;
set atom[%c4Cytc].restraint %weakRestraint;
set atom[%c4Cytc].restraint.x %c4Cytcx;
set atom[%c4Cytc].restraint.y %c4Cytcy;
set atom[%c4Cytc].custom %c4CytcTag;
endif;
endif;
else;
set %closeC4Cytc nearest(2, %c4Cytcx, %c4Cytcy, %mediumRadius);
if (%closeC4Cytc != -1);
set %oxidationState whichimageisattached(%closeC4Cytc, 0);
if (%image[%oxidationState].height != %cytcOxHeight);
set %c4Cytc findindexbycustom(ATOM,%c4CytcTag);
if (%closeC4Cytc != %c4Cytc);
set atom[%c4Cytc].restraint 0;
set atom[%c4Cytc].friction 0;
set atom[%c4Cytc].custom 0;
set %c4Cytc %closeC4Cytc;
endif;
set atom[%c4Cytc].friction %dampingFriction;
set atom[%c4Cytc].restraint %mediumRestraint;
set atom[%c4Cytc].restraint.x %c4Cytcx;
set atom[%c4Cytc].restraint.y %c4Cytcy;
set atom[%c4Cytc].custom %c4CytcTag;
set %grabbingC4Cytc 0;
set %farC4CytcGrabbed 0;
endif;
endif;
endif;
endif;
manage nadh200grab NADHif (%grabbingNADH);
//print grab NADH;
if (%farNADHGrabbed != 1);
set %NADH nearest(2, %NADHx, %NADHy, %rectangle[%NADHArea].x, %rectangle[%NADHArea].y, %rectangle[%NADHArea].width, %rectangle[%NADHArea].height);
if (%NADH != -1);
set %oxidationState whichimageisattached(%NADH, 0);
if (%image[%oxidationState].height == %nadhWElecHeight);
set %farNADHGrabbed 1;
set atom[%NADH].friction 0.1;
set atom[%NADH].restraint %weakRestraint;
set atom[%NADH].restraint.x %NADHx;
set atom[%NADH].restraint.y %NADHy;
set atom[%NADH].custom %NADHTag;
endif;
endif;
else;
set %closeNADH nearest(2,%NADHx, %NADHy,%mediumRadius);
if (%closeNADH != -1);
set %oxidationState whichimageisattached(%closeNADH, 0);
if (%image[%oxidationState].height == %nadhWElecHeight);
set %NADH findindexbycustom(ATOM,%NADHTag);
if (%closeNADH != %NADH);
set atom[%NADH].restraint 0;
set atom[%NADH].friction 0;
set atom[%NADH].custom 0;
set %NADH %closeNADH;
endif;
set atom[%NADH].friction %dampingFriction;
set atom[%NADH].restraint %mediumRestraint;
set atom[%NADH].restraint.x %NADHx;
set atom[%NADH].restraint.y %NADHy;
set atom[%NADH].custom %NADHTag;
set %grabbingNADH 0;
set %farNADHGrabbed 0;
endif;
endif;
endif;
endif;manag succinatefalse200grab succif (%grabbingSucc);
//print grab succ;
if (%farSuccGrabbed != 1);
set %succ nearest(2, %succx, %succy, %rectangle[%succArea].x, %rectangle[%succArea].y, %rectangle[%succArea].width, %rectangle[%succArea].height);
if (%succ != -1);
set %oxidationState whichimageisattached(%succ, 0);
if (%image[%oxidationState].height == %succinateHeight);
set %farSuccGrabbed 1;
set atom[%succ].friction 0.1;
set atom[%succ].restraint %weakRestraint;
set atom[%succ].restraint.x %succx;
set atom[%succ].restraint.y %succy;
set atom[%succ].custom %succTag;
endif;
endif;
else;
set %closeSucc nearest(2, %succx, %succy, %mediumRadius);
if (%closeSucc != -1);
set %oxidationState whichimageisattached(%closeSucc, 0);
if (%image[%oxidationState].height == %succinateHeight);
set %succ findindexbycustom(ATOM,%succTag);
if (%closeSucc != %succ);
set atom[%succ].restraint 0;
set atom[%succ].friction 0;
set atom[%succ].custom 0;
set %succ %closeSucc;
endif;
set atom[%succ].friction %dampingFriction;
set atom[%succ].restraint %mediumRestraint;
set atom[%succ].restraint.x %succx;
set atom[%succ].restraint.y %succy;
set atom[%succ].custom %succTag;
set %grabbingSucc 0;
set %farSuccGrabbed 0;
endif;
endif;
endif;
endif;oxidize NAHD200oxidizeNADHif ((%grabbingH1 == 0) and (%grabbingH2 == 0) and (%grabbingNADH == 0) and (%grabbingC1UQ == 0) and (%nadhOxidized == 0));
//print oxidize nadh;
if ((%nadhDelaySet) and (%model_time > %nadhDelay));
set %h1 findindexbycustom(ATOM,%h1Tag);
set %h2 findindexbycustom(ATOM,%h2Tag);
set atom[%h1].restraint 0;
set atom[%h1].custom 0;
set atom[%h2].restraint 0;
set atom[%h2].custom 0;
set %NADH findindexbycustom(ATOM,%NADHTag);
set %currentImageNADH whichimageisattached(%NADH, 0);
select image %currentImageNADH;
remove;
add image nadPlus.png atomno=%NADH;
set %c1UQ findindexbycustom(ATOM,%c1UQTag);
// set %currentImageNADH whichimageisattached(%c1UQ, 0);
add image nadhOx.gif atomno=%c1UQ;
set %lastImage %number_of_images-1;
set image[%lastImage].loop 1;
set %msgIndexToFind %msgNADHOx;
runtask turn_on_message;
set %msgIndexToFind %msgHMoving;
runtask turn_on_message;
runtask keep_stuff_on_top;
set %nadhOxidized 1;
set %endNADHox "%model_time+2600";
set %showUQRedMsgTime "%model_time+1600";
set %uqRedMsgOn 1;
else;
if (%nadhDelaySet == 0);
set %nadhDelay %model_time+500;
set %nadhDelaySet 1;
endif;
endif;
endif;
If ((%uqRedMsgOn) and (%model_time > %showUQRedMsgTime));
set %msgIndexToFind %msgUQRed;
runtask turn_on_message;
set %msgIndexToFind %msgNADHOx;
runtask turn_off_message;
set %uqRedMsgOn 0;
endif;
If ((%nadhOxidized) and (%model_time > %endNADHox));
set %NADH findindexbycustom(ATOM,%NADHTag);
set %c1UQ findindexbycustom(ATOM,%c1UQTag);
set %currentImageNADH whichimageisattached(%c1UQ, 0);
select image %currentImageNADH;
remove;
set %msgIndexToFind %msgNADHOx;
runtask turn_off_message;
set %msgIndexToFind %msgHMoving;
runtask turn_off_message;
set %msgIndexToFind %msgUQRed;
runtask turn_off_message;
set %nadhOxidized 0;
set %grabbingH1 1;
set %grabbingH2 1;
set %grabbingNADH 1;
set %grabbingC1UQ 1;
set %nadhDelaySet 0;
set atom[%c1UQ].restraint 0;
set atom[%c1UQ].friction 0;
set atom[%c1UQ].vx 100;
set atom[%c1UQ].custom 0;
set atom[%NADH].restraint 0;
set atom[%NADH].friction 0;
set atom[%NADH].custom 0;
set atom[%NADH].vx rand()*100;
set atom[%NADH].vy rand()*100+100;
set rectangle[%h2Rect].efield 0.2;
set %nadhNum %nadhNum-1;
endif;oxidize succinatefalse200oxidizeSuccinateif ((%grabbingSucc == 0) and (%grabbingC2UQ == 0) and (%succOxidized == 0));
//print oxidize succ;
if ((%succDelaySet) and (%model_time > %succDelay));
set %succ findindexbycustom(ATOM, %succTag);
set %currentImageSucc whichimageisattached(%succ, 0);
select image %currentImageSucc;
remove;
add image fumarate.png atomno=%succ;
set %c2UQ findindexbycustom(ATOM, %c2UQTag);
add image succinateOx.gif atomno=%c2UQ;
set %lastImage %number_of_images-1;
set image[%lastImage].loop 1;
set %msgIndexToFind %msgSuccOx;
runtask turn_on_message;
runtask keep_stuff_on_top;
set %succOxidized 1;
set %endSuccOx "%model_time+2200";
set %showUQRed2MsgTime "%model_time+1200";
set %uqRed2MsgOn 1;
else;
if (%succDelaySet == 0);
set %succDelay %model_time+500;
set %succDelaySet 1;
endif;
endif;
endif;
If ((%uqRed2MsgOn) and (%model_time > %showUQRed2MsgTime));
set %msgIndexToFind %msgUQRed2;
runtask turn_on_message;
set %msgIndexToFind %msgSuccOx;
runtask turn_off_message;
set %uqRed2MsgOn 0;
endif;
If ((%succOxidized) and (%model_time > %endSuccOx));
set %succ findindexbycustom(ATOM, %succTag);
set %c2UQ findindexbycustom(ATOM, %c2UQTag);
set %currentImageSucc whichimageisattached(%c2UQ, 0);
select image %currentImageSucc;
remove;
set %msgIndexToFind %msgUQRed2;
runtask turn_off_message;
set %msgIndexToFind %msgSuccOx;
runtask turn_off_message;
set %succOxidized 0;
set %grabbingSucc 1;
set %grabbingC2UQ 1;
set %succDelaySet 0;
set atom[%c2UQ].restraint 0;
set atom[%c2UQ].friction 0;
set atom[%c2UQ].custom 0;
set atom[%c2UQ].vx 100;
set atom[%succ].restraint 0;
set atom[%succ].friction 0;
set atom[%succ].custom 0;
set atom[%succ].vx rand()*100;
set atom[%succ].vy 100+rand()*100;
set %succNum %succNum-1;
endif;oxidize UQfalse200oxidizeUQif ((%grabbingC3UQ == 0) and (%grabbingC3Cytc == 0) and (%grabbingH3 == 0) and (%cytc1Reduced == 0) and (%cytc1Finished == 0));
//print oxidize c3UQ step1;
if ((%cytcDelaySet) and (%model_time > %cytcDelay));
set %h3 findindexbycustom(ATOM,%h3Tag);
set atom[%h3].restraint 0;
set atom[%h3].custom 0;
set %c3UQ findindexbycustom(ATOM,%c3UQTag);
set %currentImageC3 whichimageisattached(%c3UQ, 0);
select image %currentImageC3;
remove;
add image uq1Elec.gif atomno=%c3UQ;
set %c3Cytc findindexbycustom(ATOM,%c3CytcTag);
set %currentImageC3 whichimageisattached(%c3Cytc, 0);
add image cytcRed1.gif atomno=%c3Cytc;
set %lastImage %number_of_images-1;
set image[%lastImage].loop 1;
set %msgIndexToFind %msgUQOx;
runtask turn_on_message;
set %msgIndexToFind %msgHMove2;
runtask turn_on_message;
runtask keep_stuff_on_top;
set %cytc1Reduced 1;
set %endCytcRed "%model_time+1500";
set %showCytcRedMsgTime "%model_time+500";
set %cytcRedMsgOn 1;
else;
if (%cytcDelaySet == 0);
set %cytcDelay %model_time+500;
set %cytcDelaySet 1;
endif;
endif;
endif;
If ((%cytcRedMsgOn) and (%model_time > %showCytcRedMsgTime));
set %msgIndexToFind %msgCytCRed;
runtask turn_on_message;
set %msgIndexToFind %msgUQOx;
runtask turn_off_message;
set %cytcRedMsgOn 0;
endif;
If ((%cytc1Reduced) and (%model_time > %endCytcRed));
set %cytc1Reduced 0;
set %cytc1Finished 1;
set %cytcDelaySet 0;
set %c3Cytc findindexbycustom(ATOM,%c3CytcTag);
set %currentImageC3 whichimageisattached(%c3Cytc, 0);
select image %currentImageC3;
remove;
set %msgIndexToFind %msgUQOx;
runtask turn_off_message;
set %msgIndexToFind %msgHMove2;
runtask turn_off_message;
set %msgIndexToFind %msgCytCRed;
runtask turn_off_message;
set %grabbingC3Cytc 1;
set %grabbingH3 1;
set atom[%c3Cytc].restraint 0;
set atom[%c3Cytc].friction 0;
set atom[%c3Cytc].vy -100-rand()*-100;
set atom[%c3Cytc].custom 0;
endif;
if ((%grabbingC3UQ == 0) and (%grabbingC3Cytc == 0) and (%grabbingH3 == 0) and (%cytc1Finished == 1) and (%cytc2Reduced == 0) and (%cytc2Finished == 0));
//print oxidize c3UQ step2;
if ((%cytcDelaySet) and (%model_time > %cytcDelay));
set %h3 findindexbycustom(ATOM,%h3Tag);
set atom[%h3].restraint 0;
set atom[%h3].custom 0;
set %c3UQ findindexbycustom(ATOM,%c3UQTag);
set %currentImageC3 whichimageisattached(%c3UQ, 0);
select image %currentImageC3;
remove;
add image uqPlain.png atomno=%c3UQ;
set %c3Cytc findindexbycustom(ATOM,%c3CytcTag);
set %currentImageC3 whichimageisattached(%c3Cytc, 0);
add image cytcRed2.gif atomno=%c3Cytc;
set %lastImage %number_of_images-1;
set image[%lastImage].loop 1;
set %msgIndexToFind %msgUQOx;
runtask turn_on_message;
set %msgIndexToFind %msgHMove2;
runtask turn_on_message;
runtask keep_stuff_on_top;
set %cytc2Reduced 1;
set %endCytcRed "%model_time+1500";
set %showCytcRedMsgTime2 "%model_time+500";
set %cytcRedMsgOn2 1;
else;
if (%cytcDelaySet == 0);
set %cytcDelay %model_time+500;
set %cytcDelaySet 1;
endif;
endif;
endif;
If ((%cytcRedMsgOn2) and (%model_time > %showCytcRedMsgTime2));
set %msgIndexToFind %msgCytCRed;
runtask turn_on_message;
set %msgIndexToFind %msgUQOx;
runtask turn_off_message;
set %cytcRedMsgOn2 0;
endif;
If ((%cytc2Reduced) and (%model_time > %endCytcRed));
set %cytc2Reduced 0;
set %cytc2Finished 0;
set %cytc1Finished 0;
set %cytcDelaySet 0;
set %c3Cytc findindexbycustom(ATOM,%c3CytcTag);
set %currentImageC3 whichimageisattached(%c3Cytc, 0);
select image %currentImageC3;
remove;
set %msgIndexToFind %msgUQOx;
runtask turn_off_message;
set %msgIndexToFind %msgHMove2;
runtask turn_off_message;
set %msgIndexToFind %msgCytCRed;
runtask turn_off_message;
set %grabbingC3Cytc 1;
set %grabbingH3 1;
set %grabbingC3UQ 1;
set atom[%c3Cytc].restraint 0;
set atom[%c3Cytc].friction 0;
set atom[%c3Cytc].vy -100-rand()*-100;
set atom[%c3Cytc].custom 0;
set %c3UQ findindexbycustom(ATOM,%c3UQTag);
set atom[%c3UQ].restraint 0;
set atom[%c3UQ].friction 0;
set atom[%c3UQ].custom 0;
set atom[%c3UQ].vx rand()*-100;
endif;add NADH to system10000addNADHset %newNADHx rand()*(%obstacle[%krebsArea].width-2)+%obstacle[%krebsArea].x+1;
set %newNADHy rand()*(%obstacle[%krebsArea].height-2)+%obstacle[%krebsArea].y+1;
set %openArea nearest(2,%newNADHx, %newNADHy, 2);
if ((%openArea == -1) and (%nadhNum < 8));
set %nadhNum %nadhNum+1;
add atom 2 (%newNADHx, %newNADHy);
set %newAtom %number_of_atoms -1;
set atom[%newAtom].visible off;
add image nadh.png atomno=%newAtom;
set image["%number_of_images - 1"].layer IN_FRONT_OF_PARTICLES;
runtask keep_stuff_on_top;
endif;add succinatefalse22000addSuccinateset %newNADHx rand()*(%obstacle[%krebsArea].width-2)+%obstacle[%krebsArea].x+1;
set %newNADHy rand()*(%obstacle[%krebsArea].height-2)+%obstacle[%krebsArea].y+1;
set %openArea nearest(2,%newNADHx, %newNADHy, 2);
if ((%openArea == -1) and (%succNum < 2));
set %succNum %succNum+1;
add atom 2 (%newNADHx, %newNADHy);
set %newAtom %number_of_atoms -1;
set atom[%newAtom].visible off;
add image succinate.png atomno=%newAtom;
set image["%number_of_images - 1"].layer IN_FRONT_OF_PARTICLES;
runtask keep_stuff_on_top;
endif;remove nad+ and fumeratefalse500back to krebs//if (0);
set %atomInsideKrebs nearest(2, "%obstacle[%krebsArea].x+(%obstacle[%krebsArea].width/2)", "%obstacle[%krebsArea].y+%obstacle[%krebsArea].height", "%obstacle[%krebsArea].x+1", "%obstacle[%krebsArea].y+1", "%obstacle[%krebsArea].width-2", %obstacle[%krebsArea].height);
If (%atomInsideKrebs != -1);
set %krebsAtomImage whichimageisattached(%atomInsideKrebs,0);
if ((%image[%krebsAtomImage].height == %nadPlusHeight) or (%image[%krebsAtomImage].height == %fumarateHeight));
select atom %atomInsideKrebs;
remove;
endif;
endif;
//endif;grab oxygenfalse200grabOxygenif (%grabbingOxy);
//print grab oxygen;
if (%farOxyGrabbed != 1);
set %o1 nearest(3, %o1x, %o1y, %rectangle[%oxyArea].x, %rectangle[%oxyArea].y, %rectangle[%oxyArea].width, %rectangle[%oxyArea].height);
if (%o1 != -1);
set %oxyMol whichMolecule(%o1);
set %atom1 atomOfMolecule(%oxyMol,2);
if (%atom1 == -1);
set %atom1 atomOfMolecule(%oxyMol,1);
if (%atom1 == %o1);
set %o2 atomOfMolecule(%oxyMol,0);
else;
set %o2 atomOfMolecule(%oxyMol,1);
endif;
set %farOxyGrabbed 1;
set atom[%o1].friction 0.1;
set atom[%o1].restraint %weakRestraint;
set atom[%o1].restraint.x %o1x;
set atom[%o1].restraint.y %o1y;
set atom[%o1].custom %o1grabbed;
set atom[%o2].friction 0.1;
set atom[%o2].restraint %weakRestraint;
set atom[%o2].restraint.x %o2x;
set atom[%o2].restraint.y %o2y;
set atom[%o2].custom %o2grabbed;
endif;
endif;
else;
set %closeOxy nearest(3,%o1x, %o1y,%closeRadius);
if (%closeOxy != -1);
set %oxyMol whichMolecule(%closeOxy);
set %atom1 atomOfMolecule(%oxyMol,2);
if (%atom1 == -1);
set %o1 findindexbycustom(ATOM,%o1grabbed);
if (%closeOxy != %o1);
set %o2 findindexbycustom(ATOM,%o2grabbed);
set atom[%o1].friction 0;
set atom[%o1].restraint 0;
set atom[%o1].custom 0;
set atom[%o2].friction 0;
set atom[%o2].restraint 0;
set atom[%o2].custom 0;
endif;
set %o1 %closeOxy;
set %atom1 atomOfMolecule(%oxyMol,1);
if (%atom1 == %o1);
set %o2 atomOfMolecule(%oxyMol,0);
else;
set %o2 atomOfMolecule(%oxyMol,1);
endif;
set atom[%o1].restraint %mediumRestraint;
set atom[%o1].friction %dampingFriction;
set atom[%o1].restraint.x %o1x;
set atom[%o1].restraint.y %o1y;
set atom[%o1].custom %o1grabbed;
set atom[%o2].restraint %mediumRestraint;
set atom[%o2].friction %dampingFriction;
set atom[%o2].custom %o2grabbed;
set atom[%o2].restraint.x %o2x;
set atom[%o2].restraint.y %o2y;
set %oxyBond whichrbond(%o1,%o2);
select rbond %oxyBond;
remove;
set %msgIndexToFind %msgOxyBind;
runtask turn_off_message;
set %grabbingOxy 0;
set %farOxyGrabbed 0;
endif;
endif;
endif;
endif;grab hydrogens for first waterfalse200grabWaterHif ((%oxygenReduced) and (%grabbingH4 == 0));
if (%grabbingO1H1);
if (%grabbingH5);
if (%farH5Grabbed != 1);
set %h5 nearest(0, %h5x, %h5y, %rectangle[%h5Area].x, %rectangle[%h5Area].y, %rectangle[%h5Area].width,%rectangle[%h5Area].height);
if (%h5 != -1);
set %isPartOfMolecule whichMolecule(%h5);
set %h4 findindexbycustom(ATOM,%h4Tag);
if ((%isPartOfMolecule != -1) or (%h5 == %h4));
set %h5 -1;
endif;
endif;
if (%h5 != -1);
set %farH5Grabbed 1;
set atom[%h5].friction 0.1;
set atom[%h5].restraint %weakRestraint+0.3;
set atom[%h5].restraint.x %h5x;
set atom[%h5].restraint.y %h5y;
set atom[%h5].custom %h5tag;
endif;
else;
set %closeH5 nearest(0, %h5x, %h5y, %closeRadius);
if (%closeH5 != -1);
set %isPartOfMolecule whichMolecule(%closeH5);
set %h4 findindexbycustom(ATOM,%h4Tag);
if ((%isPartOfMolecule != -1) or (%closeH5 == %h4));
set %closeH5 -1;
endif;
endif;
set %h5 findindexbycustom(ATOM,%h5tag);
set %horzDist abs(%atom[%h5].rx - %h5x);
if ((%atom[%h5].ry < %h5y) and (%horzDist < 1));
set %closeH5 %h5;
endif;
if (%closeH5 != -1);
if (%closeH5 != %h5);
set atom[%h5].restraint 0;
set atom[%h5].friction 0;
set atom[%h5].custom 0;
set atom[%h5].charge 0.05;
set %h5 %closeH5;
endif;
set atom[%h5].friction 0;
set atom[%h5].charge -0.05;
set atom[%h5].restraint %strongRestraint;
set atom[%h5].restraint.x %h5x;
set atom[%h5].restraint.y %h5y;
set atom[%h5].custom %h5Tag;
set %grabbingH5 0;
set %farH5Grabbed 0;
endif;
endif;
endif;
if ((%grabbingH5 == 0) and (%h5FinalGrab == 0));
if ((%h5DelaySet) and (%model_time > %h5Delay));
set %h5 findindexbycustom(ATOM,%h5tag);
set atom[%h5].restraint 0;
set atom[%h5].vx 0;
set atom[%h5].vy 0;
set %h5FinalGrab 1;
set %h5DelaySet 0;
else;
if (%h5DelaySet == 0);
set %h5Delay %model_time+100;
set %h5DelaySet 1;
endif;
endif;
endif;
if (%h5FinalGrab == 1);
set %h5 findindexbycustom(ATOM,%h5tag);
set %o1 findindexbycustom(ATOM,%o1grabbed);
if (%atom[%h5].ry < %o1h1y);
set atom[%h5].charge 0;
set atom[%h5].friction %dampingFriction;
set atom[%h5].restraint %strongRestraint;
set atom[%h5].restraint.x %o1h1x;
set atom[%h5].restraint.y %o1h1y;
rbond %h5 %o1 0.2;
set %lastImage findindexbycustom(IMAGE,%cyt4oxyTag);
select image %lastimage;
remove;
add image o1h1.png (0,0);
attach image "%number_of_images-1" to bond "%number_of_rbonds-1";
runtask keep_stuff_on_top;
set %h5FinalGrab 0;
set %grabbingO1H1 0;
set %readyForElectron 1;
set %oxygenReduced 0;
endif;
endif;
endif;
if (%grabbingO1H2);
if (%grabbingH6);
if (%farH6Grabbed != 1);
set %h6 nearest(0, %h6x, %h6y, %rectangle[%h6Area].x, %rectangle[%h6Area].y, %rectangle[%h6Area].width, %rectangle[%h6Area].height);
if (%h6 != -1);
set %isPartOfMolecule whichMolecule(%h6);
set %h4 findindexbycustom(ATOM,%h4Tag);
if ((%isPartOfMolecule != -1) or (%h6 == %h4));
set %h6 -1;
endif;
endif;
if (%h6 != -1);
set %farH6Grabbed 1;
set atom[%h6].friction 0.1;
set atom[%h6].restraint %weakRestraint+0.3;
set atom[%h6].restraint.x %h6x;
set atom[%h6].restraint.y %h6y;
set atom[%h6].custom %h6tag;
endif;
else;
set %closeH6 nearest(0, %h6x, %h6y, %closeRadius);
if (%closeH6 != -1);
set %isPartOfMolecule whichMolecule(%closeH6);
set %h4 findindexbycustom(ATOM,%h4Tag);
if ((%isPartOfMolecule != -1) or (%closeH6 == %h4));
set %closeH6 -1;
endif;
endif;
set %h6 findindexbycustom(ATOM,%h6tag);
set %horzDist abs(%atom[%h6].rx - %h6x);
if ((%atom[%h6].ry < %h6y) and (%horzDist < 1));
set %closeH6 %h6;
endif;
if (%closeH6 != -1);
if (%closeH6 != %h6);
set atom[%h6].restraint 0;
set atom[%h6].friction 0;
set atom[%h6].custom 0;
set atom[%h6].charge 0.05;
set %h6 %closeH6;
endif;
set atom[%h6].friction 0;
set atom[%h6].charge -0.05;
set atom[%h6].restraint %strongRestraint;
set atom[%h6].restraint.x %h6x;
set atom[%h6].restraint.y %h6y;
set atom[%h6].custom %h6Tag;
set %grabbingH6 0;
set %farH6Grabbed 0;
endif;
endif;
endif;
if ((%grabbingH6 == 0) and (%h6FinalGrab == 0));
if ((%h6DelaySet) and (%model_time > %h6Delay));
set %h6 findindexbycustom(ATOM,%h6tag);
set atom[%h6].restraint 0;
set atom[%h6].vx 0;
set atom[%h6].vy 0;
set %h6FinalGrab 1;
set %h6DelaySet 0;
else;
if (%h6DelaySet == 0);
set %h6Delay %model_time+100;
set %h6DelaySet 1;
endif;
endif;
endif;
if (%h6FinalGrab == 1);
set %h6 findindexbycustom(ATOM,%h6tag);
if (%atom[%h6].ry < %o1h2y);
set %o1 findindexbycustom(ATOM,%o1grabbed);
set %h5 findindexbycustom(ATOM,%h5tag);
set atom[%h6].rx %o1h2x;
set atom[%h6].ry %o1h2y;
set atom[%h6].charge 0.05;
set atom[%h6].friction 0;
set atom[%h6].restraint 0;
set atom[%h6].custom 0;
rbond %h6 %o1 0.2;
set %lastImage findindexbycustom(IMAGE,%cyt4oxyTag);
select image %lastimage;
remove;
add image o1h2.png (0,0);
attach image "%number_of_images-1" to bond "%number_of_rbonds-1";
set %msgIndexToFind %msgWater;
runtask turn_on_message;
runtask keep_stuff_on_top;
abond %h6 %o1 %h5 2;
set abond["%number_of_abonds-1"].bondangle 104.5*pi/180;
select abond none;
set atom[%h5].charge 0.05;
set atom[%h5].friction 0;
set atom[%h5].restraint 0;
set atom[%o1].restraint 0;
set atom[%o1].friction 0;
set atom[%o1].custom 0;
set %h6FinalGrab 0;
set %grabbingO1H2 0;
set %readyForElectron 1;
set %oxygenReduced 0;
set %showWaterMsgTime "%model_time+800";
set %waterMsgOn 1;
endif;
endif;
endif;
if (%grabbingO2H1);
if (%grabbingH7);
if (%farH7Grabbed != 1);
set %h7 nearest(0, %h7x, %h7y, %rectangle[%h7Area].x, %rectangle[%h7Area].y, %rectangle[%h7Area].width, %rectangle[%h7Area].height);
if (%h7 != -1);
set %isPartOfMolecule whichMolecule(%h7);
set %h4 findindexbycustom(ATOM,%h4Tag);
if ((%isPartOfMolecule != -1) or (%h7 == %h4));
set %h7 -1;
endif;
endif;
if (%h7 != -1);
set %farH7Grabbed 1;
set atom[%h7].friction 0.1;
set atom[%h7].restraint %weakRestraint+0.3;
set atom[%h7].restraint.x %h7x;
set atom[%h7].restraint.y %h7y;
set atom[%h7].custom %h7tag;
endif;
else;
set %closeH7 nearest(0, %h7x, %h7y, %closeRadius);
if (%closeH7 != -1);
set %isPartOfMolecule whichMolecule(%closeH7);
set %h4 findindexbycustom(ATOM,%h4Tag);
if ((%isPartOfMolecule != -1) or (%closeH7 == %h4));
set %closeH7 -1;
endif;
endif;
set %h7 findindexbycustom(ATOM,%h7tag);
set %horzDist abs(%atom[%h7].rx - %h7x);
if ((%atom[%h7].ry < %h7y) and (%horzDist < 1));
set %closeH7 %h7;
endif;
if (%closeH7 != -1);
if (%closeH7 != %h7);
set atom[%h7].restraint 0;
set atom[%h7].friction 0;
set atom[%h7].custom 0;
set atom[%h7].charge 0.05;
set %h7 %closeH7;
endif;
set atom[%h7].friction 0;
set atom[%h7].charge -0.05;
set atom[%h7].restraint %strongRestraint;
set atom[%h7].restraint.x %h7x;
set atom[%h7].restraint.y %h7y;
set atom[%h7].custom %h7Tag;
set %grabbingH7 0;
set %farH7Grabbed 0;
endif;
endif;
endif;
if ((%grabbingH7 == 0) and (%h7FinalGrab == 0));
if ((%h7DelaySet) and (%model_time > %h7Delay));
set %h7 findindexbycustom(ATOM,%h7tag);
set atom[%h7].restraint 0;
set atom[%h7].vx 0;
set atom[%h7].vy 0;
set %h7FinalGrab 1;
set %h7DelaySet 0;
else;
if (%h7DelaySet == 0);
set %h7Delay %model_time+100;
set %h7DelaySet 1;
endif;
endif;
endif;
if (%h7FinalGrab == 1);
set %h7 findindexbycustom(ATOM,%h7tag);
set %o2 findindexbycustom(ATOM,%o2grabbed);
if (%atom[%h7].ry < %o2h1y);
set atom[%h7].charge 0;
set atom[%h7].friction %dampingFriction;
set atom[%h7].restraint %strongRestraint;
set atom[%h7].restraint.x %o2h1x;
set atom[%h7].restraint.y %o2h1y;
rbond %h7 %o2 0.2;
set %lastImage findindexbycustom(IMAGE,%cyt4oxyTag);
select image %lastimage;
remove;
add image o2h1.png (0,0);
attach image "%number_of_images-1" to bond "%number_of_rbonds-1";
runtask keep_stuff_on_top;
set %h7FinalGrab 0;
set %grabbingO2H1 0;
set %readyForElectron 1;
set %oxygenReduced 0;
endif;
endif;
endif;
if (%grabbingO2H2);
if (%grabbingH8);
if (%farH8Grabbed != 1);
set %h8 nearest(0, %h8x, %h8y, %rectangle[%h8Area].x, %rectangle[%h8Area].y, %rectangle[%h8Area].width, %rectangle[%h8Area].height);
if (%h8 != -1);
set %isPartOfMolecule whichMolecule(%h8);
set %h4 findindexbycustom(ATOM,%h4Tag);
if ((%isPartOfMolecule != -1) or (%h8 == %h4));
set %h8 -1;
endif;
endif;
if (%h8 != -1);
set %farH8Grabbed 1;
set atom[%h8].friction 0.1;
set atom[%h8].restraint %weakRestraint+0.3;
set atom[%h8].restraint.x %h8x;
set atom[%h8].restraint.y %h8y;
set atom[%h8].custom %h8tag;
endif;
else;
set %closeH8 nearest(0, %h8x, %h8y, %closeRadius);
if (%closeH8 != -1);
set %isPartOfMolecule whichMolecule(%closeH8);
set %h4 findindexbycustom(ATOM,%h4Tag);
if ((%isPartOfMolecule != -1) or (%closeH8 == %h4));
set %closeH8 -1;
endif;
endif;
set %h8 findindexbycustom(ATOM,%h8tag);
set %horzDist abs(%atom[%h8].rx - %h8x);
if ((%atom[%h8].ry < %h8y) and (%horzDist < 1));
set %closeH8 %h8;
endif;
if (%closeH8 != -1);
if (%closeH8 != %h8);
set atom[%h8].restraint 0;
set atom[%h8].friction 0;
set atom[%h8].custom 0;
set atom[%h8].charge 0.05;
set %h8 %closeH8;
endif;
set atom[%h8].friction 0;
set atom[%h8].charge -0.05;
set atom[%h8].restraint %strongRestraint;
set atom[%h8].restraint.x %h8x;
set atom[%h8].restraint.y %h8y;
set atom[%h8].custom %h8Tag;
set %grabbingH8 0;
set %farH8Grabbed 0;
endif;
endif;
endif;
if ((%grabbingH8 == 0) and (%h8FinalGrab == 0));
if ((%h8DelaySet) and (%model_time > %h8Delay));
set %h8 findindexbycustom(ATOM,%h8tag);
set atom[%h8].restraint 0;
set atom[%h8].vx 0;
set atom[%h8].vy 0;
set %h8FinalGrab 1;
set %h8DelaySet 0;
else;
if (%h8DelaySet == 0);
set %h8Delay %model_time+100;
set %h8DelaySet 1;
endif;
endif;
endif;
if (%h8FinalGrab == 1);
set %h8 findindexbycustom(ATOM,%h8tag);
if (%atom[%h8].ry < %o2h2y);
set %o2 findindexbycustom(ATOM,%o2grabbed);
set %h7 findindexbycustom(ATOM,%h7tag);
set atom[%h8].rx %o2h2x;
set atom[%h8].ry %o2h2y;
set atom[%h8].charge 0.05;
set atom[%h8].friction 0;
set atom[%h8].restraint 0;
set atom[%h8].custom 0;
rbond %h8 %o2 0.2;
set %lastImage findindexbycustom(IMAGE,%cyt4oxyTag);
select image %lastimage;
remove;
add image o2h2.png (0,0);
attach image "%number_of_images-1" to bond "%number_of_rbonds-1";
set %msgIndexToFind %msgWater2;
runtask turn_on_message;
set %msgIndexToFind %msgOxyBind;
runtask turn_on_message;
runtask keep_stuff_on_top;
abond %h8 %o2 %h7 2;
set abond["%number_of_abonds-1"].bondangle 104.5*pi/180;
select abond none;
set atom[%h7].charge 0.05;
set atom[%h7].friction 0;
set atom[%h7].restraint 0;
set atom[%o2].restraint 0;
set atom[%o2].friction 0;
set atom[%o2].custom 0;
set %h8FinalGrab 0;
set %grabbingO2H2 0;
set %grabbingOxy 1;
set %readyForElectron 1;
set %oxygenReduced 0;
set %showWaterMsgTime "%model_time+800";
set %waterMsgOn 1;
endif;
endif;
endif;
endif;
If ((%waterMsgOn) and (%model_time > %showWaterMsgTime));
set %msgIndexToFind %msgWater;
runtask turn_off_message;
set %msgIndexToFind %msgWater2;
runtask turn_off_message;
set %waterMsgOn 0;
endif;oxidize cytc4false200oxidizeCytc4if ((%grabbingOxy == 0) and (%grabbingH4 == 0) and (%grabbingC4Cytc == 0) and (%oxyImageAdded == 0) and (%readyForElectron));
if ((%cytOxyDelaySet) and (%model_time > %cytOxyDelay));
set %readyForElectron 0;
set %c4Cytc findindexbycustom(ATOM, %c4CytcTag);
set %currentImageC4 whichimageisattached(%c4Cytc, 0);
select image %currentImageC4;
remove;
add image cytcPlain.png atomno=%c4Cytc;
set %h4 findindexbycustom(ATOM,%h4Tag);
set atom[%h4].restraint 0;
set atom[%h4].friction 0;
set atom[%h4].custom 0;
set %whichH %whichH+1;
if (%whichH == 1);
set %grabbingH5 1;
set %grabbingO1H1 1;
add image o1h1Seq.gif (58.2, 10.2);
set image["%number_of_images-1"].loop 1;
set image["%number_of_images-1"].layer IN_FRONT_OF_PARTICLES;
set image["%number_of_images-1"].custom %cyt4oxyTag;
endif;
if (%whichH == 2);
set %grabbingH6 1;
set %grabbingO1H2 1;
add image o1h2Seq.gif (58.2, 10.2);
set image["%number_of_images-1"].loop 1;
set image["%number_of_images-1"].layer IN_FRONT_OF_PARTICLES;
set image["%number_of_images-1"].custom %cyt4oxyTag;
endif;
if (%whichH == 3);
set %grabbingH7 1;
set %grabbingO2H1 1;
add image o2h1Seq.gif (58.2, 10.2);
set image["%number_of_images-1"].loop 1;
set image["%number_of_images-1"].layer IN_FRONT_OF_PARTICLES;
set image["%number_of_images-1"].custom %cyt4oxyTag;
endif;
if (%whichH == 4);
set %grabbingH8 1;
set %grabbingO2H2 1;
add image o2h2Seq.gif (58.2, 10.2);
set image["%number_of_images-1"].loop 1;
set image["%number_of_images-1"].layer IN_FRONT_OF_PARTICLES;
set image["%number_of_images-1"].custom %cyt4oxyTag;
set %whichH 0;
endif;
set %msgIndexToFind %msgCytCOx;
runtask turn_on_message;
set %msgIndexToFind %msgHmove3;
runtask turn_on_message;
runtask keep_stuff_on_top;
set %oxyImageAdded 1;
set %endcytOxyDelay %model_time+1200;
set %showCytcOxMsgTime "%model_time+600";
set %cytcOxMsgOn 1;
else;
if (%cytOxyDelaySet == 0);
set %cytOxyDelay %model_time+500;
set %cytOxyDelaySet 1;
endif;
endif;
endif;
If ((%cytcOxMsgOn) and (%model_time > %showCytcOxMsgTime));
if ((%whichH == 1) or (%whichH == 2));
set %msgIndexToFind %msgOxyRed;
runtask turn_on_message;
else;
set %msgIndexToFind %msgOxyRed2;
runtask turn_on_message;
endif;
set %msgIndexToFind %msgCytCOx;
runtask turn_off_message;
set %cytcOxMsgOn 0;
endif;
if ((%oxyImageAdded) and (%model_time > %endcytOxyDelay));
set %c4Cytc findindexbycustom(ATOM, %c4CytcTag);
set atom[%c4Cytc].friction 0;
set atom[%c4Cytc].restraint 0;
set atom[%c4Cytc].custom 0;
set atom[%c4Cytc].vy -100-rand()*-100;
set %grabbingC4Cytc 1;
set %oxyImageAdded 0;
set %cytOxyDelaySet 0;
set %oxygenReduced 1;
set %grabbingH4 1;
set %msgIndexToFind %msgCytCOx;
runtask turn_off_message;
set %msgIndexToFind %msgHmove3;
runtask turn_off_message;
set %msgIndexToFind %msgOxyRed;
runtask turn_off_message;
set %msgIndexToFind %msgOxyRed2;
runtask turn_off_message;
endif;
remove water from h channelsfalse1000unstick waterset %hatom nearest(0,%h1x,%h1y,%rectangle[0].x,%rectangle[0].y,%rectangle[0].width,%rectangle[0].height);
if (%hatom != -1);
set %isPartOfMolecule whichMolecule(%hatom);
if ((%isPartOfMolecule != -1) and %atom[%hatom].charge > 0));
set atom[%hatom].charge -0.05;
endif;
endif;
set %hatom nearest(0,%h2x,%h2y,%rectangle[1].x,%rectangle[1].y,%rectangle[1].width,%rectangle[1].height);
if (%hatom != -1);
set %isPartOfMolecule whichMolecule(%hatom);
if ((%isPartOfMolecule != -1) and %atom[%hatom].charge > 0));
set atom[%hatom].charge -0.05;
endif;
endif;
set %hatom nearest(0,%h3x,%h3y,%rectangle[2].x,%rectangle[2].y,%rectangle[2].width,%rectangle[2].height);
if (%hatom != -1);
set %isPartOfMolecule whichMolecule(%hatom);
if ((%isPartOfMolecule != -1) and %atom[%hatom].charge > 0));
set atom[%hatom].charge -0.05;
endif;
endif;
set %hatom nearest(0,%h4x,%h4y,%rectangle[3].x,%rectangle[3].y,%rectangle[3].width,%rectangle[3].height);
if (%hatom != -1);
set %isPartOfMolecule whichMolecule(%hatom);
if ((%isPartOfMolecule != -1) and %atom[%hatom].charge > 0));
set atom[%hatom].charge -0.05;
endif;
endif;
set %hatom nearest(0,%h5x,%h5y,%rectangle[4].x,%rectangle[4].y,%rectangle[4].width,%rectangle[4].height);
if (%hatom != -1);
set %isPartOfMolecule whichMolecule(%hatom);
if ((%isPartOfMolecule != -1) and %atom[%hatom].charge < 0));
set atom[%hatom].charge 0.05;
endif;
endif;
set %hatom nearest(0,%h7x,%h7y,%rectangle[5].x,%rectangle[5].y,%rectangle[5].width,%rectangle[5].height);
if (%hatom != -1);
set %isPartOfMolecule whichMolecule(%hatom);
if ((%isPartOfMolecule != -1) and %atom[%hatom].charge < 0));
set atom[%hatom].charge 0.05;
endif;
endif;
update the electric potentialfalse100updatePotset %blueCount count(1, %rectangle[%imSpace].x, %rectangle[%imSpace].y, %rectangle[%imSpace].width, %rectangle[%imSpace].height);
set %pinkCount count(0, %rectangle[%imSpace].x, %rectangle[%imSpace].y, %rectangle[%imSpace].width, %rectangle[%imSpace].height);
set %prevWidth %rectangle[%elecPot].width
set %newWidth "(%blueCount + %pinkCount)/5";
if (%newWidth > %prevWidth);
set %msgImage findindexbycustom(IMAGE, %arrowFadeTag);
set image[%msgImage].loop 1;
set image[%msgImage].frame 1;
set image[%msgImage].layer front;
set %greenness 150;
endif;
set rectangle[%elecPot].width "(%blueCount + %pinkCount)/5";
set textbox[0].background (%greenness,250,%greenness);
if (%greenness < 250);
set %greenness %greenness+50;
endif;turn one of the messages onfalseturn_on_messageset %msgImage findindexbycustom(IMAGE,%msgIndexToFind);
if (%msgOn); set image[%msgImage].visible on; endif;
if (%msgIndexToFind == %msgUQRed); set %msgUQRedOn 1; endif;
if (%msgIndexToFind == %msgNADHOx); set %msgNADHOxOn 1; endif;
if (%msgIndexToFind == %msgHMoving); set %msgHMovingOn 1; endif;
if (%msgIndexToFind == %msgSuccOx); set %msgSuccOxOn 1; endif;
if (%msgIndexToFind == %msgUQRed2); set %msgUQRed2On 1; endif;
if (%msgIndexToFind == %msgUQOx); set %msgUQOxOn 1; endif;
if (%msgIndexToFind == %msgHMove2); set %msgHMove2On 1; endif;
if (%msgIndexToFind == %msgCytCRed); set %msgCytCRedOn 1; endif;
if (%msgIndexToFind == %msgCytCOx); set %msgCytCOxOn 1; endif;
if (%msgIndexToFind == %msgHmove3); set %msgHmove3On 1; endif;
if (%msgIndexToFind == %msgOxyBind); set %msgOxyBindOn 1; endif;
if (%msgIndexToFind == %msgOxyRed); set %msgOxyRedOn 1; endif;
if (%msgIndexToFind == %msgOxyRed2); set %msgOxyRed2On 1; endif;
if (%msgIndexToFind == %msgWater); set %msgWaterOn 1; endif;
if (%msgIndexToFind == %msgWater2); set %msgWater2On 1; endif;
turn off a messagefalseturn_off_messageset %msgImage findindexbycustom(IMAGE,%msgIndexToFind);
set image[%msgImage].visible off;
set %msgOnFlag["%msgIndexToFind-6000"] 0;resuffle images to keep layers correctfalsekeep_stuff_on_topset %krebsImage findindexbycustom(IMAGE, %krebsImageTag);
set image[%krebsImage].layer FRONT;
set %complexImage findindexbycustom(IMAGE, %complexImageTag);
set image[%complexImage].layer FRONT;
set %transMemImage findindexbycustom(IMAGE, %transMemImageTag);
set image[%transMemImage].layer FRONT;
set %msg 6000;
while (%msg <= %msgMaxIndex);
set %msgImage findindexbycustom(IMAGE,%msg);
set image[%msgImage].layer FRONT;
%msg++;
endwhile;
set %comp1Image findindexbycustom(IMAGE, %comp1Tag);
set image[%comp1Image].layer FRONT;
set %comp2Image findindexbycustom(IMAGE, %comp2Tag);
set image[%comp2Image].layer FRONT;
set %comp3Image findindexbycustom(IMAGE, %comp3Tag);
set image[%comp3Image].layer FRONT;
set %comp4Image findindexbycustom(IMAGE, %comp4Tag);
set image[%comp4Image].layer FRONT;0.6999999880790710.2Nonefalse-26215-16737793-34078722550255255etc.pngfalse2-15.01.0uqPlain.pngfalse46class org.concord.mw2d.models.Atom112183.53417081021965237.09292433622988uqPlain.pngfalse42class org.concord.mw2d.models.Atom113203.5191.5uqPlain.pngfalse43class org.concord.mw2d.models.Atom114360.80727817746805224.86515697996572uqPlain.pngfalse45class org.concord.mw2d.models.Atom115285.5200.5uqPlain.pngfalse44class org.concord.mw2d.models.Atom116345.5192.5cytcPlain.pngfalse48class org.concord.mw2d.models.Atom118200.579.5cytcPlain.pngfalse49class org.concord.mw2d.models.Atom12198.575.5cytcPlain.pngfalse50class org.concord.mw2d.models.Atom122346.528.5cytcPlain.pngfalse51class org.concord.mw2d.models.Atom123596.536.5succinate.pngfalse59class org.concord.mw2d.models.Atom124470.0445.0nadh.pngfalse58class org.concord.mw2d.models.Atom125257.5448.5krebsCycle.png2000.0false126198.0439.5proteinOverlay.png3000.0false12717.0134.0membraneTrans.png4000.0false128-13.0123.0msgHMoving.png6002.0134false29.0164.0msgOxNADH.png6001.0135false96.0293.0msgUQRed.png6000.0136false111.0147.0msgSuccOx.png6003.0137false296.0324.0msgUQRed2.png6004.0138false284.0235.0msgHMoving2.png6006.0139false430.0168.0msgCytCRed.png6007.0140false498.0129.0msgCytcRed2.png6008.0141false603.088.0msgHMoving3.png6009.0142false624.0137.0msgOxyBinding.png6010.0143false670.0233.0msgOxyRed.png6011.0144false656.0242.0msgOxyRed.png6012.0145false680.0242.0msgWaterComplete.png6013.0146false654.0295.0002152473562msgWaterComplete2.png6014.0147false621.0296.0002232194839msgUQOx.png6005.0148false399.0153.0comp3Highlight.png5002.0false149false-14.00.0comp2Highlight.png5001.0false150false-13.00.0comp1Highlight.png5000.0false151false0.0-1.0arrowFade.gif7000.0154-122.030.0comp4Highlight.png5003.0false155false-13.0-13.000255255falsefalse192.0110.006283185307179587-0.20000000298023224true30010.1false12.034.0142.0false196.0120.0314159265358979340.20000000298023224true30030.1false12.053.0144.0false207.0130.006283185307179587-0.20000000298023224true30010.11false12.0430.0138.0false220.0140.06911503837897545-0.20000000298023224true30010.11false11.0626.0130.0false77.0150.069115038378975450.10999999940395355true30030.11false15.0644.5271.0false77.0160.069115038378975450.18000000715255737true30030.1false15.0696.5272.0false72.027false174.05.0342.0false79.028false176.04.0417.0false145.029false173.0367.0350.0false70.0210false194.0554.0353.0false67.0211false199.0554.0428.0false107.0117false259.0162.5174.5false92.0219false743.01.511.0false146.0220false741.04.5355.0false197.0129false149.0143.0false124.0130false98.0239.0244.0false218.0131false106.0407.0130.0false225.0132false149.0584.0127.0false164.0133false747.00.53.025525525525510.0153175.018.028.0false255255025510.015634.018.028.024false112false2552552552551521Energy from H+ conc. difference
7.09.00.05000000074505806false114.0397.00.002596810235124143-0.0094378962876949770.05000000074505806false208.76600414938412409.477526108030930.08958887053585486-0.058132516588817630.05000000074505806falsefalse318.0392.0-0.09502633317719280.0021262543868182310.05000000074505806false251.0431.00.037714219250324040.0218748959559136070.05000000074505806false311.2741253471106420.3805815426072-0.002458135263205825-0.041271117540588810.05000000074505806falsefalse76.0373.00.07589375429465911-0.15827130756677550.05000000074505806false619.0395.00.020577894293382665-0.097718139179110280.05000000074505806false339.0397.00.06733539783392216-0.0192306375873722570.05000000074505806false156.746805119579472.73066791267667-0.0116707732578812880.05014273962953310.05000000074505806false163.45401713007396351.999049059757060.02146371473051241-0.094056255152980050.05000000074505806false351.0421.0-0.019898124772001202-0.0088252728586074530.05000000074505806false482.42069356951595433.31973629421475-0.099117918836929980.0170898233862847060.05000000074505806false508.29075154763683401.54691003987440.12867969826096476-0.053812343727688560.05000000074505806false167.7762063443763494.26691951423430.04804050148733761-0.049493083168688120.05000000074505806false279.0413.00.0078523945140028840.019427671041676610.05000000074505806false639.3118090384945425.6113503529529-0.0076618953039298350.064655525050612940.05000000074505806false445.0412.0-0.100579034678550190.0104638890196488720.05000000074505806false388.13565037207263400.93479223425544-0.01719249894674250.068799869851295490.05000000074505806false620.4273164075232472.01431706632260.018823010182181035-0.0120639608087919490.05000000074505806false676.9660982164935419.4098826287922-0.071391970482181750.0480988494572771460.05000000074505806false684.1432001882708468.7508997307212-0.036249736156188310.053018610681308160.05000000074505806false492.950153217921430.0556603063052-0.014921940919010824-0.0342748663324619060.05000000074505806false662.0391.0-0.03796068337497404-0.07033291484412470.05000000074505806false699.0389.0-0.088836990193225450.036061020483414370.05000000074505806false663.3876262240984467.54490389990775-0.074781404746235890.01052143483796557910.05000000074505806false125.21521114532837126.48051682738124-0.07195031950336670.0683055637639015110.05000000074505806false70.78463591706308126.67564733182823-0.05377859323611329-0.05059460346410117610.05000000074505806false227.424000682371125.188696518745611-0.053568419798038634-0.0665688086361192210.05000000074505806false165.9215057664773436.714087245862210.0368232913122248860.0620035546103762910.05000000074505806false198.6677509775159453.097035248901946-0.0072620082596162520.0274882718095284610.05000000074505806false466.95308457784716104.39546029477505-0.066308717065741110.01619702720569518610.05000000074505806false327.9579616358869342.710811866856446-0.014577596766175370.04091424107443588510.05000000074505806false304.397933644077177.9487142483528130.10882050479695266-0.075580637497919310.05000000074505806false142.1213719414747354.77646208236940.01835878715028018-0.1581325260171005410.05000000074505806false573.348578248741481.6796947914413-0.01726385812104157-0.0919976068596854710.05000000074505806false486.232888378684593.32891592896641-0.0891392301261304-0.0614238852659469610.05000000074505806false650.9984046883509104.61867536019638-0.047460722926215865-0.03044506238062174810.05000000074505806false585.289335396998554.20714597552518-0.08533346779562992-0.0381827493640275810.05000000074505806false605.2569721636775110.395444508259350.0132161823041849650.00539626643153309910.05000000074505806false744.1379535144369.909170886363218.234324558485989E-4-0.0322572564852886410.05000000074505806false738.111646248891445.508999673618330.050524389010888925-0.070176729012841210.05000000074505806false606.0707247269307120.94769433193022-0.055572286039571290.07179638234142742false230.0208.0false-0.055740015630168670.0089988291495477322false387.30727817746805241.36515697996572false0.010472296515096539-0.0049137711156981092false372.0209.0false-0.022873763762159330.055770923695786972false312.0217.0false-0.021271598843886425-0.092076568845658152false210.03417081021965253.59292433622988false0.093172659428896950.068270346514845160.05000000074505806false39.0352.00.01781999808745060.060021790237373762false227.096.0false0.0042293305619787850.035000715248248242false125.092.0false-0.019309844722056760.037948795568907652false373.045.0false-0.015324936793742892-0.045996083910288342false623.053.0false-0.05025659198191214-0.0140722079650452021falsefalse407.0314.0false-0.010227594396389527-0.088381671190408811falsefalse408.0326.0false0.0152897617909007470.017039172158153451falsefalse414.0336.0false0.03960753570761318-6.718119107626316E-41falsefalse425.0341.0false0.07354213798840685-0.029601868645337871falsefalse51.0327.0false-0.010124003330327074-0.0060894128494939831falsefalse71.0334.0false-0.020807209302651442-0.0437651347092861762false285.0476.0false-0.036186388202711130.00346465054641079172false505.0472.0false0.015521570629821051-0.01523542932020684530.05000000074505806falsefalse275.0146.0-0.08664019676020274-0.03532847612499976530.05000000074505806falsefalse295.0146.00.09313629725474785-0.02842413339607675230.05000000074505806falsefalse303.126338407358668.268022979850880.06349963278497973-0.00757163171108144230.05000000074505806falsefalse312.873661592641485.73197702014912-0.033635210409355076-0.104939467971764430.05000000074505806falsefalse594.667576729931430.419366564593360.0185523998042802440.0433860771468589230.05000000074505806falsefalse579.3324232700691417.580633435406470.02546743954528809-0.0526196516321271130.05000000074505806falsefalse137.7073357240884446.588534620723-0.003639962570619556-0.02515305389538534430.05000000074505806falsefalse154.2926642759116435.411465379277-0.08069300327689385-0.00745317415212912430.05000000074505806falsefalse416.34573714518876378.989637294583-0.020371583973352710.02958110007534108730.05000000074505806falsefalse433.6542628548113389.0103627054171-0.057390994081627620.028697060948131630.05000000074505806falsefalse679.403714561147885.187295647233-0.07100302893380810.0559867310885444630.05000000074505806falsefalse698.596285438852290.8127043527673.8271589760181395E-4-0.06051655675243420430.05000000074505806falsefalse97.9289321881345258.071067811865476-0.0053433733705905560.0485867592109508730.05000000074505806falsefalse112.0710678118654843.9289321881345240.013152323438416514-0.0469522749623781630.05000000074505806falsefalse719.9470623004805438.9444116065723-0.04394690037760964-0.02327551515420147530.05000000074505806falsefalse722.0529376995195419.0555883934277-0.0293590259321727420.03542372281081001430.05000000074505806falsefalse85.27513455606551442.8609341340041-0.050663659282291120.1406738985164258430.05000000074505806falsefalse70.72486544393449429.13906586599603-0.05301952363418259-0.01550811701232556630.05000000074505806falsefalse490.8564141862488664.9977983481644-0.003802944973389280.0888587445092108430.05000000074505806falsefalse505.143585813751251.002201651835534-0.038314545575980290.0078767714927872240.05000000074505806false103.0489.00.07458778738768128-0.0126044876267434590.05000000074505806false52.0481.0-0.05026633092092162-0.025553143557824030.05000000074505806false10.0418.00.006069964375974697-0.0113053562494524560.05000000074505806false44.0386.00.03967748297464641-0.0198583751649028630.05000000074505806false110.0433.00.099260943642879730.053268662040682580.05000000074505806false169.0393.0-0.157321442928559960.0263865291700170240.05000000074505806false198.0349.0-0.074958239987021310.084317916375022690.05000000074505806false234.0395.00.014330802445026510.0149112509300094990.05000000074505806false269.0386.0-0.0131943343767951540.068813393970846860.05000000074505806false360.0373.00.0314858411654873740.03145515612509010.05000000074505806false376.0332.00.018043293803617824.134473617121226E-50.05000000074505806false409.0358.00.07013737653225456-0.078157818973294750.05000000074505806false482.0380.0-0.029628855363795940.050136557083092550.05000000074505806false406.0426.00.0252140824584226040.121627002099503360.05000000074505806false487.0405.00.039406168492621770.0547848887551750.05000000074505806false468.0370.00.061748318773795004-0.0252168404570810340.05000000074505806false525.0361.00.020359726827350995-0.08072132109213480.05000000074505806false565.0335.00.08304401997815840.059553923308999140.05000000074505806false551.0376.00.06418070280901810.089372420720019580.05000000074505806false587.0476.0-0.0274371354697788940.0270037050522752430.05000000074505806false626.0448.0-0.03694423813516970.0097142562973632180.05000000074505806false602.0382.0-0.047022066415408396-0.0605858604094583960.05000000074505806false707.0368.0-0.056075894363431830.043051287515319170.05000000074505806false735.0346.0-0.0511958978075041440.045951121601297090.05000000074505806false735.0390.00.076254366337518420.098747680670597460.05000000074505806false745.0474.00.068316883147681560.058547358191166670.05000000074505806false727.0483.00.06353724565279387-0.0101767730057610240.05000000074505806false697.0452.00.084681250345683560.0058464638534145551falsefalse641.0340.0false-0.050671626503144570.001050368301514759610616020.00.2636220.00.2656420.00.2676620.00.2696820.00.2717020.00.2737220.00.2757420.00.2777620.00.2797820.00.2