(*^ ::[ Information = "This is a Mathematica Notebook file. It contains ASCII text, and can be transferred by email, ftp, or other text-file transfer utility. It should be read or edited using a copy of Mathematica or MathReader. If you received this as email, use your mail application or copy/paste to save everything from the line containing (*^ down to the line containing ^*) into a plain text file. On some systems you may have to give the file a name ending with ".ma" to allow Mathematica to recognize it as a Notebook. The line below identifies what version of Mathematica created this file, but it can be opened using any other version as well."; FrontEndVersion = "Macintosh Mathematica Notebook Front End Version 2.2"; MacintoshStandardFontEncoding; fontset = title, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, e8, 24, "Times"; fontset = subtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, e6, 18, "Times"; fontset = subsubtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, italic, e6, 14, "Times"; fontset = section, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, grayBox, M22, bold, a20, 18, "Times"; fontset = subsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, blackBox, M19, bold, a15, 14, "Times"; fontset = subsubsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, whiteBox, M18, bold, a12, 12, "Times"; fontset = text, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = smalltext, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 10, "Times"; fontset = input, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeInput, M42, N23, bold, L-5, 12, "Courier"; fontset = output, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-5, 12, "Courier"; fontset = message, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, R65535, L-5, 12, "Courier"; fontset = print, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-5, 12, "Courier"; fontset = info, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, B65535, L-5, 12, "Courier"; fontset = postscript, PostScript, formatAsPostScript, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeGraphics, M7, l34, w282, h287, 12, "Courier"; fontset = name, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, italic, 10, "Geneva"; fontset = header, inactive, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = leftheader, inactive, L2, 12, "Times"; fontset = footer, inactive, noKeepOnOnePage, preserveAspect, center, M7, 12, "Times"; fontset = leftfooter, inactive, L2, 12, "Times"; fontset = help, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 10, "Times"; fontset = clipboard, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = completions, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = special1, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = special2, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = special3, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = special4, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = special5, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; paletteColors = 128; currentKernel; ] :[font = title; inactive; locked; Cclosed; preserveAspect; startGroup] The Binding of Asymmetric Ligands to an Infinite Isotropic Linear Lattice by Alan R. Wolfe ;[s] 4:0,2;73,0;74,3;90,1;91,-1; 4:1,27,21,New York,1,24,0,0,0;1,13,9,Times,3,12,0,0,0;1,18,14,New York,1,14,0,0,0;1,16,12,Chicago,2,12,0,0,0; :[font = text; inactive; locked; preserveAspect; endGroup] This Mathematica notebook calculates and plots the Scatchard plot, neighbor-effect parameters, conditional probabilities, and cluster length distribution for the isotropic lattice, asymmetric ligand case. It can only be used after the appropriate initialization notebook has been evaluated. To perform the calculations, simply set the input variables to the desired values and execute the Action-Evaluate Notebook command. This may be repeated with different values for the input variables. ;[s] 3:0,1;5,2;16,1;497,-1; 3:0,13,9,Times,0,12,0,0,0;2,16,12,Geneva,0,12,0,0,65535;1,16,12,Geneva,2,12,0,0,65535; :[font = subsection; inactive; locked; preserveAspect; startGroup] INPUT VARIABLES: ;[s] 3:0,1;1,2;18,0;19,-1; 3:1,22,15,Geneva,17,14,65535,0,0;1,19,14,Geneva,1,14,0,0,65535;1,19,13,Geneva,17,12,65535,0,0; :[font = input; preserveAspect; fontColorRed = 65535; fontName = "Chicago"; startGroup] points = 10; k = 1; n = 1; w1 = 2; w2 = 0.1; w3 = 1; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup] referencePlot = True ; Print [ "initial slope = ", initialSlope //N ] ; Print [ "deltaA (dimensionless version) = ", deltaA //N ] ; ;[s] 2:0,1;13,0;135,-1; 2:1,15,12,Chicago,1,12,0,0,0;1,15,12,Chicago,1,12,65535,0,0; :[font = subsection; inactive; locked; preserveAspect; startGroup] INPUT VARIABLES - cluster length plots: ;[s] 3:0,0;1,2;41,1;42,-1; 3:1,19,14,Geneva,1,14,0,0,65535;1,22,15,Geneva,17,14,65535,0,0;1,19,13,Geneva,17,12,65535,0,0; :[font = input; Cclosed; preserveAspect; fontColorRed = 65535; fontName = "Chicago"; startGroup] rCluster2D = 0.9; maxLength2D = 6; points3D = 10; maxLength3D = 5; :[font = input; inactive; locked; preserveAspect; endGroup; endGroup] rCluster2D*rSat is the r value for which 2D cluster length distribution data will be displayed. points3D is the number of equally spaced r values greater than zero for which the cluster length distribution will be displayed in the 3D plots. (note - execution will be more efficient if points3D = points). maxLength is the maximum cluster length that will be considered. ;[s] 1:0,0;395,-1; 1:1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; preserveAspect; startGroup] (* CALCULATE THE NEIGHBOR-EFFECT PARAMETERS AND SCATCHARD PLOT *) scroll = 1 ;[s] 4:0,0;2,1;3,0;67,2;79,-1; 3:2,15,12,Geneva,1,12,0,0,65535;1,18,13,Geneva,17,12,65535,0,0;1,10,8,Courier,1,9,0,0,65535; :[font = input; locked; closed; preserveAspect] (* Initialize loop parameters and output arrays *) rSatDetermine ; neChoose ; xAxisInterval = rSat/(points) ; abscissa = Range [1, points-1] ; abscissa2 = {} ; points2 = points ; AppendTo [ abscissa2, points2 - 1/2] ; points = points+1 ; AppendTo [ abscissa2, points2 - 1/4] ; points = points+1 ; abscissa = xAxisInterval Join [ abscissa, abscissa2 ] ; E1 = E2 = 1 ; ;[s] 5:0,1;52,2;184,3;304,2;375,0;376,-1; 4:1,12,10,Courier,1,12,0,0,0;1,15,12,Geneva,1,12,0,0,65535;2,15,12,Chicago,1,12,0,0,0;1,15,12,Chicago,1,12,43690,43690,43690; :[font = input; locked; preserveAspect; startGroup] (* Evaluate neighbor-effect parameters for r < rSat *) scroll = 1 ;[s] 2:0,1;55,0;67,-1; 2:1,10,8,Courier,1,9,0,0,65535;1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup] startPrint ; dropPoints = 0 ; ordinate = Map [ Function [ zz, r = zz ; f = 1 - n r ; x = r/f ; y = x/2 ; If [ needCheck, If [ flag==True, {E1,E2} = {1,1} ; dropPoints = dropPoints + 1] ; If [ flag==False, ne ; checkLimits ; If [ flag==True, dropPoints = dropPoints + 1 ] ] , ne ] ; If [ flag==False, Print [ r//N, " ", rLf//N ] ] ; {rLf,E1,E2,y,ff} ], abscissa ] ; makeReference ; :[font = input; locked; preserveAspect; startGroup] (* Evaluate NE parameters and conditional probabilities for r = rSat *) scroll = 1 ;[s] 2:0,1;73,0;85,-1; 2:1,10,8,Courier,1,9,0,0,65535;1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup] PrependTo [ ordinate, {k,1,1,0,1} ] ; neSat ; AppendTo [ ordinate, {0,E1,E2,0,0} ] ; cpSat ; :[font = input; locked; preserveAspect; startGroup] (* Indicate which equations were used in the calculations *) scroll = 1 ;[s] 2:0,1;61,0;73,-1; 2:1,10,8,Courier,1,9,0,0,65535;1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup; endGroup] Print [ "ne = ", neChoice, "; CP = ", cpChoice ] ; :[font = input; locked; preserveAspect; startGroup] (* DISPLAY THE SCATCHARD PLOT *) scroll = 1 ;[s] 4:0,0;2,1;3,0;33,2;45,-1; 3:2,15,12,Geneva,1,12,0,0,65535;1,18,13,Geneva,17,12,65535,0,0;1,10,8,Courier,1,9,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup; endGroup] If [ referencePlot, makePlot2, makePlot [ 1, 0, "r/Lf", "Scatchard plot" ] ] ; :[font = input; locked; preserveAspect; startGroup] (* PLOT THE NEIGHBOR-EFFECT PARAMETERS *) scroll = 1 ;[s] 4:0,0;2,1;3,0;42,2;54,-1; 3:2,15,12,Geneva,1,12,0,0,65535;1,18,13,Geneva,17,12,65535,0,0;1,10,8,Courier,1,9,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"] makePlot [ 2, 1, "e1","NE for head end of free sites" ] :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup] makePlot [ 3, 1, "e2", "NE for tail end of free sites" ] :[font = input; locked; preserveAspect; startGroup] (* CALCULATE AND PLOT THE CONDITIONAL PROBABILITIES *) scroll = 1 ;[s] 4:0,0;2,1;3,0;55,2;67,-1; 3:2,15,12,Geneva,1,12,0,0,65535;1,18,13,Geneva,17,12,65535,0,0;1,10,8,Courier,1,9,0,0,65535; :[font = input; locked; preserveAspect; startGroup] (* ff *) ;[s] 1:0,0;9,-1; 1:1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup] makePlot [ 5, 0, "ff", "" ] :[font = input; locked; preserveAspect; startGroup] (* b1f *) ;[s] 1:0,0;10,-1; 1:1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup] makeCPplot [ b1f, " b1f" ] :[font = input; locked; preserveAspect; startGroup] (* b2f *) ;[s] 1:0,0;10,-1; 1:1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup] makeCPplot [ b2f, " b2f" ] :[font = input; locked; preserveAspect; startGroup] (* fb1 *) ;[s] 1:0,0;10,-1; 1:1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup] makeCPplot [ fb1, " fb1" ] :[font = input; locked; preserveAspect; startGroup] (* fb2 *) ;[s] 1:0,0;10,-1; 1:1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup] makeCPplot [ fb2, " fb2" ] :[font = input; locked; preserveAspect; startGroup] (* b1b1 *) ;[s] 1:0,0;11,-1; 1:1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup] makeCPplot [ b1b1, " b1b1" ] :[font = input; locked; preserveAspect; startGroup] (* b2b2 *) ;[s] 1:0,0;11,-1; 1:1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup] makeCPplot [ b2b2, " b2b2" ] :[font = input; locked; preserveAspect; startGroup] (* b1b2 *) ;[s] 1:0,0;11,-1; 1:1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup; endGroup] makeCPplot [ b1b2, "b1b2 (b2b1)" ] :[font = input; locked; preserveAspect; startGroup] (* CALCULATE, PRINT AND PLOT 3D CLUSTER LENGTH DATA *) scroll = 1 ;[s] 4:0,0;2,1;3,0;55,2;67,-1; 3:2,15,12,Geneva,1,12,0,0,65535;1,18,13,Geneva,17,12,65535,0,0;1,10,8,Courier,1,9,0,0,65535; :[font = input; locked; preserveAspect; startGroup] (* calculate and print *) ;[s] 1:0,0;26,-1; 1:1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup] clusterArray = Table [ 0, {maxLength3D} ] ; ligandArray = clusterArray ; clusterArray3D = Table [ clusterArray, {points3D+1} ] ; ligandArray3D = clusterArray3D ; maxLength = maxLength3D ; printHeadings ; Do [ rCluster = (ij/points3D) ; clusterDistribution ; clusterArray3D[[ij+1]] = clusterArray ; ligandArray3D[[ij+1]] = ligandArray , { ij, 0, points3D} ] ; chooseTicks ; :[font = input; locked; preserveAspect; startGroup] (* plot fraction of clusters, left view *) ;[s] 1:0,0;43,-1; 1:1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup] threeDplot [ 2.2, -2.4, 1.0, "length ", " r/rSat", "f clus.", clusterArray3D, tickArray1 ] ; :[font = input; locked; preserveAspect; startGroup] (* plot fraction of clusters, right view *) ;[s] 1:0,0;44,-1; 1:1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup] threeDplot [ 2.2, 2.4, 1.0, " length", "r/rSat ", "f clus.", clusterArray3D, tickArray0 ] ; :[font = input; locked; preserveAspect; startGroup] (* plot fraction of clusters, center view *) ;[s] 1:0,0;45,-1; 1:1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup] threeDplot [ 2.2, -0.001, 1.0, " length", "r/rSat", "f clus.", clusterArray3D, tickArray ] ; :[font = input; locked; preserveAspect; startGroup] (* plot fraction of ligands, left view *) ;[s] 1:0,0;42,-1; 1:1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup] threeDplot [ 2.2, -2.4, 1.0, "length ", " r/rSat", "f lig.", ligandArray3D, tickArray1 ] ; :[font = input; locked; preserveAspect; startGroup] (* plot fraction of ligands, right view *) ;[s] 1:0,0;43,-1; 1:1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup] threeDplot [ 2.2, 2.4, 1.0, " length", "r/rSat ", "f lig.", ligandArray3D, tickArray0 ] ; :[font = input; locked; preserveAspect; startGroup] (* plot fraction of ligands, center view *) ;[s] 1:0,0;44,-1; 1:1,15,12,Geneva,1,12,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"; endGroup; endGroup] threeDplot [ 2.2, -0.001, 1.0, " length", "r/rSat", "f lig.", ligandArray3D, tickArray ] ; :[font = input; locked; preserveAspect; startGroup] (* CALCULATE, PRINT AND PLOT 2D CLUSTER LENGTH DATA *) scroll = 1 ;[s] 4:0,0;2,1;3,0;55,2;67,-1; 3:2,15,12,Geneva,1,12,0,0,65535;1,18,13,Geneva,17,12,65535,0,0;1,10,8,Courier,1,9,0,0,65535; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"] If [ (flag==False) || (rCluster2D rSat < rError) || (rCluster2D==1), rCluster = rCluster2D ; maxLength = maxLength2D ; clusterArray = Table [ 0, {maxLength} ] ; ligandArray = clusterArray ; printHeadings ; clusterDistribution ] ; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"] If [ (flag==False) || (rCluster2D rSat < rError) || (rCluster2D==1), Print [ "r = ", rCluster2D rSat, "; average cluster length = ", averageClusterLength ] ] ; If [ flag && (rCluster2D rSat>= rError) && (rCluster2D < 1), Print [ "r = ", rCluster2D rSat ] ; Print [ "The average cluster length could not be calculated due to a" ] ; Print [ "computational error." ] ] ; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"] twoDplot [ "fraction clusters", maxClusters, clusterArray ] ; :[font = input; locked; closed; preserveAspect; fontName = "Chicago"] twoDplot [ "fraction ligands", maxLigands, ligandArray ] ; :[font = input; locked; preserveAspect; fontName = "Chicago"; endGroup] rCluster2D :[font = input; preserveAspect; fontColorRed = 65535; fontName = "Chicago"; startGroup] rCluster2D = 0.99; maxLength2D = 6; :[font = input; inactive; locked; preserveAspect; endGroup] Note - if the values of rCluster2D (= r/rSat) and/or maxLength2D are changed and the cell assigning these values is executed, the cluster length distribution can be recalculated for the new value(s) by selecting the group of cells above this group and executing the "Action-Evaluate Selection" command (use menu or "enter" key). ;[s] 1:0,0;335,-1; 1:1,15,12,Geneva,1,12,0,0,65535; ^*)