Cells are tightly packed with structures and molecules that carry out the day-to-day operations of living. Understanding how cellular design dictates function is essential to understanding life and disease, in the brain, heart, or elsewhere. MCell (Monte Carlo cell) is a program that uses spatially realistic 3-D cellular models and specialized Monte Carlo algorithms to simulate the movements and reactions of molecules within and between cells—cellular microphysiology.
Model design, editing, and visualization are integral to microphysiological simulations. DReAMM (Design, Render, and Animate MCell Models) can be used to import and edit meshes from 3-D reconstruction and computer-aided-design software, and subsequently tailor the meshes to represent pieces of cells in MCell simulations. In addition, it is used to visualize MCell simulation results, including the locations and states of participating meshes and molecules.
[[Using These Tutorials]] . [[MainMenu]] . [[Other Tutorials|http://www.mcell.psc.edu]]
A TiddlyWiki is like a blog because it's divided up into neat little chunks, but it encourages you to read it by hyperlinking rather than sequentially: if you like, a non-linear blog analogue that binds the individual microcontent items into a cohesive whole.\n\n[[developed by JeremyRuston|http://tiddlywiki.com/]]
http://www.mcell.psc.edu
InterfaceOptions are displayed when you click the 'options' button on the right. They are saved in a cookie on your browser, making them sticky between visits. RegExpSearch allows more complex search expressions; CaseSensitiveSearch does as it's name implies. The user name for edits should be set //before// starting to edit things (ouch. another bug). AutoSave and SaveBackups give the option of automatically saving changes and whether to generate backup files. You can also choose to GenerateAnRssFeed.
PSCDX is software that is based on [[OpenDX|http://www.opendx.org/]]with added features and bug fixes. It is specifically tailored to enhance the performance of the ~DReAMM program for visualizing and editing complicated meshing objects.
A row of ToolbarButtons appears to the right of a entry title. The buttons are:\n\n * ''close'' - close the current entry\n * ''link to this entry''- puts a link direct to the current entry into the Web address (URL) bar\n * ''references'' - displays all the entries that link to the current entry
// define defaults for cookie-based option values\nif (config.options.txtTOCSortBy==undefined) config.options.txtTOCSortBy="modified";\nif (config.options.txtTOCListSize==undefined) config.options.txtTOCListSize=12;\nif (config.options.chkTOCShow==undefined) config.options.chkTOCShow=true;\n\n// define macro "tableOfContents" to render controls\nversion.extensions.tableOfContents = {major: 2, minor: 1, revision: 0, date: new Date(2005,9,6)};\nconfig.macros.tableOfContents = { label: "contents" };\n\nconfig.macros.tableOfContents.css = '\s\n.TOC { padding:0.5em 1em 0.5em 1em; }\s\n.TOC a { padding:0em 0.25em 0em 0.25em; color:inherit; }\s\n.TOCList { width: 100%; font-size:8pt; margin:0em; }\s\n';\n\nconfig.macros.tableOfContents.html = '\s\n<div style="text-align:right">\s\n <span style="float:left">\s\n <a href="JavaScript:;" id="TOCMenu" class="button" style="padding: 0em;"\s\n onclick="onClickTOCMenu(this)" title="show/hide table of contents">%label%</a>\s\n </span>\s\n <a href="JavaScript:;" id="TOCSmaller"\s\n onclick="resizeTOC(this)" title="reduce list size">&#150;</a>\s\n <a href="JavaScript:;" id="TOCLarger"\s\n onclick="resizeTOC(this)" title="increase list size">+</a>\s\n <a href="JavaScript:;" id="TOCMaximize"\s\n onclick="resizeTOC(this)" title="maximize/restore list size">=</a>\s\n</div>\s\n';\n\nconfig.macros.tableOfContents.handler = function(place,macroName,params) { \n var parsedParams = new Array();\n parsedParams['label']=this.label;\n parsedParams['inline']=false;\n while (params.length>0) {\n if (params[0]=="label:none")\n parsedParams['label']="";\n else if (params[0].substr(0,6)=="label:")\n parsedParams['label']=params[0].substr(6);\n if (params[0].substr(0,7)=="prompt:")\n parsedParams['prompt']=params[0].substr(7);\n if (params[0].substr(0,8)=="padding:")\n parsedParams['padding']=params[0].substr(8);\n if (params[0].substr(0,7)=="margin:")\n parsedParams['margin']=params[0].substr(7);\n if (params[0].substr(0,5)=="sort:")\n parsedParams['sortby']=params[0].substr(5);\n if (params[0].substr(0,5)=="date:")\n parsedParams['date']=params[0].substr(5);\n if ((params[0]=="size:auto")||(params[0]=="size:0"))\n parsedParams['autosize']=true;\n else if (params[0] && (params[0].substr(0,5)=="size:"))\n parsedParams['requestedSize']=params[0].substr(5);\n if (params[0].substr(0,6)=="width:")\n parsedParams['width']=params[0].substr(6);\n if (params[0]=="hidelist")\n parsedParams['hidelist']=true;\n if (params[0]=="showtabs")\n parsedParams['showtabs']=true;\n if (params[0]=="inline")\n parsedParams['inline']=true;\n params.shift(); \n }\n setStylesheet(config.macros.tableOfContents.css,"tableOfContents");\n var newTOC=createTiddlyElement(place,parsedParams['inline']?"span":"div",null,"TOC",null)\n if (parsedParams['margin']) { newTOC.style.margin=parsedParams['margin']; }\n if (parsedParams['padding']) { newTOC.style.padding=parsedParams['padding']; }\n if (parsedParams['label']!="") newTOC.innerHTML=config.macros.tableOfContents.html.replace(/%label%/,parsedParams['label']);\n var newTOCList=createTOCList(newTOC,parsedParams)\n refreshTOCList(newTOCList);\n document.getElementById('sidebarTabs').style.display=(parsedParams['showtabs'])?"block":"none";\n if (!store.blanketNotifications.find(reloadTOCLists))\n store.addNotification(null,reloadTOCLists); // reload listbox after every tiddler change\n}\n\n// IE needs explicit global scoping for functions/vars called from browser events\nwindow.onChangeTOCList=onChangeTOCList;\nwindow.onDblClickTOCList=onDblClickTOCList;\nwindow.reloadTOCLists=reloadTOCLists;\nwindow.refreshTOCList=refreshTOCList;\nwindow.onClickTOCMenu=onClickTOCMenu;\nwindow.resizeTOC=resizeTOC;\n \nfunction createTOCList(place,params)\n{\n var theList = createTiddlyElement(place,"select",null,"TOCList",params['prompt'])\n theList.onchange=onChangeTOCList;\n theList.ondblclick=onDblClickTOCList;\n theList.style.display=config.options.chkTOCShow ? "block" : "none" ;\n theList.sortBy=config.options.txtTOCSortBy;\n theList.dateFormat="DD MMM YYYY";\n theList.requestedSize=config.options.txtTOCListSize;\n if (params['sortby'])\n { theList.sortBy=params['sortby']; theList.noSortCookie=true; }\n if (params['date'])\n { theList.dateFormat=params['date']; }\n if (params['autosize'])\n { theList.autosize=true; theList.noSizeCookie=true; }\n if (params['requestedSize'])\n { theList.requestedSize=params['requestedSize']; theList.noSizeCookie=true; }\n if (params['width'])\n { theList.style.width=params['width']; }\n if (params['hidelist'])\n { theList.style.display ="none" ; theList.noShowCookie=true; }\n return theList;\n}\n\nfunction onChangeTOCList()\n{\n var thisTiddler=this.options[this.selectedIndex].value;\n if ((this.size==1)&&(thisTiddler!=''))\n displayTiddler(document.getElementById('sidebar'),thisTiddler,0,null,null,false);\n refreshTOCList(this);\n return false;\n}\n\nfunction onDblClickTOCList()\n{\n var thisTiddler=this.options[this.selectedIndex].value;\n if (thisTiddler!='')\n displayTiddler(document.getElementById('sidebar'),thisTiddler,0,null,null,false);\n return false;\n}\n\nfunction reloadTOCLists()\n{\n var all=document.all? document.all : document.getElementsByTagName("*");\n for (var i=0; i<all.length; i++)\n if (all[i].className=="TOCList")\n { all[i].selectedIndex=-1; refreshTOCList(all[i]); }\n}\n\nfunction refreshTOCList(theList)\n{\n var selectedIndex = theList.selectedIndex;\n if (selectedIndex==-1) selectedIndex=0;\n var sortBy = theList.sortBy;\n\n if (selectedIndex==0) sortBy=theList.sortBy; // "nnn tiddlers" heading\n if (selectedIndex==1) sortBy='title';\n if (selectedIndex==2) sortBy='modified';\n if (selectedIndex==3) sortBy='modifier';\n if (selectedIndex==4) sortBy='tags';\n if (selectedIndex==5) sortBy='missing';\n if (selectedIndex==6) sortBy='orphans';\n if (selectedIndex==7) sortBy='system';\n if (selectedIndex>7)\n {\n if (theList.options[theList.selectedIndex].value=='')\n expandTOC(theList);\n return;\n }\n theList.sortBy = sortBy;\n if (!theList.noSortCookie)\n { config.options.txtTOCSortBy=sortBy; saveOptionCookie("txtTOCSortBy"); }\n\n // get the list of tiddlers\n var tiddlers = store.getTiddlers(sortBy);\n if (sortBy=="missing") tiddlers = store.getMissingLinks();\n if (sortBy=="orphans") tiddlers = store.getOrphans();\n if (sortBy=="tags") tiddlers = store.getTags();\n if (sortBy=="system")\n {\n tiddlers=new Array();\n var temp = store.getTaggedTiddlers("systemTiddlers");\n for (var t in temp) if (temp[t].title!=undefined) tiddlers.pushUnique(temp[t].title,true);\n var temp = store.getTaggedTiddlers("systemConfig");\n for (var t in temp) if (temp[t].title!=undefined) tiddlers.pushUnique(temp[t].title,true);\n for (var t in config.shadowTiddlers) tiddlers.pushUnique(t,true);\n tiddlers.sort();\n }\n\n var indent=String.fromCharCode(160)+String.fromCharCode(160);\n\n // clear current list contents\n while (theList.length > 0) { theList.options[0] = null; }\n theList.saved=null;\n\n // add heading and control items to list\n var i=0;\n var theHeading=tiddlers.length+' tiddlers:';\n if (sortBy=='missing') theHeading=tiddlers.length+' missing tiddlers:';\n if (sortBy=='orphans') theHeading=tiddlers.length+' orphaned tiddlers:';\n if (sortBy=='tags') theHeading=tiddlers.length+' tags:';\n if (sortBy=='system') theHeading=tiddlers.length+' system tiddlers:';\n theList.options[i++]=new Option(theHeading,'',false,false);\n theList.options[i++]=new Option(((sortBy=="title" )?">":indent)+' [by title]', '',false,false);\n theList.options[i++]=new Option(((sortBy=="modified")?">":indent)+' [by date]', '',false,false);\n theList.options[i++]=new Option(((sortBy=="modifier")?">":indent)+' [by author]','',false,false);\n theList.options[i++]=new Option(((sortBy=="tags" )?">":indent)+' [by tags]', '',false,false);\n theList.options[i++]=new Option(((sortBy=="missing" )?">":indent)+' [missing]', '',false,false);\n theList.options[i++]=new Option(((sortBy=="orphans" )?">":indent)+' [orphans]', '',false,false);\n theList.options[i++]=new Option(((sortBy=="system" )?">":indent)+' [system]', '',false,false);\n // output the tiddler list\n switch(sortBy)\n {\n case "title":\n for (var t = 0; t < tiddlers.length; t++)\n theList.options[i++] = new Option(tiddlers[t].title,tiddlers[t].title,false,false);\n break;\n case "modified":\n // sort descending for newest date first\n tiddlers.sort(function (a,b) {if(a['modified'] == b['modified']) return(0); else return (a['modified'] > b['modified']) ? -1 : +1; });\n // continue with same logic as for 'modifier'...\n case "modifier":\n var lastSection = "";\n for (var t = 0; t < tiddlers.length; t++)\n {\n var tiddler = tiddlers[t];\n var theSection = "";\n if (sortBy=="modified") theSection = tiddler.modified.formatString(theList.dateFormat);\n if (sortBy=="modifier") theSection = tiddler.modifier;\n if (theSection != lastSection)\n {\n theList.options[i++] = new Option('+ '+theSection,"",false,false);\n lastSection = theSection;\n }\n theList.options[i++] = new Option(indent+indent+tiddler.title,tiddler.title,false,false);\n }\n expandTOC(theList);\n break;\n case "tags":\n // tagged tiddlers, by tag\n var lastSection = "";\n for (var t = 0; t < tiddlers.length; t++)\n {\n var theSection = tiddlers[t][0];\n var tagged = store.getTaggedTiddlers(theSection);\n if (theSection != lastSection)\n {\n theList.options[i++] = new Option('+ '+theSection+" ("+tiddlers[t][1]+")","",false,false);\n lastSection = theSection;\n }\n for(var r in tagged)\n if (tagged[r].tags!=undefined)\n theList.options[i++] = new Option(indent+indent+tagged[r].title,tagged[r].title,false,false);\n }\n // count untagged tiddlers\n tiddlers = store.getTiddlers("title");\n var c=0;\n for(var r in tiddlers) if ((tiddlers[r].tags!=undefined) && (tiddlers[r].tags.length==0)) c++;\n // create 'pseudo-tag' listing untagged tiddlers (if any)\n if (c>0)\n {\n theList.options[i++] = new Option("+ untagged ("+c+")","",false,false);\n for(var r in tiddlers)\n if ((tiddlers[r].tags!=undefined) && (tiddlers[r].tags.length==0))\n theList.options[i++] = new Option(indent+indent+tiddlers[r].title,tiddlers[r].title,false,false);\n }\n expandTOC(theList);\n break;\n case "missing":\n case "orphans":\n case "system":\n for (var t = 0; t < tiddlers.length; t++)\n theList.options[i++] = new Option(tiddlers[t],tiddlers[t],false,false);\n break;\n }\n theList.selectedIndex=selectedIndex; // select current control item\n theList.size = (theList.autosize)?theList.options.length:theList.requestedSize;\n}\n\n// show/hide branch of TOCList based on current selection\nfunction expandTOC(theList)\n{\n var selectedIndex = theList.selectedIndex;\n if (selectedIndex==-1) selectedIndex=0;\n var sortBy = theList.sortBy;\n\n // don't expand for alpha-sorted "flatlist" TOC contents\n // or list control items\n if ((sortBy=="title")||(sortBy=="missing")||(sortBy=="orphans")||(sortBy=="system"))\n return;\n if ((selectedIndex>0)&&(selectedIndex<=7))\n return;\n\n var theText = theList.options[selectedIndex].text;\n var theValue = theList.options[selectedIndex].value;\n // save fully expanded list contents (if not already saved)\n if (!theList.saved)\n {\n theList.saved = new Array();\n for (var i=0; i < theList.length; i++)\n {\n opt = theList.options[i];\n theList.saved[i] = new Option(opt.text, opt.value, opt.defaultSelected, opt.selected);\n }\n }\n // clear current list contents\n while (theList.length > 0) { theList.options[0] = null; }\n // put back heading items until item text matches current selected heading\n var i=0;\n for (var t=0; t<theList.saved.length; t++)\n {\n opt=theList.saved[t];\n if (opt.value=='')\n theList.options[i++] = new Option(opt.text,opt.value,opt.defaultSelected,opt.selected);\n if (opt.text==theText)\n break;\n }\n var selectedIndex=i-1; // this is the NEW index of the current selected heading\n // put back items with value!='' until value==''\n for ( t++; t<theList.saved.length; t++)\n {\n opt=theList.saved[t];\n if (opt.value!='')\n theList.options[i++] = new Option(opt.text,opt.value,opt.defaultSelected,opt.selected);\n if (opt.value=='')\n break;\n }\n // put back remaining items with value==''\n for ( ; t<theList.saved.length; t++)\n {\n opt=theList.saved[t];\n if (opt.value=='')\n theList.options[i++] = new Option(opt.text,opt.value,opt.defaultSelected,opt.selected);\n }\n theList.selectedIndex = selectedIndex;\n theList.size = (theList.autosize)?theList.options.length:theList.requestedSize;\n}\n\n// these functions process clicks on the 'control links' the are displayed above the listbox\nfunction getTOCListFromButton(which)\n{\n var theList = null;\n switch (which.id)\n {\n case 'TOCMenu':\n var theSiblings = which.parentNode.parentNode.parentNode.childNodes;\n var thePlace=which.parentNode.parentNode.parentNode.parentNode.parentNode.id;\n break;\n case 'TOCSmaller':\n case 'TOCLarger':\n case 'TOCMaximize':\n var theSiblings = which.parentNode.parentNode.childNodes;\n var thePlace=which.parentNode.parentNode.parentNode.parentNode.id;\n break;\n }\n for (k=0; k<theSiblings.length; k++)\n if (theSiblings[k].className=="TOCList") { theList=theSiblings[k]; break; }\n // DEBUG if (theList) alert('found '+theList.className+' for '+which.id+' button in '+thePlace);\n return theList;\n}\n\nfunction onClickTOCMenu(which)\n{\n var theList=getTOCListFromButton(which);\n if (!theList) return;\n var opening = theList.style.display=="none";\n if(config.options.chkAnimate)\n anim.startAnimating(new Slider(theList,opening,false,"none"));\n else\n theList.style.display = opening ? "block" : "none" ;\n if (!theList.noShowCookie)\n { config.options.chkTOCShow = opening; saveOptionCookie("chkTOCShow"); }\n return(false);\n}\n\nfunction resizeTOC(which)\n{\n var theList=getTOCListFromButton(which);\n if (!theList) return;\n\n var size = theList.size;\n if (theList.style.display=="none") // make sure list is visible\n if(config.options.chkAnimate)\n anim.startAnimating(new Slider(theList,true,false,"none"));\n else\n theList.style.display = "block" ;\n switch (which.id)\n {\n case 'TOCSmaller': // decrease current listbox size\n if (theList.autosize) { theList.autosize=false; size=config.options.txtTOCListSize; }\n if (size==1) break;\n size -= 1; // shrink by one line\n theList.requestedSize = theList.size = size;\n break;\n case 'TOCLarger': // increase current listbox size\n if (theList.autosize) { theList.autosize=false; size=config.options.txtTOCListSize; }\n if (size>=theList.options.length) break;\n size += 1; // grow by one line\n theList.requestedSize = theList.size = size;\n break;\n case 'TOCMaximize': // toggle autosize\n theList.autosize = (theList.size!=theList.options.length);\n theList.size = (theList.autosize)?theList.options.length:theList.requestedSize;\n break;\n }\n if (!theList.noSizeCookie && !theList.autosize)\n { config.options.txtTOCListSize=size; saveOptionCookie("txtTOCListSize"); }\n}\n
config.shadowTiddlers.SideBarOptions = config.shadowTiddlers.SideBarOptions.replace(\n /gradient vert #...... #....../,\n "gradient vert #447744 #88aa88"\n );\n
// Eric Shulman - ELS Design Studios\n// Table of Contents Plug-in for TiddlyWiki version 1.2.29 or above\n\n// define defaults for cookie-based option values\nif (config.options.txtTOCSortBy==undefined) config.options.txtTOCSortBy="modified";\nif (config.options.txtTOCListSize==undefined) config.options.txtTOCListSize=12;\nif (config.options.chkTOCShow==undefined) config.options.chkTOCShow=true;\n\n// define macro "tableOfContents" to render controls\nversion.extensions.tableOfContents = {major: 2, minor: 0, revision: 0, date: new Date(2005,8,7)};\nconfig.macros.tableOfContents = { label: "contents" };\n\nconfig.macros.tableOfContents.css = '\s\n.TOC { padding:0.5em 1em 0.5em 1em; }\s\n.TOC a { padding:0em 0.25em 0em 0.25em; color:inherit; }\s\n.TOCList { width: 100%; font-size:8pt; margin:0em; }\s\n';\n\nconfig.macros.tableOfContents.html = '\s\n<div style="text-align:right">\s\n <span style="float:left">\s\n <a href="JavaScript:;" id="TOCMenu" class="button" style="padding: 0em;"\s\n onclick="onClickTOCMenu(this)" title="show/hide table of contents">%label%</a>\s\n </span>\s\n <a href="JavaScript:;" id="TOCSmaller"\s\n onclick="resizeTOC(this)" title="reduce list size">&#150;</a>\s\n <a href="JavaScript:;" id="TOCLarger"\s\n onclick="resizeTOC(this)" title="increase list size">+</a>\s\n <a href="JavaScript:;" id="TOCMaximize"\s\n onclick="resizeTOC(this)" title="maximize/restore list size">=</a>\s\n</div>\s\n';\n\nconfig.macros.tableOfContents.handler = function(place,macroName,params) { \n setStylesheet(config.macros.tableOfContents.css,"tableOfContents");\n var newTOC=createTiddlyElement(place,"div",null,"TOC",null)\n var theLabel=this.label;\n if (params[0] && (params[0].substr(0,6)=="label:")) theLabel=(params.shift()).substr(6);\n newTOC.innerHTML=config.macros.tableOfContents.html.replace(/%label%/,theLabel);\n refreshTOCList(createTOCList(newTOC,params));\n document.getElementById('sidebarTabs').style.display=(params[0]=="showtabs")?"block":"none";\n if (!store.blanketNotifications.find(reloadTOCLists))\n store.addNotification(null,reloadTOCLists); // reload listbox after every tiddler change\n}\n\n// IE needs explicit global scoping for functions/vars called from browser events\nwindow.onChangeTOCList=onChangeTOCList;\nwindow.onDblClickTOCList=onDblClickTOCList;\nwindow.reloadTOCLists=reloadTOCLists;\nwindow.refreshTOCList=refreshTOCList;\nwindow.onClickTOCMenu=onClickTOCMenu;\nwindow.resizeTOC=resizeTOC;\n \nfunction createTOCList(place,params)\n{\n var theList = createTiddlyElement(place,"select",null,"TOCList",null)\n theList.onchange=onChangeTOCList;\n theList.ondblclick=onDblClickTOCList;\n theList.style.display=config.options.chkTOCShow ? "block" : "none" ;\n theList.sortBy=config.options.txtTOCSortBy;\n theList.dateFormat="DD MMM YYYY";\n theList.requestedSize=config.options.txtTOCListSize;\n if (params[0] && (params[0].substr(0,5)=="sort:"))\n { theList.sortBy=(params.shift()).substr(5); theList.noSortCookie=true; }\n if (params[0] && (params[0].substr(0,5)=="date:"))\n { theList.dateFormat=(params.shift()).substr(5); }\n if ((params[0]=="size:auto")||(params[0]=="size:0"))\n { theList.autosize=true; params.shift(); theList.noSizeCookie=true; }\n if (params[0] && (params[0].substr(0,5)=="size:"))\n { theList.requestedSize=(params.shift()).substr(5); theList.noSizeCookie=true; }\n if (params[0] && (params[0].substr(0,6)=="width:"))\n { theList.style.width=(params.shift()).substr(6); }\n if (params[0]=="hidelist")\n { theList.style.display ="none" ; params.shift(); theList.noShowCookie=true; }\n return theList;\n}\n\nfunction onChangeTOCList()\n{\n var thisTiddler=this.options[this.selectedIndex].value;\n if ((this.size==1)&&(thisTiddler!=''))\n displayTiddler(document.getElementById('sidebar'),thisTiddler,0,null,null,false);\n refreshTOCList(this);\n return false;\n}\n\nfunction onDblClickTOCList()\n{\n var thisTiddler=this.options[this.selectedIndex].value;\n if (thisTiddler!='')\n displayTiddler(document.getElementById('sidebar'),thisTiddler,0,null,null,false);\n return false;\n}\n\nfunction reloadTOCLists()\n{\n var all=document.all? document.all : document.getElementsByTagName("*");\n for (var i=0; i<all.length; i++)\n if (all[i].className=="TOCList")\n { all[i].selectedIndex=-1; refreshTOCList(all[i]); }\n}\n\nfunction refreshTOCList(theList)\n{\n var selectedIndex = theList.selectedIndex;\n if (selectedIndex==-1) selectedIndex=0;\n var sortBy = theList.sortBy;\n\n if (selectedIndex==0) sortBy=theList.sortBy; // "nnn tiddlers" heading\n if (selectedIndex==1) sortBy='title';\n if (selectedIndex==2) sortBy='modified';\n if (selectedIndex==3) sortBy='modifier';\n if (selectedIndex==4) sortBy='tags';\n if (selectedIndex==5) sortBy='missing';\n if (selectedIndex==6) sortBy='orphans';\n if (selectedIndex==7) sortBy='system';\n if (selectedIndex>7)\n {\n if (theList.options[theList.selectedIndex].value=='')\n expandTOC(theList);\n return;\n }\n theList.sortBy = sortBy;\n if (!theList.noSortCookie)\n { config.options.txtTOCSortBy=sortBy; saveOptionCookie("txtTOCSortBy"); }\n\n // get the list of tiddlers\n var tiddlers = store.getTiddlers(sortBy);\n if (sortBy=="missing") tiddlers = store.getMissingLinks();\n if (sortBy=="orphans") tiddlers = store.getOrphans();\n if (sortBy=="tags") tiddlers = store.getTags();\n if (sortBy=="system")\n {\n tiddlers=new Array();\n var temp = store.getTaggedTiddlers("systemTiddlers");\n for (var t in temp) if (temp[t].title!=undefined) tiddlers.pushUnique(temp[t].title,true);\n var temp = store.getTaggedTiddlers("systemConfig");\n for (var t in temp) if (temp[t].title!=undefined) tiddlers.pushUnique(temp[t].title,true);\n for (var t in config.shadowTiddlers) tiddlers.pushUnique(t,true);\n tiddlers.sort();\n }\n\n var indent=String.fromCharCode(160)+String.fromCharCode(160);\n\n // clear current list contents\n while (theList.length > 0) { theList.options[0] = null; }\n theList.saved=null;\n\n // add heading and control items to list\n var i=0;\n var theHeading=tiddlers.length+' tiddlers:';\n if (sortBy=='missing') theHeading=tiddlers.length+' missing tiddlers:';\n if (sortBy=='orphans') theHeading=tiddlers.length+' orphaned tiddlers:';\n if (sortBy=='tags') theHeading=tiddlers.length+' tags:';\n if (sortBy=='system') theHeading=tiddlers.length+' system tiddlers:';\n theList.options[i++]=new Option(theHeading,'',false,false);\n theList.options[i++]=new Option(((sortBy=="title" )?">":indent)+' [by title]', '',false,false);\n theList.options[i++]=new Option(((sortBy=="modified")?">":indent)+' [by date]', '',false,false);\n theList.options[i++]=new Option(((sortBy=="modifier")?">":indent)+' [by author]','',false,false);\n theList.options[i++]=new Option(((sortBy=="tags" )?">":indent)+' [by tags]', '',false,false);\n theList.options[i++]=new Option(((sortBy=="missing" )?">":indent)+' [missing]', '',false,false);\n theList.options[i++]=new Option(((sortBy=="orphans" )?">":indent)+' [orphans]', '',false,false);\n theList.options[i++]=new Option(((sortBy=="system" )?">":indent)+' [system]', '',false,false);\n // output the tiddler list\n switch(sortBy)\n {\n case "title":\n for (var t = 0; t < tiddlers.length; t++)\n theList.options[i++] = new Option(tiddlers[t].title,tiddlers[t].title,false,false);\n break;\n case "modified":\n // sort descending for newest date first\n tiddlers.sort(function (a,b) {if(a['modified'] == b['modified']) return(0); else return (a['modified'] > b['modified']) ? -1 : +1; });\n // continue with same logic as for 'modifier'...\n case "modifier":\n var lastSection = "";\n for (var t = 0; t < tiddlers.length; t++)\n {\n var tiddler = tiddlers[t];\n var theSection = "";\n if (sortBy=="modified") theSection = tiddler.modified.formatString(theList.dateFormat);\n if (sortBy=="modifier") theSection = tiddler.modifier;\n if (theSection != lastSection)\n {\n theList.options[i++] = new Option('+ '+theSection,"",false,false);\n lastSection = theSection;\n }\n theList.options[i++] = new Option(indent+indent+tiddler.title,tiddler.title,false,false);\n }\n expandTOC(theList);\n break;\n case "tags":\n // tagged tiddlers, by tag\n var lastSection = "";\n for (var t = 0; t < tiddlers.length; t++)\n {\n var theSection = tiddlers[t][0];\n var tagged = store.getTaggedTiddlers(theSection);\n if (theSection != lastSection)\n {\n theList.options[i++] = new Option('+ '+theSection+" ("+tiddlers[t][1]+")","",false,false);\n lastSection = theSection;\n }\n for(var r in tagged)\n if (tagged[r].tags!=undefined)\n theList.options[i++] = new Option(indent+indent+tagged[r].title,tagged[r].title,false,false);\n }\n // count untagged tiddlers\n tiddlers = store.getTiddlers("title");\n var c=0;\n for(var r in tiddlers) if ((tiddlers[r].tags!=undefined) && (tiddlers[r].tags.length==0)) c++;\n // create 'pseudo-tag' listing untagged tiddlers (if any)\n if (c>0)\n {\n theList.options[i++] = new Option("+ untagged ("+c+")","",false,false);\n for(var r in tiddlers)\n if ((tiddlers[r].tags!=undefined) && (tiddlers[r].tags.length==0))\n theList.options[i++] = new Option(indent+indent+tiddlers[r].title,tiddlers[r].title,false,false);\n }\n expandTOC(theList);\n break;\n case "missing":\n case "orphans":\n case "system":\n for (var t = 0; t < tiddlers.length; t++)\n theList.options[i++] = new Option(tiddlers[t],tiddlers[t],false,false);\n break;\n }\n theList.selectedIndex=selectedIndex; // select current control item\n theList.size = (theList.autosize)?theList.options.length:theList.requestedSize;\n}\n\n// show/hide branch of TOCList based on current selection\nfunction expandTOC(theList)\n{\n var selectedIndex = theList.selectedIndex;\n if (selectedIndex==-1) selectedIndex=0;\n var sortBy = theList.sortBy;\n\n // don't expand for alpha-sorted "flatlist" TOC contents\n // or list control items\n if ((sortBy=="title")||(sortBy=="missing")||(sortBy=="orphans")||(sortBy=="system"))\n return;\n if ((selectedIndex>0)&&(selectedIndex<=7))\n return;\n\n var theText = theList.options[selectedIndex].text;\n var theValue = theList.options[selectedIndex].value;\n // save fully expanded list contents (if not already saved)\n if (!theList.saved)\n {\n theList.saved = new Array();\n for (var i=0; i < theList.length; i++)\n {\n opt = theList.options[i];\n theList.saved[i] = new Option(opt.text, opt.value, opt.defaultSelected, opt.selected);\n }\n }\n // clear current list contents\n while (theList.length > 0) { theList.options[0] = null; }\n // put back heading items until item text matches current selected heading\n var i=0;\n for (var t=0; t<theList.saved.length; t++)\n {\n opt=theList.saved[t];\n if (opt.value=='')\n theList.options[i++] = new Option(opt.text,opt.value,opt.defaultSelected,opt.selected);\n if (opt.text==theText)\n break;\n }\n var selectedIndex=i-1; // this is the NEW index of the current selected heading\n // put back items with value!='' until value==''\n for ( t++; t<theList.saved.length; t++)\n {\n opt=theList.saved[t];\n if (opt.value!='')\n theList.options[i++] = new Option(opt.text,opt.value,opt.defaultSelected,opt.selected);\n if (opt.value=='')\n break;\n }\n // put back remaining items with value==''\n for ( ; t<theList.saved.length; t++)\n {\n opt=theList.saved[t];\n if (opt.value=='')\n theList.options[i++] = new Option(opt.text,opt.value,opt.defaultSelected,opt.selected);\n }\n theList.selectedIndex = selectedIndex;\n theList.size = (theList.autosize)?theList.options.length:theList.requestedSize;\n}\n\n// these functions process clicks on the 'control links' the are displayed above the listbox\nfunction getTOCListFromButton(which)\n{\n var theList = null;\n switch (which.id)\n {\n case 'TOCMenu':\n var theSiblings = which.parentNode.parentNode.parentNode.childNodes;\n var thePlace=which.parentNode.parentNode.parentNode.parentNode.parentNode.id;\n break;\n case 'TOCSmaller':\n case 'TOCLarger':\n case 'TOCMaximize':\n var theSiblings = which.parentNode.parentNode.childNodes;\n var thePlace=which.parentNode.parentNode.parentNode.parentNode.id;\n break;\n }\n for (k=0; k<theSiblings.length; k++)\n if (theSiblings[k].className=="TOCList") { theList=theSiblings[k]; break; }\n // DEBUG if (theList) alert('found '+theList.className+' for '+which.id+' button in '+thePlace);\n return theList;\n}\n\nfunction onClickTOCMenu(which)\n{\n var theList=getTOCListFromButton(which);\n if (!theList) return;\n var opening = theList.style.display=="none";\n if(config.options.chkAnimate)\n anim.startAnimating(new Slider(theList,opening,false,"none"));\n else\n theList.style.display = opening ? "block" : "none" ;\n if (!theList.noShowCookie)\n { config.options.chkTOCShow = opening; saveOptionCookie("chkTOCShow"); }\n return(false);\n}\n\nfunction resizeTOC(which)\n{\n var theList=getTOCListFromButton(which);\n if (!theList) return;\n\n var size = theList.size;\n if (theList.style.display=="none") // make sure list is visible\n if(config.options.chkAnimate)\n anim.startAnimating(new Slider(theList,true,false,"none"));\n else\n theList.style.display = "block" ;\n switch (which.id)\n {\n case 'TOCSmaller': // decrease current listbox size\n if (theList.autosize) { theList.autosize=false; size=config.options.txtTOCListSize; }\n if (size==1) break;\n size -= 1; // shrink by one line\n theList.requestedSize = theList.size = size;\n break;\n case 'TOCLarger': // increase current listbox size\n if (theList.autosize) { theList.autosize=false; size=config.options.txtTOCListSize; }\n if (size>=theList.options.length) break;\n size += 1; // grow by one line\n theList.requestedSize = theList.size = size;\n break;\n case 'TOCMaximize': // toggle autosize\n theList.autosize = (theList.size!=theList.options.length);\n theList.size = (theList.autosize)?theList.options.length:theList.requestedSize;\n break;\n }\n if (!theList.noSizeCookie && !theList.autosize)\n { config.options.txtTOCListSize=size; saveOptionCookie("txtTOCListSize"); }\n}\n
<<search>><<closeAll>><<permaview>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel options 'Change TiddlyWiki advanced options'>>\n<<tableOfContents>>
\n// //''Code section:''\n// //Webview settings (edit the following with true (enable) or false (disable) according to how the page should look from the web)\nvar wvShowNewTiddler = false; // //''affects all "new tidder" macro links''\nvar wvShowNewJournal = false; // //''affects all "new journal" macro links''\nvar wvDblClickToEdit = false; // //''enables/disables the "double-click to edit a tiddler" feature''\nvar wvShowClose = true; // //''show/hide toolbar close buttons''\nvar wvShowEdit = false; // //''show/hide toolbar edit buttons''\nvar wvShowPermalink = true; // //''show/hide toolbar permalink buttons''\nvar wvShowReferences = true; // //''show/hide toolbar references buttons''\nvar wvShowTags = false; // //''show/hide tiddler tag footers''\nvar wvShowTabs = true; // //''show/hide sidebar tabs entirely (you can also customize them below)''\n\n// //Alternate versions of SideBar, Options, AdvancedOptions, SideBarTabs, and MoreTab\nconfig.shadowTiddlers.wvSideBarOptions = "<<search>><<closeAll>><<newTiddler>><<slider chkSliderOptionsPanel OptionsPanel options 'Change TiddlyWiki advanced options'>><<tableOfContents>>";\n\nconfig.shadowTiddlers.wvOptionsPanel = "These InterfaceOptions for customising TiddlyWiki are saved in your browser\sn<<option chkRegExpSearch>> RegExpSearch\sn<<option chkCaseSensitiveSearch>> CaseSensitiveSearch\sn<<option chkAnimate>> EnableAnimations\sn\sn";\n\n\nconfig.shadowTiddlers.wvSideBarTabs = "<<tabs txtMainTab Recent Timeline TabTimeline Index 'All tiddlers' TabMoreAll>>";\n\nconfig.shadowTiddlers.wvTabMore = "<<tabs txtMoreTab Tags 'All tags' TabTags Missing 'Missing tiddlers' TabMoreMissing Orphans 'Orphaned tiddlers' TabMoreOrphans>>";\n\n\n// //''Actual code section (no need to edit below this line for most users)''\n// //------------------------------------------------------------------------------\nversion.extensions.webview = {major: 0, minor: 1, revision: 1, date: new Date(2005,8,10)};\n// Identify special tiddlers to intercept\nvar wvShadowTiddlers = ["SideBarOptions","OptionsPanel","AdvancedOptions","SideBarTabs","TabMore"];\n\n// Determine if the page is being loaded locally or from the web\nvar docPath = document.location.toString().substring(0,document.location.toString().indexOf(":"));\nif(docPath == "file")\n var inWebView = false;\nelse\n var inWebView = true;\n\n// Hijack the newTiddler function\nconfig.macros.newTiddler.handler_orig_webView = config.macros.newTiddler.handler;\nconfig.macros.newTiddler.handler = function(place,macroName,params)\n{\n if (!inWebView || wvShowNewTiddler)\n config.macros.newTiddler.handler_orig_webView(place,macroName,params);\n}\n\n// Hijack the newJournal function\nconfig.macros.newJournal.handler_orig_webView = config.macros.newJournal.handler;\nconfig.macros.newJournal.handler = function(place,macroName,params)\n{\n if (!inWebView || wvShowNewJournal)\n config.macros.newJournal.handler_orig_webView(place,macroName,params);\n}\n\n// Replace "double-click to edit" function\nwindow.onDblClickTiddler_orig_webView = window.onDblClickTiddler;\nwindow.onDblClickTiddler = function(e) {\nif(!inWebView || wvDblClickToEdit)\n {\n clearMessage();\n if(document.selection)\n document.selection.empty();\n var tiddler;\n if(this.id.substr(0,7) == "tiddler")\n tiddler = this.id.substr(7);\n if(tiddler)\n displayTiddler(null,tiddler,2,null,null,false,false);\n }\n}\n\n// Hijack the createTiddlerToolbar function\nwindow.createTiddlerToolbar_orig_webView = window.createTiddlerToolbar;\nwindow.createTiddlerToolbar = function(title,isEditor)\n{\n var theToolbar = document.getElementById("toolbar" + title);\n var lingo = config.views;\n if(theToolbar)\n {\n removeChildren(theToolbar);\n insertSpacer(theToolbar);\n if(isEditor)\n {\n // Editor toolbar\n lingo = lingo.editor;\n createTiddlyButton(theToolbar,lingo.toolbarDone.text,lingo.toolbarDone.tooltip,onClickToolbarSave);\n insertSpacer(theToolbar);\n createTiddlyButton(theToolbar,lingo.toolbarCancel.text,lingo.toolbarCancel.tooltip,onClickToolbarUndo);\n insertSpacer(theToolbar);\n createTiddlyButton(theToolbar,lingo.toolbarDelete.text,lingo.toolbarDelete.tooltip,onClickToolbarDelete);\n }\n else\n {\n // Viewer toolbar\n lingo = lingo.wikified;\n if(!inWebView || wvShowClose)\n {\n createTiddlyButton(theToolbar,lingo.toolbarClose.text,lingo.toolbarClose.tooltip,onClickToolbarClose);\n insertSpacer(theToolbar);\n }\n if(!inWebView || wvShowEdit)\n {\n createTiddlyButton(theToolbar,lingo.toolbarEdit.text,lingo.toolbarEdit.tooltip,onClickToolbarEdit);\n insertSpacer(theToolbar);\n }\n if(!inWebView || wvShowPermalink)\n {\n createTiddlyButton(theToolbar,lingo.toolbarPermalink.text,lingo.toolbarPermalink.tooltip,onClickToolbarPermaLink);\n insertSpacer(theToolbar);\n }\n if(!inWebView || wvShowReferences)\n {\n createTiddlyButton(theToolbar,lingo.toolbarReferences.text,lingo.toolbarReferences.tooltip,onClickToolbarReferences);\n }\n }\n insertSpacer(theToolbar);\n }\n}\n\n// Hijack the createTiddlerFooter function\nwindow.createTiddlerFooter_orig_webView = window.createTiddlerFooter;\nwindow.createTiddlerFooter = function(title,isEditor)\n{\n if(!inWebView || wvShowTags)\n createTiddlerFooter_orig_webView(title,isEditor);\n}\n\n// sideBar, options, and tab settings code\n// Hijack the getTiddlerText prototype function\nTiddlyWiki.prototype.getTiddlerText_orig_webView = TiddlyWiki.prototype.getTiddlerText;\nTiddlyWiki.prototype.getTiddlerText = function(title,defaultText)\n{\n if(inWebView && (wvShadowTiddlers.join("~").match(title) == title))\n {\n defaultText = store.getTiddlerText_orig_webView(title,defaultText);\n var tiddlerText = store.getTiddlerText_orig_webView("wv"+title,defaultText);\n }\n else\n var tiddlerText = store.getTiddlerText_orig_webView(title,defaultText);\n return tiddlerText;\n}\n// Reset the getTiddlerText function for the current store\nstore.getTiddlerText = TiddlyWiki.prototype.getTiddlerText;\n// SideBarTabs show/hide code\n// Remove the old refreshTabs function from notifyTiddlers & store notifications\nfor(t=0; t<config.notifyTiddlers.length; t++)\n if(config.notifyTiddlers[t] == window.refreshTabs)\n config.notifyTiddlers.splice(t,1);\n// Hijack the refreshTabs function\nwindow.refreshTabs_orig_webView = window.refreshTabs;\nwindow.refreshTabs = function(hint)\n{\n if(!inWebView || wvShowTabs)\n refreshTabs_orig_webView(hint);\n else\n document.getElementById("sidebarTabs").style.display = "none";\n}\n// Add our new refreshTabs function to the notifyTiddlers list & store notifications\nconfig.notifyTiddlers.push(refreshTabs());\nstore.addNotification(null,refreshTabs);\n
Please help us improve this site by answering these questions.\n\n__''Web Site Evaluation''__\n\n1. What Web browser are you using?\n[] Microsoft Internet Explorer\n[] Safari\n[] Mozilla/Firefox\n[] Opera\n[] Netscape\n[] Konquerer\n[] Lynx\n[] Other\n\n2. What operating system are you using?\n[] Microsoft Windows 2000, NT, ME, or XP\n[] Apple/Macintosh\n[] Linux/UNIX\n[] BSD\n[] Solaris\n[] AOL\n[] Other\n\n3. Did you have any problems accessing or loading the Web site?\n[] No\n[] Yes\n[ Explain ]\n\n4. What was the first link you clicked on?\n[ ]\n\n5. Do you feel that the tutorials are easy to navigate?\n[] No\n[] Yes\n[ Explain ]\n\n6. Did you experience any problems downloading files?\n[] No\n[] Yes\n[ Explain ]\n\n__''Tutorials Evaluation''__\n\n7. Which tutorials have you completed?\n[checklist of tutorials]\n\n8. Were the objectives for the tutorial clear and concise?\n[] Yes\n[] No\n[ If not, why? ]\n \n9. Did you feel that the language was clear and helpful to your understanding of the material?\n[] Yes\n[] No\n[ If not, why? ]\n\n10. Before reading the tutorial(s), were you less confident or more confident in using MCell and DReAMM for microphysiology simulations? Explain your answer.\n[] No\n[] Yes\n[ Explain ]\n\n11. What did you find to be MOST challenging?\n[ ]\n\n12. What did you like LEAST about these tutorials (including content and format)?\n[ ]\n\n13. Is there anything we can do to improve these tutorials and/or further support your understanding of microphysiological simulations?\n[ ]\n\n14. Overall, how satisfied are you in using these online microphysiological tutorials?\n[] Very satisfied\n[] Satisfied\n[] Neutral\n[] Dissatisfied\n[] Very dissatisfied \n\n15. Any additional comments?\n[ ]
[img[img|tutimg/DReAMM_flow_chart.gif]]
[[Using These Tutorials]]
//MCell// & //DReAMM// Tutorials
Sorry, this tutorial does not exist yet!\n\nPlease check back for updates.
/*====================Main Menu Left Navigation=======*/\n\n#mainMenu {\n position: static;\n left: 0em;\n float: left;\n display: block;\n width: 12em;\n line-height: 150%;\n padding: 0.5em 0.5em 0.5em 0.5em;\n font-size: 9pt;\n color: black;\n text-align: right;\n}\n\n#mainMenu .tiddlyLink {\n color: #3366cc;\n font-weight: bold;\n}\n\n#mainMenu .tiddlyLink:hover {\n background-color: #B1DCEF;\n}\n\n#mainMenu .externalLink {\n color: #3366cc;\n text-decoration: underline;\n}\n\n#mainMenu .externalLink:hover {\n background-color: #B1DCEF;\n}\n\n#mainMenu .button {\n color: #C1D399;\n margin: 0em 0.25em 0em 0.25em;\n padding: 0em 0.25em 0em 0.25em;\n background-color: #FFF;\n border-right: 1px solid #999;\n border-bottom: 1px solid #999;\n}\n\n#mainMenu .button:hover {\n color: #FFFFFF;\n background-color: #C1D399;\n}\n\n.viewer pre, .viewer code {\n color:#040;\n font-family:'lucida console',monospace;\n border-style:none;\n line-height:1.2em;\n}\n\n.viewer pre {\n padding:1em;\n font-size:90%;\n background-color:#f8f8f8;\n}\n\n#sidebarOptions .sliderPanel {\n background-color: #9b9;\n}\n\n#sidebarOptions .button {\n color: #999;\n padding: 0.3em 0.2em 0.3em 1em;\n display: block;\n}\n\n#sidebarOptions .button:hover {\n color: #999;\n background-color: #B1DCEF;\n}\n\n#sidebarOptions .button:active {\n color: #CFC9BC;\n background-color: #EEE;\n}\n\n#sidebarOptions .sliderPanel .tiddlyLink {color:#242;}\n#sidebarOptions .sliderPanel .tiddlyLink:hover {color:#242; background:#dfd;}\n\n#sidebarTabs .tabContents { overflow:visible; white-space:normal; width:auto; }\n\ndiv#mainmenu hr {margin:0px;padding:0px;padding-top:10px;\n border-style:none;\n border-width:1px;\n border-color:#ccc;\n border-bottom-style:solid;\n}\n\n/* color scheme ruling begin */ \ndiv#titleLine { background: #333; url(wikishad.gif);}\ndiv#sidebarOptions { background:#696; }\ndiv#sidebarOptions .button { color:#eef;}\ndiv#sidebarOptions .button:hover { color:#fff; background:#252;}\ndiv#mainmenu .tiddlyLink { font-weight:bold;color:#369; }\ndiv#mainmenu .tiddlyLink:hover { background:#369;color:white; }\ndiv#mainmenu .button { font-weight:bold; color:#363; }\ndiv#mainmenu .button:hover { background:#363;color:white; }\ndiv.viewer a.tiddlyLink { color:#009966; }\ndiv.viewer a.tiddlyLink:hover { color:#ffffff; background:#aec650; }\ndiv.footer a.tiddlyLink { color:#369; }\ndiv.footer a.tiddlyLink:hover { background:#acd; }\n.editorFooter a.button, .tiddler .button { color: #369; background:#eee; }\n.editorFooter a.button:hover, .tiddler .button:hover { color: #fff; background: #369; }\n.editorFooter a.button:active, .tiddler .button:active { color: #fff; background: #369; }\n.editorFooter a:link { color: #369; } \n#popup {color:#eee; background:#369;}\n#popup a {color:#fff; background:#369; }\n#popup a:hover {color:black; background:#eee;}\n#mainMenu .externalLink { color:#252; }\n#mainMenu .externalLink:hover { color:white;background:#696; }\n.tiddler .externalLink { color:#009966; }\n.tiddler .externalLink:visited { color:#009966; }\n.tiddler .externalLink:hover { color:#ccffcc; background:#aec650; }\n.viewer a:link { color: #009966; } \n.viewer a:visited { color: #009966; } \n.viewer a:hover { color:#ffffff; background:#aec650; }\n#titleLine a {color:white; font-size: 26pt; text-align: right;}\n#siteTitle { font-size: 38px; text-align: right;}\n\n.viewer .tabSelected {background-color: white;font-weight:bold; border:solid 2px #ddd;border-bottom-color:white;}\n.viewer .tabContents {background-color: white; border:solid 2px #ddd;}\n.viewer .tabset {background-color:white;}\n.viewer .tabUnselected {color:#999;background-color:#ddd;}\n.viewer blockquote { font-size: 10pt; line-height: 150%; border: none; text-align: center; }\n\n#sidebarTabs {\n background-color: #eee;\nmargin-right:2px;\n}\n\n#sidebarTabs .tabSelected {\n color: #999;\n background-color: #ECF8FD;\n position: relative;\n top: -1px;\n}\n\n#sidebarTabs .tabUnselected {\n color: #999;\n background-color: #F5F5F5;\n}\n\n#sidebarTabs .tabContents {\n background-color: #ECF8FD;\nmargin-right: 10px;\n}\n\n#sidebarTabs .txtMoreTab .tabSelected {\n background-color: #F5F5F5;\n}\n\n#sidebarTabs .txtMoreTab .tabUnselected {\n background-color: #ECF8FD;\n}\n\n#sidebarTabs .txtMoreTab .tabContents {\n background-color: #F5F5F5;\n}\n\n#sidebarTabs .tabContents .tiddlyLink {\n color: #6999C9;\n}\n\n#sidebarTabs .tabContents .tiddlyLink:hover {\n background-color: #ECF8FD;\n color: #330000;\n}\n\n#sidebarTabs .tabContents .button {\n color: #6999C9;\n padding: 0em 0em 0em 0em;\n display: inline;\n}\n\n#sidebarTabs .tabContents .button:hover {\n color: #999;\n background-color: #ECF8FD;\n}\n\n/* color scheme end....for now anyway*/\n\n#displayArea {\n margin-right: 15.5em;\n margin-left: 13em;\n}\n\n// this works great in firefox but breaks something with ie. What the heck?\n.toolbar {\n text-align: right;\n font-weight: normal;\n font-size: 8pt;\n padding: 0em 0em 0em 2em;\n color: #aaaaaa;\n visibility: visible;\n}\n\n.toolbar #popup {\n text-align: left;\n visibility: visible;\n}\n\n.selectedTiddler .toolbar {\n visibility: visible;\n}\n\n.viewer hr {\n border-top: dashed 1px #606060;\n border-left: none;\n border-right: none;\n border-bottom: none;\n height: 1px;\n color: #666666;\n}\n\n.viewer h1,\n.viewer h2,\n.viewer h3,\n.viewer h4,\n.viewer h5 { font-family: 'Trebuchet MS' Arial sans-serif; background:#f8f8f8; }\n\n.viewer h1 { font-size:1.2em; }\n.viewer h2 { font-size:1.1em; }\n.viewer h3 { font-size:1.0em; }\n.viewer h4 { font-size:0.9em; }\n.viewer h5 { font-size:0.8em; }\n\nbody {\n background:#eee;\n}\n\n#bodydashboard {\nbackground-color: #f4f4f4;\nborder: solid 2px #EEE;\n}\n\n#tiddlerdashboard .selectedTiddler {\nborder: solid 0px #FFF;\n}\n\n#tiddlerdashboard .unselectedTiddler {\nborder: 0px solid #FFF;\n}\n\ndiv.tiddler {\n background:white;\n border-top:solid #ccc 2px;\n border-left:solid #ccc 2px;\n border-bottom:solid #aaa 2px;\n border-right:solid #aaa 2px;\n margin-bottom:5px;\n padding-bottom:10px;\n}\n\n\ndiv.title {\n font-family:'Trebuchet MS' Arial sans-serif;\n font-size:150%;\n}\n\ndiv.editor input,\ndiv.editor textarea {\n background:#ffe;\n border:solid #aa9 2px;\n margin:4px;\n}\n\n@media print {\n div.tiddler {border:none white 0px; border-top:solid #bbb 1px;}\n div.tagged {border:none white 0px;}\n #titleLine { display:none; }\n #displayArea { margin-right: 0px; margin-left: 0px; }\n .toolbar { display:none; }\n div#adsense { display:none; }\n}\n\n
These tutorials comprise a Web-based repository (wiki) of theory and practice for microphysiological models simulated with MCell & DReAMM. All of our available tutorials are listed in the left column.\n\nThe [[TiddlyWiki]] framework allows tutorial sections to be displayed in any order. Each section’s content is displayed as a wiki entry, eliminating numerous forward and backward links. Underlying concepts and procedures are presented step-by-step so newcomers can begin running and designing complex simulations quickly. Expert users can jump to desired technical details and reference information.\n\nQuick internal links are the core of this [[TiddlyWiki]] interface. Each entry opens and closes separately, but each tutorial is ''all one file'', most of which starts out hidden.\n\nBrowsing Tips:\n* [[Links Like This|Using These Tutorials]] show other entries on the page; a [[plain green link|http://www.mcell.psc.edu]] points elsewhere on the Web.\n* Use the ToolbarButtons at the top right of each entry to close the entry, display other entries that reference it, or create a link to it in your Web address (URL) field.\n* The search bar at top right reaches quickly into all entries, open or closed.\n* Any link can also be used to re-hide its target by clicking with cmd (Mac) or Ctrl (Win) key down.\n\nThe main headings include:\n\n|bgcolor(#f4f4f4):Overview:|For the most part, each tutorial builds upon the scientific and procedural groundwork of the previous tutorials. The Overview provides a brief summary of the current tutorial, explaining where it fits in the series, and what scientific and technical points are covered. |\n|bgcolor(#f4f4f4):Objectives:|This section includes a list of conceptual and technical objectives, i.e., targeted learning goals for software-specific technical procedures and validation of results. |\n|bgcolor(#f4f4f4):Prerequisites:|An outline of required knowledge, including scientific theories and terms as well as software-specific procedures. Scientific material covered in previous tutorials is available through links, while material new to the current tutorial is available in the subsequent section (Scientific Theory & Background). Links are also included for previously covered procedures. |\n|bgcolor(#f4f4f4):Scientific Theory & Background:|Necessary theoretical information not covered previously is available here. Users who are unfamiliar with any of the Prerequisites should read and understand this section. |\n|bgcolor(#f4f4f4):Procedures:|This section provides a step-by-step schema to complete the tutorial. MCell and DReAMM steps are interwoven to best illustrate combined use of the two programs.|\n|bgcolor(#f4f4f4):Project Files:|These are files required for the current tutorial. Examples include input files for the MCell simulations, DReAMM configuration and custom settings files, and [[PSCDX]] configuration files. MCell input files are written in a specialized programming language (Model Description Language, MDL) that differs somewhat for MCell versions 2.x and 3.x. DReAMM files also differ for versions 2.x and 3.x. |\n|bgcolor(#f4f4f4):Evaluation Form:|Please provide us with feedback on tutorial content, ease-of-use, and overall effectiveness. |\nThe content in this wiki is developed by the Center for Quantitative Biological Simulation at Pittsburgh Supercomputing Center. Unlike other wikis, users cannot edit content, but we welcome [[comments and suggestions|mailto:jenda@psc.edu]].\n\nPlease explore, or read more about [[TiddlyWiki]].
!!!!Getting Started\n[[Using These Tutorials]]\n!!!!Installations\n[[All Installs|http://www.mcell.psc.edu/tutorials_old/installs.html]]\n!!!!Blender 2.4x, ~MCell, and ~DReAMM Video Tutorials\n[[A Quick Start: From Blender 2.4x to MCell to DReAMM|http://www.mcell.psc.edu/tutorials_old/vid_quickStart.htm]]\n!!!!Creating Meshes/Models\n[[Mesh Generation in Blender 2.4x|http://www.mcell.psc.edu/tutorials_old/meshgen.html]]\n!!!!~MCell\n[[Anatomy of an MDL|http://www.mcell.psc.edu/tutorials_old/anatomy.html]]\n[[Reaction Classes|http://www.mcell.psc.edu/tutorials_old/reaction_class.html]]\n[[Region Release|http://www.mcell.psc.edu/tutorials_old/region_release.html]]\n[[Surface Molecules|http://www.mcell.psc.edu/tutorials_old/surfmol.html]]\n[[Channels|http://www.mcell.psc.edu/tutorials_old/channels.html]]\n[[Reaction Arrays|http://www.mcell.psc.edu/tutorials_old/rxn_arrays.html]]\n[[Using INCLUDE Files|http://www.mcell.psc.edu/tutorials_old/includes.html]]\n[[Adv. Reaction Classes|http://www.mcell.psc.edu/tutorials_old/adv_rxn.html]]\n!!!!~DReAMM Video Tutorials\n[[Navigating around the 3D World|http://www.mcell.psc.edu/tutorials_old/vid_navigating.htm]]\n[[Selecting Objects for Viewing|http://www.mcell.psc.edu/tutorials_old/vid_select.htm]]\n[[Basic Mesh Rendering Properties|http://www.mcell.psc.edu/tutorials_old/vid_meshRndrProps.htm]]\n[[Making an Animation|http://www.mcell.psc.edu/tutorials_old/vid_makeAnimation.htm]]\n!!!!Microphysiology\n[[Unbounded Diffusion|http://www.mcell.psc.edu/tutorials_old/tut1.html]]\n[[Biomolecular Reaction|http://www.mcell.psc.edu/tutorials_old/bimolrxn.html]]\n[[Sampling Volume Molecules|http://www.mcell.psc.edu/tutorials_old/vmsamp.htm]]\n[[1D Linear Diffusion|http://www.mcell.psc.edu/tutorials_old/linear_diff.html]]\n[[Simple Pore|http://www.mcell.psc.edu/tutorials_old/pore.html]]\n[[Reversible Binding Rxn|http://www.mcell.psc.edu/tutorials_old/revbinding.html]]\n[[Irrev. Unimolecular|http://www.mcell.psc.edu/tutorials_old/irrevunimol.html]]\n[[Rev. Unimolecular|http://www.mcell.psc.edu/tutorials_old/revunimol.html]]\n[[Irrev. Bimolecular|http://www.mcell.psc.edu/tutorials_old/irrevbimol.html]]\n[[Rev. Bimolecular|http://www.mcell.psc.edu/tutorials_old/revbimol.html]]\n[[Moebius Strip|http://www.mcell.psc.edu/tutorials_old/moebius.html]]\n[[Enzymatic Mechanisms|http://www.mcell.psc.edu/tutorials_old/enzymes.html]]\n[[Lotka-Volterra System|http://www.mcell.psc.edu/tutorials_old/lotkavolt.html]]\n[[Rat NMJ|http://www.mcell.psc.edu/tutorials_old/ratnmj.html]]\n[[Oscillating Biochemical Networks|http://www.mcell.psc.edu/tutorials_old/oscbiochem.html]]\n[[Na/K-ATPase|http://www.mcell.psc.edu/tutorials_old/atpase.html]]\n\n\n\n\n~~[[TiddlyWiki]] is published by Jeremy Ruston at Osmosoft under a BSD open source license.~~\n\n^^ All content and images^^\n^^© [[MCell|http://www.mcell.psc.edu]] 2006^^