diff --git a/docs/.cvsignore b/docs/.cvsignore deleted file mode 100755 index 0622adde..00000000 --- a/docs/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -helpdocs -.svn -website -api diff --git a/docs/CNAME b/docs/CNAME new file mode 100644 index 00000000..8e5b29fe --- /dev/null +++ b/docs/CNAME @@ -0,0 +1 @@ +neuroconstruct.org \ No newline at end of file diff --git a/docs/Dockerfile b/docs/Dockerfile deleted file mode 100644 index 3ae750ee..00000000 --- a/docs/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ - -FROM php:7.2-apache -COPY website/ /var/www/html/ \ No newline at end of file diff --git a/docs/README b/docs/README deleted file mode 100755 index 0e5ea1fd..00000000 --- a/docs/README +++ /dev/null @@ -1,14 +0,0 @@ -This is the folder for the documentation of neuroConstruct - -Contents: - -XML: This is the XML source of the documentation. This is translated (via XSL and Forrest - (http://forrest.apache.org/)) into HTML - -website: This is a version of the public website, generated from the contents of XML - -helpdocs: This is a version of the documentation with less graphics, used for the neuroConstruct - internal help viewer - -api: This should conatin the Javadoc for the code. To generate this use "ant javadoc". - See website/docs/install.html diff --git a/docs/RELEASE_NOTES b/docs/RELEASE_NOTES old mode 100755 new mode 100644 index 7bfa0076..8cf46262 --- a/docs/RELEASE_NOTES +++ b/docs/RELEASE_NOTES @@ -3,6 +3,29 @@ Release notes/change log for neuroConstruct See also the README file +--------- Version 1.7.0 (April 2012) --------- + +Moved codebase to GitHub: https://github.com/NeuralEnsemble/neuroConstruct + + +--------- Version 1.6.0 (August 2012) --------- + +Improved 3D visualisation of cells and networks when all segments are located more than a few hundred microns away +from the origin. Now 3D view centres on middle of visible cells. Origin is only included if "Show 3D axes" option +is selected. Also removed annoying clipping of back of 3D view when zooming out. + +Added option to save cells in project in pure NeuroML v1.8.1 format in morphologies folder. Now all channels, synapses & +cells in a project can be stored natively in NeuroML. Also facilitates comparing versions of morphology files across +commits. + +Added warning if a project contains multiple ChannelML files which have different values for reversal potential +but use the same ion (e.g. ek=-77 in one k channel, -87 in another). Pops up a warning dialog when such channels are +used together in one cell (without overriding the ChannelML files using an IonProperty in the cell). + +A number of updates to the NeuroML 2 export of cells & channels in line with the developing specification at: +http://sourceforge.net/apps/trac/neuroml/browser/NeuroML2. + + --------- Version 1.5.3 (Mar 2012) --------- Fixed bug which gave problems saving RandomSpikeTrainSettings in projects on Java 1.7 diff --git a/docs/XML/Forrest/.cvsignore b/docs/XML/Forrest/.cvsignore deleted file mode 100755 index c1d0ded1..00000000 --- a/docs/XML/Forrest/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -tmp -build diff --git a/docs/XML/Forrest/README b/docs/XML/Forrest/README deleted file mode 100755 index c23c6460..00000000 --- a/docs/XML/Forrest/README +++ /dev/null @@ -1 +0,0 @@ -This dir contains the Forrest files for generating the website diff --git a/docs/XML/Forrest/forrest.properties b/docs/XML/Forrest/forrest.properties deleted file mode 100755 index 7ab2d056..00000000 --- a/docs/XML/Forrest/forrest.properties +++ /dev/null @@ -1,112 +0,0 @@ -# Copyright 2002-2004 The Apache Software Foundation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -############## -# Properties used by forrest.build.xml for building the website -# These are the defaults, un-comment them if you need to change them. -############## - -# Prints out a summary of Forrest settings for this project -forrest.echo=true - -# Project name (used to name .war file) -project.name=neuroConstruct - -# Specifies name of Forrest skin to use -project.skin=tigris -#project.skin=pelt -#project.skin=crust - -# comma separated list, file:// is supported -#forrest.skins.descriptors=http://forrest.apache.org/skins/skins.xml,file:///c:/myskins/skins.xml - -############## -# behavioural properties -#project.menu-scheme=tab_attributes -#project.menu-scheme=directories - -############## -# layout properties - -# Properties that can be set to override the default locations -# -# Parent properties must be set. This usually means uncommenting -# project.content-dir if any other property using it is uncommented - -project.status=${project.home}/status.xml -project.content-dir=../xmlForHtml -project.raw-content-dir=../rawHtml -project.conf-dir=${project.content-dir}/conf -project.sitemap-dir=${project.content-dir} -project.xdocs-dir=${project.content-dir} -project.resources-dir=${project.content-dir}/resources -project.stylesheets-dir=${project.resources-dir}/stylesheets -project.images-dir=${project.resources-dir}/images -project.schema-dir=${project.resources-dir}/schema -project.skins-dir=${project.content-dir}/skins -project.skinconf=skinconf.xml -project.lib-dir=${project.content-dir}/lib -project.classes-dir=${project.content-dir}/classes -project.translations-dir=${project.content-dir}/translations - -project.build-dir=${project.home}/../../website -project.site-dir=${project.home}/../../website -project.temp-dir=${project.home}/tmp - - - - -############## -# validation properties - -# This set of properties determine if validation is performed -# Values are inherited unless overridden. -# e.g. if forrest.validate=false then all others are false unless set to true. -#forrest.validate=true -#forrest.validate.xdocs=${forrest.validate} -#forrest.validate.skinconf=${forrest.validate} -#forrest.validate.sitemap=${forrest.validate} -#forrest.validate.stylesheets=${forrest.validate} -#forrest.validate.skins=${forrest.validate} -#forrest.validate.skins.stylesheets=${forrest.validate.skins} - -# *.failonerror=(true|false) - stop when an XML file is invalid -#forrest.validate.failonerror=true - -# *.excludes=(pattern) - comma-separated list of path patterns to not validate -# e.g. -#forrest.validate.xdocs.excludes=samples/subdir/**, samples/faq.xml -#forrest.validate.xdocs.excludes= - - -############## -# General Forrest properties - -# The URL to start crawling from -#project.start-uri=linkmap.html -# Set logging level for messages printed to the console -# (DEBUG, INFO, WARN, ERROR, FATAL_ERROR) -#project.debuglevel=ERROR -# Max memory to allocate to Java -forrest.maxmemory=300m -# Any other arguments to pass to the JVM. For example, to run on an X-less -# server, set to -Djava.awt.headless=true -#forrest.jvmargs= -# The bugtracking URL - the issue number will be appended -#project.bugtracking-url=http://issues.apache.org/bugzilla/show_bug.cgi?id= -#project.bugtracking-url=http://issues.apache.org/jira/browse/ -# The issues list as rss -#project.issues-rss-url= -#I18n Property only works for the "forrest run" target. -#project.i18n=true diff --git a/docs/XML/Forrest/skinconf.xml b/docs/XML/Forrest/skinconf.xml deleted file mode 100755 index 13cf8a44..00000000 --- a/docs/XML/Forrest/skinconf.xml +++ /dev/null @@ -1,407 +0,0 @@ - - - - - - - - - - - - true - - true - - true - - true - - - true - - - false - - - true - - - true - @ - - - true - - - neuroConstruct - Biophysical Neural Network Modelling Software - http://www.neuroConstruct.org - images/logoMain.png - - - - - - - - - - images/favicon.ico - - - 2020 - UCL - - - - - - - - - - - - - - - - - - p.quote { - margin-left: 2em; - padding: .5em; - font-family: monospace; - } - - code { - font-style: italic; - font-weight: bold; - font-family: monospace; - } - - code.exec { - font-weight: bold; - font-family: monospace; - } - - table.noborder { - border: none - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1in - 1in - 1.25in - 1in - - - - false - - - true - - - - - - Funding for this work was received from the Wellcome Trust - http://www.wellcome.ac.uk/ - images/wct.png - - - Funding for this work was received from the Medical Research Council - http://www.mrc.ac.uk/ - images/mrcsmall.png - - - Some of thei work took place as part of the EUSynapse Project - http://www.eusynapse.mpg.de/ - images/eusynapse.png - - - - - - - - - diff --git a/docs/XML/Forrest/status.xml b/docs/XML/Forrest/status.xml deleted file mode 100755 index 8e19ee3e..00000000 --- a/docs/XML/Forrest/status.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - Initial Import - - - - - - - - - Customize this template project with your project's details. This - TODO list is generated from 'status.xml'. - - - Add lots of content. XML content goes in - src/documentation/content/xdocs, or wherever the - ${project.xdocs-dir} property (set in - forrest.properties) points. - - - Mail forrest-dev@xml.apache.org - with feedback. - - - - - - diff --git a/docs/XML/README b/docs/XML/README deleted file mode 100755 index 0992c9b3..00000000 --- a/docs/XML/README +++ /dev/null @@ -1,3 +0,0 @@ -This directory contains the source for the documentation/webpages related to neuroConstruct. - -It's originally in the form of XML and is translated (via XSL and Forrest (http://forrest.apache.org/)) to HTML diff --git a/docs/XML/glossary/Glossary.xml b/docs/XML/glossary/Glossary.xml deleted file mode 100755 index 2f2b721a..00000000 --- a/docs/XML/glossary/Glossary.xml +++ /dev/null @@ -1,1626 +0,0 @@ - - - - - - - - - - Cell Type - A prototype cell containing information on its 3D morphology and the various Cell density mechanisms which determine its - electrophysiological behaviour.
- Each Cell Group specifies a particular Cell Type and from these networks are built. Cell Types can be hard-coded (e.g. Simple Cell, - Purkinje Cell)
- (which can form the basis of manually edited Abstract Cells) or ones based on imported morphology files, e.g. using GenesisMorphReader
- where a morphology file (ending in .p) as used in GENESIS is specified (more on importing morphologies). A Cell Type can be checked for - validity. More on
- Cell Types in the main documentation
- -
- - - Cell Group - Cell Groups - A number of cells of the same Cell Type positioned in 3D space. - These will be laid out relative to a specified Region
- and arranged according to a Packing Pattern. Only Cell Groups
- included in the selected Simulation Configuration will be generated.
-
- - - Electrotonic length - electrotonic length - This measure of the length of dendrites, etc. as "seen" by electrical charge is dependent on the shape, axial
- and membrane resistance of the section. See the NEURON or GENESIS books for more details. It is important when
- simulating neurons with realistic morphologies that individually simulated points are not too far apart in terms
- of electrotonic length (a max of 0.1 is usually fine, though much smaller is needed if trying to match the behaviour of
- morphologically complex cells between simulators), i.e. a sufficiently fine-graned spatial discretisation
- should be used. Too short an electrotonic length can sometimes lead to problems in numerical integration, and
- neuroConstruct will perform validity checks for both of these (too long and too short). To correct the
- internal number of divisions in a
Section to stay below a maximum electrotonic length,
- e.g. on an imported morphology, visualise the cell in 3D, showing all solids, click on any section,
- then Edit... and either manually set the parameter for each Section or select the Remesh option in the drop down function selector. See also the note
- about Compartmentalisations. Note that electrotonic length is dimensionless, and the term space constant
- is used for this measure in microns (see GENESIS book, or Rall's chapter in Koch and Segev 1989).
-
- - - Simulation Configuration - Simulation Configurations - Most neuroConstruct Projects will illustrate not just a single aspect of a cell
- or network, but will seek to show how the cells react under different inputs, or how a network behaves
- with different Cell Groups/cell populations present, etc. A particular Simulation
- Configuration has a number of Cell Groups, Network Connections, Electrical Inputs, and Plots
- associated with it, along with a simulation duration. As an example, a project accompanying a publication
- might have one Simulation Configuration for each figure in the paper. More on Simulation Configurations in
- the main documentation
-
- - - NEURON - NEURON is a simulation environment for developing and exercising models of neurons and networks of neurons.
- The main tasks of actually simulating what goes on inside the neurons of a network built with neuroConstruct
- is done by simulation packages such as NEURON. The package is available for download here.
- More on importing NEURON models in the main documentation, and information on the interaction
- between neuroConstruct and NEURON on various platforms can be found here.
-
- - - Cvapp - This Java application, developed by Robert Cannon, allows transformation between various morphology formats - (e.g. from Neurolucida to NEURON or GENESIS), editing of loaded - morphologies, along with other functions for cleaning up and optimising morphology files. It also has its own - file format (stored in *.swc files). More information here. - The Neuromorpho database uses SWC as the format for it's curated morphologies. - - - - SWC - The file ending given to morphologies saved in the file format initially developed for Cvapp. - - - - ASC - The file ending given to morphologies saved in the file format used by Neurolucida. - - - - Neurolucida - A product by MicroBrightField Bioscience which is a system for "3D neuron reconstruction, serial section reconstruction, and anatomical mapping". - It is a popular product for creating 3D morphological reconstructions of neurons with complex dendritic trees (although this is not the only functionality). - A number of databases exist containing neuronal information in the file format used by these products (see Neuromorpho.org). neuroConstruct can import these files and extract the - morphological information to use as the basis of detailed single cell models. See here for more information/limitations. - - - - - - Cell Mechanism - A general term for an electrophysiological process (currently either a Channel Mechanism, a Synaptic Mechanism or an Ion Concentration) which is placed
- on modelled cell membranes or at the interface of two cells to alter their internal electrical and chemical state.
- More on Cell Mechanisms in the main documentation.
- -
- - - Ion Concentration - A term used for a mechanism describing how the internal concentration of an ion alters. An example would be a pool of calcium, which decays to a resting value. - - - - - - Action Potential Propagation Speed - While the 3D structure of axons is important for creating the correct connectivity (e.g parallel fibers in cerebellar granule cells)
- the segments representing these axons need not necessarily be explicitly modelled, indeed physiological data on the channels
- present etc. can be quite difficult to obtain. Instead an average value for the speed of propagation of the Action Potential can
- be used for these segments, with the axonal propagation delay (calculated using the distance along the segments to the last fully modelled segment)
- added to the internal synaptic mechanism delay. To specify sections which should be modelled using Action Potential Propagation Speeds, select
- Cell density mechanism in the drop down box when viewing a single cell in the Visualisation tab. Note that reducing the number of
- explicitly modelled segments will reduce the simulation runtime.
-
- - - Cell density mechanism - A term used to describe the mechanisms which can be applied to cell segments to allow simulation of electrophysiological
- mechanisms. Density refers to the fact that the effect of the mechanism is dependent on the physical size (surface area/length) of the segment. A
- Channel Mechanism is specified as a conductance per unit area, or alternatively an Action Potential Propagation Speed measures the
- rate of propagation of signals along a segment to synaptic connections. Specific capacitance and specific axial resistance can
- be specified on a per group basis also. To specify which cell density mechanisms are present on a cell, select
- Cell density mechanism in the drop down box when viewing a single cell in the Visualisation tab.
- -
- - - Compartmentalisation - Compartmentalisations - Imported morphologies (e.g. Neurolucida files) may not always be in the most efficient spatial discretisation
- for a particular simulator (a number of 3D points/diameters can be specified along an unbranched dendrite to describe the structure,
- but these will lead to many segments in a simulator which maps all segments to individual compartments). A Compartmentalisation is a
- reorganisation of the structure of segments/sections to retain as many of the properties the cell which are important for electrophysiological
- simulations (total membrane area, total axial resistance along branches, total length etc.) but enables mapping on to a smaller number of
- simulated compartments. See GENESIS Compartmentalisation. The various Compartmentalisations can be visualised in 3D, see 3D View of Cells.
-
- - - - nseg - A NEURON section property. See Internal number of divisions. - - - - Internal number of divisions - spatial discretisation - internal number of divisions - internal divisions - A Section (in neuroConstruct) can consist of a long list of 3D point/diameters (Segments). - Not all of this 3D information is relevant when modelling the Sections, sometimes just the surface area/axial resistance at a point - is sufficient for modelling the dendrite. This is the approach NEURON - takes modelling cables/sections. For long sections, it is possible to specify a number of internal divisions, - and the membrane potential at each - time step is calculated at the centre of each of these divisions (this is also known as setting the spatial discretisation of the - morphology). The term nseg is used for this number in NEURON (see details in the NEURON book). It is also possible - to set this parameter for Sections in neuroConstruct. View the cell in 3D (All solid), - click on a segment, click Edit..., and in the second drop down box, select Section details. - The number of internal divisions can be chosen automatically too (especially convenient for imported detailed morphologies, after - the passive electrical properties are set), see electrotonic length. See information too on - Compartmentalisations. - - - - - Section - Sections - An unbranched part of a cell morphology, corresponding roughly to the concept of a section in NEURON.
- An example would be a non bifurcating dendritic section, or the soma.
- Each Section contains at least one Segment. The Section provides the start point and
- start radius, and each of the Segments has an end point and radius corresponding to the 3D points along the Section.
- Sections which have similar properties can be assigned to one or more Section Group. All of the Segments
- in a Section are also in these Groups. Note that a Section is referred to as a cable in MorphML. A Section is mapped
- to a section in NEURON, and the start point of this and endpoints of the Segments become the pt3d points along it. GENESIS
- only has the concept of a compartment, so the Segments are each mapped to a compartment as a default (but see GENESIS Compartmentalisation).
- - See the NeuroML Level 1/MorphML paper for more details
- of the mapping to the different simulation environments.
-
- - - Segment - Segments - The basic unit of the morphological description of the cell. Segments correspond to the concept of a compartment as
- used in GENESIS. One or more Segments go to make up a Section, which maps to a cable in
- simulation environments using that concept (e.g. the section in NEURON, where the start point of the Section,
- and the Segment end points provide the pt3d points along the section). A Segment has a unique name, an end point, a pointer to
- its Section, a pointer to its parent Segment, and a value for the fraction (0 to 1) of the
- parent Segment's length at which it's connected. The first Segment in a Section can be connected at a point between 0 and 1 along
- its parent segment (which will be in another section) but all other segments need to be connected at the 1 point to their
- parent. Note: there is a difference with how NEURON handles sections, they specify the 0 to 1 point of connectivity along their
- parent section. When there are n Segments in a Section in neuroConstruct, this will translate to a NEURON section with n+1 pt3d points.
- See Section and the NeuroML Level 1/MorphML paper for more details
- of the mapping to the different simulation environments.
-
- - - - GENESIS Compartmentalisation - This Compartmentalisation for the GENESIS platform is needed since a simple mapping of each Segment in a detailed neuronal reconstruction
- to a compartment for running on GENESIS would lead to too great a spatial discretization. This Compartmentalisation maps the n Segments in each Section
- on to two CYLINDRICAL Sections each of half the original Section length, with the radii chosen to preserve total curved surface area and total axial resistance along
- the length. For sections with large electrotonic length, and which have an internal number of divisions (nseg)
- greater than 2, these cylinders will be split accordingly (e.g for num int divs = 7 or 8, the 2 cylinders will be split in 4 each). -
-
- - - Abstract Cell - Abstract Cells - A Cell Type which represents a real neuron, but whose morphology is described with a much reduced number of segments.
- These types of cells are useful for investigating basic electrophysiological properties of cells, or in large networks, where simpler individual cells
- are needed to reduce simulation time. These cells can be created manually by adding a Cell Type based on the included examples (e.g. SimpleCell), viewing in tab Visualisation, - clicking on one of the segments, and pressing Edit....
-
- - - Abstracted Cell Mechanisms - A Cell Mechanism which has been split between model template and parameters, allowing easy mapping onto
- each of the available simulation platforms. Note: This is a pre-ChannelML approach to implementing - Cell Mechanisms and shouldn't be used anymore.
-
- - - File based Cell Mechanisms - A Cell Mechanism whose functionality is hard coded in a native simulation environment's scripting language, e.g a mod file
- for NEURON or a GENESIS script file containing a single Cell Mechanism.
- Note: there can be a script for each simulation environment associated with the Cell Mechanism, but it is up to the modeller to ensure they
- produce the same results. Details on how to modify native script files for inclusion in neuroConstruct cells is available in the main documentation
-
- - - - GENESIS - GENESIS is a general purpose simulation platform which was developed to support the simulation of neural systems
- ranging from complex models of single neurons to simulations of large networks made up of more abstract neuronal components.
- The main tasks of actually simulating what goes on inside the neurons of a network built with neuroConstruct is carried out by simulation packages such as GENESIS.
- GENESIS is available for download here.
-
- - - Python - Python is a scripting language which is becoming increasingly widely used in - computational neuroscience. Details of the support for Python in neuroConstruct can - be found here. - - - - Parallel computing support - Support for generation of networks for execution in parallel computing environments is in development, concentrating on Parallel NEURON over MPI at present. - As documentation for this is currently limited, please get in touch for more details. - - - - NeuroML - NeuroML, the Neural Open Markup Language, is a model development language in XML - that provides a common data format for defining and exchanging descriptions of neuronal cell and network models.
- Currently, there are three Levels of compliance to the NeuroML specifications: - -
    -
  • Level 1 provides a common data format for neuronal morphology data and metadata. MorphML forms the main part of the specification at this Level.
  • -
  • Level 2 builds on Level 1 to include specifications for describing passive membrane properties, and the distributions of channels on neuron models.
    - The dynamics of ion channels, synapses, and ion concentration mechanisms can also be described at this Level in ChannelML
  • -
  • Level 3 allows networks of cells to be described, either in template form (from which networks can be generated) or as explicit descriptions of
    - cell placement and synaptic connectivity. The core of this Level is described in NetworkML. neuroConstruct can save generated networks in
    - NetworkML, and load NetworkML files from any other application to use in simulations, provided the cell type/group/network connection names match those in the project. -
  • -
- More information on NeuroML is available here, and a web interface for checking the validity of - any NeuroML file is here. A description of the support - for NeuroML in neuroConstruct is here.
-
- - - MorphML - MorphML is an language which has been developed (using XML technologies) to allow data on cell morphologies to be
- easily transferred between neuronal simulation applications. More information is available here.
- It is a part of the NeuroML initiative, and is the core of NeuroML Level 1. Detailed specifications of the elements allowed in a MorphML document are
- available here. - There has been a paper describing this part of the NeuroML language. - A description of the current support - for MorphML and NeuroML in general in neuroConstruct is available here. -
-
- - - ChannelML - ChannelML is a language (using XML technologies) for specifying the dynamics of various subcellular processes - (Channel Mechanisms, Synaptic Mechanisms, etc.) which are present on biologically detailed model neurons. - It is a part of Level 2 of NeuroML. - The ability to model these types of mechanisms is one of the key features of platforms like NEURON or GENESIS, but the implementation - of the mechanisms is far from trivial, requiring both knowledge of the physiological processes and of a low level programming language. ChannelML seeks to separate the - electrophysiological data from any specific implementation, defining a template for numerous types of cellular mechanism, containing only the relevant biophysical parameters - (e.g. reversal potentials, (in)activation rate equations) which can be automatically validated for completeness. These files can then be mapped to - script files in the language of the target simulator for inclusion in cell models. - The format for valid ChannelML files is described in an XML Schema document. - Examples of valid ChannelML files and mappings to simulators can be found - here, and detailed specifications of the elements allowed in a ChannelML document are
- available here. - A description of the current support - for MorphML and NeuroML in general in neuroConstruct is available here and - details of the process to convert an existing channel script, e.g. a mod file, to ChannelML is outlined here. -
-
- - - - NetworkML - NetworkML is a language (based on XML technologies and a HDF5 equivalent in development) to allow data on cell placement and - connectivity in 3D to be
- easily transferred between neuronal simulation applications. More information is available here.
- It is a part of the NeuroML initiative, and is the core of NeuroML Level 3.
-
- - - - - HDF5 - HDF5 is a binary file format used for exchanging large amounts of structured data between software applications, widely used in the astrophysics community, among others. - Libraries for development and an application, HDFView, for viewing the contents of HDF5 files can be obtained here here. - This format is envisioned to be a useful alternative to text files or XML when exchanging voltage trace (or spike time) data, or network structure information (see NetworkML) between computational neuroscience applications. - - - - - XML - Short for eXtensible Markup Language, XML is a specification developed by the W3C. XML uses a similar tag structure to HTML,
- as used for Web documents. However, it allows designers to create their own customised tags, enabling the definition, transmission, validation,
- and interpretation of data between applications and between organisations. It is useful in the context of neuroscience when it comes to exchanging
- anatomical data, model descriptions, etc. between research groups and simulation environments and is the technology used in specifying the NeuroML language.
-
- - - - NMODL - Channel Mechanisms and Synaptic Mechanisms can be created in NMODL, and these can be placed in the cells in NEURON simulations.
- More info available here. See here for details on use of NMODL (*.mod) files in neuroConstruct.
-
- - - Region - A volume in 3D space which can be filled with cells. These regions can be also used for specifying bounding regions for selecting cells, e.g. to
- selectively apply stimulations, or to aid in analysis of a subset of cells. In the current version of neuroConstruct, regions can be either rectangular
- boxes, spheres, cylinders or cones. More on Regions in the main documentation
-
- - - Channel Mechanism - An implementation of a model of an electrophysiological process (e.g. a voltage gated ion channel, ion pump, etc.) which is placed
- on modelled cells' membranes to alter their behaviour. For NEURON these are usually implemented in NMODL. - The preferred way to specify these in neuroConstruct is with a ChannelML file.
-
- - - Synaptic Mechanism - An implementation of a model of synaptic transmission. This is a subtype of a Cell Mechanism. Usually this
- involves an event in one cell influencing the conductance at a point in another cell. For NEURON these are usually implemented
- in NMODL. Synaptic Mechanisms are needed to specify a Synaptic Connection Location on a cell.
-
- - - - Packing Pattern - When cells are placed in a Region, the somas need to be arranged in a particular pattern. In neuroConstruct, some of the available patterns are: -
    -
  • Random: Cells are placed in random locations in the Region
  • -
  • Cubic Close Packed: Cells are placed in Cubic Close Packed formation. A layer is placed in 2D first and the spheres in the next layer lie on top, at the center of the 4 spheres underneath, touching each. This is optimal packing of spheres in 3D
  • -
  • Simple Regular: The cells are placed in layers with cell centres directly above each other
  • -
  • Single Placed Cell: A single cell is placed in an exact location in the Region (or relative to the origin)
  • -
  • Hexagonal: The cells are placed in a single layer in a hexagonal pattern (each soma is surrounded by 6 other somas at equal angles)
  • -
  • One Dimensional Regular Spacing: The cells are placed at regular intervals in a straight line
  • -
- Note that for each of these packing patterns a number of variables need to be specified, besides the Region, e.g. the number of cells to place, extra cell spacing
- whether to avoid existing cells from this (or other) Cell Groups.
- New packing patterns can be added by extending the Java class CellPackingAdapter. - -
-
- - - - Network Connection - A connection between a number of points on cells in one Cell Group to points in another Cell Group.
- Some of the factors which need to be specified are:
-
    -
  • Source Cell Group: (Presynaptic cells)
  • -
  • Target Cell Group: (Post synaptic cells)
  • -
  • Synaptic Properties: Which Synaptic Mechanism (under tab Cell Mechanism) defines the synapse, the delay, threshold and weight
  • -
  • Method of searching for a connection point (random, closest, etc.)
  • -
  • Maximum and minimum lengths of the connection
  • -
  • Various conditions on the number of connections to make between the Cells Groups
  • -
- There are two main types of Network Connection: Morphology Based Connection and Volume Based Connection
- More on Network Connections in this tutorial. -
-
- - - Morphology Based Connection - This type of Network Connection is appropriate for connecting cells where the axon of the presynaptic cell is well stereotyped
- and does not vary significantly between cells (e.g. parallel fiber of cerebellar granule cell). Cell axons can be created in 3D and a sub set of its sections allowing a certain type of Synaptic Mechanism
- can be specified. For single compartment cell models this type of Network Connection is most appropriate, Section Group all can be used for
- each synapse. -
-
- - - Arborization Defined Connection - See Volume Based Connection. - - - - - Volume Based Connection - This type of Network Connection is appropriate for connecting cells where the axon of the presynaptic cell is known to make connections
- within a certain 3D region (e.g. axonal arborisation of cortical pyramidal cell). This region is defined relative to the cell body and dendrites of postsynaptic cells falling within this region allowing the same type of
- Synaptic Mechanism are candidates for connections. These regions are be specified at tab Visualisation in the single cell 3D view when a segment is being edited (select the appropriate function in the drop down box) -
-
- - - - Glomerulus - Glomeruli are present in many areas of the CNS. Post synaptic connections from a number of cell types
- converge on a single point on a cell axon. An example would be the Mossy Fiber rosette in the cerebellum, where
- Granule cell dendrites, Golgi Cells axons and dendrites synapse on boutons on the Mossy Fiber axon.
-
- - - - - - - - - - - - - - - Finite volume Segment - A Segment on a Cell in neuroConstruct, which for the purposes of packing - is considered to take up space. Normally, only Segments in the soma are considered space filling, and will be packed to avoid each other. - Dendrites and axons are ignored in packing as it would normally be impossible to get these well packed taking into account the dendritic arborisations. - If large Sections in a specific cell need to be treated differently (e.g. a Glomerulus), these Segments can be specified as having - finite volume - - - - - Group - See Cell Group or Section Group. - - - - Section Group - Section Groups - A group of Sections sharing some properties. These can be used to specify the Channel Mechanisms placed
- on areas of the cell (e.g. apical dendrites), or the locations where specific Synaptic Mechanisms are allowed (see Synaptic Connection Location). - There are four special groups: -
    -
  • all: every Section is included in this Group
  • -
  • soma_group: The Group containing only one Section, representing the soma
  • -
  • dendrite_group: The Group of dendritic Sections
  • -
  • axon_group: The Group of axonal Sections
  • -
- Every Section is part of one and only one of the last 3 Groups. Sections in groups whose names start with colour_, e.g. colour_Yellow, - will be coloured as such in the single cell 3D view (these colourings may come from morphology files, e.g. Neurolucida format). -
-
- - - Synaptic Connection Location - A Synaptic Mechanism can be associated with a list of Section Groups. This means that any of the Sections in those
- Groups can be involved in a Network Connection involving the Synapse type.
- Note: Each of the Sections will also be a member of either soma_group, dendrite_group or axon_group. A PRE synaptic connection location is allowed on Sections in
- soma_group or axon_group while a POST synaptic connection location is allowed on a Section in soma_group or dendrite_group. - - See this tutorial for more on Synaptic Connection Locations and Network Connections
-
- - - Simply Connected cell - A Cell where each Segment is connected to either the start of end point (0 or 1) of its parent - - - - Morphological validity - For a cell with multiple Sections and Segments, to be considered valid i.e. in a form that will produce sensible, - similar 3D morphologies in each of the simulators we deal with it should meet the following criteria (not a complete list): -
    -
  • Only one segment without a parent (root segment)
  • -
  • All segments have sections
  • -
  • All segments have endpoints
  • -
  • All Segment IDs unique
  • -
  • All Segment names unique
  • -
  • All Section names unique
  • -
  • Segments after the first in a section are only connected to 1 on parent
  • -
  • At most one segment is spherical and is in the Section Group soma_group

  • -
  • At least one segment present in cell

  • -
  • At least one soma section, i.e. section which is in group soma_group

  • -
  • Cell name present

  • -
- The following checks, when failed, lead to warnings (due to potential problems when packing, for example): -
    -
  • First soma segment is at origin
  • -
  • Start point matches point at specified fraction along parent
  • -
  • Cell is a Simply Connected cell
  • -
  • Each section is part of one of: soma_group, axon_group, dendrite_group
  • -
-
-
- - - Biophysical validity - A number of checks can be carried out on the cells in a project to ensure they meet some minimum - requirements for producing realistic results in the chosen simulators. It is not a complete list. At the moment these checks are: -
    -
  • At least one membrane mechanism on each segment
  • -
  • At least one passive conductance on each segment
  • -
  • Each section has an appropriate internal number of divisions for the specified maximum electrotonic length
  • -
- - The following checks, when failed, lead to warnings: -
    -
  • At most one passive conductance on a segment (more than one can lead to erroneous calculations of Electrotonic length)
  • -
- The intention is to expand these checks to make it easier for non/new computational neuroscientists to catch some - common errors when creating cell models. If there are any suggestions for checks to be made, please get in touch. -
-
- - - Project validity - To catch many, but not all, potential sources of error in a project a number of validity checks are performed. These include
- checks on the morphology and biophysical parameters of each of the cells in the project, and various global checks on the project
- settings, e.g. appropriate temperature, electrical input or network connection to all cell groups, etc.
-
- - - Validity checks - validity checks - Due to the large number of parameters present in a simulation of a network of realistic neurons, a number - of automated checks have been created to help ensure sensible data is being given to the simulators. Note that these - are *not complete* and there is still plenty of opportunity for "garbage in, garbage out". There are checks on: -
    -
  • Morphological validity: the structure of the cells in the project are valid
  • -
  • Biophysical validity: the cells in the project have minimal/sensible biophysical properties set
  • -
  • Project validity: the above two checks are performed on each of the cells in the project along with a number of other tests
  • -
- Note: projects/cells will work and native scripts can be generated even when not valid, but the simulation results should be treated as suspect. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tool Tips - These appear when the cursor hovers over certain buttons, panels, checkboxes, etc. and provide hints on usage.
- They can be turned off via Settings -> General Properties & Project Defaults or by clicking on the button in the main toolbar.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Morphology save format - There are two possible ways to save morphologies in neuroConstruct projects, both based on a mapping from the
-set of Java classes describing the cell internally in neuroConstruct:
-
    -
  • XML based Java serialisation (*.java.xml files): a mapping to an XML file of the classes. Note: not any part of NeuroML.
  • -
  • Serialised Java object form (*.java.ser files): a serialised representation of the Java classes.
  • -
-The second of these is quicker to load and save and the files are smaller. The first however can be opened (and edited!)
-with a text editor. Change which format to use via Settings -> General Properties & Project Defaults/Project properties.
-
-Cell morphologies are stored in the morphologies directory of the project home directory. *.bak files in that dir backup
-the previously stored morphology before a new one is saved (if a problem occurs saving a morphology, close the application, remove
-the .bak from the name of the morphology file to use the previous structure of the cell when reloading the project).
-
-Note that the cells aren't currently stored in neuroConstruct projects in NeuroML/MorphML format, since new functionality
-is usually added to the neuroConstruct Cell class before it is supported in the specifications.
-
- - - - - - - Project - Projects - projects - In neuroConstruct, a Project contains the specification of the Cell Types, Regions,
- Cell Groups and Network Connections in a model, along with the simulation parameters (duration, dt,
- etc.) and inputs into the network. A Project can be used to generate networks using combinations of these cells/connections etc. in different Simulation Configurations. - Also associated with a Project are a number of Previous Simulations,
- i.e. recorded simulations run in a simulation environment (e.g. NEURON) which are available for replaying
- when the project is opened. The main project file (*.neuro.xml) is a proprietary XML file (not part of NeuroML), which should
- only be opened with neuroConstruct (though some minor manual edits are possible if you're careful...). A Project and all of its associated files (morphology files, simulation
- files, etc.) can be zipped up through the GUI for easy distribution.
-
- - - - - - - - - - - Zipped Project - All files in a neuroConstruct Project (morphology files, simulation data, etc.) can be zipped up into a
- single file for easy distribution/backup. To create a zipped neuroConstruct project select File -> Zip this Project... and to - automatically unzip and open a file created in this way, select File -> Import Zipped Project...
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Data Set - Set of x, y values which can be plotted in a Plot Frame, saved in the Project (for reloading through the Data Set Manager), exported, etc. - The x values do not have to be evenly spaced, unique or sequential. See here for information on what variables can be saved/plotted during a simulation run. - - - - - Plot/Graph - These terms are used in various ways by NEURON and GENESIS for a) the frame/window showing a number of sets of data and - b) the individual sets of points in each trace. In neuroConstruct, Data Set is used for a set of points which can be plotted, and - Plot Frame is used for the window in which a number of these can be viewed. In the Input/Output tab, the second table lists the values to - to be plotted during a simulation run. For example, the membrane potential of a subset of cells in each group could be plotted. Note that here too is where variables - to be saved during the simulation are specified, e.g. all cells' membrane potential could be saved but just one specified to be plotted, etc. The names to use for variables - to plot and/or save are given here - - - - - - Variables to plot/save - Variables which change during the simulation can be specified to be plotted and/or saved for later display in neuroConstruct via
- the Input/Output tab. Variables have different names in each of the simulation environments (e.g. v or Vm), so a set of
- generic names of the most common interesting values has been defined: -
    -
  • VOLTAGE for the membrane potential (v in NEURON, Vm in GENESIS)
  • -
  • SPIKE can be used to record spike trains, as opposed to voltage at every timestep, e.g. SPIKE:-20 sets the spike threshold to -20mV
  • -
- To plot a value present on a Cell Mechanism, use a colon, e.g. NaConductance:m. Note, as the gate activation
- variables are a special case, GENESIS will search through the list of gates (only if the Cell Mechanism is defined by a
- ChannelML file), search for a gate with the specified name, and plot that variable. See Ex4-NEURONGENESIS for an example.
- Other named variables that can be plotted for Cell Mechanisms are: -
    -
  • CONC for the concentration of an ion, e.g. CaPool:CONC:ca
  • -
  • REV_POT for the reversal potential of an ion, e.g. NaConductance:REV_POT:na
  • -
  • CURR_DENS for the current density through a channel, e.g. NaConductance:CURR_DENS:na
  • -
  • COND_DENS for the conductance density of a channel, e.g. NaConductance:COND_DENS:na
  • -
-
-
- - - - Graph - See Plot/Graph - - - - - Axes in 3D - A set of axes can be added in 3D (either when a single cell is being displayed or a generated network). The green axis represents
- the x direction, the yellow the y direction and the red the z direction. The axes measure 100 microns from the origin in positive
- and negative directions, the arrow on the positive. The ticks are at 10 micron intervals. Due to perspective the axes should only be
- used for getting bearings/a concept of scale in the 3D scene.
-
- - Anti Aliasing - If anti-aliasing is turned on, 3D renderings of both solid compartments and line segments will be smoother. This may have some performance overhead on some video cards, - or may prevent the 3D view from displaying, and so should be turned off. - - - - - Plot Frame - The window in which a number of Data Sets can be viewed. Each Plot Frame has a name and new Data Sets can be added to existing Plot Frames. - The Data Sets can be viewed in a number of different ways: all graphs using the same axes, graphs stacked vertically, zoomed in to user selected area, etc. Each Data Set is - listed and can be individually analysed (e.g. for mean/std dev values, spiking rates calculated) or the format (colour/point type) edited. See here - for information on what variables can be saved/plotted during a simulation run. - - - - Data Set Manager - A number of Data Sets can be stored in a neuroConstruct Project, showing a concept illustrating a point about the model, - e.g. an I-F curve derived from a number of simulation runs. When a Data Set is viewed in a Plot Frame the points can be saved - to the project. The Data Set Manager allows these saved Data Sets to be viewed, edited, and redisplayed in a new (or any open) Plot Frame - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3D View of Cells - When a single cell is viewed in 3D (at tab Visualisation, select the name of the Cell Type in the drop down box and press View)
- there are a number of actions possible: -
    -
  • Left click anywhere in the view and drag to rotate the cell
  • -
  • Right click anywhere and drag to translate the cell
  • -
  • Clicking the middle mouse button and dragging (or turning the middle wheel) will zoom the view. Note that if there - is no middle button, there is a zoom slider bar on the GUI
  • -
  • Pressing the 0 button will reset the view, usually centering on the cell
  • -
  • Pressing the ^ button will open a window in full screen with just the 3D objects (good for capturing screenshots)
  • -
  • Left clicking on one of Segments will highlight that segment (red) and any other segments in the same Section (yellow) (only when All solid is selected)
  • -
  • When a Segment is selected, a summary of the 3D information on it appears, and the endpoints, etc. can be altered by pressing the Edit... button
  • -
- Specifying Section Groups allows different subsections of the cell to be assigned as dendrites, etc. and can be used to colour regions of the cells. - When multiple cells are being displayed (e.g. when Latest Generated Positions is selected, or a simulation is reloaded) the following options are also possible: -
    -
  • Clicking on part of a cell highlights that cell. Note this is easiest when the level of detail displayed is All Solid (see below). Selecting cells can also be - difficult is other objects are close, e.g. transparent regions, synaptic endpoint spheres, 3D axes (turn some of these off via 3D Settings). If a cell can't be selected by clicking, the cell group and cell number can be selected in the drop down boxes.
  • -
  • Multiple cells in a cell group can be selected too via the drop down boxes (e.g. all cells, a percentage of cells, etc.). These can then be plotted together as a group if a previous simulation has been loaded.
  • -
  • When one or more cells are selected, checking the Transparent mode box keeps that/those cell opaque, makes cells it is/they are connected to partially transparent and turns other cells almost completely transparent.
  • - -
- There are a number of settings which can be changed by pressing the 3D Settings button: -
    -
  • The background colour and preferred cell segment colour
  • -
  • Whether the 3D axes will be shown.
  • -
  • The resolution of 3D elements. Note for better 3D performance when viewing large cells/networks this should be set low (<12)!
  • -
  • A number of items can be excluded or included from the 3D view, e.g. Regions (when viewing generated networks), Inputs, Synaptic Endponts (green for presynaptic location, red for post), etc.
  • -
  • The level of detail to display (see below)
  • -
- The default view for 3D cells is to show all the segments in full solid detail (spheres or cylinders/truncated cones). However this can be too much detail to show on many
- machines for large cells. The following options allow different views of the cells, either at reduced details, or transformed for a particular simulator: -
    -
  • All solid: all segments are seen in 3D detail. Note the resolution of these can be increased or decreased under 3D Settings
  • -
  • Soma solid, neurite lines: segments in the soma group are solid, all other segments are lines through their centres
  • -
  • Soma solid, no neurites: just the soma segments are shown in 3D
  • -
  • All lines: all segments are represented by lines
  • -
  • Original Compartmentalisation: a transparent view of the cell, showing the segments in 3D, white lines through their centres, blue spheres - for their end points, and yellow lines linking segments which are electrically connected, but not physically linked. There will be a red sphere in - the middle of each of the internal divisions, with small blue spheres connecting them. These red spheres correspond to the simulated - points in NEURON as defined by the nseg value.
  • -
  • GENESIS Compartmentalisation: this is a Compartmentalisation of the cell which converts it to a smaller number of compartments for GENESIS - but retains the section groups, total surface area, total dendritic length and total axial resistance.
  • - -
- Note: see points on allocating extra memory for the application here, which will be important when displaying large networks in 3D. Also, - there is sometimes excessive flickering when showing 3D on Windows (a common problem when mixing Java3D and Swing, see here), try updating the drivers for your graphics card, or adding -Dsun.java2d.noddraw=true to the command in nC.bat. -
-
- - - - -
diff --git a/docs/XML/glossary/Glossary.xsl b/docs/XML/glossary/Glossary.xsl deleted file mode 100755 index 0e7a86fb..00000000 --- a/docs/XML/glossary/Glossary.xsl +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - This XML file was automatically generated from the entries in XML/glossary/Glossary.xml - and the stylesheet XML/glossary/Glossary.xsl. To add entries to the glossary, edit that original file - AND NOT THIS ONE!! - - - - - -
- Glossary of the main terms used in neuroConstruct -
- - - - - - - - - # - - - - - - - - - - - - - - - - -
-
- - - - - - - -

- -

-
-
- - - - - - - - - - - - - - - - -

index

- - - - - - - - - - _blank - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - -
  • -
    - - -
    -
    - - - - - -
    diff --git a/docs/XML/glossary/README b/docs/XML/glossary/README deleted file mode 100755 index 238afc9a..00000000 --- a/docs/XML/glossary/README +++ /dev/null @@ -1,4 +0,0 @@ -This folder contains the source XML file for the main Glossary. This will be transformed into other -HTML/XML documents as needed. See Glossary.xml for details. - -The Glossary.xml file should be the only place to add new glossary entries diff --git a/docs/XML/helpViewer/README b/docs/XML/helpViewer/README deleted file mode 100755 index 68d4deb6..00000000 --- a/docs/XML/helpViewer/README +++ /dev/null @@ -1,2 +0,0 @@ -This folder contains the XSL file which changes the Forrest compliant XML source -of the website into a low graphics version for the neuroConstruct internal help viewer diff --git a/docs/XML/helpViewer/helpdocs.xsl b/docs/XML/helpViewer/helpdocs.xsl deleted file mode 100755 index 8619ecd2..00000000 --- a/docs/XML/helpViewer/helpdocs.xsl +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - This HTML file was automatically generated from the documentation files in /docs/XML/xmlForHtml/docs - - - - - <xsl:value-of select="document/header/title"/> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - font-size: 16;color: white;background-color: #a5b6c6;padding: 5px 5px 5px 5px -    - - - - - - - - - font-size: 16;color: black - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  • -
    - - -
    -
    - - - -
    -
    - - -
    -
    - - - - - - - - - - - - - - - -
    diff --git a/docs/XML/xmlForHtml/contact/index.xml b/docs/XML/xmlForHtml/contact/index.xml deleted file mode 100755 index 579f6b4b..00000000 --- a/docs/XML/xmlForHtml/contact/index.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - -
    - Contact us -
    - - - -

    The core neuroConstruct team:

    - - -

      Padraig Gleeson (p.gleeson - at - ucl.ac.uk)

    -

      Angus Silver (a.silver - at - ucl.ac.uk)

    - -

     

    - - -

    To get in contact directly with the team please mail: info -at- neuroConstruct.org

    - -

    Alternatively use/join the neuroConstruct mailing list: neuroConstruct -at- ucl.ac.uk (archives)

    - -

     

    - -

    Past neuroConstruct developers:

    -

      Boris Marin

    -

      Rokas Stanislovas

    -

      Guy Billings

    -

      Matteo Farinella

    -

      Eugenio Piasini

    -

      Yates Buckley

    -

      Yoana Dimitrova

    -

      Simon Barnes

    - -See also the list of contributors on GitHub. -

     

    - - -

    Many thanks to the following people who have made significant contributions to the development of neuroConstruct

    - -

      Volker Steuber

    -

      Robert Cannon

    -

      Sharon Crook

    -

      Koen Vervaeke

    -

      Simon O'Connor

    - -

     

    -

    Development of this software was made possible with funding from the Wellcome Trust, the Medical Research Council and the EU Synapse Project.

    - -

     

    -

     

    -

     

    -

     

    -

     

    - - -
    diff --git a/docs/XML/xmlForHtml/docs/cellmechanism.xml b/docs/XML/xmlForHtml/docs/cellmechanism.xml deleted file mode 100755 index 7efe30e8..00000000 --- a/docs/XML/xmlForHtml/docs/cellmechanism.xml +++ /dev/null @@ -1,116 +0,0 @@ - - - - -
    - Cell Mechanisms -
    - - - -
    - Introduction - -

    A Cell Mechanism (previously referred to as Cell Process), as used in neuroConstruct is an abstraction of an electrophysiological mechanism present on a cell.

    - -

    The three main types are Channel Mechanism, - Synaptic Mechanism and Ion Concentration - (although 2 more: Point process and Gap junction are being added). - The Cell Mechanisms available in a neuroConstruct project are - listed under tab Cell Mechanism. New Cell Mechanisms can be added, and the existing ones edited/deleted here.

    - -

    There are two ways to create Cell Proceses in neuroConstruct:

    - -
      -
    1. ChannelML based Cell Mechanism: The parameters of the Cell Mechanism are stored in a ChannelML file
    2. -
    3. File based Cell Mechanism: The core of the Cell Mechanism is contained in files written in the native language of simulators (e.g. NMODL)
    4. -
    - - -

    The Abstracted Cell Mechanism was an older approach to implementing simulator independent Cell Mechanisms without XML. It is no longer in use.

    - -

    Each Cell Mechanism will have: -

    - -
    - -
    - Mapping to simulation environments - -

    How neuroConstruct creates the native script codes implementing the Cell Mechanisms (mod files/GENESIS scripts) is as follows:

    - -

    When the files for a simulation environment (e.g. NEURON) need to be generated, neuroConstruct first checks which - Cell Mechanisms are included on each of the Cell Types in the network (see below). If there is not an implementation - of that Cell Mechanism for the simulation environment (i.e. a template of the scripting code is present) an error will be thrown.

    - -

    In the case of a File based Cell Mechanisms, the core of the script - implementing the Cell Mechanism is already present, e.g. an almost complete mod file is specified for a mapping to NEURON. All that - needs to be replaced in the file is the Cell Mechanism name and a maximum conductance (density), as outlined here. -These parameters are inserted into the file, a complete native script is generated (and, if needed, compiled) and so the -Cell Mechanism can be used by other files which define the cells.

    - -

    For a ChannelML based Cell Mechanism all of the important parameters are present in the XML file. -The mappings to native scripts takes place by transforming the XML using an XSL (EXtensible Stylesheet Language) document. -XSL allows easy transformation of an XML file into another format, basically restructuring the information present in the file. -XSL documents are present for each simulation environment, which take the values in the ChannelML file (e.g. maximum conductance density) -and place them in the correct location in partially written native script files. Examples of valid ChannelML files and mappings to simulators can be found -here, or opening a ChannelML based Cell Mechanism in neuroConstruct -will allow inspection of the XML, editing of the parameters, validation of the file and preview of the mapping to NEURON or GENESIS

    - - -
    - -
    - Placing Cell Mechanism on Cells - -

    Cell Mechanism need to be placed on cells before the native script files are generated.

    - -

    Inclusion of Synaptic Mechanism on cells is outlined in the Network Connections tutorial.

    - -

    To place Channel Mechanisms on cells, go to the tab Visualisation, select the cell -name in the drop down box and press View.

    - -

    Note that Channel Mechanisms, like Synaptic Connection Locations, are associated with - Section Groups as opposed to sections. Therefore the Groups of Sections which have similar channel densities should be - constructed first by selecting Groups in the bottom right drop down box. Click Edit Groups, - or for a simple cell, use the existing Groups. Now select Cell density mechanisms in the drop down box, and - click Edit Density Mechanisms. In the drop down box of the dialog, all the Cell Mechanism of Mechanism Type: - Channel Mechanism will be listed (if there are none, go to tab Cell Mechanisms, click Add ChennelML - from Template and add at least a Leak conductance). Select one of these and for each Group with this Channel - Mechanism add it to the list. The Max Conductance Density of the channel needs to be specified. NOTE: This overwrites the - Max Conductance Density as specified in the Parameter Set/ChannelML file. All other parameter values remain the same.

    - - -

    Once a number of channels are added, the densities can be seen back in the Visualisation view. -For a Channel Mechanism with different densities on different Groups, a shaded colour between the maximum and minimum is shown.

    - -
    - -
    - Copying Cell Mechanism between projects - -

    To copy a Cell Mechanism present in one project to another, go to the directory - cellMechanisms in the project's home directory, and copy the folder named after the cell mechanism into the -cellMechanisms directory of the target project. That project should now have the cell mechanism listed under the -tab Cell Mechanisms. Note: make sure there was not already a mechanism with that name before pasting. Also, -problems may be caused if the project is under version control (CVS or Subversion); remove any CVS or .svn directories from the -pasted directory.

    - -
    - -

     

    -

     

    - - -
    diff --git a/docs/XML/xmlForHtml/docs/cellprocess.xml b/docs/XML/xmlForHtml/docs/cellprocess.xml deleted file mode 100755 index a7b5cea7..00000000 --- a/docs/XML/xmlForHtml/docs/cellprocess.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - -
    - Cell Process -
    - - -

    See Cell Mechanims

    - -

     

    -

     

    - - -
    diff --git a/docs/XML/xmlForHtml/docs/celltypes.xml b/docs/XML/xmlForHtml/docs/celltypes.xml deleted file mode 100755 index e1523289..00000000 --- a/docs/XML/xmlForHtml/docs/celltypes.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - -
    - Cell Types -
    - - - - - -

    A prototype cell from which networks are built. There are 3 ways to get new Cell Types into the project:

    -
      -
    1. Use a hard-coded Cell Types as included with the code. There are a number of simple example cells which (e.g. Simple Cell, Purkinje Cell) -can be added to the project. Select tab Cell Type -> Add New Cell Type to Project... and choose the -prototype cell. -Their initial morphology is hard coded in Java, but they can be edited in tab Visualisations --> (select the Cell Type in the drop down box) -> View. Select any Segment and press More... to edit (Note: -it is best to display the cell with segments All solid, to make it easier to select individual segments)
    2. - -
    3. Cells based on imported morphology files, e.g. GenesisMorphReader where a morphology file (ending in .p) as used in GENESIS is specified. -Select tab Cell Type -> Add New Cell Type to Project... and choose the morphology importer
    4. -
    5. Cells imported from other neuroConstruct projects: Cell Type -> Add Cell Type from another Project...
    6. - -
    - -
    diff --git a/docs/XML/xmlForHtml/docs/contact.xml b/docs/XML/xmlForHtml/docs/contact.xml deleted file mode 100755 index 1984622d..00000000 --- a/docs/XML/xmlForHtml/docs/contact.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - -
    - Contact us -
    - - - -

    See the full list of neuroConstruct contacts

    - - - -

     

    -

     

    -

     

    -

     

    -

     

    -

     

    - - -
    \ No newline at end of file diff --git a/docs/XML/xmlForHtml/docs/docMenu.xml b/docs/XML/xmlForHtml/docs/docMenu.xml deleted file mode 100755 index dd6ae6ed..00000000 --- a/docs/XML/xmlForHtml/docs/docMenu.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - -
    - neuroConstruct Online Documentation -
    - - - -

      Home

    - - -

      Installation

    - - - - -

      Glossary

    - -

      Tutorials

    - -

    Main Concepts in neuroConstruct:

    - -

      Cell Types

    -

      Regions

    - - -

      Cell Mechanisms

    -

      Simulation Configurations

    - - -

    How to's, etc.:

    - -

      Importing morphology files

    - - -

      Importing NEURON models

    -

      Converting channel mechanisms to ChannelML

    - - -

      Interacting with native environments

    -

      Importing and exporting NeuroML

    -

      Use of Python in neuroConstruct

    - - - -
    diff --git a/docs/XML/xmlForHtml/docs/import.xml b/docs/XML/xmlForHtml/docs/import.xml deleted file mode 100755 index f5d5afa1..00000000 --- a/docs/XML/xmlForHtml/docs/import.xml +++ /dev/null @@ -1,187 +0,0 @@ - - - - -
    - Importing various morphology formats into neuroConstruct -
    - - -

    Outlined here are the various morphology file importation options available in neuroConstruct.

    - -

    Note: it is essential to examine the imported cell - carefully before using it in any simulation. - Two potential problems which should be checked are:

    - - - -

    To reiterate, just because a morphology file is successfully imported doesn't mean it is immediately suitable - for use in a neuronal model. Bear in mind that whoever created the file may have had different goals from creation - of a single cell model (as with Neurolucida files), or may have created it specifically for a particular simulator, with the - eccentricities of that platform in mind.

    - -

    To import a morphology file: Open a new or existing project, go to tab Cell Types, click on Add New Cell Type... and select one of the - format specific readers, e.g. GENESISMorphReader.

    - -
    - GENESIS - - -

    GENESIS morphology files can be imported. These are *.p readcell compatible files. The proper -format for these files is specified here. -

    - -

    This is a well described format and there exists a number of models containing cells specified in this way. -However, the whole specification is not supported in neuroConstruct, an inexhaustive compliance list follows:

    - - -

    Note that cells specified in this way assume the target platform is GENESIS and compartmental modelling, -as opposed to cable modelling, will be used. Therefore the compartmentalisation will not be ideal for platforms such as NEURON. -This issue has been addressed with the introduction of Compartmentalisations

    - -
    - -
    - NEURON - - -

    A subset of NEURON files can be imported. In contrast to GENESIS, there is no fixed format in - NEURON for specifying morphologies (note however, MorphML export is being implemented in a new vesion of NEURON, see - here) However, a number of models exist with the - cellular morphology in separate files, many of which were created by the ntscable program. These files are usually characterised - by a large number of lines of coordinates (lines of 4 floats) containing information accessed previously in the file by the fscan() - command.

    - -

    The following is a summary of what can be imported from a given NEURON morphology file:

    - - -

    This functionality has been tested for a handful of files, but if there are examples of files which you feel are in a -format which could easily be imported please get in touch

    - -
    - - -
    - Cvapp (SWC files) - - -

    The file format used by Cvapp (extension SWC) is also supported. It was developed to -cover most of the information common between in Neurolucida, -NEURON and -GENESIS formats. This format is pretty straightforward, but as mentioned, -care must be taken with the first soma segment. Check the morphology when imported and ensure the root segment -is as intended. Note that as of v1.0.4, there was a change in the import of SWC format files, to automatically create -Sections from the 3D points between splits in the dendritic morphologies, resulting in a -lower number of Sections but the same number of Segments. See the note on -Electrotonic length before using those morphologies in simulations.

    - -
    - - -
    - MorphML - -

    Files can be imported and exported in MorphML format.

    - -

    Normally the most recent version of the MorphML specifications will be used by neuroConstruct, but to check compliance, -this web service should be used.

    - -

    There is a close relation between the internal model of a cell in neuroConstruct and the information present in a MorphML file, -so exporting and importing a cell in this format should lead to identical cells (though the names need to be different -if they are in the same project).

    - -
    - -
    - Neurolucida - - -

    The Neurolucida file format is used by MicroBrightField products to store information -on neuronal reconstructions. Both binary and ASCII format files can be generated by these products, and at this time neuroConstruct can import -ASCII (*.asc) format V3 files (a heirarchical file structure with "CellBody", "Dendrite", etc). The format allows recording of various anatomical features, not only neuronal processes such as dendrites and cell bodies, but -can record other microanatomical features of potential interest to anatomists. Not all of these features will be relevant when constructing -a single cell computational model. Go to Cell Types -> Add New Cell Type and select NeurolucidaReader in the first drop down box. -Specify the location of the morphology file and choose a name for the Cell Type. A dialog box will be presented with some options as mentioned below. -

    - -

    The main points to note when importing Neurolucida files are:

    - - - -

    This functionality uses the bulk of the information in Neurolucida files which might be needed for neuronal modelling. -Please get in contact if there you have example files, some of the information in which you feel could be useful -in other modelling scenarios.

    - -
    - - -

     

    -

     

    - - -
    - - - - - - - - - - - diff --git a/docs/XML/xmlForHtml/docs/index.xml b/docs/XML/xmlForHtml/docs/index.xml deleted file mode 100755 index 93ab2b41..00000000 --- a/docs/XML/xmlForHtml/docs/index.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - -
    - neuroConstruct Documentation -
    - - - -

    An overview of the documentation available for neuroConstruct

    - - -

    Installation

    - -

       First you'll need to get the application installed. Click here for instructions -on the system requirements and installation instructions for neuroConstruct

    - - - - - -

    neuroConstruct paper

    - -

       The best way to get an overview of the functionality offered by neuroConstruct is to read - the paper published in the journal Neuron.

    - - - -

    Documentation contents

    - -

       More details on the contents of the neuroConstruct online documentation

    - - - -

    Glossary

    - -

       Details on most of the main terms used in the application are provided in a glossary, -which provides links to more details on the key concepts used (e.g. Cell Group, Cell Mechanisms)

    - -

    Tutorials

    - -

       A number of tutorials illustrating the functionality of the application. More -will be added to these in the near future.

    - - - -

    JavaDoc API for neuroConstruct

    - -

       The API for the latest version of neuroConstruct is available here.

    - - -

     

    -

     

    - -
    diff --git a/docs/XML/xmlForHtml/docs/install.xml b/docs/XML/xmlForHtml/docs/install.xml deleted file mode 100755 index d40b1cfe..00000000 --- a/docs/XML/xmlForHtml/docs/install.xml +++ /dev/null @@ -1,294 +0,0 @@ - - - - -
    - Installing and running neuroConstruct -
    - -
    - Installation via GitHub - -

    The source code for the application, as well as instructions for installation can be found: on GitHub.

    - -

     

    -

     

    -

     

    -

     

    -

      NOTE: The instructions below are out of date, but may be useful for reference/troubleshooting.

    - -

     

    -
    - -
    - Requirements - -

    neuroConstruct has been tested on on WinXP/NT, Red Hat Linux and openSUSE and Mac OS (please let us know - if you've any other experiences on other systems).

    - -

    A local installation of NEURON, - GENESIS, MOOSE, - PSICS or a PyNN compliant simulator - will be needed to execute the simulation scripts generated by neuroConstruct. - - Details of the interaction with these environments is available here.

    - - -

    neuroConstruct will run on most machines which can run Java and Java3D. For networks/cells with >5000 total segments, - you'll need a fairly modern machine, and the more RAM and graphics memory, the better; 1GB RAM and 128MB graphics is usually fine, higher is better. - See here for tips on improving graphics performance on slower machines.

    - -

    Approx. 130MB of disk space is required for the installation.

    - - -

    Install Java J2SE 5 or higher. Available here. It's better to download the JDK - (Java Development Kit), which includes command line tools for Java.

    - - -

    From version 1.2.0 the libraries for Java3D are included with the neuroConstruct download. - There is no need to install this separately. Also, jar files and binaries for HDF5 and - Jython - are included with the standard release.

    - - -
    -
    - Installation on Windows - -

    Make sure you have the correct version of Java installed (see above). Open a command prompt (Start -> Programs -> Accessories -> - Command Prompt) and type java -version. The version should be 1.5 or higher.

    - -

    There are 2 options available for installation on a Windows machine: automatic installer or zip file.

    -

      Automatic installer

    - -
      - -
    1. Download the windows installer from the neuroConstruct download page. - Note: this is not currently recommended for Vista, Windows 7 or 64bit Windows machines. It's better to use the zip file below instead.
    2. - - -
    3. Double click on the downloaded neuroConstruct_windows_1.x.x.exe file (where 1.x.x represents the current version number).
    4. - -
    5. Select the install location. NOTE: it's best **not** to use a directory with a space in the name (though C:\Program Files on - 32bit Windows is fine). - By default the Windows installer puts the code into C:\Program Files\neuroConstruct_1.x.x.
    6. - -
    7. On Vista and Windows 7, the installed files under C:\Program Files\neuroConstruct_1.x.x have read/write permissions designed - to make modification of installed files difficult. This has an - impact on the examples which are under this directory. These problems can be solved by browsing to the folder, and recursively setting - Full access control for the current user to all files in that directory via right click -> Properties -> Security -> Edit....
    8. - -
    9. The application can be launched via the desktop icon, or via Start -> Programs -> neuroConstruct_1.x.x -> neuroConstruct_1.x.x. - There is also a link to the documentation in this menu, or the HTML files which are available at: - C:\Program Files\neuroConstruct_1.x.x\docs\website\docs.
    10. - -
    11. neuroConstruct can also be run/rebuilt using the nC.bat script. See points 3, 4 and 5 below. Note also the information there - about running neuroConstruct with extra RAM.
    12. - - -
    - -

      Zip file install

    - -
      -
    1. Download neuroConstruct_1.x.x.zip from the download page. - This contains a directory tree from neuroConstruct_1.x.x, containing the main jar file and directories with the examples, documentation, etc.
    2. - -
    3. Unzip this to a convenient location e.g. to C:\neuroConstruct_1.x.x.
    4. - - -
    5. There is a precompiled jar file, (neuroConstruct_1.x.x.jar) present. - neuroConstruct can be run using this by executing nC.bat, either at the command prompt in the installation directory or - by double clicking on it in the file explorer. NOTE: you will have to open nC.bat for editing first and change the value - of NC_HOME to the installation directory.
    6. - -
    7. The NC_MAX_MEMORY=450M used in this file changes the maximum amount of memory available to the Java Virtual Machine. - Alter this according to your machine's capabilities (use approx 50% of max memory available). - NOTE: it's been found that requesting too much memory for neuroConstruct under Windows can result in the application crashing when - the graphics card is required to display large networks; aim for less than half the available RAM. See points on displaying - large 3D networks here.
    8. - - -
    9. The Java source code of neuroConstruct is included in the src directory. This can be recompiled using: nC.bat -make. - You'll need the Java compiler at command line (try typing javac -version, and if this fails add the bin - directory of the installed JDK to the PATH environment variable). - It is also possible to install Apache Ant and compile (type ant) and run (type ant run) - the code using the settings in build.xml.
    10. - - -
    - -
    -
    - Installation on Linux - - -

    Make sure you have the packages gcc, ncurses and ncurses-devel installed to allow compilation of NEURON mod files. More tips on interaction with NEURON here.

    - -

    Make sure you have the correct version of Java installed (see above). Open a terminal window and type java -version. - The version should be 1.5 or higher. neuroConstruct has to date been developed using Sun's Java SE, as opposed to OpenJDK, and some of the GUI elements - might look different if using OpenJDK, which is the default option on many Linux distributions. If you find buttons disappearing or labels too large for - the dialog boxes, try using the Sun JDK instead.

    - -

    There are 2 options available for installation on a Linux/Unix machine: automatic installer or zip file.

    -

      Automatic installer

    - -
      - -
    1. Download the Linux installer from the neuroConstruct download page. - Note: this is not currently recommended for 64bit Linux machines. It's better to use the zip file below instead.
    2. - - -
    3. - Click on the downloaded neuroConstruct_unix_1.x.x.sh file (where 1.x.x represents the current version number), or open a terminal, go to the install - directory and type ./neuroConstruct_unix_1.x.x.sh. You may need to give exectue permissions to the file first: chmod u+x neuroConstruct_unix_1.x.x.sh. -
    4. - -
    5. Select the install location. NOTE: it's best **not** to use a directory with a space in the name. - A suggested location is /home/username/neuroConstruct_1.x.x.
    6. - - -
    7. The application can be launched via the desktop shortcut, though this is not guaranteed to work on all distributions. - It may be better to open a terminal, go to the install directory and run ./neuroConstruct_1.x.x. -
    8. - -
    9. neuroConstruct can also be run/rebuilt using the nC.sh script. See points 3, 4 and 5 below. Note also the information there - about running neuroConstruct with extra RAM.
    10. - - -
    - -

      Zip file install

    - -
      -
    1. Download neuroConstruct_1.x.x.zip from the download page. - This contains a directory tree from neuroConstruct_1.x.x, containing the main jar file and directories with the examples, documentation, etc.
    2. - -
    3. Unzip this to a convenient location e.g. to /home/username/neuroConstruct_1.x.x.
    4. - - -
    5. There is a precompiled jar file, (neuroConstruct_1.x.x.jar) present. - neuroConstruct can be run using this by executing ./nC.sh, either at the command prompt in the installation directory or - by double clicking on it in the file explorer. You will need to give execute permissions to the file first: chmod u+x nC.sh. - NOTE: you will have to open nC.sh for editing first and change the value - of NC_HOME to the installation directory.
    6. - -
    7. The NC_MAX_MEMORY=450M used in this file changes the maximum amount of memory available to the Java Virtual Machine. - Alter this according to your machine's capabilities (use approx 50% of max memory available).
    8. - - -
    9. The Java source code of neuroConstruct is included in the src directory. This can be recompiled using: ./nC.sh -make. - You'll need the Java compiler availabe at command line (try typing javac -version). - It is also possible to install Apache Ant and compile (type ant) and run (type ant run) - the code using the settings in build.xml.
    10. - - -
    - - -
    -
    - Installation on Mac - -

    You'll need to install the Developer Tools (XCode) in addition to the NEURON *.dmg to allow compilation of mod files. - More tips on interaction with NEURON here

    - -

    Make sure you have the correct version of Java installed (see above). Open a terminal window and type java -version. - The version should be 1.5 or higher.

    - -

    There are 2 options available for installation on a Mac machine: automatic installer or zip file.

    -

      Automatic installer

    - -
      - -
    1. Download the Mac installer from the neuroConstruct download page. - Note: this is not currently recommended for 64bit Mac machines. It's better to use the zip file below instead.
    2. - - -
    3. - Click on the downloaded neuroConstruct_macos_1.x.x.sh file (where 1.x.x represents the current version number), or open a terminal, go to the install - directory and type ./neuroConstruct_macos_1.x.x.sh. You may need to give exectue permissions to the file first: chmod u+x neuroConstruct_macos_1.x.x.sh. -
    4. - -
    5. Select the install location. NOTE: it's best **not** to use a directory with a space in the name. - The default location is /Applications/neuroConstruct_1.x.x.
    6. - - -
    7. The application can be launched via the desktop shortcut, though this is not guaranteed to work on all Mac versions. - It may be better to open a terminal, go to the install directory and run ./neuroConstruct_1.x.x. -
    8. - -
    9. neuroConstruct can also be run/rebuilt using the nC.sh script. See points 3, 4 and 5 below. Note also the information there - about running neuroConstruct with extra RAM.
    10. - - -
    - -

      Zip file install

    - -
      -
    1. Download neuroConstruct_1.x.x.zip from the download page. - This contains a directory tree from neuroConstruct_1.x.x, containing the main jar file and directories with the examples, documentation, etc.
    2. - -
    3. Unzip this to a convenient location e.g. to /home/username/neuroConstruct_1.x.x.
    4. - - -
    5. There is a precompiled jar file, (neuroConstruct_1.x.x.jar) present. - neuroConstruct can be run using this by executing ./nC.sh, either at the command prompt in the installation directory or - by double clicking on it in the file explorer. You will need to give execute permissions to the file first: chmod u+x nC.sh. - NOTE: you will have to open nC.sh for editing first and change the value - of NC_HOME to the installation directory.
    6. - -
    7. The NC_MAX_MEMORY=450M used in this file changes the maximum amount of memory available to the Java Virtual Machine. - Alter this according to your machine's capabilities (use approx 50% of max memory available).
    8. - - -
    9. The Java source code of neuroConstruct is included in the src directory. This can be recompiled using: ./nC.sh -make. - You'll need the Java compiler availabe at command line (try typing javac -version). - It is also possible to install Apache Ant and compile (type ant) and run (type ant run) - the code using the settings in build.xml.
    10. - - -
    - - -
    - - - - - -
    - Post installation - - -

    Check that the location of the NEURON home dir is properly set. Go to Settings -> General Properties & Project - Defaults for this. Also check on the command line for running executables in a new terminal window via Java. - The suggested command lines have been tested on WinXP, Red Hat Linux, SUSE and Mac.

    - - -

    When the application is run for the first time, it will create 2 files in a directory .neuroConstruct in your home directory:

    - - - - - - - - - - - - -
    {USER_HOME} /.neuroConstruct/neuroConstruct.propsStores project independent information, e.g. default 3D settings, location of NEURON files, etc.
    {USER_HOME} /.neuroConstruct/neuroConstruct.recentStores list of recent project files
    - -

    Do not edit these files directly! Use Settings -> General Properties for this.

    - - -
    - - -

     

    -

     

    - -
    diff --git a/docs/XML/xmlForHtml/docs/interact.xml b/docs/XML/xmlForHtml/docs/interact.xml deleted file mode 100755 index 579fb615..00000000 --- a/docs/XML/xmlForHtml/docs/interact.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - -
    - Interacting with native simulators on various platforms -
    - - -

    Outlined here are some points regarding how neuroConstruct deals with the native simulators on - various operating systems

    - - -
    - General points - -

    neuroConstruct is written in Java and so can be used on any platform with a Java Virtual Machine - together with an implementation of Java3D.

    -

    In general, NEURON and/or GENESIS should be present on the same machine as neuroConstruct. The scripts for the target platform - are generated based on the network created by neuroConstruct, and these are set running in separate processes via the - Java Runtime.exec() command.

    -

    - - -
    - -
    - Linux - -

      NEURON

    - -

    NEURON hoc and mod files are generated from the network model in neuroConstruct. First, the mod files are compiled using - nrnivmodl. This executable is found using the value for the NEURON home directory in Settings -> - General Properties. -

    -

    Once the native machine libraries for the channels are generated, the main hoc file is run with nrngui. Note that - this is executed in a console window (by prefixing the command with gnome-terminal -x (Gnome desktop) or - konsole (KDE), also set via Settings -> General Properties)

    - -

      GENESIS

    -

    GENESIS script is generated from the network model and the main file can be run straight away. The genesis command, - together with the name of the main file are executed via Runtime.exec(), therefore the location of this executable - should be in the PATH variable. The command is executed in a new console window as above.

    - - -
    - - -
    - Windows - -

      NEURON

    - -

    NEURON hoc and mod files are generated from the network model in neuroConstruct. First, the mod files are compiled using a command of the form - C:\nrn60\bin\rxvt.exe -e C:\nrn60\bin\sh C:\nrn60\lib\mknrndll.sh C:\nrn60. The C:\nrn60 is found using the - value for the NEURON home directory in Settings -> General Properties. -

    -

    Once the native machine libraries for the channels are generated, the main hoc file is run with neuron.exe.

    - -

      GENESIS

    -

    GENESIS was for many years not available on Windows. A port has - recently been created, which while slower than under Linux, can be used to test generated GENESIS code under Windows. The - following assumes Cygwin has been installed at C:\cygwin and GENESIS installed at /usr/local/genesis i.e. - C:\cygwin\usr\local\genesis.

    -

    - GENESIS script is generated from the network model and the main file can be run straight away without further compilation. - The file {NEUROCONSTRUCT_HOME}/templates/genesisUtils/startxwin2.bat is used to launch the genesis executable. - This is a slightly modified version - of the startxwin.bat supplied with Cygwin for running an XTerm. This mechanism is a bit flaky (e.g. it doesn't - like NEURON running under Cygwin at the same time). Please report any problems/solutions to bugs - at - neuroConstruct.org

    - -
    - - -
    - Mac - -

    neuroConstruct and its 3D visualisation capability has been successfully tested on the Mac, but the interaction with simulation platforms needs more testing. - NEURON interaction is fine if the Developer Tools (XCode) are installed. Basic GENESIS interaction has been tried successfully too.

    -

    If you are interested in helping test the application on this platform, please get in touch

    -
    - - - -

     

    -

     

    - - -
    diff --git a/docs/XML/xmlForHtml/docs/netconns.xml b/docs/XML/xmlForHtml/docs/netconns.xml deleted file mode 100755 index f9685609..00000000 --- a/docs/XML/xmlForHtml/docs/netconns.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - -
    - Network Connections -
    - - - -
    - Introduction - -

    Network Connections in neuroConstruct are made between cells in 2 Cell Groups. -Before a Network Connection can be made a Synaptic Mechanism (e.g. a Double Exponential Synapse) needs to be -associated with subsets of dendrites/axons on the Cells in these Groups.

    - -

    To add a new Synaptic Mechanism for the project, go to tab Cell Mechanism -> Add ChannelML from Template and -select the Double Exponential Synapse. Enter the name of the Mechanism and then view and possibly edit the parameters describing it. More info on -Cell Mechanisms available here

    - -

    Go to that tab Visualisation, select the Cell Type which is -associated with the Cell Group in the drop down box and press View

    - -
    - -
    - Specifying Groups - - -

    Select Groups in the lower right hand drop down box to view the Section Groups. -There are four Section Groups always present:

    - - - - - -

    Network Connections will always initiate on a Section in either the soma_group or the -axon_group. Similarly, the connections will terminate on a Section in either the soma_group -or the dendrite_group.

    - -
    - -
    - Specifying Synaptic Connection Locations - -

    Not every Section of the Cell would be a suitable location of a particular synapse, -so other subgroups can be defined which specify where the connections should be made. By pressing Edit Groups, -new Section Groups can be made (e.g. basal/apical dendrites, parallel fibers), grouping Sections into biophysically -interesting regions of the cell.

    - -

    Select Synaptic Connection Location in the drop down box. Click Edit Synaptic Locations. -The added Synaptic Mechanism should be in the drop down list. Select this and then select the Section Groups where the -synapse can be found.

    - -

    It is important to point out again that the PRE synaptic location will be the intersection of the Sections in the (soma_group or the -axon_group) and the Group(s) selected here. Similarly for the POST synaptic location. Therefore if the -Group all is selected as a Synaptic Connection Location, synapses can be made on the axons (PRE), -dendrites (POST) and soma (PRE and POST). However if only the Group dendrite_group is selected as a -Synaptic Connection Location (or another Group only containing dendrites), then this particular Cell Type will only have -POST synaptic connections. Axons on another Cell Type will need to be specified as Synaptic Connection Locations for -this Synaptic Mechanism to make a Network Connection. -

    - -
    - -
    - Creating Network Connections - -

    Now that it is specified on which parts of the Cells synapses can be made, Network Connections can be created.

    -

    Go to tab Network Settings and click on Add Network Connection... under Network Connections.

    - -

    Select the source Cell Group and the Target Cell Group, ensuring PRE Synaptic Connection Locations are - allowed on Cell Types of the former and POST Synaptic Connection Locations on Cell Types of the latter. -

    - -

    Select the Synaptic Properties, including which Synaptic Mechanism is involved in the Network Connection, the voltage threshold - which will cause the synapse to fire, the delay after passing the threshold, and the weight of the synapse. These past two - values can be given fixed or variable values, in which case a new value will be generated for each instance of the synapse. -

    - -

    Other options include the method for searching for the connection point, the max and min lengths of the allowed - connections, and a number of other Connection Conditions. These are explained in more detail in the Tool Tips which - pop up when the cursor hovers over the relevant panel/label. Ensure viewing Tool Tips is enabled in - Settings -> General Properties & Project Defaults -

    - - -

    Once a Network Connection is made, generate the network, and view the latest positions in tab Visualisation. - You will see the generated Network Connections as lines going from green (PRE synaptic location) to red - (POST synaptic location) between the Sections which are connected by the synapse. If the option is selected in - 3D Settings a sphere will be placed at each of the Synaptic Endpoints. -

    - - - -
    - -

     

    -

     

    - -
    diff --git a/docs/XML/xmlForHtml/docs/neuroml.xml b/docs/XML/xmlForHtml/docs/neuroml.xml deleted file mode 100644 index b54a099e..00000000 --- a/docs/XML/xmlForHtml/docs/neuroml.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - - -
    - Support for NeuroML in neuroConstruct -
    - - -

    Listed here are all the possible ways neuroConstruct can import/export data in NeuroML format

    - - - -
    - Cell morphologies (Levels 1-3) - -

    neuroConstruct uses an internal data model for cells which is closely linked to MorphML. See - here for more details.

    - -

     

    -

      Level 1: only the anatomy of the cell (MorphML description)

    -

    IMPORT: go to Cell Types press Add new Cell Type to project... and select NeuroMLConverter in the scroll down menu.

    -

    EXPORT: go to Export -> NeuroML tab and press Export all Cell Types with the Level 1 button selected, - a file for each cell type will be saved in the generatedNeuroML folder of the current project.

    - -

     

    -

      Level 2: Level 1 plus cell biophysics (passivel electrical properties and channel placement)

    -

    IMPORT: go to Cell Types tab press Add new Cell Type to project... and select NeuroMLConverter in the scroll down menu. -Note that there should be channel mechanisms present in the project with names corresponding to those in the <biophysics> element of the file.

    -

    EXPORT: go to Export -> NeuroML tab and press Export all Cell Types with the Level 2 button selected, - a file for each cell type will be saved in the generatedNeuroML folder of the current project.

    - -

     

    -

      Level 3: Level 2 plus network aspects (allowed locations of synapse types)

    -

    IMPORT: go to Cell Types press Add new Cell Type to project... and select NeuroMLConverter in the scroll down menu. -Note that there should be channel and synaptic mechanisms present in the project with names corresponding to those in the <biophysics> and <connectivity> elements of the file.

    -

    EXPORT: go to Export -> NeuroML tab and press Export all Cell Types with the Level 3 button selected, - a file for each cell type will be saved in the generatedNeuroML folder of the current project.

    - - - - -

     

    -
    - - -
    - ChannelML - -

    ChannelML files can be used for Cell Mechanisms in neuroConstruct. They can be used for channels - (e.g. Na+, K+ distributed ion channels), synapses (fixed and plastic chemical synaptic mechanisms), gap junctions, ion concentrations (e.g. pool of internal - Ca2+) and point processes (e.g. simple integrate and fire mechanisms). The ChannelML file, a number of XSL mappings to simulators and a properties.xml file are stored for - each cell mechanism in the cellMechanism folder of a neuroConstruct project. Details of the process to convert an existing channel script, e.g. a mod file, to ChannelML - is outlined here -

    - -

     

    -

    IMPORT: to use a ChannelML based cell mechanism in neuroConstruct, ensure the file only contains a single -<channel_type> element, go to the Cell Mechanisms tab, press Create ChannelML Mechanism, name the new mechanism - and select the file containing the ChannelML description. XSL mappings for -NEURON and GENESIS can be found under templates/xmlTemplates/Schemata/vx.x.x/Level2 in the local folder of neuroConstruct. Alternatively, a small number of example ChannelML -mechanisms can be imported (and altered afterwards) by pressing Add ChannelML from Template.

    - -

     

    -

    EXPORT: go to Export -> NeuroML tab and press Generate all NeuroML scripts, - a file for each ChannelML based cell mechanism is saved in the generatedNeuroML folder of the current project.

    -

     

    - -
    - - -
    - NetworkML -

    NetworkML files can be saved and reloaded in neuroConstruct in either XML or HDF5 formats.

    -

    The NetworkML files read by neuroConstruct can come from any application which generates valid NetworkML, but nothe that the cell group - and cell type names used in the <populations> element, and the network connection names used in the <projections> - element must match the names of these already present in the project.

    -

    Included with neuroConstruct are a number of Python - scripts, and these allow reading/writing of NetworkML (in the pythonNeuroML/Examples folder in the install directory) and interaction with - neuroConstruct through Jython to generate a network which can then be saved as NetworkML (e.g. Ex4_SaveNetworkML.py - in the pythonnC folder in the install directory). More details can be found here.

    - - - -

     

    -

    IMPORT: go to the Generate tab, press Load NetworkML and select the XML or HDF5 file containing the NetworkML description. -

    - -

     

    -

    EXPORT: go to the Generate tab, press Save NetworkML, -a NetworkML description of the generated network will be saved in the savedNetworks folder of the current project.

    -
    -

     

    - -
    - Level 3 NeuroML - -

    neuroConstruct is able to generate and import and export single files containing all the model elements covered from Levels 1-3. -This file is fully NeuroML compliant and allow easy exchange of self-sufficient models between neuroConstruct users.

    -

     

    -

    IMPORT: select File -> Import NeuroML Levels 1, 2, 3... from the main menu and -select the Level 3 file to be imported. If the file contains elements (e.g. cell types) with the same names as are used -in the project, warnings will be shown. It is possible to import a Level 3 file into a new, empty project (or select Import NeuroML Levels 1, 2, 3... -when no project is open) and neuroConstruct specific entities (e.g. 3D Regions) will be created to accomodate the elements in the file.

    -

     

    -

    EXPORT: go to Export -> NeuroML tab and press Generate all NeuroML scripts with the Generate single NeuroML Level 3 file box ticked, -a single file containing all the generated elements will be saved in the savedNetworks folder of -the current project. Tick the Add neuroConstruct annotations box if you wish to include the neuroConstruct -specific settings like regions, simulation configurations etc. This will still produce a valid NeuroML Level 3 file (other -applications can ignore these annotations), but this will facilitate importing the model in the file into a new neuroConstruct project.

    - -
    - -

     

    -

     

    - - -
    diff --git a/docs/XML/xmlForHtml/docs/regions.xml b/docs/XML/xmlForHtml/docs/regions.xml deleted file mode 100755 index b7ee60c4..00000000 --- a/docs/XML/xmlForHtml/docs/regions.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - -
    - Regions -
    - - - - - -

    A volume in 3D space which can be filled with cells. Regions defined at the tab Regions can be also used for specifying bounding regions for selecting cells, for example:

    - - - - -

    Regions can also be used for:

    - - - -

    In the current version of neuroConstruct, these can be

    - -
      -
    1. Rectangular boxes (i.e. cuboids): where the width, height and depth are specified, along with the location of one of the lower corners
    2. -
    3. Spheres: the centre point and the radius are specified
    4. -
    5. Cylinders: the centre points of the base and top are specified, as is the radius
    6. -
    7. Cones: the centre points of the base and apex are specified, as is the base radius
    8. -
    - - -

    neuroConstruct can be extended (at the source code level) to include more complex 3D Regions, -e.g. folium like constructs, etc. by extending the Java class Region.

    - - -
    diff --git a/docs/XML/xmlForHtml/docs/simconfigs.xml b/docs/XML/xmlForHtml/docs/simconfigs.xml deleted file mode 100755 index 054109a6..00000000 --- a/docs/XML/xmlForHtml/docs/simconfigs.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - -
    - Simulation Configurations -
    - - - - - -

    Most neuroConstruct Projects will illustrate not just a single aspect of a cell - or network, but will seek to show how the cells react under different inputs, or how a network behaves - with different Cell Groups/cell populations present, etc. A particular Simulation - Configuration has a number of Cell Groups, Network Connections, Electrical Inputs, and Plots - associated with it, along with a simulation duration.

    - -

    One of these configurations must be specified - when the network is generated, indicating which of the aspects of the model is to be simulated. A Default - Simulation Configuration is always present, and if there is only this one, all new Cell Groups, etc. will be - automatically associated with it; otherwise new Cell Groups, Network Connections, etc. have to be manually added to - whichever particular Simulation Configuration they are required for.

    - - -

    Ideally there will be one Simulation Configuration associated with the project for each aspect being illustrated by the model as - a whole. If the model is accompanied by a paper, this could translate to one Simulation Configuration for each figure. If a published - model is being reproduced in neuroConstruct, it would be a useful goal to include Simulation Configurations reproducing the figures - of the paper as closely as possible. New Simulation Configurations can also be added to test new features of the network. Having a number - of 'working' Simulation Configurations is useful when a model is being developed, as following changes in the cells/cell mechanisms, the - older Simulation Configurations can be tested to ensure they are still producing the desired results.

    - - - - -
    diff --git a/docs/XML/xmlForHtml/docs/tutorials/index.xml b/docs/XML/xmlForHtml/docs/tutorials/index.xml deleted file mode 100755 index fe099a69..00000000 --- a/docs/XML/xmlForHtml/docs/tutorials/index.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - -
    - Tutorials about neuroConstruct -
    - - -

    These tutorials will give an introduction to the main functionality contained in neuroConstruct

    -

    Note: These are not intended as introductory tutorials for computational neuroscience.

    - - -

    They assume a - basic knowledge of the concepts behind simulation of neuronal processes. Introductory tutorials on - GENESIS or - NEURON will provide this.

    - -

      Very quick

    - - -

    For those with little time on their hands, a very quick tutorial -gives an insight to the main concepts of neuroConstruct

    - - -

      Basic functionality

    - - -

    A step by step guide to most of the basic functionality - of neuroConstruct

    - -

      Network functionality

    - - -

    A guide to how network connections - are set up in neuroConstruct

    - - -

      More...

    -

     

    - -

    In addition to the above, there are also guides to importing NEURON models into neuroConstruct -and converting channels to ChannelML.

    - -

    More detailed tutorials will be added in future. If you can suggest any aspect which needs clarification, please get in touch...

    - - -

     

    -

     

    -

     

    -

     

    -

     

    -

     

    - - - - - -
    diff --git a/docs/XML/xmlForHtml/docs/tutorials/tutorial1.xml b/docs/XML/xmlForHtml/docs/tutorials/tutorial1.xml deleted file mode 100755 index fd893ce9..00000000 --- a/docs/XML/xmlForHtml/docs/tutorials/tutorial1.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - -
    - Very quick tutorial -
    - - - - - - -

    The quickest way to create a simulation in in neuroConstruct is as follows:

    -
      - -
    1. Run neuroConstruct. Click on File -> New Project
    2. - -
    3. Enter the project name and the directory in which to place the main project folder. Click OK
    4. - -
    5. Accept the offer to create a few sample objects in the new project.
    6. - - -
    7. Select the tab Generate. Press the Generate Cell Positions and Connections button.
    8. - - -
    9. Go to Visualisation. In the drop down box, select Latest Generated Positions. -Press View. You should see an abstract neuron placed in a 3D box. There will also be a pipette like structure -signifying an electrical input.
    10. - - -
    11. If NEURON or GENESIS are installed (assuming NEURON) go to tab -Export and select the NEURON tab. -Select the Show 3D potential plot checkbox, and click Create hoc simulation. This will create the hoc code -for the main file, and a template for the cell, as well as NMODL code for the channels. The NMODL files -will be compiled and a confirmation shown. If there is a problem, go to Settings -> General Properties and check location there for the NEURON home directory. -The contents of the *.mod and *.hoc files can be viewed by selecting the filename and pressing View. -
    12. - -
    13. Click on Run Simulation. This should start NEURON and run the simulation you have just created. -
    14. - -
    15. Back in neuroConstruct, once the simulation has finished, go to tab Visualisation, and click on Previous Simulations -You will see a list of all recorded simulations. Click on the simulation just completed and click Load Simulation. -The generated cell appears again. Press Replay to view the recorded simulation. -
    16. - - -
    - - -

    Have a look here to see the various options which can be set when viewing cells in 3D.

    - - - -

     

    -

     

    - -
    diff --git a/docs/XML/xmlForHtml/docs/tutorials/tutorial2.xml b/docs/XML/xmlForHtml/docs/tutorials/tutorial2.xml deleted file mode 100755 index 61fb543e..00000000 --- a/docs/XML/xmlForHtml/docs/tutorials/tutorial2.xml +++ /dev/null @@ -1,139 +0,0 @@ - - - - -
    - Tutorial of basic neuroConstruct functionality -
    - - - - -
    - Set up project and add cell - -

    Run neuroConstruct. Click on File -> New Project

    - -

    Enter the project name and the directory in which to place - the main project folder. Click OK

    - - -

    Ignore the offer to create a few sample objects in the new project. That would be too easy.

    - - -

    Add a Cell Type. Select the tab Cell Types and -press Add New Cell Type to Project. - -Add a SimpleCell to the project (select in drop down menu), naming it Simple. More on Cell Types

    - - -

    Now press the View/edit morphology button below the panel giving details on the cell. This will change to the Visualisation tab and display the cell in 3D. For - various tips on what's possible when the cell is displayed in 3D see here.

    - -
    - -
    - Add channel mechanism - -

    There is a morphologically reasonable cell in the project now, but there is something missing. Click on the Validate button below the main menu. - This signals the fact that there are no cell density mechanisms present. A cell needs these for simulation of realistic electrophysiological behaviour. Other project or cell specific errors - will appear here as they occur.

    - -

    First a cell mechanism will be added to the project. Go to tab Cell Mechanisms. Click Add ChannelML from Template. This presents a list - of Channel Mechanisms and Synaptic Mechanisms whose parameters are - specified in ChannelML that serve as templates for your own channels/synapses. Select Leak Conductance, which represents -a passive conductance on the membrane of the cell, i.e. current will leak out/in to the cell if its membrane potential is different from the reversal potential of this channel. Press OK -and accept the name of the cell mechanism. You are presented with a summary of the parameters of the mechanism. Select the second tab ChannelML file to see what's actually in the XML file. -Note: it is also possible to use a cell mechanism based on a NMODL file or GENESIS channel script. See here for an outline of the process

    - -

    Close this and return to Visualisation. Select the cell name in the drop down box and press View. Select Cell density mechanisms in the lower right drop -down box and press Edit density mechanisms. Under Cell Mechanisms select the mechanism you've just added. Select all and press the right arrow to indicate this mechanism is -present on all sections. Accept the default value for maximum conductance density. Press OK. Now click Validate again and you'll see that the cell meets the minimum requirements for -use in a simulation.

    - -
    - -
    - Packing in 3D - -

    Now we need to specify a Region in which to place the cells. Go to the tab - Regions, select Add New Region. Accept the defaults and press OK.

    - - -

    Go to the tab Cell Groups and click New Cell Group. This results in a dialog to -specify the name, Cell Type (here the only choice is Simple), -which Region the cells will be placed in, the colour, and the packing pattern. -Press the Choose... button next to Packing Pattern. In the field for Cell Number, enter the number -of cells you want randomly placed in the Region.

    - -

    A dialog box will ask if you wish to record the membrane potential of the cell during simulations. Press Yes. It would be good to also view the membrane potential while the simulation is running. - Go to tab Input/Output. Click on the entry for saving the voltage in the lower table and click Edit selected plot. This dialog specified what variable to save and/or plot during a simulation, - which cells of the Cell Group to record, etc. In the bottom drop down box select Plot and save. Press OK. -

    - -

    A stimulation must be applied to the cell or it will be an uninteresting simulation. Still at tab Input/Output, - select Add electrophysiological input. Keep the default values (a single current pulse on the soma of all cells in the Cell Group) and press Ok.

    - - -

    Select the tab Generate. Press the Generate Cell Positions and Connections button.

    - -

    Go to Visualisation. In the drop down box, select Latest Generated Positions. - Press View.

    - -
    - -
    - Running/replaying simulation - -

    If NEURON or GENESIS are installed (assuming NEURON) go to tab -Export and select the NEURON tab. -Select the Show 3D potential plot checkbox, and click Create hoc simulation. This will create the hoc code -for the main file, and a template for the cell, as well as NMODL code for the channels. The NMODL files -will be compiled and a confirmation shown. -

    - -

    Click on Run Simulation. This should start NEURON and run the simulation you have just created. - If there is a problem starting, and it is installed correctly go to Settings -> General Properties and check the entries there.

    - -

    Back in neuroConstruct, once the simulation has finished, go to tab Visualisation, and click on Previous Simulations -You will see a list of all recorded simulations. Click on the simulation just completed and click Load Simulation. -The generated cell appears again. Press Replay to view the recorded simulation. -

    -

    Select the Cell Group and Cell Number in the drop down boxes followed by Plot selected. This shows the recorded -voltage trace. Individual cells can also be selected by clicking on them in the 3D view. Note however, if the cell is inside a transparent -3D Region or if there are other cells close by it may be difficult to select the correct object. Click 3D Settings and deselect displaying of Regions

    - - -
    - -
    - Further things to try... - - -

    Change the layout of the cells generated. In tab Cell Groups, click the table entry under - Cell Packing Adapter. This will open up the packing pattern dialog. If the random packing adapter is selected, - the number of cells to pack into the Region can be changed. There are also options to change settings on whether the cell bodies - can overlap, and whether the whole cell body should stay inside the region, or just the centres. The packing pattern itself can be changed too, - from randomly placed to a single cell placed at a precise 3D point, a hexagonal pattern, cubic close packed, etc. - More on the various types of packing patterns available.

    - - -

    Change the size/shape of the Region. Go to tab Region, select the line with the Region details, - click on Edit Selected Region, and either change the position and size of the Rectangular region - or change it to a Spherical Region placed in 3D.

    - -

    Edit the morphology of the cell. Go to tab Visualisation, select 3D Settings and make sure display is on All solid - and the 3D axes are not shown. Save these settings and view the cell you've added. Click on any of the segments. Make sure Pick Segments/Sections is selected - in the lower right drop down box. It will turn red (if there are any other segments in the same section they will turn yellow). Click on Edit... and you can alter the end points, etc. - At the drop down box in the Segment selector, there are a number of functions for adding new segments, specifying axonal arbours for Volume Based Connections, etc.

    - - -

    Add some other Cell Mechanisms to the project (e.g. NaConductance, KConductance) and apply these to the cell membrane in the same way as the leak conductance.

    - - -
    - -

     

    -

     

    - -
    diff --git a/docs/XML/xmlForHtml/docs/tutorials/tutorial3.xml b/docs/XML/xmlForHtml/docs/tutorials/tutorial3.xml deleted file mode 100755 index d2f483b3..00000000 --- a/docs/XML/xmlForHtml/docs/tutorials/tutorial3.xml +++ /dev/null @@ -1,161 +0,0 @@ - - - - -
    - Network Connections Tutorial -
    - - - -
    - Introduction - -

    Network Connections in neuroConstruct are made between cells in 2 Cell Groups.

    - - -

    Run neuroConstruct. Click on File -> New Project. - -Enter the project name and the directory in which to place the main project folder. Click OK - -Reject the offer to create a few sample objects in the new project.

    - - -

    Add 2 cell types to the project. Go to Cell Types -> Add New Cell Type to Project and specify GranuleCell in the drop down box (naming the cell Granule). Add a PurkinjeCell calledPurkinje also.

    - - -

    Before a Network Connection can be made a Synaptic Mechanism (e.g. a Double Exponential Synapse) needs to be -associated with subsets of dendrites/axons on the Cells in these Groups.

    - -

    To add a new Synaptic Mechanism for the project, go to tab Cell Mechanism -> Add ChannelML from Template and -select the Double Exponential Synapse. Enter the name of the Mechanism (e.g. PF_Purk_Syn) and the new mechanism will be opened for editing. You can view the HTML representation of the ChannelML file (1st tab) or the original ChannelML file (2nd tab). -Pressing Validate file will validate the XML against the latest XML Schema file describing the content of ChannelML files. Pressing Generate relevant plots -creates a plot of the conductance waveform in the file (note the implementation of plot generation is hardcoded in Java for a subset of ChannelML files). The 3rd tab can be used to edit the XML in an external text editor. -The 4th and 5th tabs show the XSD files which transform the XML into NEURON and GENESIS format. -More info on Cell Mechanisms available here. - -

    - - - -

    Go to the tab Visualisation, select View with the granule cell selected in the drop down box.

    - -
    - -
    - Specifying Groups - - -

    Select Groups in the lower right hand drop down box to view the Section Groups. -There are four pre defined Section Groups:

    - - - - -

    Network Connections will generally initiate on a Section in either the soma_group or the -axon_group, and the connections will generally terminate on a Section in either the soma_group -or the dendrite_group. These can be changed at the bottom of the Morphology based connection dialog to allow, e.g. axo-axonic or dendrodendritic -connections, which can be quite useful for electrical synapses.

    - -

    Not every Section of the Cell would be a suitable location of a particular synapse, - so other subgroups can be defined which specify where the connections should be made. By pressing Edit Groups, - new Section Groups can be made (e.g. basal/apical dendrites, parallel fibers), grouping Sections into biophysically -interesting regions of the cell. A Section will always belong to at most one of soma_group, dendrite_group or axon_group.

    - -

    For the granule cell, click on Edit Groups, add a new group called parallel_fibers, and add the sections parallelFiberPos and parallelFiberNeg to the group.

    - - -
    - -
    - Specifying Synaptic Connection Locations - - - -

    Select Synaptic Connection Location in the drop down box. Click Edit Synaptic Locations. - The added Synaptic Mechanism (PF_Purk_Syn) should be in the drop down list. Select this and then select the Section Group, parallel_fibers, where the -synapse can be found.

    - -

    It is important to point out again that the PRE synaptic location will be the intersection of the Sections specified in the GUI for presynaptic connections (nromally soma_group or the -axon_group, but see above) and the Group(s) selected here. Similarly for the POST synaptic location. Therefore if the -Group all is selected as a Synaptic Connection Location, synapses can be made on the axons (PRE), -dendrites (POST) and soma (PRE and POST). However if only the Group dendrite_group is selected as a -Synaptic Connection Location (or another Group only containing dendrites), then this particular Cell Type will only have -POST synaptic connections. Axons on another Cell Type will need to be specified as Synaptic Connection Locations for -this Synaptic Mechanism to make a Network Connection. -

    - -

    View the PurkinjeCell now. There should be a group main_dends already defined. Associate this group with the Synaptic Mechanism (PF_Purk_Syn) also.

    - - -
    - - -
    - Specifying packing of Cell Groups - -

    Add 2 regions as in Tutorial 2. Make both rectangular boxes, the first with lower point (0,0,0) measuring 120x50x120 (default values). - The second region will automatically be placed on top of this starting at (0,50,0) with the same dimensions.

    - -

    Add 2 Cell Groups. The first named GranuleCells, associate with the lower region, fill with 12 granule cells (click on Choose... beside Packing Pattern in the New Cell Group dialog - and enter 12 beside CellNumber). The Second, PurkinjeCell, place in the upper region, and fill with a single Purkinje cell. -

    -
    - -
    - Creating Network Connections - -

    Now that it is specified on which parts of the Cells synapses can be made, Network Connections can be created.

    -

    Go to tab Network and click on Add Morphology Connection under Morphology Based Connections.

    - -

    Select the source Cell Group (GranuleCells) and the Target Cell Group (PurkinjeCell). -

    - -

    Select the Synaptic Properties, including which Synaptic Mechanism is involved in the Network Connection, the voltage threshold - which will cause the synapse to fire, the delay after passing the threshold, and the weight of the synapse. These past two - values can be given fixed or variable values, in which case a new value will be generated for each instance of the synapse. -

    - -

    Other options include the method for searching for the connection point, the max and min lengths of the allowed - connections, and a number of other Connection Conditions. These are explained in more detail in the Tool Tips which - pop up when the cursor hovers over the relevant panel/label. Ensure viewing Tool Tips is enabled in - Settings -> General Properties & Project Defaults. -

    - - -

    Once a Network Connection is specified, generate the network, and view the latest positions in tab Visualisation. - You will see the generated Network Connections as lines going from green (PRE synaptic location) to red - (POST synaptic location) between the Sections which are connected by the synapse. If the option is selected in - 3D Settings a sphere will be placed at each of the Synaptic Endpoints. -

    - -
    - -
    - Further things to try... - -

    Try adjusting the parameters in the Network Connection. Set max and min values for the lengths of the connections. Distances from pre to post synaptic location can be checked by clicking - Analyse connection lengths after generation of the network.

    - -

    Add more Purkinje cells and see how many connections go to each. Select Analyse number of connections at tab Generate. -

    - -

    Try adding cell mechanisms to the cell as in Tutorial 2, adding input to the Granule cells and running the network. Note these cells are greatly simplified versions of the - cells in the cerebellum and are unlikely to show very many of the properties of their biological counterparts. Look at the included examples, e.g. GranuleCellLayer.ncx for more realistic cells.

    - - -
    - -

     

    -

     

    - -
    diff --git a/docs/XML/xmlForHtml/download/index.xml b/docs/XML/xmlForHtml/download/index.xml deleted file mode 100755 index ece66263..00000000 --- a/docs/XML/xmlForHtml/download/index.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - -
    - Download neuroConstruct -
    - - - - -

    The source code for the application, as well as instructions for installation can be found: on GitHub.

    - -

     

    -

     

    -

     

    -

     

    -

     

    -

     

    -

     

    -

     

    - - -
    diff --git a/docs/XML/xmlForHtml/images/CA1-spike.PNG b/docs/XML/xmlForHtml/images/CA1-spike.PNG deleted file mode 100644 index f55d2abf..00000000 Binary files a/docs/XML/xmlForHtml/images/CA1-spike.PNG and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/CerebSimple.png b/docs/XML/xmlForHtml/images/CerebSimple.png deleted file mode 100755 index bd24021c..00000000 Binary files a/docs/XML/xmlForHtml/images/CerebSimple.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/Cerebellum.png b/docs/XML/xmlForHtml/images/Cerebellum.png deleted file mode 100755 index 9437bf31..00000000 Binary files a/docs/XML/xmlForHtml/images/Cerebellum.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/ChanMech.png b/docs/XML/xmlForHtml/images/ChanMech.png deleted file mode 100755 index ab3c44c6..00000000 Binary files a/docs/XML/xmlForHtml/images/ChanMech.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/ChannelML.png b/docs/XML/xmlForHtml/images/ChannelML.png deleted file mode 100755 index 0daa6f8e..00000000 Binary files a/docs/XML/xmlForHtml/images/ChannelML.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/Connn.png b/docs/XML/xmlForHtml/images/Connn.png deleted file mode 100755 index bbdcf933..00000000 Binary files a/docs/XML/xmlForHtml/images/Connn.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/EpilepsyBookCover.PNG b/docs/XML/xmlForHtml/images/EpilepsyBookCover.PNG deleted file mode 100644 index a8ec5437..00000000 Binary files a/docs/XML/xmlForHtml/images/EpilepsyBookCover.PNG and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/Ex1.png b/docs/XML/xmlForHtml/images/Ex1.png deleted file mode 100755 index efc2ba6f..00000000 Binary files a/docs/XML/xmlForHtml/images/Ex1.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/Fig7nml2.png b/docs/XML/xmlForHtml/images/Fig7nml2.png deleted file mode 100644 index b3269eef..00000000 Binary files a/docs/XML/xmlForHtml/images/Fig7nml2.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/GranLayer.png b/docs/XML/xmlForHtml/images/GranLayer.png deleted file mode 100755 index 61df1620..00000000 Binary files a/docs/XML/xmlForHtml/images/GranLayer.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/GranLayerSmall.png b/docs/XML/xmlForHtml/images/GranLayerSmall.png deleted file mode 100755 index 945e824f..00000000 Binary files a/docs/XML/xmlForHtml/images/GranLayerSmall.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/KoleCell.png b/docs/XML/xmlForHtml/images/KoleCell.png deleted file mode 100644 index b37866ec..00000000 Binary files a/docs/XML/xmlForHtml/images/KoleCell.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/MRC.png b/docs/XML/xmlForHtml/images/MRC.png deleted file mode 100755 index ba5a5daf..00000000 Binary files a/docs/XML/xmlForHtml/images/MRC.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/Mainen.png b/docs/XML/xmlForHtml/images/Mainen.png deleted file mode 100755 index f56c6a04..00000000 Binary files a/docs/XML/xmlForHtml/images/Mainen.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/NEU-GEN.png b/docs/XML/xmlForHtml/images/NEU-GEN.png deleted file mode 100755 index 2ece5cce..00000000 Binary files a/docs/XML/xmlForHtml/images/NEU-GEN.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/NeuroMLCompat50.png b/docs/XML/xmlForHtml/images/NeuroMLCompat50.png deleted file mode 100644 index 43ead3aa..00000000 Binary files a/docs/XML/xmlForHtml/images/NeuroMLCompat50.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/Packing.png b/docs/XML/xmlForHtml/images/Packing.png deleted file mode 100755 index b823078d..00000000 Binary files a/docs/XML/xmlForHtml/images/Packing.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/Packing22.png b/docs/XML/xmlForHtml/images/Packing22.png deleted file mode 100755 index a153521f..00000000 Binary files a/docs/XML/xmlForHtml/images/Packing22.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/PackingAll.png b/docs/XML/xmlForHtml/images/PackingAll.png deleted file mode 100755 index c86fe51a..00000000 Binary files a/docs/XML/xmlForHtml/images/PackingAll.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/Purkinje.png b/docs/XML/xmlForHtml/images/Purkinje.png deleted file mode 100755 index 2f02632c..00000000 Binary files a/docs/XML/xmlForHtml/images/Purkinje.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/SegSelector.png b/docs/XML/xmlForHtml/images/SegSelector.png deleted file mode 100755 index f6fcbe9a..00000000 Binary files a/docs/XML/xmlForHtml/images/SegSelector.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/SilverLab.png b/docs/XML/xmlForHtml/images/SilverLab.png deleted file mode 100755 index 5121a397..00000000 Binary files a/docs/XML/xmlForHtml/images/SilverLab.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/SimBrowser.png b/docs/XML/xmlForHtml/images/SimBrowser.png deleted file mode 100755 index c5700447..00000000 Binary files a/docs/XML/xmlForHtml/images/SimBrowser.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/Simple.png b/docs/XML/xmlForHtml/images/Simple.png deleted file mode 100755 index 59f47622..00000000 Binary files a/docs/XML/xmlForHtml/images/Simple.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/Thumbs.db b/docs/XML/xmlForHtml/images/Thumbs.db deleted file mode 100755 index 3599f1b0..00000000 --- a/docs/XML/xmlForHtml/images/Thumbs.db +++ /dev/null @@ -1 +0,0 @@ -ÐÏࡱ \ No newline at end of file diff --git a/docs/XML/xmlForHtml/images/Wellcome.png b/docs/XML/xmlForHtml/images/Wellcome.png deleted file mode 100755 index 599acb9c..00000000 Binary files a/docs/XML/xmlForHtml/images/Wellcome.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/b22.png b/docs/XML/xmlForHtml/images/b22.png deleted file mode 100755 index 3b636341..00000000 Binary files a/docs/XML/xmlForHtml/images/b22.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/dentgyr.png b/docs/XML/xmlForHtml/images/dentgyr.png deleted file mode 100755 index 2904a87f..00000000 Binary files a/docs/XML/xmlForHtml/images/dentgyr.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/dg.PNG b/docs/XML/xmlForHtml/images/dg.PNG deleted file mode 100755 index 3e501c10..00000000 --- a/docs/XML/xmlForHtml/images/dg.PNG +++ /dev/null @@ -1 +0,0 @@ -‰PNG diff --git a/docs/XML/xmlForHtml/images/favicon2.ico b/docs/XML/xmlForHtml/images/favicon2.ico deleted file mode 100755 index 57db0b16..00000000 Binary files a/docs/XML/xmlForHtml/images/favicon2.ico and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/faviconO.ico b/docs/XML/xmlForHtml/images/faviconO.ico deleted file mode 100755 index 51d1fc3a..00000000 Binary files a/docs/XML/xmlForHtml/images/faviconO.ico and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/genneu.png b/docs/XML/xmlForHtml/images/genneu.png deleted file mode 100755 index b2a6656e..00000000 Binary files a/docs/XML/xmlForHtml/images/genneu.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/golgi9cell.png b/docs/XML/xmlForHtml/images/golgi9cell.png deleted file mode 100644 index 588ed4b7..00000000 Binary files a/docs/XML/xmlForHtml/images/golgi9cell.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/group-logo.gif b/docs/XML/xmlForHtml/images/group-logo.gif deleted file mode 100755 index f017f324..00000000 Binary files a/docs/XML/xmlForHtml/images/group-logo.gif and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/group.svg b/docs/XML/xmlForHtml/images/group.svg deleted file mode 100755 index 1b62b982..00000000 --- a/docs/XML/xmlForHtml/images/group.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - Anteater logo - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/XML/xmlForHtml/images/icon.png b/docs/XML/xmlForHtml/images/icon.png deleted file mode 100755 index 3be8bbbe..00000000 Binary files a/docs/XML/xmlForHtml/images/icon.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/incf.png b/docs/XML/xmlForHtml/images/incf.png deleted file mode 100644 index 090b3e36..00000000 Binary files a/docs/XML/xmlForHtml/images/incf.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/layers.png b/docs/XML/xmlForHtml/images/layers.png deleted file mode 100755 index 84fa924c..00000000 Binary files a/docs/XML/xmlForHtml/images/layers.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/logo-mrc.gif b/docs/XML/xmlForHtml/images/logo-mrc.gif deleted file mode 100755 index f980f7a7..00000000 Binary files a/docs/XML/xmlForHtml/images/logo-mrc.gif and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/logo-mrc.png b/docs/XML/xmlForHtml/images/logo-mrc.png deleted file mode 100755 index 5548086e..00000000 Binary files a/docs/XML/xmlForHtml/images/logo-mrc.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/logo.PNG b/docs/XML/xmlForHtml/images/logo.PNG deleted file mode 100755 index 3e501c10..00000000 --- a/docs/XML/xmlForHtml/images/logo.PNG +++ /dev/null @@ -1 +0,0 @@ -‰PNG diff --git a/docs/XML/xmlForHtml/images/logo16.png b/docs/XML/xmlForHtml/images/logo16.png deleted file mode 100755 index 887e2c9b..00000000 Binary files a/docs/XML/xmlForHtml/images/logo16.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/logo32.png b/docs/XML/xmlForHtml/images/logo32.png deleted file mode 100755 index 0f7cde39..00000000 Binary files a/docs/XML/xmlForHtml/images/logo32.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/mrclogo.gif b/docs/XML/xmlForHtml/images/mrclogo.gif deleted file mode 100755 index 281ea98d..00000000 Binary files a/docs/XML/xmlForHtml/images/mrclogo.gif and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/net3d.PNG b/docs/XML/xmlForHtml/images/net3d.PNG deleted file mode 100755 index 3e501c10..00000000 --- a/docs/XML/xmlForHtml/images/net3d.PNG +++ /dev/null @@ -1 +0,0 @@ -‰PNG diff --git a/docs/XML/xmlForHtml/images/netw3d.png b/docs/XML/xmlForHtml/images/netw3d.png deleted file mode 100755 index e5e0ac67..00000000 Binary files a/docs/XML/xmlForHtml/images/netw3d.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/neuroConstruct b/docs/XML/xmlForHtml/images/neuroConstruct deleted file mode 100755 index 76880a44..00000000 Binary files a/docs/XML/xmlForHtml/images/neuroConstruct and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/neuroConstruct.png b/docs/XML/xmlForHtml/images/neuroConstruct.png deleted file mode 100755 index ad9a6fa4..00000000 Binary files a/docs/XML/xmlForHtml/images/neuroConstruct.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/neuroConstruct.xcf b/docs/XML/xmlForHtml/images/neuroConstruct.xcf deleted file mode 100755 index 808143e0..00000000 Binary files a/docs/XML/xmlForHtml/images/neuroConstruct.xcf and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/openworm.png b/docs/XML/xmlForHtml/images/openworm.png deleted file mode 100644 index 98dc40eb..00000000 Binary files a/docs/XML/xmlForHtml/images/openworm.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/openworm.svg b/docs/XML/xmlForHtml/images/openworm.svg deleted file mode 100644 index d9a73142..00000000 --- a/docs/XML/xmlForHtml/images/openworm.svg +++ /dev/null @@ -1,2798 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - - - neuroConstruct is being used by the OpenWorm project... - diff --git a/docs/XML/xmlForHtml/images/project-logo.gif b/docs/XML/xmlForHtml/images/project-logo.gif deleted file mode 100755 index a60277a4..00000000 Binary files a/docs/XML/xmlForHtml/images/project-logo.gif and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/project.svg b/docs/XML/xmlForHtml/images/project.svg deleted file mode 100755 index 9abd6131..00000000 --- a/docs/XML/xmlForHtml/images/project.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - Anteater logo - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/XML/xmlForHtml/images/test.html b/docs/XML/xmlForHtml/images/test.html deleted file mode 100755 index 0ae3af6b..00000000 --- a/docs/XML/xmlForHtml/images/test.html +++ /dev/null @@ -1,11 +0,0 @@ - - -Image test - - - -tester - - - - diff --git a/docs/XML/xmlForHtml/images/wct2.png b/docs/XML/xmlForHtml/images/wct2.png deleted file mode 100755 index 17c7530f..00000000 Binary files a/docs/XML/xmlForHtml/images/wct2.png and /dev/null differ diff --git a/docs/XML/xmlForHtml/images/wellcometrust.jpg b/docs/XML/xmlForHtml/images/wellcometrust.jpg deleted file mode 100755 index 65089802..00000000 Binary files a/docs/XML/xmlForHtml/images/wellcometrust.jpg and /dev/null differ diff --git a/docs/XML/xmlForHtml/index.xml b/docs/XML/xmlForHtml/index.xml deleted file mode 100755 index 8509fc8b..00000000 --- a/docs/XML/xmlForHtml/index.xml +++ /dev/null @@ -1,137 +0,0 @@ - - - - -
    - neuroConstruct: Software for developing biologically realistic 3D neural networks -
    - -

     

    - -
    -
    - -

     

    -
    - Introduction -

    neuroConstruct is being developed in the Silver Lab in the - - Department of Neuroscience, Physiology and Pharmacology at - UCL. neuroConstruct has been designed to simplify development of complex networks - of biologically realistic neurons, i.e. models incorporating dendritic morphologies and realistic cell membrane conductances. - It is implemented in Java and generates script files for a number of widely used neuronal simulation platforms - (including NEURON, - GENESIS, MOOSE, - PSICS and PyNN). It uses the - latest NeuroML specifications, - including MorphML, ChannelML - and NetworkML.

    - -

    Development of this software was made possible with funding from the Wellcome - Trust, the Medical Research Council and the EU Synapse Project.

    -
    - - -
    - - Latest News - -

    The latest version of neuroConstruct (v1.7.2) is available - here. - The source code has been released under GPL.

    - -

    A paper describing the latest stable version of NeuroML has been - published: NeuroML: A Language for Describing Data Driven Models of Neurons and - Networks with a High Degree of Biological Detail, P Gleeson, S Crook, RC Cannon, ML Hines, GO Billings, - M Farinella, TM Morse, AP Davison, - S Ray, US Bhalla, SR Barnes, YD Dimitrova, - RA Silver, PLoS Comput Biol 2010. It can be downloaded here and it - describes in detail the structure of version 1.x (Levels 1-3, MorphML, ChannelML, NetworkML), includes a - detailed discussion of the elements present at each level along with example NeuroML code (see the - supporting text - of the paper), outlines current simulator support, and presents a number of new cell and network models which have been - converted to the format.

    - -

    A morphologically detailed CA1 pyramidal - cell model and a number of cells from the Traub et al. 2005 thalamocortical - network model are available here for download in NeuroML format or as complete neuroConstruct - projects for execution on a number of simulation platforms. - These models are also included with the latest version of neuroConstruct.

    - - - -

    A Nature paper - (Jason S. Rothman, Laurence Cathala, Volker Steuber, R. Angus Silver, - Synaptic depression enables neuronal gain control. Nature 2009) has used neuroConstruct to investigate - a detailed layer 5 pyramidal cell model (Kole et al 2008) with dendritically distributed excitatory and - inhibitory synaptic input to look at the effects of short term plasticity on gain control ( - see project on Open Source Brain).

    - - - -

    The paper describing the application has been published: - P. Gleeson, V. Steuber and R. A. Silver, neuroConstruct: A Tool for Modeling Networks of Neurons in 3D - Space, Neuron 2007 - It is available via Open Access here.

    - - -

    A more complete list of publications related to neuroConstruct can be - found here.

    - - - -

    There is a mailing list for neuroConstruct related news (neuroconstruct@ucl.ac.uk). - Sign up here.

    - - -
    - -
    - What is neuroConstruct? - -

    Some of the key features of neuroConstruct are:

    - -
    -
    - What isn't neuroConstruct? - - -

    These packages have sophisticated environments for creating neuronal simulations from scratch, -and controlling all aspects of the simulation run. neuroConstruct automates the generation of script files for -these platforms, and provides a framework for creating conductance based neuronal models, creating, visualising and -analysing networks of cells in 3D, managing simulations and analysing network firing behaviour.

    - - - -

     

    -

     

    -

     

    -

     

    - -
    - - - - - - -
    diff --git a/docs/XML/xmlForHtml/links/index.xml b/docs/XML/xmlForHtml/links/index.xml deleted file mode 100755 index 7e4c3a5f..00000000 --- a/docs/XML/xmlForHtml/links/index.xml +++ /dev/null @@ -1,136 +0,0 @@ - - - - -
    - Useful neuroConstruct related links -
    - - -

     

    -

    Note that a list of software packages with support for NeuroML is maintained here. neuroConstruct can interact with - most of these tools through import/export of NeuroML.

    - -

     

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - Silver Lab at University College London - - http://silverlab.org/ -
    - NeuroML - - http://www.neuroml.org -
    - NeuroML Sourceforge site - - http://sourceforge.net/projects/neuroml -
    - Web application for validating MorphML/ChannelML files - - http://www.neuroml.org/NeuroMLValidator -
    - GENESIS Simulator - - http://www.genesis-sim.org/GENESIS -
    - MOOSE Simulator (reimplementation of GENESIS core) - - http://moose.sourceforge.net -
    - NEURON Simulator - - http://www.neuron.yale.edu/neuron -
    - PyNN simulator language - - http://neuralensemble.org/trac/PyNN -
    - PSICS - - http://www.psics.org -
    - Java - - http://java.sun.com -
    - Java 3D API - - https://java3d.dev.java.net -
    - -

     

    -

     

    -

     

    -

    neuroConstruct is registered -with the following sites, which contain information on and links to many computational neuroscience tools:

    -

       INCF Software Center    - Neuroscience Information Framework

    - -

     

    -

     

    - -
    diff --git a/docs/XML/xmlForHtml/links/publications.xml b/docs/XML/xmlForHtml/links/publications.xml deleted file mode 100644 index 7d9597d7..00000000 --- a/docs/XML/xmlForHtml/links/publications.xml +++ /dev/null @@ -1,256 +0,0 @@ - - - - -
    - neuroConstruct and NeuroML related publications -
    - - - - -
    - Core publications - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    neuroConstruct: A Tool for Modeling Networks of Neurons in 3D Space, Neuron, Volume 54, Issue 2, 19 April 2007, Pages 219-235.

    -

    Padraig Gleeson, Volker Steuber, R. Angus Silver

    -

    PubMed - Open access download

    -

     

    - The main neuroConstruct paper. An introduction to all of the key functionality, including some - network examples.

    Please cite this paper if you use neuroConstruct in your research.

    -
    -

    NeuroML: A Language for Describing Data Driven Models of Neurons and - Networks with a High Degree of Biological Detail, PLoS Comput Biol 6(6): e1000815

    -

    Padraig Gleeson, Sharon Crook, Robert C. Cannon, Michael L. Hines, Guy O. Billings, Matteo Farinella, Thomas M. Morse, - Andrew P. Davison, Subhasis Ray, Upinder S. Bhalla, Simon R. Barnes, Yoana D. Dimitrova, R. Angus Silver

    - -

    PLoS Comput Biol

    -

     

    - The main NeuroML paper. Describes in detail the structure of version 1.x (Levels 1-3, - MorphML, ChannelML, NetworkML), includes a detailed discussion of the elements - present at each level along with example NeuroML code (see the supporting text - of the paper), outlines current simulator support, - and presents a number of new cell and network models which have recently been - converted to the format.

    Please cite this paper if you use NeuroML in your research.

    -
    -

    Using neuroConstruct to Develop and Modify Biologically Detailed 3D Neuronal Network Models in Health and Disease. - In Computational Neuroscience in Epilepsy, 2008, I. Soltesz, and K. Staley, eds. (Elsevier).

    -

    Padraig Gleeson, Volker Steuber, R. Angus Silver

    -

    Elsevier

    -

     

    - A chapter in a book outlining the various modelling approached being used in epilepsy research. Attractive image on the book cover... - -
    -

    MorphML: Level 1 of the NeuroML Standards for Neuronal Morphology Data and Model Specification, - Neuroinformatics 2007, Volume 5; Number 2, Pages 96-104

    - -

    Sharon Crook, Padraig Gleeson, Fred Howell, Joe Svitak, R. Angus Silver

    - -

    PubMed

    -

     

    - The introductory paper to MorphML. Compares morphological representations from - NEURON, GENESIS, Neurolucida and neuroConstruct to MorphML. -
    -

    Interoperability of Neuroscience Modeling Software: Current Status and Future Directions, Neuroinformatics 2007, Volume 5, 127-138.

    -

    Robert C. Cannon, Marc-Oliver Gewaltig, Padraig Gleeson, Upinder S. Bhalla, Hugo Cornelis, Michael L. Hines, - Fredrick W. Howell, Eilif Muller, Joel R. Stiles, Stefan Wils, Erik De Schutter

    -

    PubMed

    -

     

    - A review of the current state of interoperability for modelling applications, resulting from a workshop at CNS 2006. - -
    -
    -
    - The original NeuroML paper - - - - - - - - - - -
    -

    Towards NeuroML: Model Description Methods for Collaborative Modelling in Neuroscience, Philos Trans R Soc Lond B Biol Sci 356, 1209-1228.

    -

    Nigel Goddard, Michael Hucka, Fred Howell, Hugo Cornelis, Kavita Shankar, David Beeman

    -

    PubMed

    -

     

    - The original NeuroML introductory paper. Although the language has evolved significantly since this paper - (with a focus now on key elements which need to be transferred between neuroinformatics applications, as represented by - MorphML, ChannelML and NeuroML, see Gleeson et al. 2010 above for details) - the key aims of NeuroML as outlined in this paper, including clarity, portability and modularity of neuronal model descriptions, remain the same. - -
    -
    -
    - Combined experimental and modelling investigations - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    Synaptic depression enables neuronal gain control, Nature 2009

    -

    Jason S. Rothman, Laurence Cathala, Volker Steuber, R. Angus Silver

    -

    Nature.com

    -

     

    - (Silver Lab) An experimental and modelling paper looking at the effects of short term plasticity on gain control. Used neuroConstruct to investigate - a detailed layer 5 pyramidal cell model (Kole et al 2008) with dendritically distributed excitatory and inhibitory synaptic input. - -
    -

    Rapid Desynchronization of an Electrically Coupled Interneuron Network with Sparse Excitatory Synaptic Input, Neuron 2010

    -

    Vervaeke, K. and LÅ‘rincz, A. and Gleeson, P. and Farinella, M. and Nusser, Z. and Silver, R. A.

    -

    Cell.com

    -

     

    - (Silver Lab) A highly detailed electrically coupled cerebellar Golgi cell network was created using neuroConstruct to help explain experimental data related to the spread of desynchronisation in this network following sparse synaptic activation. Experimental data on gap junction location, distance dependent coupling strengths, reconstructed cells and realistic conductances were used in the construction of the model. - -
    -

    Gap junctions compensate for sub-linear dendritic integration in an inhibitory network, Science 2012

    -

    Vervaeke, K. and LÅ‘rincz, A. and Nusser, Z. and Silver, R. A.

    -

    Sciencemag.org

    -

     

    - (Silver Lab) This study found that the dendrites of cerebellar Golgi cells have no significant voltage-gated ion channels and - therefore integrate input sub-linearly. Their dendrites are however coupled by gap junctions, predominantly in the molecular layer. - These allow synaptic charge to be shared among cells and compensate for sub-linear integration. - - -
    -

    Signal Propagation in Drosophila Central Neurons, Journal of Neuroscience 2009

    -

    Nathan W. Gouwens and Rachel I. Wilson

    -

    Pubmed

    -

     

    - A paper investigating the electrical properties of Drosophila neurons which utilises realistic morphological reconstructions and electrophysiological recordings. - -
    -

    Stochastic amplification of calcium-activated potassium currents in Ca2+ microdomains, Journal of Computational Neuroscience 2011

    -

    David Stanley, Berj Bardakjian, Mark Spano and William Ditto

    -

    Springer

    -

     

    - Investigation of the effects of stochastic L-Type Ca2+ channels on the response of SK channels in Ca2+ microdomains - -
    -

    Emergence of small-world structure in networks of spiking neurons through STDP plasticity, in From Brains to Systems Advances (series Experimental Medicine and Biology) 2011

    -

    Gleb Basalyga, Pablo M. Gleiser and Thomas Wennekers

    -

    Springer

    -

     

    - Looking at the emergence of small world network properties of networks containing synapses with spike timing dependent plasticity - -
    -

    A biophysical cortical column model to study the multi-component origin of the VSDI signal, NeuroImage 2010

    -

    Sandrine Chemla and Frédéric Chavane

    -

    ScienceDirect

    -

     

    - Creating a biophysically detailed cortical column model to study the origin of the voltage sensitive dye imaging signal - -
    -

    Imbalanced pattern completion vs. separation in cognitive disease: network simulations of synaptic pathologies predict a personalized therapeutics strategy, BMC Neuroscience 2010

    -

    Jesse Hanson and Daniel Madison

    -

    BioMedCentral

    -

     

    - Investigating how synaptic pathologies (alteration in long term depression (LTD)/potentiation (LTP), inhibition or connectivity) can underlie specific cognitive impairments - -
    - -
    - -

     

    -

     

    -

     

    -

     

    - -
    diff --git a/docs/XML/xmlForHtml/links/training.xml b/docs/XML/xmlForHtml/links/training.xml deleted file mode 100644 index c7c81866..00000000 --- a/docs/XML/xmlForHtml/links/training.xml +++ /dev/null @@ -1,152 +0,0 @@ - - - - -
    - neuroConstruct course -
    - - - - -
    - -

    Introduction to compartmental neuronal modelling with neuroConstruct and recent advances in rapid 2-photon imaging

    -

    University College London, May 2nd-4th 2012

    - - - -

     

    -

    This course, being run by the Silver Lab @ UCL, will provide an introduction -to 3D biophysically detailed neuronal modelling and -recent advances in 2-photon imaging methods for studying rapid neuronal signalling. Creation of multicompartmental, -conductance based neuronal models has been greatly facilitated by software packages such as NEURON -and GENESIS -and a range of detailed cell and network models are available which are faithful to the anatomical and biophysical -properties of the corresponding biological entities. neuroConstruct is an application -which facilitates the construction and analysis of such models through a 3D graphical interface and automates -code generation for a number of widely used simulators.

    - -

    The course will give an overview of the field of detailed -compartmental modelling and how it can complement experimental approaches including 2-photon imaging. It will -consist of some introductory lectures on modeling and imaging, provide hands on experience of using neuroConstruct, -introduce the existing cortical, cerebellar and hippocampal models which are already available in this format, and outline -the process of creating new models from experimental data. The course will also cover the simulator independent model -description language NeuroML and the growing number of tools available for handling models in this format.

    - -

    This course is primarily intended for participants in the BrainTrain and -Marie Curie Cerebnet training programs, -although there are a limited number of places available for other researchers.

    - -

     

    -

     PRACTICALITIES

    - - -

     

    -

     COURSE LECTURERS

    - -

     

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
         Day 1, Wednesday 2nd May
    9:00Welcome, outline of courseAngus SilverWatson lecture theatre, Medawar building
    9:15Introduction to cable modellingArnd Roth
    10:00Compartmental modelling and the Hodgkin Huxley modelVolker Steuber
    11:00Coffee
    11:15Introduction to dendritic computationArnd Roth
    12:00Overview of simulatorsPadraig Gleeson
    12:30Introduction to neuroConstruct (1)Padraig Gleeson
    13:15Lunch
    14:00Introduction to neuroConstruct (2)Padraig GleesonG20 cluster room, Christopher Ingold Building
    15:00Hands on modelling with neuroConstruct
    15:30Coffee
    18:00Finish
    19:30Dinner: Navarro's, 67 Charlotte Street
     
         Day 2, Thursday 3rd May
    9:00Introduction to NEURONArnd RothWatson lecture theatre, Medawar building
    10:00Modelling synapsesGuy Billings
    11:00Coffee
    11:15NeuroML and related tools/databasesPadraig Gleeson
    12:00Example of using neuroConstruct in a research project: investigating NMDA spikesMatteo Farinella
    12:30The Open Source Brain initiativeEugenio Piasini
    13:00LunchHaldane room, Wilkins building
    14:00Advanced neuroConstruct: Parallel and PythonPadraig GleesonG20 cluster room, Christopher Ingold Building
    15:00Hands on modelling with neuroConstruct
    15:30Coffee
    18:00Finish
    19:30Dinner: The Queens Head and Artichoke, 30-32 Albany Street, Regents Park
     
         Day 3, Friday 4th May
    9:00Introduction to 2-photon microscopyTomás Fernández-AlfonsoWatson lecture theatre, Medawar building
    10:00Principles of 2-photon photolysisEmmanuelle Chaigneau
    11:00Coffee
    11:15High speed 3D 2-photon imagingAngus Silver
    12:15LunchHaldane room, Wilkins building
    13:00Silver Lab visit (2 groups in 2 parallel sessions seeing 2-photon experimental set ups)3rd floor, Anatomy Building
        Paul Kirkby/K. M. Naga Srinivas Nadella/Tomás Fernández-Alfonso: High speed 3D 2-photon imaging
        Emmanuelle Chaigneau: 2-photon uncaging
    15:00Hands on modelling with neuroConstructPadraig GleesonG20 cluster room, Christopher Ingold Building
    15:30Coffee
    17:00Finish
    -

     

    -

     

    -

     

    -

     

    - -
    diff --git a/docs/XML/xmlForHtml/site.xml b/docs/XML/xmlForHtml/site.xml deleted file mode 100755 index 1cafcecd..00000000 --- a/docs/XML/xmlForHtml/site.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    diff --git a/docs/XML/xmlForHtml/tabs.xml b/docs/XML/xmlForHtml/tabs.xml deleted file mode 100755 index 7a14ac67..00000000 --- a/docs/XML/xmlForHtml/tabs.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/broken-links.xml b/docs/broken-links.xml new file mode 100644 index 00000000..f95aa9be --- /dev/null +++ b/docs/broken-links.xml @@ -0,0 +1,2 @@ + + diff --git a/docs/contact/index.html b/docs/contact/index.html new file mode 100644 index 00000000..090a367f --- /dev/null +++ b/docs/contact/index.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + +Contact us + + + + +
    + + + + +
    IntroductionExamplesDocumentationDownloadLinksContact
    +
    + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Contact us +

    +
    +
    + + + +

    The core neuroConstruct team:

    + + + +

      Padraig Gleeson (p.gleeson - at - ucl.ac.uk)

    + +

      Angus Silver (a.silver - at - ucl.ac.uk)

    + + +

     

    + + + +

    To get in contact directly with the team please mail: info -at- neuroConstruct.org +

    + + +

    Alternatively use/join the neuroConstruct mailing list: neuroConstruct -at- ucl.ac.uk (archives)

    + + +

     

    + + +

    Past neuroConstruct developers:

    + +

      Boris Marin +

    + +

      Rokas Stanislovas +

    + +

      Guy Billings +

    + +

      Matteo Farinella +

    + +

      Eugenio Piasini +

    + +

      Yates Buckley +

    + +

      Yoana Dimitrova +

    + +

      Simon Barnes +

    + +See also the list of contributors on GitHub. +

     

    + + + +

    Many thanks to the following people who have made significant contributions to the development of neuroConstruct

    + + +

      Volker Steuber +

    + +

      Robert Cannon +

    + +

      Sharon Crook +

    + +

      Koen Vervaeke +

    + +

      Simon O'Connor +

    + + +

     

    + +

    Development of this software was made possible with funding from the Wellcome Trust, the Medical Research Council and the EU Synapse Project.

    + + +

     

    + +

     

    + +

     

    + +

     

    + +

     

    + + +
    +
    +
    +
    + + + diff --git a/docs/XML/xmlForHtml/docs/Glossary_gen.xml b/docs/docs/Glossary_gen.html old mode 100755 new mode 100644 similarity index 93% rename from docs/XML/xmlForHtml/docs/Glossary_gen.xml rename to docs/docs/Glossary_gen.html index fd584344..df67950a --- a/docs/XML/xmlForHtml/docs/Glossary_gen.xml +++ b/docs/docs/Glossary_gen.html @@ -1,133 +1,301 @@ - - -
    + + + + + + + + + + + + Glossary of the main terms used in neuroConstruct -
    - - + + + + +
    + + + + +
    IntroductionExamplesDocumentationDownloadLinksContact
    +
    + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Glossary of the main terms used in neuroConstruct +

    +
    +
    + + 3D View of Cells - Abstract Cell - Abstracted Cell Mechanisms - Action Potential Propagation Speed - Anti Aliasing - Arborization Defined Connection - ASC - Axes in 3D - Biophysical validity - Cell density mechanism - Cell Group - Cell Group Priority - Cell Mechanism - Cell Type - Channel Mechanism - ChannelML - Compartmentalisation - Cvapp - Data Set - Data Set Manager - Electrotonic length - File based Cell Mechanisms - Finite volume Segment - GENESIS - GENESIS Compartmentalisation - Glomerulus - Graph - Group - HDF5 - Internal number of divisions - Ion Concentration - MorphML - Morphological validity - Morphology Based Connection - Morphology save format - Network Connection - NetworkML - Neurolucida - NeuroML - NEURON - NMODL - nseg - Packing Pattern - Parallel computing support - Plot/Graph - Plot Frame - Project - Project validity - Python - Region - Section - Section Group - Segment - Simply Connected cell - Simulation Configuration - SWC - Synaptic Connection Location - Synaptic Mechanism - Tool Tips - Validity checks - Variables to plot/save - Volume Based Connection - XML - Zipped Project - +

    + 3D View of Cells +

    +
    +

    When a single cell is viewed in 3D (at tab Visualisation, select the name of the Cell Type in the drop down box and press View) there are a number of actions possible:

      +
    • Left click anywhere in the view and drag to rotate the cell
    • +
    • Right click anywhere and drag to translate the cell
    • +
    • Clicking the middle mouse button and dragging (or turning the middle wheel) will zoom the view. Note that if there is no middle button, there is a zoom slider bar on the GUI
    • +
    • Pressing the 0 button will reset the view, usually centering on the cell
    • +
    • Pressing the ^ button will open a window in full screen with just the 3D objects (good for capturing screenshots)
    • +
    • Left clicking on one of Segments will highlight that segment (red) and any other segments in the same Section (yellow) (only when All solid is selected)
    • +
    • When a Segment is selected, a summary of the 3D information on it appears, and the endpoints, etc. can be altered by pressing the Edit... button
    • +
    Specifying Section Groups allows different subsections of the cell to be assigned as dendrites, etc. and can be used to colour regions of the cells. When multiple cells are being displayed (e.g. when Latest Generated Positions is selected, or a simulation is reloaded) the following options are also possible:
      +
    • Clicking on part of a cell highlights that cell. Note this is easiest when the level of detail displayed is All Solid (see below). Selecting cells can also be difficult is other objects are close, e.g. transparent regions, synaptic endpoint spheres, 3D axes (turn some of these off via 3D Settings). If a cell can't be selected by clicking, the cell group and cell number can be selected in the drop down boxes.
    • +
    • Multiple cells in a cell group can be selected too via the drop down boxes (e.g. all cells, a percentage of cells, etc.). These can then be plotted together as a group if a previous simulation has been loaded.
    • +
    • When one or more cells are selected, checking the Transparent mode box keeps that/those cell opaque, makes cells it is/they are connected to partially transparent and turns other cells almost completely transparent.
    • +
    There are a number of settings which can be changed by pressing the 3D Settings button:
      +
    • The background colour and preferred cell segment colour
    • +
    • Whether the 3D axes will be shown.
    • +
    • The resolution of 3D elements. Note for better 3D performance when viewing large cells/networks this should be set low (<12)! +
    • +
    • A number of items can be excluded or included from the 3D view, e.g. Regions (when viewing generated networks), Inputs, Synaptic Endponts (green for presynaptic location, red for post), etc.
    • +
    • The level of detail to display (see below)
    • +
    The default view for 3D cells is to show all the segments in full solid detail (spheres or cylinders/truncated cones). However this can be too much detail to show on many machines for large cells. The following options allow different views of the cells, either at reduced details, or transformed for a particular simulator:
      +
    • + All solid: all segments are seen in 3D detail. Note the resolution of these can be increased or decreased under 3D Settings +
    • +
    • + Soma solid, neurite lines: segments in the soma group are solid, all other segments are lines through their centres
    • +
    • + Soma solid, no neurites: just the soma segments are shown in 3D
    • +
    • + All lines: all segments are represented by lines
    • +
    • + Original Compartmentalisation: a transparent view of the cell, showing the segments in 3D, white lines through their centres, blue spheres for their end points, and yellow lines linking segments which are electrically connected, but not physically linked. There will be a red sphere in the middle of each of the internal divisions, with small blue spheres connecting them. These red spheres correspond to the simulated points in NEURON as defined by the nseg value.
    • +
    • + GENESIS Compartmentalisation: this is a Compartmentalisation of the cell which converts it to a smaller number of compartments for GENESIS but retains the section groups, total surface area, total dendritic length and total axial resistance.
    • +
    Note: see points on allocating extra memory for the application here, which will be important when displaying large networks in 3D. Also, there is sometimes excessive flickering when showing 3D on Windows (a common problem when mixing Java3D and Swing, see here), try updating the drivers for your graphics card, or adding -Dsun.java2d.noddraw=true to the command in nC.bat.

    +
    +

    + index +

    + +

    + Abstract Cell +

    +
    +

    A Cell Type which represents a real neuron, but whose morphology is described with a much reduced number of segments. These types of cells are useful for investigating basic electrophysiological properties of cells, or in large networks, where simpler individual cells are needed to reduce simulation time. These cells can be created manually by adding a Cell Type based on the included examples (e.g. SimpleCell), viewing in tab Visualisation, clicking on one of the segments, and pressing Edit....

    +
    +

    + index +

    + +

    + Abstracted Cell Mechanisms +

    +
    +

    A Cell Mechanism which has been split between model template and parameters, allowing easy mapping onto each of the available simulation platforms. Note: This is a pre-ChannelML approach to implementing Cell Mechanisms and shouldn't be used anymore.

    +
    +

    + index +

    + +

    + Action Potential Propagation Speed +

    +
    +

    While the 3D structure of axons is important for creating the correct connectivity (e.g parallel fibers in cerebellar granule cells) the segments representing these axons need not necessarily be explicitly modelled, indeed physiological data on the channels present etc. can be quite difficult to obtain. Instead an average value for the speed of propagation of the Action Potential can @@ -135,141 +303,248 @@ added to the internal synaptic mechanism delay. To specify sections which should be modelled using Action Potential Propagation Speeds, select Cell density mechanism in the drop down box when viewing a single cell in the Visualisation tab. Note that reducing the number of explicitly modelled segments will reduce the simulation runtime.

    +
    +

    + index +

    + +

    + Anti Aliasing +

    +
    +

    If anti-aliasing is turned on, 3D renderings of both solid compartments and line segments will be smoother. This may have some performance overhead on some video cards, or may prevent the 3D view from displaying, and so should be turned off.

    +
    +

    + index +

    + +

    + Arborization Defined Connection +

    +
    +

    See Volume Based Connection.

    +
    +

    + index +

    + +

    + ASC +

    +
    +

    The file ending given to morphologies saved in the file format used by Neurolucida.

    +
    +

    + index +

    + +

    + Axes in 3D +

    +
    +

    A set of axes can be added in 3D (either when a single cell is being displayed or a generated network). The green axis represents the x direction, the yellow the y direction and the red the z direction. The axes measure 100 microns from the origin in positive and negative directions, the arrow on the positive. The ticks are at 10 micron intervals. Due to perspective the axes should only be used for getting bearings/a concept of scale in the 3D scene.

    +
    +

    + index +

    + +

    + Biophysical validity +

    +
    +

    A number of checks can be carried out on the cells in a project to ensure they meet some minimum requirements for producing realistic results in the chosen simulators. It is not a complete list. At the moment these checks are:

    The following checks, when failed, lead to warnings:
      +
    • At most one passive conductance on a segment (more than one can lead to erroneous calculations of Electrotonic length)
    • +
    The intention is to expand these checks to make it easier for non/new computational neuroscientists to catch some common errors when creating cell models. If there are any suggestions for checks to be made, please get in touch.

    +
    +

    + index +

    + +

    + Cell density mechanism +

    +
    +

    A term used to describe the mechanisms which can be applied to cell segments to allow simulation of electrophysiological mechanisms. Density refers to the fact that the effect of the mechanism is dependent on the physical size (surface area/length) of the segment. A Channel Mechanism is specified as a conductance per unit area, or alternatively an Action Potential Propagation Speed measures the rate of propagation of signals along a segment to synaptic connections. Specific capacitance and specific axial resistance can be specified on a per group basis also. To specify which cell density mechanisms are present on a cell, select Cell density mechanism in the drop down box when viewing a single cell in the Visualisation tab.

    +
    +

    + index +

    + +

    + Cell Group +

    +
    +

    A number of cells of the same Cell Type positioned in 3D space. These will be laid out relative to a specified Region and arranged according to a Packing Pattern. Only Cell Groups included in the selected Simulation Configuration will be generated.

    +
    +

    + index +

    + +

    + Cell Group Priority +

    +
    +

    Specifies the order in which Cell Groups are placed. Higher priority Cell Groups are always placed first.

    +
    +

    + index +

    + +

    + Cell Mechanism +

    +
    +

    A general term for an electrophysiological process (currently either a Channel Mechanism, a Synaptic Mechanism or an Ion Concentration) which is placed on modelled cell membranes or at the interface of two cells to alter their internal electrical and chemical state. More on Cell Mechanisms in the main documentation.

    +
    +

    + index +

    + +

    + Cell Type +

    +
    +

    A prototype cell containing information on its 3D morphology and the various Cell density mechanisms which determine its electrophysiological behaviour. Each Cell Group specifies a particular Cell Type and from these networks are built. Cell Types can be hard-coded (e.g. Simple Cell, @@ -278,28 +553,49 @@ where a morphology file (ending in .p) as used in GENESIS is specified (more on importing morphologies). A Cell Type can be checked for validity. More on Cell Types in the main documentation +

    +
    +

    + index +

    + +

    + Channel Mechanism +

    +
    +

    An implementation of a model of an electrophysiological process (e.g. a voltage gated ion channel, ion pump, etc.) which is placed on modelled cells' membranes to alter their behaviour. For NEURON these are usually implemented in NMODL. The preferred way to specify these in neuroConstruct is with a ChannelML file.

    +
    +

    + index +

    + +

    + ChannelML +

    +
    +

    ChannelML is a language (using XML technologies) for specifying the dynamics of various subcellular processes (Channel Mechanisms, Synaptic Mechanisms, etc.) which are present on biologically detailed model neurons. It is a part of Level 2 of NeuroML. @@ -316,67 +612,117 @@ for MorphML and NeuroML in general in neuroConstruct is available here and details of the process to convert an existing channel script, e.g. a mod file, to ChannelML is outlined here.

    +
    +

    + index +

    + +

    + Compartmentalisation +

    +
    +

    Imported morphologies (e.g. Neurolucida files) may not always be in the most efficient spatial discretisation for a particular simulator (a number of 3D points/diameters can be specified along an unbranched dendrite to describe the structure, but these will lead to many segments in a simulator which maps all segments to individual compartments). A Compartmentalisation is a reorganisation of the structure of segments/sections to retain as many of the properties the cell which are important for electrophysiological simulations (total membrane area, total axial resistance along branches, total length etc.) but enables mapping on to a smaller number of simulated compartments. See GENESIS Compartmentalisation. The various Compartmentalisations can be visualised in 3D, see 3D View of Cells.

    +
    +

    + index +

    + +

    + Cvapp +

    +
    +

    This Java application, developed by Robert Cannon, allows transformation between various morphology formats (e.g. from Neurolucida to NEURON or GENESIS), editing of loaded morphologies, along with other functions for cleaning up and optimising morphology files. It also has its own file format (stored in *.swc files). More information here. The Neuromorpho database uses SWC as the format for it's curated morphologies.

    +
    +

    + index +

    + +

    + Data Set +

    +
    +

    Set of x, y values which can be plotted in a Plot Frame, saved in the Project (for reloading through the Data Set Manager), exported, etc. The x values do not have to be evenly spaced, unique or sequential. See here for information on what variables can be saved/plotted during a simulation run.

    +
    +

    + index +

    + +

    + Data Set Manager +

    +
    +

    A number of Data Sets can be stored in a neuroConstruct Project, showing a concept illustrating a point about the model, e.g. an I-F curve derived from a number of simulation runs. When a Data Set is viewed in a Plot Frame the points can be saved to the project. The Data Set Manager allows these saved Data Sets to be viewed, edited, and redisplayed in a new (or any open) Plot Frame

    +
    +

    + index +

    + +

    + Electrotonic length +

    +
    +

    This measure of the length of dendrites, etc. as "seen" by electrical charge is dependent on the shape, axial and membrane resistance of the section. See the NEURON or GENESIS books for more details. It is important when simulating neurons with realistic morphologies that individually simulated points are not too far apart in terms @@ -389,117 +735,209 @@ then Edit... and either manually set the parameter for each Section or select the Remesh option in the drop down function selector. See also the note about Compartmentalisations. Note that electrotonic length is dimensionless, and the term space constant is used for this measure in microns (see GENESIS book, or Rall's chapter in Koch and Segev 1989).

    +
    +

    + index +

    + +

    + File based Cell Mechanisms +

    +
    +

    A Cell Mechanism whose functionality is hard coded in a native simulation environment's scripting language, e.g a mod file for NEURON or a GENESIS script file containing a single Cell Mechanism. Note: there can be a script for each simulation environment associated with the Cell Mechanism, but it is up to the modeller to ensure they produce the same results. Details on how to modify native script files for inclusion in neuroConstruct cells is available in the main documentation +

    +
    +

    + index +

    + +

    + Finite volume Segment +

    +
    +

    A Segment on a Cell in neuroConstruct, which for the purposes of packing is considered to take up space. Normally, only Segments in the soma are considered space filling, and will be packed to avoid each other. Dendrites and axons are ignored in packing as it would normally be impossible to get these well packed taking into account the dendritic arborisations. If large Sections in a specific cell need to be treated differently (e.g. a Glomerulus), these Segments can be specified as having finite volume

    +
    +

    + index +

    + +

    + GENESIS +

    +
    +

    GENESIS is a general purpose simulation platform which was developed to support the simulation of neural systems ranging from complex models of single neurons to simulations of large networks made up of more abstract neuronal components. The main tasks of actually simulating what goes on inside the neurons of a network built with neuroConstruct is carried out by simulation packages such as GENESIS. GENESIS is available for download here.

    +
    +

    + index +

    + +

    + GENESIS Compartmentalisation +

    +
    +

    This Compartmentalisation for the GENESIS platform is needed since a simple mapping of each Segment in a detailed neuronal reconstruction to a compartment for running on GENESIS would lead to too great a spatial discretization. This Compartmentalisation maps the n Segments in each Section on to two CYLINDRICAL Sections each of half the original Section length, with the radii chosen to preserve total curved surface area and total axial resistance along the length. For sections with large electrotonic length, and which have an internal number of divisions (nseg) greater than 2, these cylinders will be split accordingly (e.g for num int divs = 7 or 8, the 2 cylinders will be split in 4 each).

    +
    +

    + index +

    + +

    + Glomerulus +

    +
    +

    Glomeruli are present in many areas of the CNS. Post synaptic connections from a number of cell types converge on a single point on a cell axon. An example would be the Mossy Fiber rosette in the cerebellum, where Granule cell dendrites, Golgi Cells axons and dendrites synapse on boutons on the Mossy Fiber axon.

    +
    +

    + index +

    + +

    + Graph +

    +
    +

    See Plot/Graph +

    +
    +

    + index +

    + +

    + Group +

    +
    +

    See Cell Group or Section Group.

    +
    +

    + index +

    + +

    + HDF5 +

    +
    +

    HDF5 is a binary file format used for exchanging large amounts of structured data between software applications, widely used in the astrophysics community, among others. Libraries for development and an application, HDFView, for viewing the contents of HDF5 files can be obtained here here. This format is envisioned to be a useful alternative to text files or XML when exchanging voltage trace (or spike time) data, or network structure information (see NetworkML) between computational neuroscience applications.

    +
    +

    + index +

    + +

    + Internal number of divisions +

    +
    +

    A Section (in neuroConstruct) can consist of a long list of 3D point/diameters (Segments). Not all of this 3D information is relevant when modelling the Sections, sometimes just the surface area/axial resistance at a point is sufficient for modelling the dendrite. This is the approach NEURON @@ -513,25 +951,45 @@ the passive electrical properties are set), see electrotonic length. See information too on Compartmentalisations.

    +
    +

    + index +

    + +

    + Ion Concentration +

    +
    +

    A term used for a mechanism describing how the internal concentration of an ion alters. An example would be a pool of calcium, which decays to a resting value.

    +
    +

    + index +

    + +

    + MorphML +

    +
    +

    MorphML is an language which has been developed (using XML technologies) to allow data on cell morphologies to be easily transferred between neuronal simulation applications. More information is available here. It is a part of the NeuroML initiative, and is the core of NeuroML Level 1. Detailed specifications of the elements allowed in a MorphML document are @@ -540,91 +998,146 @@ A description of the current support for MorphML and NeuroML in general in neuroConstruct is available here.

    +
    +

    + index +

    + +

    + Morphological validity +

    +
    +

    For a cell with multiple Sections and Segments, to be considered valid i.e. in a form that will produce sensible, similar 3D morphologies in each of the simulators we deal with it should meet the following criteria (not a complete list):

      +
    • Only one segment without a parent (root segment)
    • +
    • All segments have sections
    • +
    • All segments have endpoints
    • +
    • All Segment IDs unique
    • +
    • All Segment names unique
    • +
    • All Section names unique
    • +
    • Segments after the first in a section are only connected to 1 on parent
    • +
    • At most one segment is spherical and is in the Section Group soma_group +
    • +
    • At least one segment present in cell
    • +
    • At least one soma section, i.e. section which is in group soma_group +
    • +
    • Cell name present
    • +
    The following checks, when failed, lead to warnings (due to potential problems when packing, for example):
      +
    • First soma segment is at origin
    • +
    • Start point matches point at specified fraction along parent
    • +
    • Cell is a Simply Connected cell +
    • +
    • Each section is part of one of: soma_group, axon_group, dendrite_group +
    • +
    +

    +
    +

    + index +

    + +

    + Morphology Based Connection +

    +
    +

    This type of Network Connection is appropriate for connecting cells where the axon of the presynaptic cell is well stereotyped and does not vary significantly between cells (e.g. parallel fiber of cerebellar granule cell). Cell axons can be created in 3D and a sub set of its sections allowing a certain type of Synaptic Mechanism can be specified. For single compartment cell models this type of Network Connection is most appropriate, Section Group all can be used for each synapse.

    +
    +

    + index +

    + +

    + Morphology save format +

    +
    +

    There are two possible ways to save morphologies in neuroConstruct projects, both based on a mapping from the set of Java classes describing the cell internally in neuroConstruct:

      +
    • XML based Java serialisation (*.java.xml files): a mapping to an XML file of the classes. Note: not any part of NeuroML.
    • +
    • Serialised Java object form (*.java.ser files): a serialised representation of the Java classes.
    • +
    The second of these is quicker to load and save and the files are smaller. The first however can be opened (and edited!) with a text editor. Change which format to use via Settings -> General Properties & Project Defaults/Project properties. @@ -635,187 +1148,317 @@ Note that the cells aren't currently stored in neuroConstruct projects in NeuroML/MorphML format, since new functionality is usually added to the neuroConstruct Cell class before it is supported in the specifications.

    +
    +

    + index +

    + +

    + Network Connection +

    +
    +

    A connection between a number of points on cells in one Cell Group to points in another Cell Group. Some of the factors which need to be specified are:

      +
    • Source Cell Group: (Presynaptic cells)
    • +
    • Target Cell Group: (Post synaptic cells)
    • +
    • Synaptic Properties: Which Synaptic Mechanism (under tab Cell Mechanism) defines the synapse, the delay, threshold and weight
    • +
    • Method of searching for a connection point (random, closest, etc.)
    • +
    • Maximum and minimum lengths of the connection
    • +
    • Various conditions on the number of connections to make between the Cells Groups
    • +
    There are two main types of Network Connection: Morphology Based Connection and Volume Based Connection More on Network Connections in this tutorial.

    +
    +

    + index +

    + +

    + NetworkML +

    +
    +

    NetworkML is a language (based on XML technologies and a HDF5 equivalent in development) to allow data on cell placement and connectivity in 3D to be easily transferred between neuronal simulation applications. More information is available here. It is a part of the NeuroML initiative, and is the core of NeuroML Level 3.

    +
    +

    + index +

    + +

    + Neurolucida +

    +
    +

    A product by MicroBrightField Bioscience which is a system for "3D neuron reconstruction, serial section reconstruction, and anatomical mapping". It is a popular product for creating 3D morphological reconstructions of neurons with complex dendritic trees (although this is not the only functionality). A number of databases exist containing neuronal information in the file format used by these products (see Neuromorpho.org). neuroConstruct can import these files and extract the morphological information to use as the basis of detailed single cell models. See here for more information/limitations.

    +
    +

    + index +

    + +

    + NeuroML +

    +
    +

    + NeuroML, the Neural Open Markup Language, is a model development language in XML that provides a common data format for defining and exchanging descriptions of neuronal cell and network models. Currently, there are three Levels of compliance to the NeuroML specifications:

      +
    • + Level 1 provides a common data format for neuronal morphology data and metadata. MorphML forms the main part of the specification at this Level.
    • +
    • + Level 2 builds on Level 1 to include specifications for describing passive membrane properties, and the distributions of channels on neuron models. The dynamics of ion channels, synapses, and ion concentration mechanisms can also be described at this Level in ChannelML +
    • +
    • + Level 3 allows networks of cells to be described, either in template form (from which networks can be generated) or as explicit descriptions of cell placement and synaptic connectivity. The core of this Level is described in NetworkML. neuroConstruct can save generated networks in NetworkML, and load NetworkML files from any other application to use in simulations, provided the cell type/group/network connection names match those in the project.
    • +
    More information on NeuroML is available here, and a web interface for checking the validity of any NeuroML file is here. A description of the support for NeuroML in neuroConstruct is here.

    +
    +

    + index +

    + +

    + NEURON +

    +
    +

    NEURON is a simulation environment for developing and exercising models of neurons and networks of neurons. The main tasks of actually simulating what goes on inside the neurons of a network built with neuroConstruct is done by simulation packages such as NEURON. The package is available for download here. More on importing NEURON models in the main documentation, and information on the interaction between neuroConstruct and NEURON on various platforms can be found here.

    +
    +

    + index +

    + +

    + NMODL +

    +
    +

    + Channel Mechanisms and Synaptic Mechanisms can be created in NMODL, and these can be placed in the cells in NEURON simulations. More info available here. See here for details on use of NMODL (*.mod) files in neuroConstruct.

    +
    +

    + index +

    + +

    + nseg +

    +
    +

    A NEURON section property. See Internal number of divisions.

    +
    +

    + index +

    + +

    + Packing Pattern +

    +
    +

    When cells are placed in a Region, the somas need to be arranged in a particular pattern. In neuroConstruct, some of the available patterns are:

      +
    • + Random: Cells are placed in random locations in the Region
    • +
    • + Cubic Close Packed: Cells are placed in Cubic Close Packed formation. A layer is placed in 2D first and the spheres in the next layer lie on top, at the center of the 4 spheres underneath, touching each. This is optimal packing of spheres in 3D
    • +
    • + Simple Regular: The cells are placed in layers with cell centres directly above each other
    • +
    • + Single Placed Cell: A single cell is placed in an exact location in the Region (or relative to the origin)
    • +
    • + Hexagonal: The cells are placed in a single layer in a hexagonal pattern (each soma is surrounded by 6 other somas at equal angles)
    • +
    • + One Dimensional Regular Spacing: The cells are placed at regular intervals in a straight line
    • +
    Note that for each of these packing patterns a number of variables need to be specified, besides the Region, e.g. the number of cells to place, extra cell spacing whether to avoid existing cells from this (or other) Cell Groups. New packing patterns can be added by extending the Java class CellPackingAdapter.

    +
    +

    + index +

    + +

    + Parallel computing support +

    +
    +

    Support for generation of networks for execution in parallel computing environments is in development, concentrating on Parallel NEURON over MPI at present. As documentation for this is currently limited, please get in touch for more details.

    +
    +

    + index +

    + +

    + Plot/Graph +

    +
    +

    These terms are used in various ways by NEURON and GENESIS for a) the frame/window showing a number of sets of data and b) the individual sets of points in each trace. In neuroConstruct, Data Set is used for a set of points which can be plotted, and Plot Frame is used for the window in which a number of these can be viewed. In the Input/Output tab, the second table lists the values to @@ -823,29 +1466,50 @@ to be saved during the simulation are specified, e.g. all cells' membrane potential could be saved but just one specified to be plotted, etc. The names to use for variables to plot and/or save are given here +

    +
    +

    + index +

    + +

    + Plot Frame +

    +
    +

    The window in which a number of Data Sets can be viewed. Each Plot Frame has a name and new Data Sets can be added to existing Plot Frames. The Data Sets can be viewed in a number of different ways: all graphs using the same axes, graphs stacked vertically, zoomed in to user selected area, etc. Each Data Set is listed and can be individually analysed (e.g. for mean/std dev values, spiking rates calculated) or the format (colour/point type) edited. See here for information on what variables can be saved/plotted during a simulation run.

    +
    +

    + index +

    + +

    + Project +

    +
    +

    In neuroConstruct, a Project contains the specification of the Cell Types, Regions, Cell Groups and Network Connections in a model, along with the simulation parameters (duration, dt, etc.) and inputs into the network. A Project can be used to generate networks using combinations of these cells/connections etc. in different Simulation Configurations. @@ -854,53 +1518,95 @@ when the project is opened. The main project file (*.neuro.xml) is a proprietary XML file (not part of NeuroML), which should only be opened with neuroConstruct (though some minor manual edits are possible if you're careful...). A Project and all of its associated files (morphology files, simulation files, etc.) can be zipped up through the GUI for easy distribution.

    +
    +

    + index +

    + +

    + Project validity +

    +
    +

    To catch many, but not all, potential sources of error in a project a number of validity checks are performed. These include checks on the morphology and biophysical parameters of each of the cells in the project, and various global checks on the project settings, e.g. appropriate temperature, electrical input or network connection to all cell groups, etc.

    +
    +

    + index +

    + +

    + Python +

    +
    +

    + Python is a scripting language which is becoming increasingly widely used in computational neuroscience. Details of the support for Python in neuroConstruct can be found here.

    +
    +

    + index +

    + +

    + Region +

    +
    +

    A volume in 3D space which can be filled with cells. These regions can be also used for specifying bounding regions for selecting cells, e.g. to selectively apply stimulations, or to aid in analysis of a subset of cells. In the current version of neuroConstruct, regions can be either rectangular boxes, spheres, cylinders or cones. More on Regions in the main documentation +

    +
    +

    + index +

    + +

    + Section +

    +
    +

    An unbranched part of a cell morphology, corresponding roughly to the concept of a section in NEURON. An example would be a non bifurcating dendritic section, or the soma. Each Section contains at least one Segment. The Section provides the start point and @@ -912,45 +1618,74 @@ See the NeuroML Level 1/MorphML paper for more details of the mapping to the different simulation environments.

    +
    +

    + index +

    + +

    + Section Group +

    +
    +

    A group of Sections sharing some properties. These can be used to specify the Channel Mechanisms placed on areas of the cell (e.g. apical dendrites), or the locations where specific Synaptic Mechanisms are allowed (see Synaptic Connection Location). There are four special groups:

      +
    • + all: every Section is included in this Group
    • +
    • + soma_group: The Group containing only one Section, representing the soma
    • +
    • + dendrite_group: The Group of dendritic Sections
    • +
    • + axon_group: The Group of axonal Sections
    • +
    Every Section is part of one and only one of the last 3 Groups. Sections in groups whose names start with colour_, e.g. colour_Yellow, will be coloured as such in the single cell 3D view (these colourings may come from morphology files, e.g. Neurolucida format).

    +
    +

    + index +

    + +

    + Segment +

    +
    +

    The basic unit of the morphological description of the cell. Segments correspond to the concept of a compartment as used in GENESIS. One or more Segments go to make up a Section, which maps to a cable in simulation environments using that concept (e.g. the section in NEURON, where the start point of the Section, @@ -962,25 +1697,45 @@ parent section. When there are n Segments in a Section in neuroConstruct, this will translate to a NEURON section with n+1 pt3d points. See Section and the NeuroML Level 1/MorphML paper for more details of the mapping to the different simulation environments.

    +
    +

    + index +

    + +

    + Simply Connected cell +

    +
    +

    A Cell where each Segment is connected to either the start of end point (0 or 1) of its parent

    +
    +

    + index +

    + +

    + Simulation Configuration +

    +
    +

    Most neuroConstruct Projects will illustrate not just a single aspect of a cell or network, but will seek to show how the cells react under different inputs, or how a network behaves with different Cell Groups/cell populations present, etc. A particular Simulation @@ -988,101 +1743,174 @@ associated with it, along with a simulation duration. As an example, a project accompanying a publication might have one Simulation Configuration for each figure in the paper. More on Simulation Configurations in the main documentation +

    +
    +

    + index +

    + +

    + SWC +

    +
    +

    The file ending given to morphologies saved in the file format initially developed for Cvapp.

    +
    +

    + index +

    + +

    + Synaptic Connection Location +

    +
    +

    A Synaptic Mechanism can be associated with a list of Section Groups. This means that any of the Sections in those Groups can be involved in a Network Connection involving the Synapse type. Note: Each of the Sections will also be a member of either soma_group, dendrite_group or axon_group. A PRE synaptic connection location is allowed on Sections in soma_group or axon_group while a POST synaptic connection location is allowed on a Section in soma_group or dendrite_group. See this tutorial for more on Synaptic Connection Locations and Network Connections

    +
    +

    + index +

    + +

    + Synaptic Mechanism +

    +
    +

    An implementation of a model of synaptic transmission. This is a subtype of a Cell Mechanism. Usually this involves an event in one cell influencing the conductance at a point in another cell. For NEURON these are usually implemented in NMODL. Synaptic Mechanisms are needed to specify a Synaptic Connection Location on a cell.

    +
    +

    + index +

    + +

    + Tool Tips +

    +
    +

    These appear when the cursor hovers over certain buttons, panels, checkboxes, etc. and provide hints on usage. They can be turned off via Settings -> General Properties & Project Defaults or by clicking on the button in the main toolbar.

    +
    +

    + index +

    + +

    + Validity checks +

    +
    +

    Due to the large number of parameters present in a simulation of a network of realistic neurons, a number of automated checks have been created to help ensure sensible data is being given to the simulators. Note that these are *not complete* and there is still plenty of opportunity for "garbage in, garbage out". There are checks on:

      +
    • + Morphological validity: the structure of the cells in the project are valid
    • +
    • + Biophysical validity: the cells in the project have minimal/sensible biophysical properties set
    • +
    • + Project validity: the above two checks are performed on each of the cells in the project along with a number of other tests
    • +
    Note: projects/cells will work and native scripts can be generated even when not valid, but the simulation results should be treated as suspect.

    +
    +

    + index +

    + +

    + Variables to plot/save +

    +
    +

    Variables which change during the simulation can be specified to be plotted and/or saved for later display in neuroConstruct via the Input/Output tab. Variables have different names in each of the simulation environments (e.g. v or Vm), so a set of generic names of the most common interesting values has been defined:

      +
    • + VOLTAGE for the membrane potential (v in NEURON, Vm in GENESIS)
    • +
    • + SPIKE can be used to record spike trains, as opposed to voltage at every timestep, e.g. SPIKE:-20 sets the spike threshold to -20mV
    • +
    To plot a value present on a Cell Mechanism, use a colon, e.g. NaConductance:m. Note, as the gate activation variables are a special case, GENESIS will search through the list of gates (only if the Cell Mechanism is defined by a @@ -1090,67 +1918,136 @@ Other named variables that can be plotted for Cell Mechanisms are:
      +
    • + CONC for the concentration of an ion, e.g. CaPool:CONC:ca +
    • +
    • + REV_POT for the reversal potential of an ion, e.g. NaConductance:REV_POT:na +
    • +
    • + CURR_DENS for the current density through a channel, e.g. NaConductance:CURR_DENS:na +
    • +
    • + COND_DENS for the conductance density of a channel, e.g. NaConductance:COND_DENS:na +
    • +
    +

    +
    +

    + index +

    + +

    + Volume Based Connection +

    +
    +

    This type of Network Connection is appropriate for connecting cells where the axon of the presynaptic cell is known to make connections within a certain 3D region (e.g. axonal arborisation of cortical pyramidal cell). This region is defined relative to the cell body and dendrites of postsynaptic cells falling within this region allowing the same type of Synaptic Mechanism are candidates for connections. These regions are be specified at tab Visualisation in the single cell 3D view when a segment is being edited (select the appropriate function in the drop down box)

    +
    +

    + index +

    + +

    + XML +

    +
    +

    Short for eXtensible Markup Language, XML is a specification developed by the W3C. XML uses a similar tag structure to HTML, as used for Web documents. However, it allows designers to create their own customised tags, enabling the definition, transmission, validation, and interpretation of data between applications and between organisations. It is useful in the context of neuroscience when it comes to exchanging anatomical data, model descriptions, etc. between research groups and simulation environments and is the technology used in specifying the NeuroML language.

    +
    +

    + index +

    + +

    + Zipped Project +

    +
    +

    All files in a neuroConstruct Project (morphology files, simulation data, etc.) can be zipped up into a single file for easy distribution/backup. To create a zipped neuroConstruct project select File -> Zip this Project... and to automatically unzip and open a file created in this way, select File -> Import Zipped Project... +

    +
    +

    + index +

    + +
    +
    +
    +
    + -
    + diff --git a/docs/docs/README.md b/docs/docs/README.md new file mode 100644 index 00000000..58225017 --- /dev/null +++ b/docs/docs/README.md @@ -0,0 +1,35 @@ +neuroConstruct +============== + +[![Java CI with Ant](https://github.com/NeuralEnsemble/neuroConstruct/actions/workflows/ci.yml/badge.svg)](https://github.com/NeuralEnsemble/neuroConstruct/actions/workflows/ci.yml) + +This is neuroConstruct, software for developing 3D networks for +biologically realistic neuronal simulations. + +More information can be found at: http://www.neuroConstruct.org + +The application can be run via the desktop/Start Menu links if the automatic +installers have been used (http://www.neuroconstruct.org/download), or in a +terminal with + + ./nC.sh (Linux/Mac) + +or + +nC.bat (Windows) + +after Java has been installed. + +If you have Apache ant installed, you can run the application with: + + ant run + +More installation details can be found at https://github.com/NeuralEnsemble/neuroConstruct/blob/master/INSTALL.md + + +**If you use neuroConstruct in your research please reference:** + +P. Gleeson, V. Steuber and R. A. Silver, [neuroConstruct: A Tool for Modeling Networks +of Neurons in 3D Space](https://www.sciencedirect.com/science/article/pii/S0896627307002486?via%3Dihub), Neuron, Volume 54, Issue 2, 19 April 2007, Pages 219-235. + +For more information contact info@neuroConstruct.org diff --git a/docs/docs/RELEASE_NOTES b/docs/docs/RELEASE_NOTES new file mode 100644 index 00000000..8cf46262 --- /dev/null +++ b/docs/docs/RELEASE_NOTES @@ -0,0 +1,525 @@ +Release notes/change log for neuroConstruct + +See also the README file + + +--------- Version 1.7.0 (April 2012) --------- + +Moved codebase to GitHub: https://github.com/NeuralEnsemble/neuroConstruct + + +--------- Version 1.6.0 (August 2012) --------- + +Improved 3D visualisation of cells and networks when all segments are located more than a few hundred microns away +from the origin. Now 3D view centres on middle of visible cells. Origin is only included if "Show 3D axes" option +is selected. Also removed annoying clipping of back of 3D view when zooming out. + +Added option to save cells in project in pure NeuroML v1.8.1 format in morphologies folder. Now all channels, synapses & +cells in a project can be stored natively in NeuroML. Also facilitates comparing versions of morphology files across +commits. + +Added warning if a project contains multiple ChannelML files which have different values for reversal potential +but use the same ion (e.g. ek=-77 in one k channel, -87 in another). Pops up a warning dialog when such channels are +used together in one cell (without overriding the ChannelML files using an IonProperty in the cell). + +A number of updates to the NeuroML 2 export of cells & channels in line with the developing specification at: +http://sourceforge.net/apps/trac/neuroml/browser/NeuroML2. + + +--------- Version 1.5.3 (Mar 2012) --------- + +Fixed bug which gave problems saving RandomSpikeTrainSettings in projects on Java 1.7 + +Added option in GUI to edit/remove ion properties from cell & add more than one ion prop per group name. + +Updated to use Jython 2.5.2 + +Added xlrd to Lib/site-packages to allow reading/writing Excel files from nC Jython scripts + + +--------- Version 1.5.2 (Jan 2012) --------- + +Added anti-aliasing on 3D view for smoother renderings. Can be turned on/off via Settings -> Project Properties +or when viewing in 3D, 3D Settings. + +Allows multiple NeuroML files to be imported with: ./nC.sh -neuroml nml1.xml nml2.xml channelX.xml + +Added option to plot multiple data files with: ./nC.sh -plot mydata1.dat mydata2.dat + +Fixed bug when compiling/running Neuron 7.2 on Windows. See templates\neuronUtils\mknrndll.sh + +Improved integration of the NeuroML 2 and nC Ant build scripts. nC by default uses the copy of libNeuroML**.jar +and lems**.jar in lib/neuroml2 to facilitate recompiling of downloaded copies of the code and to make sure nC has +a stable version of the LEMS/NeuroM 2 code. + +Fixed bug in genesis export, whereby wrong rev pot of leak conductance was used, only if channelml file for leak +cond was in SI units (which no project files used until now...) Put in check that all channelml files in project +are in same unit system, either si or physiological. Throws warning at Validate if not the case. Important when +exporting to single level 3 file. + +Improvement of PyNN export from nC, supports NeuroML 2 based PyNN model descriptions, see Ex8_PyNNDemo, sim config +TestPyNN_NML2 + +--------- Version 1.5.1 (July 2011) --------- + +Improvements to LEMS/NeuroML 2 integration. Added project at nCexamples/Ex10_NeuroML2/Ex10_NeuroML2.ncx +with some examples of NeuroML 2 channels and cells which can be run with the LEMS interpreter or NEURON + +Made improvements to & added extra tests for saving & reloading continuous & spike train data in HDF5 format + +Much more efficient reloading of data if a simulation only saves spike times. Now hundreds of thousands of +spike trains can be reloaded without filling memory (will max out memory if they're all plotted though) + +Fixed bug in NetStimExt: Previously could fire outside of del/dur window if average firing rate was higher +than time window length, i.e. time of first spike was chosen as after end of duration. + + + +--------- Version 1.5.0 (Mar 2011) --------- + +Added preliminary export functionality for NeuroML 2. Morphologies can be exported to NeuroML v2 format, +and some simple (e.g. HH Na & K) ChannelML files can be translated to the equivalent entities in NeuroML +v2alpha. Networks files can be genenrated with simple elements, and the temporary + and elements. The NeuroML 2/LEMS code which is being developed on +the NeuroML SVN rep (see http://sourceforge.net/apps/trac/neuroml/browser/DemoVer2.0/lems) is included. +This can be automatically updated when using nC from the SVN repository by running updatenC.sh/updatenC.bat. + +Some simple models in NeuroML 2 can now be run through nC using the LEMS interpreter. Note the LEMS +interpreter does not yet support multicompartmental cells. Try Ex4_HHCells for a network of 2 HH cells +with a simple synapse. Results of a successful simulation on the LEMS interpreter should be listed in +the Simulation Browser & can be reloaded/replayed in the usual way. + +More verbose warnings when launching external processes on Linux using konsole & gnome-terminal + +Added a graphical tool for the analysis of action potential shapes. Plot a number of cell voltage traces, +e.g. population in a network, and in the Plot Frame menu select tools -> AP shape analysis. This will align +all spikes in the traces to the same trigger point (e.g. crossing 0mV), to compare shape of APs. + +Updated simulation tree quick sim result plotter (button "Quick Plot..." at tab Visualisation). Now when +e.g. 6 cell groups are plotted with "Plot is separate plot frame per cell group..." windows are arranged +in grid to fit the screen. + +Changed behaviour of input instance specific properties when multiple inputs are put onto individual cells: +e.g. multiple synaptic inputs (or current clamps) on a cell's dendritic tree. This is only relevant when +random synaptic firing rate/pulse amplitude/duration are used! Previously for e.g. input with random/gaussian +amplitude etc. a different value of this was used for inputs on each cell, but the same values were used within +a cell, e.g. if 4 were placed on dendrites of one cell. Now a different value will be used for each instance, +including within one cell. + +Changed function doLoadNetworkMLAndGenerate() to doLoadNetworkMLAndRegenerateInputs() in ProjectManager as this +is a more accurate name for its functionality (unchanged: loads positions, connections & inputs from a NetworkML +file, OVERWRITES the inputs by starting the ElecInputGenerator and generates plot/saves). Added +doLoadNetworkMLAndGeneratePlots() which loads & keeps all info from NetworkML, and generated PlotSaves for +values found there. + + +--------- Version 1.4.1 (Aug 2010) --------- + +Added option to import NeuroML Level 1-3 file with ./nC.sh -neuroml neuromlfile.nml, etc. and populate new project with cells/populations etc. found. + +Added function to set all data traces in plot frame to same colour + +Added beta version of saving NEURON simulation data in HDF5 format. Note: you need to be able to run "import tables" when NEURON started in Python mode for this +to work! Saved HDF5 data files can be reloaded in nC like text based saved simulation data. + +When viewing a cell in 3D: added temporary highlight of section in cell 3D view when Edit Group GUI open and section name is clicked on, facilitates choosing +which sections to add to a group + +Updates in Validate function: Added warning if XSL files aren't latest version (e.g. NChannelML_v1.8.1_NEURONmod.xsl). Added option to clean +up old XSL files when Updating XSL mappings + +Better visualisation of Simulation Configuration check boxes for large projects (text size reduced if >50 check boxes in Sim Config GUI) + + +--------- Version 1.4.0 (Jun 2010) --------- + +Added 2 new projects in nCmodels: CA1Pyramidal & Thalamocortical which are discussed in the NeuroML paper in PLoS Comp Biol. + +Improved general handling on Mac. Better interaction with simulators, execution of Python scripts etc. on the platform. + +Improved behaviour of 'nC.sh -make' and 'nC.bat -make' to allow compilation without ant + +Added functionality at tab Cell Types to compare cell to a cell in a different project (very handy when using multiple copies of a cell in different project) + +Added "Compare simulations" in Simulation Browser interface. Lists different stored properties between two saved simulations (e.g. random seeds). + +Adding new NEURON extra code location: -0.5, after all cells & network created but before run + +General improvements to saving/loading NeuroML Level 3 files. + +Improved the Python neuroConstruct utilities script at pythonNeuroML/nCUtils/ncutils.py which contains a convbenient simulationManager class for running multiple simulations, +e.g. a frequency versus input current curve as in nCmodels/GranCellLayer/pythonScripts/GranGolgiF_I.py + + +--------- Version 1.3.7 (Feb 2010) --------- + +Updated import/export of NeuroML when an Ion concentration is present in cell. This is in line with recent conversations on neuroml-channels@lists.sourceforge.net +mailing list. Updated way GENESIS calculates "B" value for CaPool. Examples GranuleCell and GranCellLayer updated to reflect best practices of implementing CaPool/Ca +dep K chan, etc. Python scripts added to test these on NEURON/GENESIS/MOOSE + +Minor bugfix: removed problem when generating code on Windows for NEURON when Cygwin is not installed locally. The 'date' system command was used to give textual +output of the simulation start/stop time. This is only available when Cygwin is installed. Code now checks existance of c:\cygwin or c:\Program Files\cygwin and +uses date if these are found, doesn't otherwise. + +Bug fixed in 3d visualisation. Transparency checkbox now works as before. + + +--------- Version 1.3.6 (Jan 2010) --------- + +Much improved MOOSE support. The very latest version of MOOSE from their Subversion repository should be used. The majority of projects which could run on +GENESIS should work fine on MOOSE too, but users are advised to double check any simulation results. MOOSE simulations are running 2-5 times faster than +GENESIS 2 + +Added new tree based simulation browser GUI to allow quick plotting of simulation results without viewing full network in 3D. Can be run from main GUI via +"Quick Plot..." button on Visualisation tab. Also can be run in standalone mode using: ./nC.sh -sims projectpath/projectname.ncx (or: +nC.bat -sims projectpath/projectname.ncx). + +Added option in GENESIS tab to make spike transmission behave similarly to NEURON, or to use the usual GENESIS method based on abs_refract. Hover over the +checkbox on the GENESIS tab for more details. ***Using this may be crucial to getting NEURON & GENESIS network simulations to match*** + +Added option for GENESIS/MOOSE for reloading simulation if it finishes after a short time (e.g. 10 sec). Can be used for plotting results of short MOOSE +simulations as soon as they finish. + +Updated to Jython 2.5.0, so most standard Python 2.5 modules should be available whn creating scripts to be run using './nC.sh -python'. Improved +Python scripting documentation. Online at http://www.neuroconstruct.org/docs/python.html + +Added more 'GUI mode' options at NEURON & GENESIS tabs so that simulations can be run: in console with plots, in console without plots, or completely in background. +Very useful when running multiple simulations using Python scripts. See pythonnC/Ex5_MultiSimGenerate.py for example. Note: only works on Linux/Mac so far. The console +output is put into file: /tmp/logNEURON_Projectname_SimulationRef, etc. + +Added simple script to allow neuroConstruct simulations to be loaded/plotted/analysed using NeuroTools (http://neuralensemble.org/trac/NeuroTools). Avaliable at +pythonNeuroML/NeuroTools/LoadToNeuroTools.py + +Updated many of the fonts used in the GUI & generated HTML views + +Added option in nC.sh & nC.bat to build source without ant (using './nC.sh -make', etc.) + +Different colours for gap junction connections in 3D view (orange-> orange, not green-> red) + + +--------- Version 1.3.0 (June 09) --------- + +- Changed default project extension to ncx. Now it's easier to associate this file type with nC.bat/nC.sh for quick opening of neuroConstruct + projects by (double) clicking on project file in file explorer. However, it may still be better to start nC in a terminal/shell + as any error console output will be caught if there is a problem and the application closes. + +- Option in Plot Frame when one or more Data Sets being plotted to generate python files which will allow a high resolution PDF, ESP, png of + the data to be created. Requires install of matplotlib (http://matplotlib.sourceforge.net/). + +- Added (long overdue) option for "silent mod file compilation", e.g. no pop up confirmation etc. when mod files are compiled on Windows. + +- Improved import & export of NeuroML, incl Variable Parameters & inhomogenous channel densities. Added option File -> Import NeuroML Levels 1-3, to have all of the + cells, channels, synapses and networks found in a Level 1-3 file imported, possibly into a new project. Also added option (at tab Export -> NeuroML) to include in annotation + in Level 3 file details of neuroConstruct specific objects, to allow easy import of associates plots, sim configs etc. into a new nC project, using a valid Level 3 file + (note: other applications which parse this file will ignore this info, and just get the cell, populations, etc.) + +- Reset absolute refractory period for ***NETWORK CONNECTIONS IN GENESIS*** from 10ms to 1ms. May cause functionality change in some networks on GENESIS!!! + But should make net behaviour more similar to NEURON + +- Added 2 new options for electrical input to cells: variable current clamp (e.g. ramped input current or sinusoidal input) & variable spike input rate. A generic + function of time can be provided for the input amplitude or the input spike rate. Both of these are only available for NEURON currently. + +- Added warning every 10th startup if logging to file is turned on as it can lead to v big log file dir. + +- Added some more expressions for equation parser incl sqrt(x) and Heaviside function + +- Added option for minimum radius of segments displayed in 3D. Improves 3D display of large cells with thin dendrites + +- Updated a number of the example files for controlling nC projects through Python. Generates/runs GENESIS projects now too. + +- Added option to add all sections in existing groups (e.g. basal_dendrites, oblique_dendites) to new groups (e.g. basal_plus_obliques) as opposed to having + to add all sections individually + +- Allowed plotting of a specified max number of cells (e.g. 5# for up to 5 cells in a group) + +- Added a number of other options for plotting Data Sets: crosses (x), thicker lines + +- Added "MOOSE test mode" option in GENESIS tab. Note: there are known problems with this at the moment! + +- Restructured how cell initial potentials are generated so when initial pot of cells in group != fixed num, NEURON & GENESIS use the same set of values + +- Improved plotting of internals of ChannelML files when there is a tempreature dependence (q10/generic expressions) + +- Improved PSICS export functionality. See nCexamples\Ex7_PSICSDemo for example + +- Improved PyNN export functionality. See nCexamples\Ex8_PyNNDemo for example of what is currently supported. Only tested on Linux so far. + +- Better support for running on KDE4 & Macs. Min Java version required is 1.5 again, doue to some lack of support for 1.6 on Macs. + + +--------- Version 1.2.2 (Jan 09) --------- + +- Restructured main examples to 2 new dirs: nCexamples for non anatomical examples used to illustrate + core nC functionality; nCmodels for more biologically realistic examples, mainly based on published + models. Added Pyramidal cell model from Kole et al 2008/Rothman et al 2009. + +- Added preliminary mapping to PSICS. To use the PSICS functionality you will need to get a copy of + the jar file from the PSICS website, save it locally and set the location in Settings -> General + Properties and Project Defaults. The included example nCexamples\Ex7_PSICSDemo illustrates current + functionality + +- Added one more Python interface example for loading morphologies by script (Ex6_LoadCells.py) + +- Added option to export project elements in single NeuroML level 3 file + +- Added option in MorphNetConn "Direct recurrent connections not allowed" for connections within a + cell group, so that if cell A is connected to B, B won't form a connection back to A. Useful for + electrical synapses + +- Fixed minor bugs in Morph Conn generator + +- Added option to have weights of syn connections function of radial distance between source & target. + Also can be function of soma to soma distances + +- Optimised viewing of parameterised groups in cells with a large number of segments + +- Updated channel templates to use v1.8.0 ChannelML examples, added gap junction template + +- Moved to GNU GPL v2 licence + + +--------- Version 1.2.0 (Dec 08) --------- + +- Added libraries for Java 3D, Jython and HDF5 in the standard distribution, making the download size larger, but meaning that no + extra packages need be installed to use these with neuroConstruct. + +- Renamed run.bat/run.sh to nC.bat/nC.sh and increased checks for 32/64 bit and win/linux to use correct libraries + +- Large networks in NEURON are more efficient/faster to load due to use of arrays of synapse objects as opposed to naming each individually + +- A number of optimisations have been added for random network connection, to speed up nets including conditions such as uniqueness of post + syn cells and max and min length. May slow smaller networks marginally, but most larger networks using these options will be faster to + generate. + +- Added warnings at generate tab when cell groups (in current sim config) are empty after generation, and if there are fewer than expected + network connections. + +- Allows setting of the version of NeuroML to use for validation, etc. via Settings -> General Properties + +- Renaming of groups in cells enabled in Edit Groups dialog + +- New method to specify segments for inputs, either: give a list of the segment ids to apply inputs to; or specify a group (e.g. dendrite_group) + along with how many inputs to generate, and these will be randomly palced over the group. Can be used for adding multiple random synaptic + inputs over a dendritic tree. + +- Updated simulation replay to allow looping of simulation replaying, and "rainbow" shading of voltages + +- Added option to create distribution histogram over either X or Y values in a plotted Data Set (previously only Y). X distribution + useful e.g. for plotting number of timesteps used per ms in NEURON variable time step simulation. + +- Updated import function for plotting of data files (now allows import of data in multiple columns). Added helper scripts nCplot.bat/nCplot.sh + with which data files (e.g. *.dat) can be associated, to allow double clicking of such files to plot them in neuroConstruct. + +- Added function for generating a *very simple* field potential from the activities of all somas in cell groups (in Analyse drop down box + when a simulation is reloaded) + +- Updated Volume based connections to allow such connections within a cell group. + +- Added support for new functions in parsable expressions (e.g. in expression for prob of connection in Volume based connections): H(x), + Heaviside function (=0 x<0, =1 otherwise); random(x) for a random number between 0 and x + +- Added links on main NEURON & GENESIS tabs directly to each of the extra code blocks + +- Extra support for gap junctions (no example yet, get in contact if you need one...) + +- Updated examples in pythonNeuroML for creating and for reading in the structure of NetworkML from Python scripts + +- Plotting of rate equations, etc. updated to support new ChannelML format as at: + http://www.morphml.org:8080/NeuroMLValidator/NeuroMLFiles/Examples/ChannelML/NaChannel_newFormat.xml + +- Added very provisional mapping to PSICS (get in contact for more info...) + +- Updated examples in pythonnC for controlling neuroConstruct projects via Python/Jython scripts + +- Added initial version of parameterisation over groups (e.g. 0 to 1 from soma to tips of dends) as step to allow inhomogeneous channel dists + + + + + +- + + + +--------- Version 1.1.2 (July 08) --------- + + +- Morphology based network connection now allows specification of which of the soma/axon/dendrites are allowed for the pre and + post synaptic points. This allows the possibility of axo-axonic and dendro-dendritic connections. Previously presynaptic + connections were on axons & soma, post were on soma & dendrites. Note though that the actual allowed locations are the + intersection of the groups set at Visualisation - View: -> Synaptic Conn Locations and the selection of which of + soma/axon/dendrites are allowed for pre/post. + +- Autapses can be specifically allowed or disallowed for Morphology based network connections from a Cell Group to itself. + +- Updated to NeuroML version 1.7.2. Added drop down box at Setting -> General Properties where the version of NeuroML to use for + validation, etc. can be set. If one (or all) of the Cell Mechanisms are selected at tab Cell Mechanims, and the Update + ChannelML Mappings button is pressed, the XSL files for generating mod files/GENESIS scripts will be updated to the + mappings from this version of NeuroML. Note that there was a bug in the NeuroML v1.7.1 XSL mappings included with + neuroConstruct v1.1.0 which would lead to an error being thrown if used for synaptic mechanisms in GENESIS. Fixed in current + specifications. + +- Optimisation of generation of network connections in cells with large morphologies. Also faster generation of NEURON code + for larger cells (e.g. Ex10-MainenEtAl). + +- Fixed bug when saving channel conductances in GENESIS. Included plotting/saving of Na & K conductances in Ex4-NEURONGENESIS. + +- Removed option for generating sequences of simulations with different pulse length/amplitude etc. at Input and Output. + This functionality will be obsolete with the new Python scripting interface. Replaced with option to generate a range of + random/gaussian dist values of pulse amp etc. to allow variable input trains to cells in a cell group. These random values + for the pulse amplitude/duration/delay will be the same in the generated NEURON and GENESIS simulations allowing direct comparison + of simulations (when dt is small enough!). + +- Added new option in Segment Selector for modifiying the 3D end points of segments. A list of end points can be generated + which give a number of (x,y,z) integer value options which keep a specified integer length of the segment. Useful for quickly + converting a cell to a more representative 3D shape and keeping segment length constant. Thanks to Michele Mattioni (EBI) for + the suggestion/code. + +- Added option in Plot Frame to move Data Set to another open Plot Frame. + +- Updated run.bat & run.sh to set env variable NC_HOME, which is used to find location of directories for templates, etc. + as included with standard neuroConstruct distribution. Useful when starting neuroConstruct from commandline in dir other + than the install directory. + +- Added Full Net Info button to Generate panel, for a view of all of the generated network info (contains the information + which would go in a NetworkML file) + +- Fixed bug in NEURON template generation. Was only applicable when: soma is spherical AND (soma is not at origin OR first + child segs of soma are not cylindrical). + +- Added new 3D viewing functions. Added network 'slicer' button (button "|" beside buttons "0" and "^" in 3D network view). + This renders transparent cells outside movable planes perpendicular to X, Y, Z directions. Useful for visualising dense + networks. Another feature is in the rearranged Simulation Replay panel. When this panel is extended to full (press ">>") + a subset of cell groups (or parts thereof) can be specified as the ones to colour during the simulation replay (all other + cells black or transparent). Neither of these features are quite finished, but (with patience) can be used for generating + interesting screenshots/movies. + +- Initial version of Python scripting interface. To use type 'run.bat -python' or './run.sh -python'. No documentation at + the moment, but see test.py in the main directory + +- Added JUnit testing framework & a number of tests on cell structure & NeuroML compatibility. Cleared up minor bugs in + saving & loading NetworkML & MorphML + +--------- Version 1.1.0 (based on 1.0.9beta) (May 08) --------- + + +- Added option of saving morphologies in smaller, more efficient format. Existing projects still use old method, + new ones use the smaller format by default. See "Morphology save format" in Glossary. + +- Changed handling of mod file generation. Biggest practical change is now mod files are only compiled once (the first time + NEURON scripts are generated), unless any of the XML/XSL files are altered. An option "Copy sim files to results dir" is added, + to either: (unselected) use mod files/compiled libraries in the location they're generated (generateNEURON dir, this is default now), + or (selected) copy the files to simulations/Sim_xx and use them there. This second option was the previous way of using accessing + the mods, and may have been the cause of some problems on Linux in the past. Another option "Generate all mod files" has been added, + to compile all mod files in project, even if the cell mechanism isn't used in this simulation configuration. + +- NeuroML version 1.7.1 is used. Some of the proposed changes to NetworkML for v2.0 are now included as options, and the old format + will be disabled in v2.0, see http://www.morphml.org:8080/NeuroMLValidator/ReqVersion2.jsp. The new format is used in the export of + NetworkML, but both formats can be loaded back in. + +- NeuroML export tab is slightly updated. + +- Ability to translate & rotate child segments when the 3D endpoints of a segment are altered (allows you to rotate a cell to align it to the y axis, + for example). View single cell in 3D (All solid), click on a segment -> Edit... Also added is function to split a long Section (e.g. 20 Segments) + into multiple Sections (option in drop down box in Segment Selector dialog). + +- Clickable links in panels giving cell info and network generation summary, i.e. cell group names can be clicked on to go to tab Cell Group, selecting that item. + +- Cleaned up electrotonic length handling & updated docs/glossary. + +- HDF5 support is added for importing plots/generic traces as 1D datasets in HDF5 files (Tools -> Import data for plot (HDF5 File)). + Also saving and loading of NetworkML structure in HDF5 (note: provisional structure, no electrical inputs saved, subject to change!) + +- NetworkML import/export in XML format includes locations of electrical inputs + +- Preliminary version of Python classes for generating network structure & saving in NetworkML (XML or HDF5 format) for loading into + neuroConstruct. This will allow network topologies of any given complexity to be built in Python, and saved in NetworkML for + visualisation & use in nC projects. Will move to a PyNN friendly format over time. + +- Corrected bug in equation parser (used for plotting generic expressions for rate variables in ChannelML files). Expressions like + exp ((-v - 40)/ 10) were being parsed as: exp ((-1 * (v - 40))/ 10) + +- Solved bug when Input is placed on, e.g. seg id 0, but no seg id 0 is present in cell. Also resolved problem + when new Input is added but there's no synaptic mechanism present to use for Random stim. + +- Made generation of Matlab and IgorPro extra files for each simulation optional (via Settings. Default: don't generate these extra files) + +- Added more options under Help menu item, including link to check for updates. + +- For single compartment, spherical cells, the fract along is now always 0.5 in generated network connections + +- Can now import GENESIS morphologies which use double_endpoint. + +- Gap junctions & point processes (for integrate & fire mechanism) added as possible mechanism types (incomplete) + +- Minor additions to project validation: checks if Cell Groups referred to in Elec Inputs and Plots are present in project + + + +--------- Version 1.0.4.1 (Aug 07) --------- + + +- Only significant update is a bug fix for running NEURON from nC on a Mac (v1.0.4 ran fine on + Mac, but couldn't run the generated NEURON scripts). More warnings about installing Developer tools + (XCode) after installing NEURON on the Mac are included too. + + + +--------- Version 1.0.4 (Aug 07) --------- + + +- Uses NeuroML v1.6. Changes to that are listed at http://www.morphml.org:8080/NeuroMLValidator/NeuroMLFiles/Schemata/v1.6/RELEASE_NOTES. + Main change is addition of element in ChannelML, which is picked up in nC when validating proj with non stable + ChannelML elements + +- Allows user to change default location of new projects, from /nC_projects to wherever (note: no space allowed in dir name) + +- Added phase plane plots (dV/dt versus V), for analysis of regular spiking cells, via Plot Info -> Spike Analysis + +- Update to options for stimulations (tab Input and Output): pulses can be repeated. Required new version of IClamp.mod (CurrentClampExt) + +- Updated import of SWC files. Fixed error of giving segments numbers as names (added suffix Comp_), added a number of options on import and + now group compartments in unbranched dendrites into Sections with multiple Segments. Note: this will lead to fewer sections when run on NEURON + but the nseg value will have to be increased in long dendrites (see next point). + +- Added changable values for max and min electrotonic length at tab Export Network-> Common Simulation Settings. Added possibility to remesh morphology + to ensure correct number of internal simulation points/divisions in sections (nseg). Visualise the cell in 3D, showing All Solids, click on any + section, then Edit... and select Remesh option in drop down function selector. + +- Added more information in network generation summary on total synaptic conductance for post synaptic cells + +- Updated import of NeuroML morphologies, to ease NEURON ModelView exported files. + See http://neuroml.svn.sourceforge.net/viewvc/neuroml/nrn2NeuroML/ to export cells from NEURON in Level 1 & 2 NeuroML. + +- Some extra tool tips added, along with warnings/advice, e.g. info on getting extra memory in run.bat/run.sh. Updated Glossary and added a number of + new entries. + +- Fixed minor bug where project file modified date is changed on loading of project; now reflects when proj last saved + +- Caught most (but not all) sources of problems for NEURON/cygwin GENESIS when spaces are present in a + Windows file/directory name, e.g. C:\Documents and Settings\Padraig Gleeson\nC_projects. Will give specific warnings + when spaces are present in a directory name: this can cause errors when file names are handed to the process running NEURON, + for example. If an error is thrown, the project should be copied (Save as..) in a dir without spaces in the name. + +- Added dialog box choice when a previous simulation has been reloaded and generate NEURON/GENESIS is requested. + Had been a problem that no plots were generated in that case, as no info on plots is stored with simulation structure. + +- Made generated GENESIS more portable between directories: one variable targetDir specifies where all sim data will be stroed + +- Removed use of the NEURON system() calls in generated scripts when running under Windows, to deal with some instability there. + Was mainly used for recording of hostname, date, etc. + + + +--------- Version 1.0.1 (Apr 07) --------- + + +Basically the same as v0.9.8, but with examples outlined in paper included. + + + +--------- Version 0.9.8 (Mar 07) --------- + + +The first full public release, just before publication of the paper. Uses NeuroML v1.5 + diff --git a/docs/docs/cellmechanism.html b/docs/docs/cellmechanism.html new file mode 100644 index 00000000..8e50139f --- /dev/null +++ b/docs/docs/cellmechanism.html @@ -0,0 +1,348 @@ + + + + + + + + + + + + +Cell Mechanisms + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Cell Mechanisms +

    +
    +
    + + + + + +
    +

    Introduction

    + + + +

    A Cell Mechanism (previously referred to as Cell Process), as used in neuroConstruct is an abstraction of an electrophysiological mechanism present on a cell.

    + + +

    The three main types are Channel Mechanism, + Synaptic Mechanism and Ion Concentration + (although 2 more: Point process and Gap junction are being added). + The Cell Mechanisms available in a neuroConstruct project are + listed under tab Cell Mechanism. New Cell Mechanisms can be added, and the existing ones edited/deleted here.

    + + +

    There are two ways to create Cell Proceses in neuroConstruct:

    + + +
      + +
    1. +ChannelML based Cell Mechanism: The parameters of the Cell Mechanism are stored in a ChannelML file
    2. + +
    3. +File based Cell Mechanism: The core of the Cell Mechanism is contained in files written in the native language of simulators (e.g. NMODL)
    4. + +
    + + + +

    The Abstracted Cell Mechanism was an older approach to implementing simulator independent Cell Mechanisms without XML. It is no longer in use.

    + + +

    Each Cell Mechanism will have: +

    + +
      + +
    • A unique Mechanism Instance Name by which the Mechanism Model coupled with a specific Parameter Set is known
    • + +
    • A Mechanism Type: currently either a Channel Mechanism, Synaptic Mechanism or an Ion Concentration +
    • + +
    • A Mechanism Model: the conceptual model behind the Cell Mechanism. A Synaptic Mechanism could be modelled as a Double or + Single Exponential Synapse, for example. ChannelML based Cell Mechanisms have Mechanism Model: Template based ChannelML file
    • + +
    • A Description, which is a short text description of the Cell Mechanism
    • + +
    • A Parameter Set for the variables in the model (e.g. a Double Exponential Synapse will have + rise/decay time of conductance, etc.) In ChannelML based Cell Mechanisms these + are contained in an XML file +
    • + +
    • Templates containing the mapping to the scripting language of one or more simulation environments (e.g. NEURON, GENESIS) + for which implementations of the Cell Mechanism are available.
    • + +
    + +
    + + + +
    +

    Mapping to simulation environments

    + + + +

    How neuroConstruct creates the native script codes implementing the Cell Mechanisms (mod files/GENESIS scripts) is as follows:

    + + +

    When the files for a simulation environment (e.g. NEURON) need to be generated, neuroConstruct first checks which + Cell Mechanisms are included on each of the Cell Types in the network (see below). If there is not an implementation + of that Cell Mechanism for the simulation environment (i.e. a template of the scripting code is present) an error will be thrown.

    + + +

    In the case of a File based Cell Mechanisms, the core of the script + implementing the Cell Mechanism is already present, e.g. an almost complete mod file is specified for a mapping to NEURON. All that + needs to be replaced in the file is the Cell Mechanism name and a maximum conductance (density), as outlined here. +These parameters are inserted into the file, a complete native script is generated (and, if needed, compiled) and so the +Cell Mechanism can be used by other files which define the cells.

    + + +

    For a ChannelML based Cell Mechanism all of the important parameters are present in the XML file. +The mappings to native scripts takes place by transforming the XML using an XSL (EXtensible Stylesheet Language) document. +XSL allows easy transformation of an XML file into another format, basically restructuring the information present in the file. +XSL documents are present for each simulation environment, which take the values in the ChannelML file (e.g. maximum conductance density) +and place them in the correct location in partially written native script files. Examples of valid ChannelML files and mappings to simulators can be found +here, or opening a ChannelML based Cell Mechanism in neuroConstruct +will allow inspection of the XML, editing of the parameters, validation of the file and preview of the mapping to NEURON or GENESIS

    + + + +
    + + + +
    +

    Placing Cell Mechanism on Cells

    + + + +

    Cell Mechanism need to be placed on cells before the native script files are generated.

    + + +

    Inclusion of Synaptic Mechanism on cells is outlined in the Network Connections tutorial.

    + + +

    To place Channel Mechanisms on cells, go to the tab Visualisation, select the cell +name in the drop down box and press View.

    + + +

    Note that Channel Mechanisms, like Synaptic Connection Locations, are associated with + Section Groups as opposed to sections. Therefore the Groups of Sections which have similar channel densities should be + constructed first by selecting Groups in the bottom right drop down box. Click Edit Groups, + or for a simple cell, use the existing Groups. Now select Cell density mechanisms in the drop down box, and + click Edit Density Mechanisms. In the drop down box of the dialog, all the Cell Mechanism of Mechanism Type: + Channel Mechanism will be listed (if there are none, go to tab Cell Mechanisms, click Add ChennelML + from Template and add at least a Leak conductance). Select one of these and for each Group with this Channel + Mechanism add it to the list. The Max Conductance Density of the channel needs to be specified. NOTE: This overwrites the + Max Conductance Density as specified in the Parameter Set/ChannelML file. All other parameter values remain the same.

    + + + +

    Once a number of channels are added, the densities can be seen back in the Visualisation view. +For a Channel Mechanism with different densities on different Groups, a shaded colour between the maximum and minimum is shown.

    + + +
    + + + +
    +

    Copying Cell Mechanism between projects

    + + + +

    To copy a Cell Mechanism present in one project to another, go to the directory + cellMechanisms in the project's home directory, and copy the folder named after the cell mechanism into the +cellMechanisms directory of the target project. That project should now have the cell mechanism listed under the +tab Cell Mechanisms. Note: make sure there was not already a mechanism with that name before pasting. Also, +problems may be caused if the project is under version control (CVS or Subversion); remove any CVS or .svn directories from the +pasted directory.

    + + +
    + + +

     

    + +

     

    + + +
    +
    +
    +
    + + + diff --git a/docs/docs/celltypes.html b/docs/docs/celltypes.html new file mode 100644 index 00000000..666b9fd6 --- /dev/null +++ b/docs/docs/celltypes.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + +Cell Types + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Cell Types +

    +
    +
    + + + + + +

    A prototype cell from which networks are built. There are 3 ways to get new Cell Types into the project:

    + +
      + +
    1. Use a hard-coded Cell Types as included with the code. There are a number of simple example cells which (e.g. Simple Cell, Purkinje Cell) +can be added to the project. Select tab Cell Type -> Add New Cell Type to Project... and choose the +prototype cell. +Their initial morphology is hard coded in Java, but they can be edited in tab Visualisations +-> (select the Cell Type in the drop down box) -> View. Select any Segment and press More... to edit (Note: +it is best to display the cell with segments All solid, to make it easier to select individual segments)
    2. + + +
    3. Cells based on imported morphology files, e.g. GenesisMorphReader where a morphology file (ending in .p) as used in GENESIS is specified. +Select tab Cell Type -> Add New Cell Type to Project... and choose the morphology importer
    4. + +
    5. Cells imported from other neuroConstruct projects: Cell Type -> Add Cell Type from another Project... +
    6. + + +
    + +
    +
    +
    +
    + + + diff --git a/docs/docs/contact.html b/docs/docs/contact.html new file mode 100644 index 00000000..d7184e8e --- /dev/null +++ b/docs/docs/contact.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + +Contact us + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Contact us +

    +
    +
    + + + +

    See the full list of neuroConstruct contacts +

    + + + + +

     

    + +

     

    + +

     

    + +

     

    + +

     

    + +

     

    + + +
    +
    +
    +
    + + + diff --git a/docs/docs/docMenu.html b/docs/docs/docMenu.html new file mode 100644 index 00000000..e25945d0 --- /dev/null +++ b/docs/docs/docMenu.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + +neuroConstruct Online Documentation + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +neuroConstruct Online Documentation +

    +
    +
    + + + +

      Home +

    + + + +

      Installation +

    + + + + + +

      Glossary +

    + + +

      Tutorials +

    + + +

    Main Concepts in neuroConstruct:

    + + +

      Cell Types +

    + +

      Regions +

    + + + +

      Cell Mechanisms +

    + +

      Simulation Configurations +

    + + + +

    How to's, etc.:

    + + +

      Importing morphology files +

    + + + +

      Importing NEURON models +

    + +

      Converting channel mechanisms to ChannelML +

    + + + +

      Interacting with native environments +

    + +

      Importing and exporting NeuroML +

    + +

      Use of Python in neuroConstruct +

    + + + +
    +
    +
    +
    + + + diff --git a/docs/docs/import.html b/docs/docs/import.html new file mode 100644 index 00000000..b3fdf805 --- /dev/null +++ b/docs/docs/import.html @@ -0,0 +1,437 @@ + + + + + + + + + + + + +Importing various morphology formats into neuroConstruct + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Importing various morphology formats into neuroConstruct +

    +
    +
    + + + +

    Outlined here are the various morphology file importation options available in neuroConstruct.

    + + +

    +Note: it is essential to examine the imported cell + carefully before using it in any simulation. + Two potential problems which should be checked are:

    + + +
      +
    • +Point of connection of dendritic branches to the soma, e.g. in Neurolucida, there is no explicit soma, but usually an outline. + There will normally be a root segment added and this can serve as a basis on which to manually build the soma
    • + +
    • +Zero length sections, NEURON is fine with consecutive pt3d points being equal (i.e. segment length zero) + but the standard mapping of this will result in an error in GENESIS. A check on the + Cell Validity will reveal any problem segments. (Note that only the first soma segment should be spherical, which is specified by making start point = end point)
    • +
    + + +

    To reiterate, just because a morphology file is successfully imported doesn't mean it is immediately suitable + for use in a neuronal model. Bear in mind that whoever created the file may have had different goals from creation + of a single cell model (as with Neurolucida files), or may have created it specifically for a particular simulator, with the + eccentricities of that platform in mind.

    + + +

    To import a morphology file: Open a new or existing project, go to tab Cell Types, click on Add New Cell Type... and select one of the + format specific readers, e.g. GENESISMorphReader.

    + + + +
    +

    GENESIS

    + + + + +

    +GENESIS morphology files can be imported. These are *.p readcell compatible files. The proper +format for these files is specified here. +

    + + +

    This is a well described format and there exists a number of models containing cells specified in this way. +However, the whole specification is not supported in neuroConstruct, an inexhaustive compliance list follows:

    + +
      + +
    • Each line is included in the target cell as a Segment with it's own +Section, i.e. no cables are automatically built
    • + +
    • Relative or absolute coords are supported, but only cartesian, not polar coords
    • + +
    • RM, RA, ELEAK, etc are ignored as they usually refer to variables set outside the file
    • + +
    • When a *compt statement is encountered, a Section group is created for all subsequent segments, until another *compt is encountered
    • + +
    • *spherical will result in a zero length segment
    • + +
    • Channel densities after the coords in segment lines are not imported (however, as Section Groups are created +from the *compt statements, these should be easy to add later)
    • + +
    + + +

    Note that cells specified in this way assume the target platform is GENESIS and compartmental modelling, +as opposed to cable modelling, will be used. Therefore the compartmentalisation will not be ideal for platforms such as NEURON. +This issue has been addressed with the introduction of Compartmentalisations +

    + + +
    + + + +
    +

    NEURON

    + + + + +

    A subset of NEURON files can be imported. In contrast to GENESIS, there is no fixed format in + NEURON for specifying morphologies (note however, MorphML export is being implemented in a new vesion of NEURON, see + here) However, a number of models exist with the + cellular morphology in separate files, many of which were created by the ntscable program. These files are usually characterised + by a large number of lines of coordinates (lines of 4 floats) containing information accessed previously in the file by the fscan() + command.

    + + +

    The following is a summary of what can be imported from a given NEURON morphology file:

    + +
      + +
    • create statements, followed by section (array) names, e.g.: create soma, dendrite_1[31]
    • + +
    • connect statements, e.g. soma connect dendrite_1[0] (0), 0.5
    • + +
    • simple for loops
    • + +
    • pt3dclear() and pt3dadd()
    • + +
    • fscan() will attempt to retrieve the next float on a line not recognised as one of the previous commands
    • + +
    • Comments are ignored, forward slashes, used to spread single commands over a number of lines, are recognised as such
    • + +
    + + +

    This functionality has been tested for a handful of files, but if there are examples of files which you feel are in a +format which could easily be imported please get in touch +

    + + +
    + + + + +
    +

    Cvapp (SWC files)

    + + + + +

    The file format used by Cvapp (extension SWC) is also supported. It was developed to +cover most of the information common between in Neurolucida, +NEURON and +GENESIS formats. This format is pretty straightforward, but as mentioned, +care must be taken with the first soma segment. Check the morphology when imported and ensure the root segment +is as intended. Note that as of v1.0.4, there was a change in the import of SWC format files, to automatically create +Sections from the 3D points between splits in the dendritic morphologies, resulting in a +lower number of Sections but the same number of Segments. See the note on +Electrotonic length before using those morphologies in simulations.

    + + +
    + + + + +
    +

    MorphML

    + + + +

    Files can be imported and exported in MorphML format.

    + + +

    Normally the most recent version of the MorphML specifications will be used by neuroConstruct, but to check compliance, +this web service should be used.

    + + +

    There is a close relation between the internal model of a cell in neuroConstruct and the information present in a MorphML file, +so exporting and importing a cell in this format should lead to identical cells (though the names need to be different +if they are in the same project).

    + + +
    + + + +
    +

    Neurolucida

    + + + + +

    The Neurolucida file format is used by MicroBrightField products to store information +on neuronal reconstructions. Both binary and ASCII format files can be generated by these products, and at this time neuroConstruct can import +ASCII (*.asc) format V3 files (a heirarchical file structure with "CellBody", "Dendrite", etc). The format allows recording of various anatomical features, not only neuronal processes such as dendrites and cell bodies, but +can record other microanatomical features of potential interest to anatomists. Not all of these features will be relevant when constructing +a single cell computational model. Go to Cell Types -> Add New Cell Type and select NeurolucidaReader in the first drop down box. +Specify the location of the morphology file and choose a name for the Cell Type. A dialog box will be presented with some options as mentioned below. +

    + + +

    The main points to note when importing Neurolucida files are:

    + + +
      + +
    • The soma is normally specified in ASC files as an outline in 2D. An import option is presented for whether to include this information +in the neuroConstruct cell, to give a visual guideline of where the real soma should be placed. Obviously this will not +represent a sensible construct to be simulated, and so should be removed before using the morphology (View the cell in 3D with solid Segments, +select the first Segment in the outline and click on the Edit... button. The whole Section can now be deleted).
    • + + +
    • Another import option concerns how to handle the radii of daughter sections.This is important for example when a small dendrite branches off + from a thick main dendrite. The first point on the small dendrite will have a smaller radius than the thick dendrite, and there are two + ways to deal with the segment which connects them. The first is to have a truncated cone starting with the larger radius tapering to the + radius of the first point on the small dendrite. This probably will lead to more surface area on the small dendrite than intended. + The second option is to have the start radius equal to the end radius on this connecting segment. The choice of which approach to take + is presented at import of a new Neurolucida file and cannot be changed later. +
    • + + +
    • A root Segment is added to form the basis of the real soma. This can be edited to produce a spherical segment filling the soma outline +or can be the start of a multi Segment Section representing a soma with complex shape. +
    • + + +
    • Trees will normally be considered dendrites (and so added to the group +dendrite_group), unless the property (Axon) is found at the start of the tree.
    • + +
    • As the tree is descended, each line of coordinates will be added as a new Segment. The same Section will be used until +a branch point is encountered. At this point a child Section will be created. All new Sections will be specified as connected at point 1 +along parent. If the first point on a new Section is equal to the parent endpoint, this point will be used as the start point of a new Section +and the next line will specify the end point of the first Segment. If the first point on the new Section +is different from the parent endpoint, a Segment will be added connecting the endpoint to this first point. +
    • + + +
    • Statements such as (Color Red) will cause the following segments to be added to the +group colour_red, etc.
    • + +
    • All (FilledCircle) type statements highlighting boutons, etc. are ignored.
    • + +
    • If more than one cell is present in a single ASC file, all info on the dendrites of each cell will be imported, along with +each soma outline, and a single root Segment will be created. Select which of the cells to save and based on proximity to the soma outline, +and possibly the colouring, remove all dendritic trees not associated with the chosen cell. In the future, +a more automated way of separating the cells can be added, if required.
    • + +
    + + +

    This functionality uses the bulk of the information in Neurolucida files which might be needed for neuronal modelling. +Please get in contact if there you have example files, some of the information in which you feel could be useful +in other modelling scenarios.

    + + +
    + + + +

     

    + +

     

    + + +
    +
    +
    +
    + + + diff --git a/docs/XML/xmlForHtml/docs/importneuron.xml b/docs/docs/importneuron.html old mode 100755 new mode 100644 similarity index 63% rename from docs/XML/xmlForHtml/docs/importneuron.xml rename to docs/docs/importneuron.html index ae96a1cd..c8a3d882 --- a/docs/XML/xmlForHtml/docs/importneuron.xml +++ b/docs/docs/importneuron.html @@ -1,34 +1,205 @@ - + + + + + + + + + + + + +Importing existing NEURON/GENESIS models into neuroConstruct + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Importing existing NEURON/GENESIS models into neuroConstruct +

    +
    +
    + - - -
    - Importing existing NEURON/GENESIS models into neuroConstruct -
    -

    Outlined here is the process for taking an existing cell model in NEURON (hoc and mod files) and reimplementing it in neuroConstruct (a very similar process is used for importing GENESIS models). At the moment it can be a complicated process but the advantages of doing it are:

    +
      +
    • It is easier to incorporate single cell models into networks of arbitrary size and complexity once they are in neuroConstruct
    • +
    • It simplifies making the model available for multiple simulators (e.g. GENESIS too). Once in neuroConstruct/NeuroML format, the cell model will be available for any other simulator supported by these in the future (e.g. GENESIS 3/MOOSE/Parallel NEURON), provided the cell mechanisms can be implemented in that simulator.
    • +
    • All of the inbuilt functionality for storing, browsing and analysing simulations neuroConstruct is available
    • +
    • A neuroConstruct project including the model description, results of the simulation, plots of the figures in published papers, etc. can be distributed in a single zipped file
    • +
    • The model can be easily rerun and model parameters changed by those without knowledge of the native scripting environment
    • +
    +

    Note: Exporting NeuroML from simulators will facilitate this process. NEURON 6.1 allows export of cell morphologies together with channel densities in NeuroML format from ModelView. See here for the latest version.

    -
    - Bringing NEURON models into neuroConstruct + + +
    +

    Bringing NEURON models into neuroConstruct

    + +
      +
    1. With a fully tested NEURON model, ensure the hoc code is split between separate files containing a) the morphologies of the cells, b) the mod files containing the cell mechanisms (including default values for all parameters, e.g. max conductance densities) c) the main hoc file which creates the cells, places the channels on the cells, adds the @@ -37,13 +208,16 @@ ModelDB), and if a model is published with everything in a single large file, there is little chance of reusing much in neuroConstruct.
    2. +
    3. In general neuroConstruct should be able to import files a) above and include b) as the NEURON implementation of Cell Mechanisms. The simulation parameters in c) will be set through the neuroConstruct GUI by hand, and any plots of data can also be specified through the interface.
    4. -
    5. Select File->New Project, and enter the name and location of your new project.
    6. + +
    7. Select File->New Project, and enter the name and location of your new project.
    8. +
    9. To import a NEURON *.hoc/*.nrn morphology -file Go to Cell Types -> Add New Cell Type and select NeuronMorphReader in the first drop down box. +file Go to Cell Types -> Add New Cell Type and select NeuronMorphReader in the first drop down box. Select the morphology file by entering the path into the text field or pressing the ... button and selecting the file manually. Note that the biggest problem in importing files is that there is no prescribed way to write NEURON morphology files, unlike the *.p (readcell) file format in GENESIS. For the importation process, it assumes the @@ -53,40 +227,42 @@ an easy matter creating an importer for general NEURON morphology files, so not every *.hoc/*.nrn file will work first time. If you have specific problems, send me the morphology file and I'll try to adjust the importer to deal with it, or I can suggest ways to rewrite the file in a simpler format. Alternatively for cells with -a small number of sections (<10), you can add a Simple Cell (via tab Cell Types -> Add New Cell to Project), +a small number of sections (<10), you can add a Simple Cell (via tab Cell Types -> Add New Cell to Project), rename it, press View this cell in 3D, click on a section, press Edit... and add/delete sections as appropriate, building your morphology as you go.
    10. +
    11. As an alternative to the above, the cell could be loaded into NEURON 6.1 (with the updated files from here) using the original hoc/mod files -and exported from ModelView (Tools -> ModelView -> File -> Export to NeuroML). This works best if there is just one cell loaded in NEURON. The function define_shape() should be run +and exported from ModelView (Tools -> ModelView -> File -> Export to NeuroML). This works best if there is just one cell loaded in NEURON. The function define_shape() should be run before export to ensure all NEURON sections have full 3D info. Level 1 exports will have just the cell morphology, Level 2 will include info on channel densities. The NeuroML file -exported can then be imported into neuroConstruct similar to the manner above, via Cell Types -> Add New Cell Type and selecting the NeuroMLConverter option. +exported can then be imported into neuroConstruct similar to the manner above, via Cell Types -> Add New Cell Type and selecting the NeuroMLConverter option. If a Level 2 export is used, there should already be channel mechanisms in the neuroConstruct project with the same names as those in the NEURON model (see below).
    12. +
    13. To include a Channel Mechanism (e.g. a voltage dependent ion channel) or a Synaptic Mechanism based on an existing mod file go to tab Cell Mechanisms, select Create File Based Mechanism. Enter the name of the Cell Mechanism. If the mod file is a density mechanism, choose "Channel Mechanism". If it represents the end point of a synaptic connection, choose "Synaptic Mechanism". Select the *.mod file which implements the Channel Mechanism/Synapse when prompted. Existing Channel Mechanisms implemented in NMODL can be reused with a few small changes. In the line specifying the the name of the mechanism in the original -NMODL file, replace the name string with %Name%, so for example in Exp3Syn.mod the line
      +NMODL file, replace the name string with %Name%, so for example in Exp3Syn.mod the line
      -  POINT_PROCESS Exp3Syn
      +  POINT_PROCESS Exp3Syn
      -becomes
      +becomes
      -  POINT_PROCESS %Name%
      +  POINT_PROCESS %Name%
      -and in a channel mechanism NaFast.mod
      +and in a channel mechanism NaFast.mod
      -  SUFFIX NaFast
      +  SUFFIX NaFast
      -becomes
      +becomes
      -  SUFFIX %Name%
      +  SUFFIX %Name%
      In general any value between %'s will be replaced with another value by neuroConstruct. Another change which should be made in your NMODL files is to replace the value of the max conductance density with %Max Conductance Density% in @@ -94,7 +270,9 @@ the max conduction density in channels and max conductance in synapses, so that neuroConstruct will know the public variable name so it can access it from the hoc. To get a better idea of what's going on, open (via Edit selected Cell Mechanism) any of the File Based Cell Mechanisms included in examples/Ex8-DentateGyrus, -paying attention to the NEURON template code. More information is available here
    14. +paying attention to the NEURON template code. More information is available here + +
    15. To put the channel mechanisms on to the cell you have imported (if you haven't used a NeuroML import detailing channel placement), go to Visualisation, select the cell name in the drop down box and press View. Select Groups in the bottom right drop down box. @@ -104,70 +282,122 @@ and click Edit Density Mechanisms. You can now place the Channel Mechanisms on the groups you have created. If it's a single compartment cell, just use the group all.
    16. +
    17. Finally create a new Region, create a new Cell Group (the default values will create a single randomly placed cell) and press Generate. You can also add an electrophysiological input (e.g. an IClamp) and a graph of the cell voltage via the tab Input/Output. Again the default values should be a good starting point.
    18. +
    19. Hopefully all of this will be successful and you can go to tab Export and generate the NEURON code.
    20. +
    21. This description only concerns placing one cell in 3D. Once each cell works as expected, networks can be built. See the description of Network Connections for more information.
    22. +
    -
    -
    - Converting mod file/GENESIS script channels into ChannelML +
    + + + +
    +

    Converting mod file/GENESIS script channels into ChannelML

    + +
      +
    1. The goal of this is to create a ChannelML file with the same mechanism as one present in an existing mod file/GENESIS script. Look at the included example Ex10-MainenEtAl which contains a Simulation Configuration SimpleCells which shows an example of this procedure.
    2. +
    3. Instead of trying to match the channels using the full cell morphology, start with a single section (ideally just one segment), e.g. the soma of the cell to be converted. You can use the imported morphology (e.g. Cell1), create a copy of it (Cell1_original) and delete all sections, just leaving the soma section.
    4. +
    5. Create a cell group with a single instance of the soma section (CG_original).
    6. +
    7. Get the passive properties working properly. Use psection() on the corresponding section in your original NEURON model to get values for cm, Ra etc. and update the values of these on your neuroConstruct version (use the LeakConductance built in ChannelML mechanism for the passive conductance, as in the examples). Add a small current pulse to the section and add a plot for the voltage. Generate the network and check the section's basic parameters using psection().
    8. +
    9. Make a copy of the cell (Cell1_CML) and a new cell group with that cell (CG_CML). Add a current pulse and a plot of the voltage and generate the network again to ensure the 2 plots overlap (the Graph Window property of the plot can be altered in neuroConstruct to get the 2 traces in the same window in NEURON).
    10. -
    11. Convert a simple channel first, e.g. non-Ca2+ dependent K channel. Use the original mod file for a File based Cell Mechanism as outlined above and here
    12. + +
    13. Convert a simple channel first, e.g. non-Ca2+ dependent K channel. Use the original mod file for a File based Cell Mechanism as outlined above and here +
    14. +
    15. Add this mechanism to Cell1_original (View cell in 3D, select Cell density mechanisms in drop down box, then Edit Density Mechanisms). -Use the cell density on your original soma section. See menu item Help -> Units for units in neuroConstruct and NEURON, or (after placing the mechanism on the section) +Use the cell density on your original soma section. See menu item Help -> Units for units in neuroConstruct and NEURON, or (after placing the mechanism on the section) select Pick Sections/Segments in the drop down box, click on the section, click on Biophysics, which will show a list of the biophsical quantities associated with the section.
    16. +
    17. Add a plot of the internal state variables of the channel, e.g. KChannel:n. See Ex4-NEURONGENESIS or Ex10-MainenEtAl for examples. Run the network again and you should see a difference between the cell with the active channel and that with only a passive conductance.
    18. +
    19. Add an initial version of the channel as a ChannelML based Cell Mechanism. Select Add ChannelML from Template, selecting KConductance, and give the channel an appropriate name. Add a plot of its internal variable (see Ex10-MainenEtAl) and put this in the same graph as the prevous channel's.
    20. +
    21. Now edit the values in the XML to match the equations in the mod file (preferably in an external text editor). With a simple channel it should just be a case of altering the parameters for the linoid, sigmoid etc. descriptions of the rate equations, the reversal potential and the gate powers. Don't forget to add lots of comments and metadata! For more complicated channels, see the examples in Ex7-GranuleCell and online.
    22. +
    23. Make sure to reload the ChannelML into neuroConstruct after you've edited the XML externally. Add this channel to Cell1_CML and rerun the simulation with this new channel. Looking at the mod file generated from the XML will help in debugging.
    24. +
    25. Getting good agreement can depend on the accuracy k value in Akd, make sure there is an accurate value for this in case 1/k is used in the original file.
    26. -
    27. For complete accuracy, use table impl prefs taken from original mod file, i.e. from TABLE minf, mexp DEPEND dt, celsius FROM -100 TO 100 WITH 200. Note: if comparing values of v > 100mV use a bigger table (since values for v past the end of the table will use earlier alpha value, etc.)
    28. + +
    29. For complete accuracy, use table impl prefs taken from original mod file, i.e. from TABLE minf, mexp DEPEND dt, celsius FROM -100 TO 100 WITH 200. Note: if comparing values of v > 100mV use a bigger table (since values for v past the end of the table will use earlier alpha value, etc.)
    30. +
    31. Make sure the units are set correctly in the ChannelML file.
    32. +
    33. Be careful to use the temperature, ek, ena of the previous models!
    34. +
    35. Once you have agreement on NEURON to the original mod, create another Simulation Configuration with only the ChannelML based cell (and the plots, etc.) and try running it on GENESIS.
    36. -
    37. If you've gotten this far, congratulations. If you have specific problems or think something is outside the scope of the NeuroML specifications, please get in touch
    38. + +
    39. If you've gotten this far, congratulations. If you have specific problems or think something is outside the scope of the NeuroML specifications, please get in touch +
    40. +
    - + +
    +

     

    +

     

    + +
    +
    + +
    + - + diff --git a/docs/docs/index.html b/docs/docs/index.html new file mode 100644 index 00000000..e59c581b --- /dev/null +++ b/docs/docs/index.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + +neuroConstruct Documentation + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +neuroConstruct Documentation +

    +
    +
    + + + +

    An overview of the documentation available for neuroConstruct

    + + + +

    +Installation +

    + + +

       First you'll need to get the application installed. Click here for instructions +on the system requirements and installation instructions for neuroConstruct

    + + + + + + +

    +neuroConstruct paper +

    + + +

       The best way to get an overview of the functionality offered by neuroConstruct is to read + the paper published in the journal Neuron.

    + + + + +

    +Documentation contents +

    + + +

       More details on the contents of the neuroConstruct online documentation

    + + + + +

    +Glossary +

    + + +

       Details on most of the main terms used in the application are provided in a glossary, +which provides links to more details on the key concepts used (e.g. Cell Group, Cell Mechanisms)

    + + +

    +Tutorials +

    + + +

       A number of tutorials illustrating the functionality of the application. More +will be added to these in the near future.

    + + + + +

    +JavaDoc API for neuroConstruct +

    + + +

       The API for the latest version of neuroConstruct is available here.

    + + + +

     

    + +

     

    + +
    +
    +
    +
    + + + diff --git a/docs/docs/install.html b/docs/docs/install.html new file mode 100644 index 00000000..be332977 --- /dev/null +++ b/docs/docs/install.html @@ -0,0 +1,554 @@ + + + + + + + + + + + + +Installing and running neuroConstruct + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Installing and running neuroConstruct +

    +
    +
    + + + +
    +

    Installation via GitHub

    + + + +

    The source code for the application, as well as instructions for installation can be found: on GitHub.

    + + +

     

    + +

     

    + +

     

    + +

     

    + +

      NOTE: The instructions below are out of date, but may be useful for reference/troubleshooting. +

    + + +

     

    + +
    + + + +
    +

    Requirements

    + + + +

    neuroConstruct has been tested on on WinXP/NT, Red Hat Linux and openSUSE and Mac OS (please let us know + if you've any other experiences on other systems).

    + + +

    A local installation of NEURON, + GENESIS, MOOSE, + PSICS or a PyNN compliant simulator + will be needed to execute the simulation scripts generated by neuroConstruct. + + Details of the interaction with these environments is available here.

    + + + +

    neuroConstruct will run on most machines which can run Java and Java3D. For networks/cells with >5000 total segments, + you'll need a fairly modern machine, and the more RAM and graphics memory, the better; 1GB RAM and 128MB graphics is usually fine, higher is better. + See here for tips on improving graphics performance on slower machines.
    +

    + + +

    Approx. 130MB of disk space is required for the installation.

    + + + +

    Install Java J2SE 5 or higher. Available here. It's better to download the JDK + (Java Development Kit), which includes command line tools for Java.

    + + + +

    From version 1.2.0 the libraries for Java3D are included with the neuroConstruct download. + There is no need to install this separately. Also, jar files and binaries for HDF5 and + Jython + are included with the standard release.

    + + + +
    + + +
    +

    Installation on Windows

    + + + +

    Make sure you have the correct version of Java installed (see above). Open a command prompt (Start -> Programs -> Accessories -> + Command Prompt) and type java -version. The version should be 1.5 or higher.

    + + +

    There are 2 options available for installation on a Windows machine: automatic installer or zip file.

    + +

      Automatic installer +

    + + +
      + + +
    1. Download the windows installer from the neuroConstruct download page. + Note: this is not currently recommended for Vista, Windows 7 or 64bit Windows machines. It's better to use the zip file below instead.
    2. + + + +
    3. Double click on the downloaded neuroConstruct_windows_1.x.x.exe file (where 1.x.x represents the current version number).
    4. + + +
    5. Select the install location. NOTE: it's best **not** to use a directory with a space in the name (though C:\Program Files on + 32bit Windows is fine). + By default the Windows installer puts the code into C:\Program Files\neuroConstruct_1.x.x.
    6. + + +
    7. On Vista and Windows 7, the installed files under C:\Program Files\neuroConstruct_1.x.x have read/write permissions designed + to make modification of installed files difficult. This has an + impact on the examples which are under this directory. These problems can be solved by browsing to the folder, and recursively setting + Full access control for the current user to all files in that directory via right click -> Properties -> Security -> Edit....
    8. + + +
    9. The application can be launched via the desktop icon, or via Start -> Programs -> neuroConstruct_1.x.x -> neuroConstruct_1.x.x. + There is also a link to the documentation in this menu, or the HTML files which are available at: + C:\Program Files\neuroConstruct_1.x.x\docs\website\docs.
    10. + + +
    11. neuroConstruct can also be run/rebuilt using the nC.bat script. See points 3, 4 and 5 below. Note also the information there + about running neuroConstruct with extra RAM.
    12. + + + +
    + + +

      Zip file install +

    + + +
      + +
    1. Download neuroConstruct_1.x.x.zip from the download page. + This contains a directory tree from neuroConstruct_1.x.x, containing the main jar file and directories with the examples, documentation, etc.
    2. + + +
    3. Unzip this to a convenient location e.g. to C:\neuroConstruct_1.x.x.
    4. + + + +
    5. There is a precompiled jar file, (neuroConstruct_1.x.x.jar) present. + neuroConstruct can be run using this by executing nC.bat, either at the command prompt in the installation directory or + by double clicking on it in the file explorer. NOTE: you will have to open nC.bat for editing first and change the value + of NC_HOME to the installation directory.
    6. + + +
    7. The NC_MAX_MEMORY=450M used in this file changes the maximum amount of memory available to the Java Virtual Machine. + Alter this according to your machine's capabilities (use approx 50% of max memory available). + NOTE: it's been found that requesting too much memory for neuroConstruct under Windows can result in the application crashing when + the graphics card is required to display large networks; aim for less than half the available RAM. See points on displaying + large 3D networks here.
    8. + + + +
    9. The Java source code of neuroConstruct is included in the src directory. This can be recompiled using: nC.bat -make. + You'll need the Java compiler at command line (try typing javac -version, and if this fails add the bin + directory of the installed JDK to the PATH environment variable). + It is also possible to install Apache Ant and compile (type ant) and run (type ant run) + the code using the settings in build.xml.
    10. + + + +
    + + +
    + + +
    +

    Installation on Linux

    + + + + +

    Make sure you have the packages gcc, ncurses and ncurses-devel installed to allow compilation of NEURON mod files. More tips on interaction with NEURON here.

    + + +

    Make sure you have the correct version of Java installed (see above). Open a terminal window and type java -version. + The version should be 1.5 or higher. neuroConstruct has to date been developed using Sun's Java SE, as opposed to OpenJDK, and some of the GUI elements + might look different if using OpenJDK, which is the default option on many Linux distributions. If you find buttons disappearing or labels too large for + the dialog boxes, try using the Sun JDK instead.

    + + +

    There are 2 options available for installation on a Linux/Unix machine: automatic installer or zip file.

    + +

      Automatic installer +

    + + +
      + + +
    1. Download the Linux installer from the neuroConstruct download page. + Note: this is not currently recommended for 64bit Linux machines. It's better to use the zip file below instead.
    2. + + + +
    3. + Click on the downloaded neuroConstruct_unix_1.x.x.sh file (where 1.x.x represents the current version number), or open a terminal, go to the install + directory and type ./neuroConstruct_unix_1.x.x.sh. You may need to give exectue permissions to the file first: chmod u+x neuroConstruct_unix_1.x.x.sh. +
    4. + + +
    5. Select the install location. NOTE: it's best **not** to use a directory with a space in the name. + A suggested location is /home/username/neuroConstruct_1.x.x.
    6. + + + +
    7. The application can be launched via the desktop shortcut, though this is not guaranteed to work on all distributions. + It may be better to open a terminal, go to the install directory and run ./neuroConstruct_1.x.x. +
    8. + + +
    9. neuroConstruct can also be run/rebuilt using the nC.sh script. See points 3, 4 and 5 below. Note also the information there + about running neuroConstruct with extra RAM.
    10. + + + +
    + + +

      Zip file install +

    + + +
      + +
    1. Download neuroConstruct_1.x.x.zip from the download page. + This contains a directory tree from neuroConstruct_1.x.x, containing the main jar file and directories with the examples, documentation, etc.
    2. + + +
    3. Unzip this to a convenient location e.g. to /home/username/neuroConstruct_1.x.x.
    4. + + + +
    5. There is a precompiled jar file, (neuroConstruct_1.x.x.jar) present. + neuroConstruct can be run using this by executing ./nC.sh, either at the command prompt in the installation directory or + by double clicking on it in the file explorer. You will need to give execute permissions to the file first: chmod u+x nC.sh. + NOTE: you will have to open nC.sh for editing first and change the value + of NC_HOME to the installation directory.
    6. + + +
    7. The NC_MAX_MEMORY=450M used in this file changes the maximum amount of memory available to the Java Virtual Machine. + Alter this according to your machine's capabilities (use approx 50% of max memory available).
    8. + + + +
    9. The Java source code of neuroConstruct is included in the src directory. This can be recompiled using: ./nC.sh -make. + You'll need the Java compiler availabe at command line (try typing javac -version). + It is also possible to install Apache Ant and compile (type ant) and run (type ant run) + the code using the settings in build.xml.
    10. + + + +
    + + + +
    + + +
    +

    Installation on Mac

    + + + +

    You'll need to install the Developer Tools (XCode) in addition to the NEURON *.dmg to allow compilation of mod files. + More tips on interaction with NEURON here +

    + + +

    Make sure you have the correct version of Java installed (see above). Open a terminal window and type java -version. + The version should be 1.5 or higher.

    + + +

    There are 2 options available for installation on a Mac machine: automatic installer or zip file.

    + +

      Automatic installer +

    + + +
      + + +
    1. Download the Mac installer from the neuroConstruct download page. + Note: this is not currently recommended for 64bit Mac machines. It's better to use the zip file below instead.
    2. + + + +
    3. + Click on the downloaded neuroConstruct_macos_1.x.x.sh file (where 1.x.x represents the current version number), or open a terminal, go to the install + directory and type ./neuroConstruct_macos_1.x.x.sh. You may need to give exectue permissions to the file first: chmod u+x neuroConstruct_macos_1.x.x.sh. +
    4. + + +
    5. Select the install location. NOTE: it's best **not** to use a directory with a space in the name. + The default location is /Applications/neuroConstruct_1.x.x.
    6. + + + +
    7. The application can be launched via the desktop shortcut, though this is not guaranteed to work on all Mac versions. + It may be better to open a terminal, go to the install directory and run ./neuroConstruct_1.x.x. +
    8. + + +
    9. neuroConstruct can also be run/rebuilt using the nC.sh script. See points 3, 4 and 5 below. Note also the information there + about running neuroConstruct with extra RAM.
    10. + + + +
    + + +

      Zip file install +

    + + +
      + +
    1. Download neuroConstruct_1.x.x.zip from the download page. + This contains a directory tree from neuroConstruct_1.x.x, containing the main jar file and directories with the examples, documentation, etc.
    2. + + +
    3. Unzip this to a convenient location e.g. to /home/username/neuroConstruct_1.x.x.
    4. + + + +
    5. There is a precompiled jar file, (neuroConstruct_1.x.x.jar) present. + neuroConstruct can be run using this by executing ./nC.sh, either at the command prompt in the installation directory or + by double clicking on it in the file explorer. You will need to give execute permissions to the file first: chmod u+x nC.sh. + NOTE: you will have to open nC.sh for editing first and change the value + of NC_HOME to the installation directory.
    6. + + +
    7. The NC_MAX_MEMORY=450M used in this file changes the maximum amount of memory available to the Java Virtual Machine. + Alter this according to your machine's capabilities (use approx 50% of max memory available).
    8. + + + +
    9. The Java source code of neuroConstruct is included in the src directory. This can be recompiled using: ./nC.sh -make. + You'll need the Java compiler availabe at command line (try typing javac -version). + It is also possible to install Apache Ant and compile (type ant) and run (type ant run) + the code using the settings in build.xml.
    10. + + + +
    + + + +
    + + + + + + + +
    +

    Post installation

    + + + + +

    Check that the location of the NEURON home dir is properly set. Go to Settings -> General Properties & Project + Defaults for this. Also check on the command line for running executables in a new terminal window via Java. + The suggested command lines have been tested on WinXP, Red Hat Linux, SUSE and Mac.

    + + + +

    When the application is run for the first time, it will create 2 files in a directory .neuroConstruct in your home directory:

    + + + +
    + + + + + + + + + + + + + + + + + +
    {USER_HOME} /.neuroConstruct/neuroConstruct.propsStores project independent information, e.g. default 3D settings, location of NEURON files, etc.
    {USER_HOME} /.neuroConstruct/neuroConstruct.recentStores list of recent project files
    +
    + + +

    +Do not edit these files directly! Use Settings -> General Properties for this.

    + + + +
    + + + +

     

    + +

     

    + +
    +
    +
    +
    + + + diff --git a/docs/docs/interact.html b/docs/docs/interact.html new file mode 100644 index 00000000..c1cdb958 --- /dev/null +++ b/docs/docs/interact.html @@ -0,0 +1,312 @@ + + + + + + + + + + + + +Interacting with native simulators on various platforms + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Interacting with native simulators on various platforms +

    +
    +
    + + + +

    Outlined here are some points regarding how neuroConstruct deals with the native simulators on + various operating systems

    + + + + +
    +

    General points

    + + + +

    neuroConstruct is written in Java and so can be used on any platform with a Java Virtual Machine + together with an implementation of Java3D.

    + +

    In general, NEURON and/or GENESIS should be present on the same machine as neuroConstruct. The scripts for the target platform + are generated based on the network created by neuroConstruct, and these are set running in separate processes via the + Java Runtime.exec() command.

    + +

    + + + +
    + + + +
    +

    Linux

    + + + +

      NEURON +

    + + +

    NEURON hoc and mod files are generated from the network model in neuroConstruct. First, the mod files are compiled using + nrnivmodl. This executable is found using the value for the NEURON home directory in Settings -> + General Properties. +

    + +

    Once the native machine libraries for the channels are generated, the main hoc file is run with nrngui. Note that + this is executed in a console window (by prefixing the command with gnome-terminal -x (Gnome desktop) or + konsole (KDE), also set via Settings -> General Properties)

    + + +

      GENESIS +

    + +

    GENESIS script is generated from the network model and the main file can be run straight away. The genesis command, + together with the name of the main file are executed via Runtime.exec(), therefore the location of this executable + should be in the PATH variable. The command is executed in a new console window as above.

    + + + +
    + + + + +
    +

    Windows

    + + + +

      NEURON +

    + + +

    NEURON hoc and mod files are generated from the network model in neuroConstruct. First, the mod files are compiled using a command of the form + C:\nrn60\bin\rxvt.exe -e C:\nrn60\bin\sh C:\nrn60\lib\mknrndll.sh C:\nrn60. The C:\nrn60 is found using the + value for the NEURON home directory in Settings -> General Properties. +

    + +

    Once the native machine libraries for the channels are generated, the main hoc file is run with neuron.exe.

    + + +

      GENESIS +

    + +

    GENESIS was for many years not available on Windows. A port has + recently been created, which while slower than under Linux, can be used to test generated GENESIS code under Windows. The + following assumes Cygwin has been installed at C:\cygwin and GENESIS installed at /usr/local/genesis i.e. + C:\cygwin\usr\local\genesis.

    + +

    + GENESIS script is generated from the network model and the main file can be run straight away without further compilation. + The file {NEUROCONSTRUCT_HOME}/templates/genesisUtils/startxwin2.bat is used to launch the genesis executable. + This is a slightly modified version + of the startxwin.bat supplied with Cygwin for running an XTerm. This mechanism is a bit flaky (e.g. it doesn't + like NEURON running under Cygwin at the same time). Please report any problems/solutions to bugs - at - neuroConstruct.org

    + + +
    + + + + +
    +

    Mac

    + + + +

    neuroConstruct and its 3D visualisation capability has been successfully tested on the Mac, but the interaction with simulation platforms needs more testing. + NEURON interaction is fine if the Developer Tools (XCode) are installed. Basic GENESIS interaction has been tried successfully too.

    + +

    If you are interested in helping test the application on this platform, please get in touch +

    + +
    + + + + +

     

    + +

     

    + + +
    +
    +
    +
    + + + diff --git a/docs/docs/netconns.html b/docs/docs/netconns.html new file mode 100644 index 00000000..bee25157 --- /dev/null +++ b/docs/docs/netconns.html @@ -0,0 +1,339 @@ + + + + + + + + + + + + +Network Connections + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Network Connections +

    +
    +
    + + + + + +
    +

    Introduction

    + + + +

    Network Connections in neuroConstruct are made between cells in 2 Cell Groups. +Before a Network Connection can be made a Synaptic Mechanism (e.g. a Double Exponential Synapse) needs to be +associated with subsets of dendrites/axons on the Cells in these Groups.

    + + +

    To add a new Synaptic Mechanism for the project, go to tab Cell Mechanism -> Add ChannelML from Template and +select the Double Exponential Synapse. Enter the name of the Mechanism and then view and possibly edit the parameters describing it. More info on +Cell Mechanisms available here +

    + + +

    Go to that tab Visualisation, select the Cell Type which is +associated with the Cell Group in the drop down box and press View +

    + + +
    + + + +
    +

    Specifying Groups

    + + + + +

    Select Groups in the lower right hand drop down box to view the Section Groups. +There are four Section Groups always present:

    + + + +
      + +
    • + +all: Every Section is included in this Group
    • + +
    • + +soma_group: This Group should contain only one Section, representing the soma
    • + +
    • + +dendrite_group: The Group of dendritic Sections
    • + +
    • + +axon_group: The Group of axonal Sections
    • + +
    + + + +

    Network Connections will always initiate on a Section in either the soma_group or the +axon_group. Similarly, the connections will terminate on a Section in either the soma_group +or the dendrite_group.

    + + +
    + + + +
    +

    Specifying Synaptic Connection Locations

    + + + +

    Not every Section of the Cell would be a suitable location of a particular synapse, +so other subgroups can be defined which specify where the connections should be made. By pressing Edit Groups, +new Section Groups can be made (e.g. basal/apical dendrites, parallel fibers), grouping Sections into biophysically +interesting regions of the cell.

    + + +

    Select Synaptic Connection Location in the drop down box. Click Edit Synaptic Locations. +The added Synaptic Mechanism should be in the drop down list. Select this and then select the Section Groups where the +synapse can be found.

    + + +

    It is important to point out again that the PRE synaptic location will be the intersection of the Sections in the (soma_group or the +axon_group) and the Group(s) selected here. Similarly for the POST synaptic location. Therefore if the +Group all is selected as a Synaptic Connection Location, synapses can be made on the axons (PRE), +dendrites (POST) and soma (PRE and POST). However if only the Group dendrite_group is selected as a +Synaptic Connection Location (or another Group only containing dendrites), then this particular Cell Type will only have +POST synaptic connections. Axons on another Cell Type will need to be specified as Synaptic Connection Locations for +this Synaptic Mechanism to make a Network Connection. +

    + + +
    + + + +
    +

    Creating Network Connections

    + + + +

    Now that it is specified on which parts of the Cells synapses can be made, Network Connections can be created.

    + +

    Go to tab Network Settings and click on Add Network Connection... under Network Connections.

    + + +

    Select the source Cell Group and the Target Cell Group, ensuring PRE Synaptic Connection Locations are + allowed on Cell Types of the former and POST Synaptic Connection Locations on Cell Types of the latter. +

    + + +

    Select the Synaptic Properties, including which Synaptic Mechanism is involved in the Network Connection, the voltage threshold + which will cause the synapse to fire, the delay after passing the threshold, and the weight of the synapse. These past two + values can be given fixed or variable values, in which case a new value will be generated for each instance of the synapse. +

    + + +

    Other options include the method for searching for the connection point, the max and min lengths of the allowed + connections, and a number of other Connection Conditions. These are explained in more detail in the Tool Tips which + pop up when the cursor hovers over the relevant panel/label. Ensure viewing Tool Tips is enabled in + Settings -> General Properties & Project Defaults + +

    + + + +

    Once a Network Connection is made, generate the network, and view the latest positions in tab Visualisation. + You will see the generated Network Connections as lines going from green (PRE synaptic location) to red + (POST synaptic location) between the Sections which are connected by the synapse. If the option is selected in + 3D Settings a sphere will be placed at each of the Synaptic Endpoints. +

    + + + + +
    + + +

     

    + +

     

    + +
    +
    +
    +
    + + + diff --git a/docs/docs/neuroml.html b/docs/docs/neuroml.html new file mode 100644 index 00000000..9dc8b992 --- /dev/null +++ b/docs/docs/neuroml.html @@ -0,0 +1,368 @@ + + + + + + + + + + + + +Support for NeuroML in neuroConstruct + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Support for NeuroML in neuroConstruct +

    +
    +
    + + + +

    Listed here are all the possible ways neuroConstruct can import/export data in NeuroML format

    + + + + + +
    +

    Cell morphologies (Levels 1-3)

    + + + +

    neuroConstruct uses an internal data model for cells which is closely linked to MorphML. See + here for more details.

    + + +

     

    + +

      Level 1: only the anatomy of the cell (MorphML description)

    + +

    +IMPORT: go to Cell Types press Add new Cell Type to project... and select NeuroMLConverter in the scroll down menu.

    + +

    +EXPORT: go to Export -> NeuroML tab and press Export all Cell Types with the Level 1 button selected, + a file for each cell type will be saved in the generatedNeuroML folder of the current project.

    + + +

     

    + +

      Level 2: Level 1 plus cell biophysics (passivel electrical properties and channel placement)

    + +

    +IMPORT: go to Cell Types tab press Add new Cell Type to project... and select NeuroMLConverter in the scroll down menu. +Note that there should be channel mechanisms present in the project with names corresponding to those in the <biophysics> element of the file.

    + +

    +EXPORT: go to Export -> NeuroML tab and press Export all Cell Types with the Level 2 button selected, + a file for each cell type will be saved in the generatedNeuroML folder of the current project.

    + + +

     

    + +

      Level 3: Level 2 plus network aspects (allowed locations of synapse types)

    + +

    +IMPORT: go to Cell Types press Add new Cell Type to project... and select NeuroMLConverter in the scroll down menu. +Note that there should be channel and synaptic mechanisms present in the project with names corresponding to those in the <biophysics> and <connectivity> elements of the file.

    + +

    +EXPORT: go to Export -> NeuroML tab and press Export all Cell Types with the Level 3 button selected, + a file for each cell type will be saved in the generatedNeuroML folder of the current project.

    + + + + + +

     

    + +
    + + + + +
    +

    ChannelML

    + + + +

    +ChannelML files can be used for Cell Mechanisms in neuroConstruct. They can be used for channels + (e.g. Na+, K+ distributed ion channels), synapses (fixed and plastic chemical synaptic mechanisms), gap junctions, ion concentrations (e.g. pool of internal + Ca2+) and point processes (e.g. simple integrate and fire mechanisms). The ChannelML file, a number of XSL mappings to simulators and a properties.xml file are stored for + each cell mechanism in the cellMechanism folder of a neuroConstruct project. Details of the process to convert an existing channel script, e.g. a mod file, to ChannelML + is outlined here + +

    + + +

     

    + +

    +IMPORT: to use a ChannelML based cell mechanism in neuroConstruct, ensure the file only contains a single +<channel_type> element, go to the Cell Mechanisms tab, press Create ChannelML Mechanism, name the new mechanism + and select the file containing the ChannelML description. XSL mappings for +NEURON and GENESIS can be found under templates/xmlTemplates/Schemata/vx.x.x/Level2 in the local folder of neuroConstruct. Alternatively, a small number of example ChannelML +mechanisms can be imported (and altered afterwards) by pressing Add ChannelML from Template.

    + + +

     

    + +

    +EXPORT: go to Export -> NeuroML tab and press Generate all NeuroML scripts, + a file for each ChannelML based cell mechanism is saved in the generatedNeuroML folder of the current project.

    + +

     

    + + +
    + + + + +
    +

    NetworkML

    + + +

    +NetworkML files can be saved and reloaded in neuroConstruct in either XML or HDF5 formats.

    + +

    The NetworkML files read by neuroConstruct can come from any application which generates valid NetworkML, but nothe that the cell group + and cell type names used in the <populations> element, and the network connection names used in the <projections> + element must match the names of these already present in the project.

    + +

    Included with neuroConstruct are a number of Python + scripts, and these allow reading/writing of NetworkML (in the pythonNeuroML/Examples folder in the install directory) and interaction with + neuroConstruct through Jython to generate a network which can then be saved as NetworkML (e.g. Ex4_SaveNetworkML.py + in the pythonnC folder in the install directory). More details can be found here.

    + + + + +

     

    + +

    +IMPORT: go to the Generate tab, press Load NetworkML and select the XML or HDF5 file containing the NetworkML description. +

    + + +

     

    + +

    +EXPORT: go to the Generate tab, press Save NetworkML, +a NetworkML description of the generated network will be saved in the savedNetworks folder of the current project.

    + +
    + +

     

    + + + +
    +

    Level 3 NeuroML

    + + + +

    neuroConstruct is able to generate and import and export single files containing all the model elements covered from Levels 1-3. +This file is fully NeuroML compliant and allow easy exchange of self-sufficient models between neuroConstruct users.

    + +

     

    + +

    +IMPORT: select File -> Import NeuroML Levels 1, 2, 3... from the main menu and +select the Level 3 file to be imported. If the file contains elements (e.g. cell types) with the same names as are used +in the project, warnings will be shown. It is possible to import a Level 3 file into a new, empty project (or select Import NeuroML Levels 1, 2, 3... +when no project is open) and neuroConstruct specific entities (e.g. 3D Regions) will be created to accomodate the elements in the file.

    + +

     

    + +

    +EXPORT: go to Export -> NeuroML tab and press Generate all NeuroML scripts with the Generate single NeuroML Level 3 file box ticked, +a single file containing all the generated elements will be saved in the savedNetworks folder of +the current project. Tick the Add neuroConstruct annotations box if you wish to include the neuroConstruct +specific settings like regions, simulation configurations etc. This will still produce a valid NeuroML Level 3 file (other +applications can ignore these annotations), but this will facilitate importing the model in the file into a new neuroConstruct project.

    + + +
    + + +

     

    + +

     

    + + +
    +
    +
    +
    + + + diff --git a/docs/XML/xmlForHtml/docs/python.xml b/docs/docs/python.html similarity index 59% rename from docs/XML/xmlForHtml/docs/python.xml rename to docs/docs/python.html index 5bd8aae6..016597e9 100644 --- a/docs/XML/xmlForHtml/docs/python.xml +++ b/docs/docs/python.html @@ -1,60 +1,245 @@ - - - - -
    - Support for Python in neuroConstruct -
    - + + + + + + + + + + + + +Support for Python in neuroConstruct + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Support for Python in neuroConstruct +

    +
    +
    + -
    - Scripting interface to neuroConstruct + + +
    +

    Scripting interface to neuroConstruct

    + +

    While a graphical user interface (GUI) is useful for constructing cell and network models visually, tuning a model will normally require running of large numbers of simulations, differing only in small details, and comparing the results. This can be achieved through the GUI of neuroConstruct, but it is a time consuming process to load projects, adjust a value in a text field, run a simulation, open the simulation results and repeat for several iterations.

    +

    The scripting interface for neuroConstruct allows projects to be accessed (either through the command line interface or more usually by a script file), the model elements of the project edited, simulations in any of the supported simulators to be generated and executed, and simulation results analysed.

    +

    The scripting interface is based on Jython. Jython is an implementation of Python purely in Java; the more widely used version, and the reference implementation, is "CPython". Jython allows access using a Python based syntax to Java classes in external packages. This has been used to make it possible to call methods in the Java classes of neuroConstruct from Python scripts.

    +

    The standard release of neuroConstruct comes bundled with Jython, and an instance of the Jython script interpreter (with access to the classes in the neuroConstruct jar file) can be run using nC.bat -python (Windows) or ./nC.sh -python (Linux/Mac). The scripts below give some examples of the usage of the neuroConstruct scripting interface (these are present in the pythonnC directory under the main installation folder of neuroConstruct).

    +

     

    -

     Ex1_Simple.py

    + +

     Ex1_Simple.py +

    +

    This simple example shows a neuroConstruct project being loaded and its status checked. Note the line:

    +

    from ucl.physiol.neuroconstruct.project import ProjectManager

    -

    which imports the Java class ProjectManager. The methods available on this can be seen in the Java API for ProjectManager

    + +

    which imports the Java class ProjectManager. The methods available on this can be seen in the Java API for ProjectManager +

    +

     

    -

     Ex2_SaveProject.py

    + +

     Ex2_SaveProject.py +

    +

    This example demonstrates changing a property of the neuroConstruct project (in this case the amplitude of one of the current clamp inputs) and saving the project. If the lines

    +

    myProject.markProjectAsEdited()

    +

    myProject.saveProject()

    +

    are called, the project will be saved, otherwise the edits to the cells, connections, etc. will be lost once the script exits.

    +

     

    -

     Ex3_ManualCreate.py

    + +

     Ex3_ManualCreate.py +

    +

    Locations of individual cells in Cell Groups and network connections are usually generated by specifying the packing patterns and connection conditions through the GUI. There are a limited number of options allowed here. For complete flexibility the Python interface can be used to specify the exact (x, y, z) @@ -66,16 +251,24 @@ generated after "manually" adding the positions/conections will use this custom network structure.

    +

     

    -

     Ex4_SaveNetworkML.py

    + +

     Ex4_SaveNetworkML.py +

    +

    This script is similar to the previous one, in that it manually creates cell positions and connections. This script saves the network structure to a NetworkML file though. This can be useful for generating a custom network structure via a script, and afterwards loading the NetworkML in through the GUI for visualisation and possible use in simulations. Note that an example below Ex1_CreateNetworkML.py carries out a similar task, but does not use neuroConstruct specific methods (and so can be used on CPython).

    +

     

    -

     Ex5_MultiSimGenerate.py

    + +

     Ex5_MultiSimGenerate.py +

    +

    This script generates a number of simulations in NEURON, each with a small parameter change, and runs a maximum of 4 simulations simultaneously (this number can be modified to reflect the max number of local processors to use). The script can be customised to make any change in the cells/network structure between simulations. @@ -83,67 +276,102 @@

    +

     

    -

     Ex6_LoadCells.py

    + +

     Ex6_LoadCells.py +

    +

    This script uses the MorphMLConverter class to load a cell structure from a NeuroML morphology file and include it in a neuroConstruct project. The project can then be saved and the neuroConstruct GUI opened (by uncommenting the lines at the end of the file). This illustrates how the scripting interface could be used to handle/import large data set outside of the GUI. Other converters for various morphology types are available in the package ucl.physiol.neuroconstruct.cell.converters +

    +

     

    -

     Ex7_ExtractNeuroML.py

    + +

     Ex7_ExtractNeuroML.py +

    +

    This example opens a neuroConstruct project, and saves cells in NeuroML format. It accesses the utility method saveAllCellsInNeuroML(...) in class MorphMLConverter.

    +

     

    -

     Example of Python scripts in use

    + +

     Example of Python scripts in use +

    +

    There is an example of a Python script for generating F-I (firing frequency versus injected current) plots for 2 realistic cell models in the neuroConstruct project GranCellLayer. The script GranGolgiF_I.py generates the plots and can be found in the pythonScripts directory of the project, and the GenerateF_ICurve.py script can be reused for generating F_I plots in other projects.

    +

     

    -
    + +
    -
    - Python scripts for NeuroML support + + +
    +

    Python scripts for NeuroML support

    + +

    A number of Python scripts for dealing with NeuroML files can be found in the pythonNeuroML/Examples directory under the main installation folder of neuroConstruct. These utlilse the utility files under the pythonNeuroML/NeuroMLUtils directory.

    +

     

    -

     Ex1_CreateNetworkML.py

    + +

     Ex1_CreateNetworkML.py +

    +

    This file can be used to create a NetworkML file in valid XML or HDF5 format. Note it does not use the neuroConstruct Java classes, and so can be used with CPython, Jython, or the nC.xxx -python scripts.

    +

     

    -

     Ex2_ReadNetworkML_XML.py

    -

     Ex3_ReadNetworkML_HDF5.py

    + +

     Ex2_ReadNetworkML_XML.py +

    + +

     Ex3_ReadNetworkML_HDF5.py +

    +

    These files can be used to read in the contents of NetworkML files. One version is provided for XML based files, another for HDF5 based files (note, PyTables needs to be installed before this example can be run).

    +

     

    -

     Ex4_SimplePyNN.py

    -

     Ex5_NetworkMLPyNN.py

    -

    These examples illustrate some basic interaction with PyNN, which is a Python package +

     Ex4_SimplePyNN.py +

    + +

     Ex5_NetworkMLPyNN.py +

    + + +

    These examples illustrate some basic interaction with PyNN, which is a Python package for network creation on multiple simulators. Ex4_SimplePyNN.py is a simple example which cane be used to test the correct local installation of PyNN and one of the supporting simulators. Ex5_NetworkMLPyNN.py @@ -151,30 +379,62 @@ and call the appropriate functions in the PyNN API to create the network contained in the NetworkML file. Both of these can be run using the command python Ex***.py sim, with sim replaced by the name of the PyNN compliant simulator.

    +

    These examples use the utility classes under the pythonNeuroML/PyNNUtils directory. These files are also used by neuroConstuct in the -PyNN example project: Ex8_PyNNDemo

    +PyNN example project: Ex8_PyNNDemo +

    +

     

    -
    + +
    -
    - Python usage in native NEURON simulations -

    There is an option at the Export -> NEURON -> Generate code tab to create Python/XML/hoc or Python/HDF5 simulations, + +

    +

    Python usage in native NEURON simulations

    + + + +

    There is an option at the Export -> NEURON -> Generate code tab to create Python/XML/hoc or Python/HDF5 simulations, as opposed to "pure" hoc (and mod) NEURON scripts. These use a similar method to Ex2_ReadNetworkML_XML.py and Ex5_NetworkMLPyNN.py above, using utility files in pythonNeuroML/NeuroMLUtils and pythonNeuroML/NEURONUtils to parse XML/HDF5 based NetworkML and call the appropriate NEURON methods to create cells/connections.

    -

    This functionality is still in development, and requires NEURON to be compiled with Python, and for HDF5, for PyTables to + +

    This functionality is still in development, and requires NEURON to be compiled with Python, and for HDF5, for PyTables to be correctly installed.

    -
    + +
    +

     

    +

     

    - - + + + + +
    + + + diff --git a/docs/docs/python/Ex1_CreateNetworkML.py b/docs/docs/python/Ex1_CreateNetworkML.py new file mode 100644 index 00000000..8cec4eff --- /dev/null +++ b/docs/docs/python/Ex1_CreateNetworkML.py @@ -0,0 +1,69 @@ +# +# A simple example of using the NetworkML helper file to create a network and save it +# in a format which can be loaded into neuroConstruct. +# +# Note, HDF5 functionality only fully works if you have Python/pytables/HDF5 +# set up correctly. Only tested on Linux so far. +# +# Author: Padraig Gleeson +# +# This file has been developed as part of the neuroConstruct project +# This work has been funded by the Medical Research Council and the +# Wellcome Trust +# +# + +import sys +import math +import random + +sys.path.append("../NeuroMLUtils") +from NetworkMLNet import NetworkMLNet + +print("Going to create a NetworkML file...") + +nmlNet = NetworkMLNet() + +newPop = nmlNet.addPopulation("SampleCellGroup", "SampleCell") # Names chosen for easy import into neuroConstruct... +popSize = 40 +compNodes = 4 # Number of processors to generate for + +newProj = nmlNet.addProjection("NetConn_SampleCellGroup_SampleCellGroup", "SampleCellGroup", "SampleCellGroup") +newProj.addSynapse("DoubExpSyn", 1, -20, 5) + + +for i in range(popSize): + + ### Alter these lines for any "shape" network you want + x = 200 * math.sin(i/4.0) + y = i*4 + z = 100 * math.cos(i/4.0) + + newPop.addInstance(x,y,z, random.randint(0, compNodes-1)) + + if i>0: + newProj.addConnection(i-1, i) + + +filenameX = "random.nml" +nmlNet.writeXML(filenameX) # Create XML based NetworkML file + + +############### Put back in these lines to save in HDF5 format. Note: pytables should be installed and tested before this! +#filenameH = "random.h5" +#nmlFile.writeHDF5(filenameH) # Create HDF5 based NetworkML file +#print("All done! File with "+str(popSize)+" cells saved to: "+ filenameH) +############### + +print("All done! File with "+str(popSize)+" cells saved to: "+ filenameX) +print("") + +print("To load this generated network into neuroConstruct, create a new project and accept the kind offer to add") +print("some sample elements. Add a network connection with source and target being the project's only cell group.") +print("Go to tab Generate, press Load NetworkML and locate the generated file. ") +print(" ") +print("Try changing the shape and population size above. You will need a pretty high spec video card to view ") +print("large networks, though.") + + + diff --git a/docs/docs/python/Ex1_Simple.py b/docs/docs/python/Ex1_Simple.py new file mode 100644 index 00000000..208755b1 --- /dev/null +++ b/docs/docs/python/Ex1_Simple.py @@ -0,0 +1,37 @@ +# +# +# A simple example of loading a neuroConstruct project using the Jython scripting interface +# +# To execute this type of file, type '..\nC.bat -python Ex1_Simple.py' (Windows) +# or '../nC.sh -python Ex1_Simple.py' (Linux/Mac). Note: you may have to update the +# NC_HOME and NC_MAX_MEMORY variables in nC.bat/nC.sh +# +# Author: Padraig Gleeson +# +# This file has been developed as part of the neuroConstruct project +# This work has been funded by the Medical Research Council and the +# Wellcome Trust +# +# + +try: + from java.io import File + from java.lang import System +except ImportError: + print "Note: this file should be run using ..\\nC.bat -python XXX.py' or './nC.sh -python XXX.py'" + print "See http://www.neuroconstruct.org/docs/python.html for more details" + quit() + + +from ucl.physiol.neuroconstruct.project import ProjectManager + +file = File("../osb/showcase/neuroConstructShowcase/Ex1_Simple/Ex1_Simple.ncx") +print 'Loading project file: ', file.getAbsolutePath() + +pm = ProjectManager() +myProject = pm.loadProject(file) + +print pm.status() + +# Remove this line to remain in interactive mode +System.exit(0) diff --git a/docs/docs/python/Ex2_ReadNetworkML_XML.py b/docs/docs/python/Ex2_ReadNetworkML_XML.py new file mode 100644 index 00000000..8cd271f7 --- /dev/null +++ b/docs/docs/python/Ex2_ReadNetworkML_XML.py @@ -0,0 +1,57 @@ +# +# A simple example of reading in and instantiating Python objects for a NetworkML file +# containing XML +# +# Beta version!! +# +# Author: Padraig Gleeson +# +# This file has been developed as part of the neuroConstruct project +# This work has been funded by the Medical Research Council and the +# Wellcome Trust +# +# + +import sys +import xml +import xml.sax +import time + +import logging + +sys.path.append("../NeuroMLUtils") + +from NetworkHolder import NetworkHolder +from NetworkMLSaxHandler import NetworkMLSaxHandler + +file_name = 'small.nml' +#file_name = 'Generated.net.xml' + +logging.basicConfig(level=logging.INFO, format="%(name)-19s %(levelname)-5s - %(message)s") + +start = time.time() + +print("Going to read contents of a NetworkML file: "+str(file_name)) + + +parser = xml.sax.make_parser() # A parser for any XML file + +nmlHolder = NetworkHolder() # Stores (most of) the network structure + +curHandler = NetworkMLSaxHandler(nmlHolder) # The SAX handler knows of the structure of NetworkML and calls appropriate functions in NetworkHolder + +curHandler.setNodeId(-1) # Flags to handle cell info for all nodes, as opposed to only cells with a single nodeId >=0 + +parser.setContentHandler(curHandler) # Tells the parser to invoke the NetworkMLSaxHandler when elements, characters etc. parsed + +parser.parse(open(file_name)) # The parser opens the file and ultimately the appropriate functions in NetworkHolder get called + +end = time.time() +print("Have read in contents of file: %s in %f seconds"%(file_name, (end-start))) + +print (str(nmlHolder.nmlNet)) + + + + + diff --git a/docs/docs/python/Ex2_SaveProject.py b/docs/docs/python/Ex2_SaveProject.py new file mode 100644 index 00000000..70273686 --- /dev/null +++ b/docs/docs/python/Ex2_SaveProject.py @@ -0,0 +1,61 @@ +# +# +# A file which opens a neuroConstruct project, changes the value of the +# amplitude in the electrical stimulation to a random value, then saves the project +# +# Author: Padraig Gleeson +# +# This file has been developed as part of the neuroConstruct project +# This work has been funded by the Medical Research Council and the +# Wellcome Trust +# +# + +try: + from java.io import File + from java.lang import System +except ImportError: + print "Note: this file should be run using ..\\nC.bat -python XXX.py' or './nC.sh -python XXX.py'" + print "See http://www.neuroconstruct.org/docs/python.html for more details" + quit() + +from ucl.physiol.neuroconstruct.project import ProjectManager +from ucl.physiol.neuroconstruct.utils import NumberGenerator + +from math import * +from random import * + +# Load an existing neuroConstruct project +projFile = File("TestPython/TestPython.neuro.xml") +print "Loading project from file: " + projFile.getAbsolutePath()+", exists: "+ str(projFile.exists()) + +pm = ProjectManager() +myProject = pm.loadProject(projFile) +print "Loaded project: " + myProject.getProjectName() + + + +# Get first electrical stimulation & reset it + +stim = myProject.elecInputInfo.getStim(0) + +print "First stimulation setting: "+ str(stim) + +newAmp = random()*0.2 + +stim.setAmp(NumberGenerator(newAmp)) + +myProject.elecInputInfo.updateStim(stim) + +print "Stimulation now: "+ str(myProject.elecInputInfo.getStim(0)) + + + +# Save project & exit + +myProject.markProjectAsEdited() +myProject.saveProject() + + +System.exit(0) + diff --git a/docs/docs/python/Ex3_ManualCreate.py b/docs/docs/python/Ex3_ManualCreate.py new file mode 100644 index 00000000..4f3004f7 --- /dev/null +++ b/docs/docs/python/Ex3_ManualCreate.py @@ -0,0 +1,85 @@ +# +# +# A file which opens a neuroConstruct project and then manually adds cells and net conns +# to the generatedCellPositions, etc. instead of using the cell group info and generating the +# project in the normal way +# +# Author: Padraig Gleeson +# +# This file has been developed as part of the neuroConstruct project +# This work has been funded by the Medical Research Council and the +# Wellcome Trust +# +# + +try: + from java.io import File + from java.lang import System +except ImportError: + print "Note: this file should be run using ..\\nC.bat -python XXX.py' or './nC.sh -python XXX.py'" + print "See http://www.neuroconstruct.org/docs/python.html for more details" + quit() + +from ucl.physiol.neuroconstruct.project import ProjectManager, SingleElectricalInput + +from math import * + + +# Load an existing neuroConstruct project + +projFile = File("TestPython/TestPython.neuro.xml") +print "Loading project from file: " + projFile.getAbsolutePath()+", exists: "+ str(projFile.exists()) + +pm = ProjectManager() +myProject = pm.loadProject(projFile) +print "Loaded project: " + myProject.getProjectName() + + +# Get the names of the first Cell Group, Network Connection and Electrical Stimulation +cellGroup0 = myProject.cellGroupsInfo.getAllCellGroupNames().get(0) +netConn0 = myProject.morphNetworkConnectionsInfo.getAllSimpleNetConnNames().get(0) +elecInput0 = myProject.elecInputInfo.getAllStimRefs().get(0) + + +# Add a number of cells to the generatedCellPositions, connections to generatedNetworkConnections +# and electrical inputs to generatedElecInputs +numCells = 6 + +for i in range(0, numCells) : + + x = 100 * sin(i * 2 *pi / numCells) + y = 100 * cos(i * 2 *pi / numCells) + + myProject.generatedCellPositions.addPosition(cellGroup0, i, x,y,0) + + if i != numCells-1 : + myProject.generatedNetworkConnections.addSynapticConnection(netConn0, i, i+1) + +input = SingleElectricalInput(elecInput0, cellGroup0, 0) + +myProject.generatedElecInputs.addSingleInput(elecInput0, input) + + +print "-----------------------------------" +print "Information on network generated: " +print + +print myProject.generatedCellPositions.details() +print myProject.generatedNetworkConnections.details() +print myProject.generatedElecInputs.details() + +print "-----------------------------------" +print + + +System.exit(0) + + + + + + + + + + diff --git a/docs/docs/python/Ex3_ReadNetworkML_HDF5.py b/docs/docs/python/Ex3_ReadNetworkML_HDF5.py new file mode 100644 index 00000000..599861b3 --- /dev/null +++ b/docs/docs/python/Ex3_ReadNetworkML_HDF5.py @@ -0,0 +1,50 @@ +# +# A simple example of reading in and printing the contents of a NetworkML file +# saved in HDF5 format. +# +# Beta version!! +# +# Author: Padraig Gleeson +# +# This file has been developed as part of the neuroConstruct project +# This work has been funded by the Medical Research Council and the +# Wellcome Trust +# +# + +import sys + +import logging +import time + +sys.path.append("../NeuroMLUtils") + +from NetworkHolder import NetworkHolder + + +from NetworkMLHDF5Handler import NetworkMLHDF5Handler + +file_name = 'GranCellLayer.h5' +#file_name = 'Generated.net.h5' + +logging.basicConfig(level=logging.INFO, format="%(name)-19s %(levelname)-5s - %(message)s") + + +start = time.time() +print("Going to read contents of a HDF5 NetworkML file: "+str(file_name)) + + +nmlHandler = NetworkHolder() # Stores (most of) the network structure + +curHandler = NetworkMLHDF5Handler(nmlHandler) # The HDF5 handler knows of the structure of NetworkML and calls appropriate functions in NetworkHandler + +curHandler.setNodeId(-1) # Flags to handle cell info for all nodes, as opposed to only cells with a single nodeId >=0 + +curHandler.parse(file_name) + + +end = time.time() +print("Have read in contents of file: %s in %f seconds"%(file_name, (end-start))) + +print (str(nmlHandler.nmlNet)) + diff --git a/docs/docs/python/Ex4_SaveNetworkML.py b/docs/docs/python/Ex4_SaveNetworkML.py new file mode 100644 index 00000000..faa575de --- /dev/null +++ b/docs/docs/python/Ex4_SaveNetworkML.py @@ -0,0 +1,77 @@ +# +# +# A file which opens a neuroConstruct project, adds some cells and network connections +# and then saves a NetworkML file with the net structure +# +# Author: Padraig Gleeson +# +# This file has been developed as part of the neuroConstruct project +# This work has been funded by the Medical Research Council and the +# Wellcome Trust +# +# + +try: + from java.io import File + from java.lang import System +except ImportError: + print "Note: this file should be run using ..\\nC.bat -python XXX.py' or './nC.sh -python XXX.py'" + print "See http://www.neuroconstruct.org/docs/python.html for more details" + quit() + +from ucl.physiol.neuroconstruct.project import ProjectManager + +from math import * + + +# Load an existing neuroConstruct project + +projFile = File("TestPython/TestPython.neuro.xml") +print "Loading project from file: " + projFile.getAbsolutePath()+", exists: "+ str(projFile.exists()) + +pm = ProjectManager() +myProject = pm.loadProject(projFile) +print "Loaded project: " + myProject.getProjectName() + + +# Add a number of cells to the generatedCellPositions, connections to generatedNetworkConnections +# and electrical inputs to generatedElecInputs +numCells = 12 + +for i in range(0, numCells) : + x = 100 * sin(i * 2 *pi / numCells) + y = 100 * cos(i * 2 *pi / numCells) + myProject.generatedCellPositions.addPosition("SampleCellGroup", i, x,y,0) + + if i != numCells-1 : + myProject.generatedNetworkConnections.addSynapticConnection("NC1", i, i+1) + + +# Print details +print myProject.generatedCellPositions.details() +print myProject.generatedNetworkConnections.details() + + + +# Save to a NetworkML file +myNetworkMLFile = File("TestPython/savedNetworks/nmlt.nml") + +simConfig = myProject.simConfigInfo.getDefaultSimConfig() + +pm.saveNetworkStructureXML(myProject, myNetworkMLFile, 0, 0, simConfig.getName(), "Physiological Units") + +print "Network structure saved to file: "+ myNetworkMLFile.getAbsolutePath() + +import sys + +print sys.argv + +if len(sys.argv) > 1 and sys.argv[1]=='-h': + myNetworkMLH5File = File("TestPython/savedNetworks/nmlt.h5") + + pm.saveNetworkStructureHDF5(myProject, myNetworkMLH5File, simConfig.getName(), "Physiological Units") + print "Network structure also saved to file: "+ myNetworkMLH5File.getAbsolutePath() + +System.exit(0) + + diff --git a/docs/docs/python/Ex4_SimplePyNN.py b/docs/docs/python/Ex4_SimplePyNN.py new file mode 100644 index 00000000..b6c03016 --- /dev/null +++ b/docs/docs/python/Ex4_SimplePyNN.py @@ -0,0 +1,201 @@ +# -*- coding: utf-8 -*- +# +# A simple example of a PyNN script which creates some cells and makes connections +# +# This standalone file should be runnable on any PyNN simulator and uses most of the functions +# that neuroConstruct generated PyNN code would use. Note some of the more advanced functionality +# e.g. synaptic plasticity, is turned off for some less well tested simulators (all except Nest & NEURON) +# +# To run this example type: +# python Ex4_SimplePyNN.py neuron +# or replace neuron ith another PyNN simulator +# +# Author: Padraig Gleeson +# +# This file has been developed as part of the neuroConstruct project +# This work has been funded by the Medical Research Council and the +# Wellcome Trust +# +# + + +import sys + +my_simulator = "" + +print "Has args: %s" % hasattr(sys,"argv") + + +if hasattr(sys,"argv") and len(sys.argv) >1: # run using python + my_simulator = sys.argv[-1] +else: + my_simulator = "neuron" # run using nrngui -python + +print "Running PyNN script in simulator: "+ my_simulator + +exec("from pyNN.%s import *" % my_simulator) + +from pyNN.random import NumpyRNG + +seed=1234 +rng = NumpyRNG(seed) + +''' +cellTypeToUse = IF_cond_exp +#cellTypeToUse = IF_cond_alpha + +class CellTypeA(cellTypeToUse): + + def __init__ (self, parameters): + cellTypeToUse.__init__ (self, parameters) +''' + +cellNumA = 2 +cellNumB = 4 +cellType = IF_cond_exp +connNum = 10 + +tstop = 200.0 +dt=0.01 + +if (my_simulator == 'neuroml'): + setup(file="test.xml") +else: + setup(timestep=dt) + + +cell_params = {'tau_refrac':2.0,'v_thresh':-50.0,'tau_syn_E':2.0, 'tau_syn_I':2.0} + +cellsA = Population((cellNumA,), cellType, cell_params, label="Cells_A") +cellsB = Population((cellNumB,), cellType, cell_params, label="Cells_B") + + +xMin=0 +xMax=200 +yMin=0 +yMax=200 +zMin=0 +zMax=50 + + +for cell in cellsA: + cell.position[0] = xMin+(NumpyRNG.next(rng)*(xMax-xMin)) + cell.position[1] = yMin+(NumpyRNG.next(rng)*(yMax-yMin)) + cell.position[2] = zMin+(NumpyRNG.next(rng)*(zMax-zMin)) + +for cell in cellsB: + cell.position[0] = xMin+(NumpyRNG.next(rng)*(xMax-xMin)) + cell.position[1] = yMin+(NumpyRNG.next(rng)*(yMax-yMin)) + cell.position[2] = zMin+(NumpyRNG.next(rng)*(zMax-zMin)) + + + +indicesA = [] +indicesB = [] + +for idA in cellsA: + index = cellsA.id_to_index(idA) + print " - Cell id %s in cellsA (index = %d) is at %s" % (idA, index, idA.position) + indicesA.append(index) + +for idB in cellsB: + index = cellsB.id_to_index(idB) + print " - Cell id %s in cellsB (index = %d) is at %s" % (idB, index, idB.position) + indicesB.append(index) + +print indicesA +print indicesB + +syn_dynam = None + +if my_simulator == 'neuron' or my_simulator == 'nest' : + syn_dynam = SynapseDynamics(fast=TsodyksMarkramMechanism(U=0.4, tau_rec=100.0, tau_facil=1000.0)) + +#syn_dynam = SynapseDynamics(slow=STDPMechanism(timing_dependence=SpikePairRule(tau_plus=20.0, tau_minus=20.0), +# weight_dependence=AdditiveWeightDependence(w_min=0, w_max=0.4, +# A_plus=0.01, A_minus=0.012))) + + +projConns = [] + +for i in range(connNum): + src = indicesA[int(NumpyRNG.next(rng) * len(indicesA))] + tgt = indicesB[int(NumpyRNG.next(rng) * len(indicesB))] + + print "-- Connecting cell %s (gid %s) in %s to cell %s (gid %s) in %s" % (src, str(cellsA[src]) ,cellsA.label, tgt, str(cellsB[tgt]), cellsB.label) + + projConns.append([src, tgt, 0.01, 1.0]) + + +connector= FromListConnector(projConns) +proj = Projection(cellsA, cellsB, connector, target='excitatory', label='TestProj' ''',synapse_dynamics=syn_dynam''') + + +if my_simulator == 'neuron' or my_simulator == 'nest' : + voltDistr = RandomDistribution('uniform',[-65,-50],rng) + + cellsA.randomInit(voltDistr) + cellsB.randomInit(voltDistr) + +freq = 150 # Hz + +number = int(tstop*freq/1000.0) + +print "Number of spikes expected in %d ms at %dHz: %d"%(tstop, freq, number) + + +from NeuroTools.stgen import StGen +stgen = StGen() +stgen.seed(seed) + +spike_times = stgen.poisson_generator(rate=freq, t_stop=tstop, array=True) + +input_population = Population(cellNumA, SpikeSourceArray, {'spike_times': spike_times}, label="inputsToA") + +for i in input_population: + i.spike_times = stgen.poisson_generator(rate=freq, t_stop=tstop, array=True) + print "spike_times: " +str(i.spike_times) + + +inputConns = [] + +for i in range(0,cellNumA): + inputConns.append([i, i, 0.1, 3.0]) + +connector2= FromListConnector(inputConns) +input_proj = Projection(input_population, cellsA, connector2, target='excitatory', label='InputProj' ,synapse_dynamics=None) + + +cellsA.record_v() +cellsB.record_v() + +cellsA.record_gsyn() +cellsB.record_gsyn() + +input_population.record() + +print "---- Running the simulation ----" +run(tstop) + + +cellsA.print_v("cellsA.dat") +cellsB.print_v("cellsB.dat") + + +cellsA.print_gsyn("cellsAgsyn.dat", compatible_output=True) +cellsB.print_gsyn("cellsBgsyn.dat", compatible_output=True) + +input_population.printSpikes("inputs.dat") + + +print cellsA.describe() +print cellsB.describe() +print proj.describe() +print input_population.describe() +print input_proj.describe() + +print get_time_step() + +end() + +print "Successfully executed PyNN script in simulator: "+ my_simulator \ No newline at end of file diff --git a/docs/docs/python/Ex5_MultiSimGenerate.py b/docs/docs/python/Ex5_MultiSimGenerate.py new file mode 100644 index 00000000..ff19e293 --- /dev/null +++ b/docs/docs/python/Ex5_MultiSimGenerate.py @@ -0,0 +1,223 @@ +# +# +# A file which opens a neuroConstruct project and generates it, then generates a series +# of slightly different NEURON simulations, using the same network, but different stimulations. +# An input current vs firing frequency plot is generated afterwards. +# The simulations can also be viewed and analysed afterwards in the neuroConstruct GUI +# +# Author: Padraig Gleeson +# +# This file has been developed as part of the neuroConstruct project +# This work has been funded by the Medical Research Council and the +# Wellcome Trust +# +# + +from sys import * + +try: + from java.io import File +except ImportError: + print "Note: this file should be run using ..\\nC.bat -python XXX.py' or './nC.sh -python XXX.py'" + print "See http://www.neuroconstruct.org/docs/python.html for more details" + quit() + +from ucl.physiol.neuroconstruct.project import ProjectManager +from ucl.physiol.neuroconstruct.neuron import NeuronFileManager +from ucl.physiol.neuroconstruct.utils import NumberGenerator +from ucl.physiol.neuroconstruct.nmodleditor.processes import ProcessManager +from ucl.physiol.neuroconstruct.project import ProjectManager +from ucl.physiol.neuroconstruct.gui.plotter import PlotManager +from ucl.physiol.neuroconstruct.gui.plotter import PlotCanvas +from ucl.physiol.neuroconstruct.dataset import DataSet +from ucl.physiol.neuroconstruct.simulation import SimulationData +from ucl.physiol.neuroconstruct.simulation import SpikeAnalyser + +from math import * +import time + +neuroConstructSeed = 1234 +simulatorSeed = 4321 + +# Load an existing neuroConstruct project + +projFile = File("TestPython/TestPython.neuro.xml") +print "Loading project from file: " + projFile.getAbsolutePath()+", exists: "+ str(projFile.exists()) + +pm = ProjectManager() +myProject = pm.loadProject(projFile) + +simConfig = myProject.simConfigInfo.getSimConfig("SingleCell") + + +pm.doGenerate(simConfig.getName(), neuroConstructSeed) + +while pm.isGenerating(): + print "Waiting for the project to be generated..." + time.sleep(2) + +numGenerated = myProject.generatedCellPositions.getNumberInAllCellGroups() + +print "Number of cells generated: " + str(numGenerated) + +simsRunning = [] + + + +def updateSimsRunning(): + + simsFinished = [] + + for sim in simsRunning: + timeFile = File(myProject.getProjectMainDirectory(), "simulations/"+sim+"/time.dat") + #print "Checking file: "+timeFile.getAbsolutePath() +", exists: "+ str(timeFile.exists()) + if (timeFile.exists()): + simsFinished.append(sim) + + if(len(simsFinished)>0): + for sim in simsFinished: + simsRunning.remove(sim) + + + +if numGenerated > 0: + + print "Generating NEURON scripts..." + + + myProject.neuronSettings.setCopySimFiles(1) # 1 copies hoc/mod files to PySim_0 etc. and will allow multiple sims to run at once + myProject.neuronSettings.setNoConsole() # Calling this means no console/terminal is opened when each simulation is run. Sim runs in background & exists on completion + #myProject.neuronFileManager.setQuitAfterRun(1) # Might be needed if above line was not used + + modCompileConfirmation = 0 # 0 means do not pop up console or confirmation dialog when mods have compiled + + + # Note same network structure will be used for each! + numSimulationsToRun = 12 + # Change this number to the number of processors you wish to use on your local machine + maxNumSimultaneousSims = 4 + + simReferences = {} + + for i in range(0, numSimulationsToRun): + + while (len(simsRunning)>=maxNumSimultaneousSims): + print "Sims currently running: "+str(simsRunning) + print "Waiting..." + time.sleep(2) # wait a while... + updateSimsRunning() + + + simRef = "PySim_"+str(i) + + print "Going to run simulation: "+simRef + + ######## Adjusting the amplitude of the current clamp ####### + + stim = myProject.elecInputInfo.getStim("Input_0") + newAmp = i/10.0 + stim.setAmp(NumberGenerator(newAmp)) + + simReferences[simRef] = newAmp + + myProject.elecInputInfo.updateStim(stim) + + print "Next stim: "+ str(stim) + + + ''' + ######### This code would adjust the density of one of the channels ######## + + cell = myProject.cellManager.getCell('SampleCell') + + print "Channels present: "+str(cell.getChanMechsVsGroups()) + + dens = i*1e-7 + + # Should be put at start... + from ucl.physiol.neuroconstruct.cell import * + + chanMech = ChannelMechanism("KConductance", dens) + + cell.associateGroupWithChanMech("all", chanMech) + + print "Channels present: "+str(cell.getChanMechsVsGroups()) + + ############################################################################ + + ''' + + myProject.simulationParameters.setReference(simRef) + + myProject.neuronFileManager.generateTheNeuronFiles(simConfig, None, NeuronFileManager.RUN_HOC, simulatorSeed) + + print "Generated NEURON files for: "+simRef + + compileProcess = ProcessManager(myProject.neuronFileManager.getMainHocFile()) + + compileSuccess = compileProcess.compileFileWithNeuron(0,modCompileConfirmation) + + print "Compiled NEURON files for: "+simRef + + if compileSuccess: + pm.doRunNeuron(simConfig) + print "Set running simulation: "+simRef + simsRunning.append(simRef) + + time.sleep(1) # Wait for sim to be kicked off + + print + print "Finished running "+str(numSimulationsToRun)+" simulations for project "+ projFile.getAbsolutePath() + print "These can be loaded and replayed in the previous simulation browser in the GUI" + print + + ######## Generating a current versus firing rate plot ####### + + plotFrameFI = PlotManager.getPlotterFrame("F-I curve from project: "+str(myProject.getProjectFile()) , 1, 1) + + plotFrameFI.setViewMode(PlotCanvas.INCLUDE_ORIGIN_VIEW) + + info = "F-I curve for Simulation Configuration: "+str(simConfig) + + dataSet = DataSet(info, info, "nA", "Hz", "Current injected", "Firing frequency") + dataSet.setGraphFormat(PlotCanvas.USE_CIRCLES_FOR_PLOT) + + simList = simReferences.keys() + simList.sort() + + for sim in simList: + + simDir = File(projFile.getParentFile(), "/simulations/"+sim) + print + print "--- Reloading data from simulation in directory: %s"%simDir.getCanonicalPath() + try: + simData = SimulationData(simDir) + simData.initialise() + print "Data loaded: " + print simData.getAllLoadedDataStores() + times = simData.getAllTimes() + cellSegmentRef = simConfig.getCellGroups().get(0)+"_0" + volts = simData.getVoltageAtAllTimes(cellSegmentRef) + + print "Got "+str(len(volts))+" data points on cell seg ref: "+cellSegmentRef + + analyseStartTime = 100 # So it's firing at a steady rate... + analyseStopTime = simConfig.getSimDuration() + analyseThreshold = -20 # mV + + spikeTimes = SpikeAnalyser.getSpikeTimes(volts, times, analyseThreshold, analyseStartTime, analyseStopTime) + + stimAmp = simReferences[sim] + print "Number of spikes at %f nA in sim %s: %i"%(stimAmp, sim, len(spikeTimes)) + avgFreq = 0 + if len(spikeTimes)>1: + avgFreq = len(spikeTimes)/ ((analyseStopTime - analyseStartTime)/1000.0) + dataSet.addPoint(stimAmp,avgFreq) + except: + print "Error analysing simulation data from: %s"%simDir.getCanonicalPath() + print exc_info()[0] + + + plotFrameFI.addDataSet(dataSet) + + diff --git a/docs/docs/python/Ex5_NetworkMLPyNN.py b/docs/docs/python/Ex5_NetworkMLPyNN.py new file mode 100644 index 00000000..fdbc0f62 --- /dev/null +++ b/docs/docs/python/Ex5_NetworkMLPyNN.py @@ -0,0 +1,146 @@ +# +# A simple example of reading in a NetworkML file and instantiating cells and +# connections using PyNN +# +# Author: Padraig Gleeson +# +# This file has been developed as part of the neuroConstruct project +# This work has been funded by the Medical Research Council and the +# Wellcome Trust +# +# + + +import sys +import xml + +import logging +import time + +sys.path.append("../NeuroMLUtils") +sys.path.append("../PyNNUtils") + +# Lines from standard PyNN examples +if hasattr(sys,"argv"): # run using python + my_simulator = sys.argv[-1] +else: + my_simulator = "neuron2" # run using nrngui -python + + +logging.basicConfig(level=logging.INFO, format="%(name)-19s %(levelname)-5s - %(message)s") + +from NetworkMLSaxHandler import NetworkMLSaxHandler +from PyNNUtils import NetManagerPyNN + +exec("from pyNN.%s import *" % my_simulator) + +f = open("my_simulator", mode='w') +f.write(my_simulator) +f.close() + + +startTime = time.time() + +dt = 0.01 +tstop = 200.0 +seed = 123456 + +setup(timestep=dt, debug=False) + +file_name = 'small_pynn.nml' + + +print("Going to read contents of a NetworkML file: "+str(file_name)) + + +parser = xml.sax.make_parser() # A parser for any XML file + +nmlHandler = NetManagerPyNN(my_simulator) # Stores (most of) the network structure + +nmlHandler.setSeed(seed) + +nmlHandler.setMaxSimLength(tstop) + +curHandler = NetworkMLSaxHandler(nmlHandler) # The SAX handler knows of the structure of NetworkML and calls appropriate functions in NetworkHandler + +curHandler.setNodeId(-1) # Flags to handle cell info for all nodes, as opposed to only cells with a single nodeId >=0 + +parser.setContentHandler(curHandler) # Tells the parser to invoke the NetworkMLSaxHandler when elements, characters etc. parsed + +parser.parse(open(file_name)) # The parser opens the file and ultimately the appropriate functions in NetworkHandler get called + + +print("Have read in contents of file: "+str(file_name)) + +for popName in nmlHandler.populations.keys(): + + population = nmlHandler.populations[popName] + print population.describe() + + population.record_v() + population.record_gsyn() + + for addr in population.addresses(): + gid = population[addr] + print " Cell %s (gid = %d) is at %s" % (addr, gid, population[addr].position) + + +for projName in nmlHandler.projections.keys(): + + projection = nmlHandler.projections[projName] + print projection.describe() + + +for inputName in nmlHandler.input_populations.keys(): + + input_population = nmlHandler.input_populations[inputName] + + input_population.record() + + print "Input source which has been created: %s with %d connections"% (inputName, input_population.size) + print input_population.describe() + + +for inputName in nmlHandler.input_projections.keys(): + proj = nmlHandler.input_projections[inputName] + print proj.describe() + ''' + p = proj.connections.targets + print dir(p) + print p.__class__ + print p''' + + + +preRunTime = time.time() +print "---- Running the simulation ----" +run(tstop) +postRunTime = time.time() + +print "Finished simulation. Setup time: %f secs, run time: %f secs"%(preRunTime-startTime, postRunTime-preRunTime) + + +for popName in nmlHandler.populations.keys(): + population = nmlHandler.populations[popName] + population.print_v("%s.dat"%population.label) + population.print_gsyn("%s.gsyn"%population.label) + +for projName in nmlHandler.projections.keys(): + projection = nmlHandler.projections[projName] + +for inputName in nmlHandler.input_populations.keys(): + input_population = nmlHandler.input_populations[inputName] + input_population.printSpikes("inputs.dat") + + + +print "Time step: " + str(get_time_step()) + +exit() + + + + + + + diff --git a/docs/docs/python/Ex6_LoadCells.py b/docs/docs/python/Ex6_LoadCells.py new file mode 100644 index 00000000..754346e1 --- /dev/null +++ b/docs/docs/python/Ex6_LoadCells.py @@ -0,0 +1,73 @@ +# +# +# A file which opens a neuroConstruct project, loads a cell morphology file +# and adds the cell to the project +# +# Author: Padraig Gleeson +# +# This file has been developed as part of the neuroConstruct project +# This work has been funded by the Medical Research Council +# +# + +try: + from java.io import File +except ImportError: + print "Note: this file should be run using ..\\nC.bat -python XXX.py' or './nC.sh -python XXX.py'" + print "See http://www.neuroconstruct.org/docs/python.html for more details" + quit() + +from ucl.physiol.neuroconstruct.project import ProjectManager +from ucl.physiol.neuroconstruct.cell.converters import MorphMLConverter + + +# Load an existing neuroConstruct project + +projFile = File("TestPython/TestPython.neuro.xml") +print "Loading project from file: " + projFile.getAbsolutePath()+", exists: "+ str(projFile.exists()) + +pm = ProjectManager() +myProject = pm.loadProject(projFile) +print "Loaded project: " + myProject.getProjectName() + + +morphDir = File("../osb/showcase/neuroConstructShowcase/Ex3_Morphology/importedMorphologies/") +morphmlFile = File(morphDir, "SimplePurkinjeCell.morph.xml") + + +print "Going to load morphology from: " + morphmlFile.getCanonicalPath() + +converter = MorphMLConverter() +cell = converter.loadFromMorphologyFile(morphmlFile, "NewCell") + +print "Loaded cell: " + cell.getInstanceName() + " with " + str(cell.getAllSegments().size()) +" segments" + +myProject.cellManager.addCellType(cell) # Actually add it to the project +myProject.cellGroupsInfo.setCellType("SampleCellGroup", cell.getInstanceName()) # Set the type of an existing cell group to this + + + +# Now the project can be generated as in Ex5_MultiSimGenerate.py + +# * OR * + + +# Save project +# Uncomment these lines to save the morphology in the project, then view the +# updated project in neuroConstruct +''' +myProject.markProjectAsEdited() +myProject.saveProject() + +# Run neuroConstruct and check that the cell has been added + +from ucl.physiol.neuroconstruct.gui import MainFrame +from ucl.physiol.neuroconstruct.utils import GuiUtils + +frame = MainFrame() +GuiUtils.centreWindow(frame) +frame.setVisible(1) +frame.doLoadProject(projFile.getCanonicalPath()) +''' + + diff --git a/docs/docs/python/Ex7_ExtractNeuroML.py b/docs/docs/python/Ex7_ExtractNeuroML.py new file mode 100644 index 00000000..f4983291 --- /dev/null +++ b/docs/docs/python/Ex7_ExtractNeuroML.py @@ -0,0 +1,65 @@ + +# +# +# A file which opens a neuroConstruct project, and saves cells in NeuroML format +# +# Author: Padraig Gleeson +# +# This file has been developed as part of the neuroConstruct project +# This work has been funded by the Medical Research Council +# +# + +try: + from java.io import File +except ImportError: + print "Note: this file should be run using ..\\nC.bat -python XXX.py' or './nC.sh -python XXX.py'" + print "See http://www.neuroconstruct.org/docs/python.html for more details" + quit() + +import sys + +from ucl.physiol.neuroconstruct.project import ProjectManager +from ucl.physiol.neuroconstruct.cell.converters import MorphMLConverter +from ucl.physiol.neuroconstruct.cell.compartmentalisation import OriginalCompartmentalisation + +from ucl.physiol.neuroconstruct.neuroml.NeuroMLConstants import NeuroMLLevel, NeuroMLVersion + + +if len(sys.argv) != 3: + print "Usage: \n ../nC.sh -python Ex7_ExtractNeuroML.py neuroConstruct_project_file folder_for_NeuroML" + print "Example: \n ../nC.sh -python Ex7_ExtractNeuroML.py TestPython/TestPython.neuro.xml /tmp" + print "or: \n ..\\nC.bat -python Ex7_ExtractNeuroML.py TestPython\\TestPython.neuro.xml c:\\temp" + sys.exit(1) + +# Load neuroConstruct project + +projFile = File(sys.argv[1]) +print "Loading project from file: " + projFile.getAbsolutePath()+", exists: "+ str(projFile.exists()) + +pm = ProjectManager() +myProject = pm.loadProject(projFile) +print "Loaded project: " + myProject.getProjectName() + +saveDir = File(sys.argv[2]) +print "Going to save NeuroML files to: " + saveDir.getAbsolutePath() + +level = NeuroMLLevel.NEUROML_LEVEL_3 +version = NeuroMLVersion.NEUROML_VERSION_1 + +MorphMLConverter.saveAllCellsInNeuroML(myProject, + OriginalCompartmentalisation(), + level, + version, + None, + saveDir) + +# Note: look also in Java class ucl.physiol.neuroconstruct.neuroml.NeuroMLPythonFileManager +# for the method generateNeuroMLFiles() which can be used to export all cells, channels and +# generated network structure to individual NeuroML files or as one large Level 3 file. + +print "Done!" + + + + diff --git a/docs/docs/regions.html b/docs/docs/regions.html new file mode 100644 index 00000000..0f0844c8 --- /dev/null +++ b/docs/docs/regions.html @@ -0,0 +1,230 @@ + + + + + + + + + + + + +Regions + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Regions +

    +
    +
    + + + + + +

    A volume in 3D space which can be filled with cells. Regions defined at the tab Regions can be also used for specifying bounding regions for selecting cells, for example:

    + + +
      + +
    • To selectively apply stimulations to a subset of cells, either inside or outside a given region, via tab Input/Output +
    • + +
    • To select a subset of cells in a 3D network visualisation. Select Select many... in the drop down box for Cell Number.
    • + +
    • To select a subset of cells to analyse (e.g. to generate a rasterplot for) when a previous simulation is reloaded.
    • + +
    + + + +

    Regions can also be used for:

    + +
      + +
    • Defining extent in 3D of axonal arbours for use in Volume Based Connections. These can be added in the single cell 3D view when a segment is being edited (select function in drop down box)
    • + +
    + + + +

    In the current version of neuroConstruct, these can be

    + + +
      + +
    1. Rectangular boxes (i.e. cuboids): where the width, height and depth are specified, along with the location of one of the lower corners
    2. + +
    3. Spheres: the centre point and the radius are specified
    4. + +
    5. Cylinders: the centre points of the base and top are specified, as is the radius
    6. + +
    7. Cones: the centre points of the base and apex are specified, as is the base radius
    8. + +
    + + + +

    neuroConstruct can be extended (at the source code level) to include more complex 3D Regions, +e.g. folium like constructs, etc. by extending the Java class Region.

    + + +
    +
    +
    +
    + + + diff --git a/docs/docs/simconfigs.html b/docs/docs/simconfigs.html new file mode 100644 index 00000000..3985639e --- /dev/null +++ b/docs/docs/simconfigs.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + +Simulation Configurations + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Simulation Configurations +

    +
    +
    + + + + + +

    Most neuroConstruct Projects will illustrate not just a single aspect of a cell + or network, but will seek to show how the cells react under different inputs, or how a network behaves + with different Cell Groups/cell populations present, etc. A particular Simulation + Configuration has a number of Cell Groups, Network Connections, Electrical Inputs, and Plots + associated with it, along with a simulation duration.

    + + +

    One of these configurations must be specified + when the network is generated, indicating which of the aspects of the model is to be simulated. A Default + Simulation Configuration is always present, and if there is only this one, all new Cell Groups, etc. will be + automatically associated with it; otherwise new Cell Groups, Network Connections, etc. have to be manually added to + whichever particular Simulation Configuration they are required for.

    + + + +

    Ideally there will be one Simulation Configuration associated with the project for each aspect being illustrated by the model as + a whole. If the model is accompanied by a paper, this could translate to one Simulation Configuration for each figure. If a published + model is being reproduced in neuroConstruct, it would be a useful goal to include Simulation Configurations reproducing the figures + of the paper as closely as possible. New Simulation Configurations can also be added to test new features of the network. Having a number + of 'working' Simulation Configurations is useful when a model is being developed, as following changes in the cells/cell mechanisms, the + older Simulation Configurations can be tested to ensure they are still producing the desired results.

    + + + + +
    +
    +
    +
    + + + diff --git a/docs/docs/tutorials/index.html b/docs/docs/tutorials/index.html new file mode 100644 index 00000000..07c43dc1 --- /dev/null +++ b/docs/docs/tutorials/index.html @@ -0,0 +1,223 @@ + + + + + + + + + + + + +Tutorials about neuroConstruct + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Tutorials about neuroConstruct +

    +
    +
    + + +

    These tutorials will give an introduction to the main functionality contained in neuroConstruct

    + +

    +Note: These are not intended as introductory tutorials for computational neuroscience. +

    + + + +

    They assume a + basic knowledge of the concepts behind simulation of neuronal processes. Introductory tutorials on + GENESIS or + NEURON will provide this.

    + + +

      Very quick +

    + + + +

    For those with little time on their hands, a very quick tutorial +gives an insight to the main concepts of neuroConstruct

    + + + +

      Basic functionality +

    + + + +

    A step by step guide to most of the basic functionality + of neuroConstruct

    + + +

      Network functionality +

    + + + +

    A guide to how network connections + are set up in neuroConstruct

    + + + +

      More... +

    + +

     

    + + +

    In addition to the above, there are also guides to importing NEURON models into neuroConstruct +and converting channels to ChannelML.

    + + +

    More detailed tutorials will be added in future. If you can suggest any aspect which needs clarification, please get in touch...

    + + + +

     

    + +

     

    + +

     

    + +

     

    + +

     

    + +

     

    + + + + + +
    +
    +
    +
    + + + diff --git a/docs/docs/tutorials/tutorial1.html b/docs/docs/tutorials/tutorial1.html new file mode 100644 index 00000000..463b5be8 --- /dev/null +++ b/docs/docs/tutorials/tutorial1.html @@ -0,0 +1,245 @@ + + + + + + + + + + + + +Very quick tutorial + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Very quick tutorial +

    +
    +
    + + + + + + +

    The quickest way to create a simulation in in neuroConstruct is as follows:

    + +
      + + +
    1. +Run neuroConstruct. Click on File -> New Project +
    2. + + +
    3. Enter the project name and the directory in which to place the main project folder. Click OK +
    4. + + +
    5. Accept the offer to create a few sample objects in the new project.
    6. + + + +
    7. Select the tab Generate. Press the Generate Cell Positions and Connections button.
    8. + + + +
    9. Go to Visualisation. In the drop down box, select Latest Generated Positions. +Press View. You should see an abstract neuron placed in a 3D box. There will also be a pipette like structure +signifying an electrical input.
    10. + + + +
    11. If NEURON or GENESIS are installed (assuming NEURON) go to tab +Export and select the NEURON tab. +Select the Show 3D potential plot checkbox, and click Create hoc simulation. This will create the hoc code +for the main file, and a template for the cell, as well as NMODL code for the channels. The NMODL files +will be compiled and a confirmation shown. If there is a problem, go to Settings -> General Properties and check location there for the NEURON home directory. +The contents of the *.mod and *.hoc files can be viewed by selecting the filename and pressing View. +
    12. + + +
    13. Click on Run Simulation. This should start NEURON and run the simulation you have just created. +
    14. + + +
    15. Back in neuroConstruct, once the simulation has finished, go to tab Visualisation, and click on Previous Simulations +You will see a list of all recorded simulations. Click on the simulation just completed and click Load Simulation. +The generated cell appears again. Press Replay to view the recorded simulation. +
    16. + + + +
    + + + +

    Have a look here to see the various options which can be set when viewing cells in 3D.

    + + + + +

     

    + +

     

    + +
    +
    +
    +
    + + + diff --git a/docs/docs/tutorials/tutorial2.html b/docs/docs/tutorials/tutorial2.html new file mode 100644 index 00000000..8dcfd9fe --- /dev/null +++ b/docs/docs/tutorials/tutorial2.html @@ -0,0 +1,373 @@ + + + + + + + + + + + + +Tutorial of basic neuroConstruct functionality + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Tutorial of basic neuroConstruct functionality +

    +
    +
    + + + + + + +
    +

    Set up project and add cell

    + + + +

    +Run neuroConstruct. Click on File -> New Project +

    + + +

    Enter the project name and the directory in which to place + the main project folder. Click OK +

    + + + +

    Ignore the offer to create a few sample objects in the new project. That would be too easy.

    + + + +

    Add a Cell Type. Select the tab Cell Types and +press Add New Cell Type to Project. + +Add a SimpleCell to the project (select in drop down menu), naming it Simple. More on Cell Types +

    + + + +

    Now press the View/edit morphology button below the panel giving details on the cell. This will change to the Visualisation tab and display the cell in 3D. For + various tips on what's possible when the cell is displayed in 3D see here.

    + + +
    + + + +
    +

    Add channel mechanism

    + + + +

    There is a morphologically reasonable cell in the project now, but there is something missing. Click on the Validate button below the main menu. + This signals the fact that there are no cell density mechanisms present. A cell needs these for simulation of realistic electrophysiological behaviour. Other project or cell specific errors + will appear here as they occur.

    + + +

    First a cell mechanism will be added to the project. Go to tab Cell Mechanisms. Click Add ChannelML from Template. This presents a list + of Channel Mechanisms and Synaptic Mechanisms whose parameters are + specified in ChannelML that serve as templates for your own channels/synapses. Select Leak Conductance, which represents +a passive conductance on the membrane of the cell, i.e. current will leak out/in to the cell if its membrane potential is different from the reversal potential of this channel. Press OK +and accept the name of the cell mechanism. You are presented with a summary of the parameters of the mechanism. Select the second tab ChannelML file to see what's actually in the XML file. +Note: it is also possible to use a cell mechanism based on a NMODL file or GENESIS channel script. See here for an outline of the process

    + + +

    Close this and return to Visualisation. Select the cell name in the drop down box and press View. Select Cell density mechanisms in the lower right drop +down box and press Edit density mechanisms. Under Cell Mechanisms select the mechanism you've just added. Select all and press the right arrow to indicate this mechanism is +present on all sections. Accept the default value for maximum conductance density. Press OK. Now click Validate again and you'll see that the cell meets the minimum requirements for +use in a simulation.

    + + +
    + + + +
    +

    Packing in 3D

    + + + +

    Now we need to specify a Region in which to place the cells. Go to the tab + Regions, select Add New Region. Accept the defaults and press OK.

    + + + +

    Go to the tab Cell Groups and click New Cell Group. This results in a dialog to +specify the name, Cell Type (here the only choice is Simple), +which Region the cells will be placed in, the colour, and the packing pattern. +Press the Choose... button next to Packing Pattern. In the field for Cell Number, enter the number +of cells you want randomly placed in the Region.

    + + +

    A dialog box will ask if you wish to record the membrane potential of the cell during simulations. Press Yes. It would be good to also view the membrane potential while the simulation is running. + Go to tab Input/Output. Click on the entry for saving the voltage in the lower table and click Edit selected plot. This dialog specified what variable to save and/or plot during a simulation, + which cells of the Cell Group to record, etc. In the bottom drop down box select Plot and save. Press OK. +

    + + +

    A stimulation must be applied to the cell or it will be an uninteresting simulation. Still at tab Input/Output, + select Add electrophysiological input. Keep the default values (a single current pulse on the soma of all cells in the Cell Group) and press Ok.

    + + + +

    Select the tab Generate. Press the Generate Cell Positions and Connections button.

    + + +

    Go to Visualisation. In the drop down box, select Latest Generated Positions. + Press View.

    + + +
    + + + +
    +

    Running/replaying simulation

    + + + +

    If NEURON or GENESIS are installed (assuming NEURON) go to tab +Export and select the NEURON tab. +Select the Show 3D potential plot checkbox, and click Create hoc simulation. This will create the hoc code +for the main file, and a template for the cell, as well as NMODL code for the channels. The NMODL files +will be compiled and a confirmation shown. +

    + + +

    Click on Run Simulation. This should start NEURON and run the simulation you have just created. + If there is a problem starting, and it is installed correctly go to Settings -> General Properties and check the entries there.

    + + +

    Back in neuroConstruct, once the simulation has finished, go to tab Visualisation, and click on Previous Simulations +You will see a list of all recorded simulations. Click on the simulation just completed and click Load Simulation. +The generated cell appears again. Press Replay to view the recorded simulation. +

    + +

    Select the Cell Group and Cell Number in the drop down boxes followed by Plot selected. This shows the recorded +voltage trace. Individual cells can also be selected by clicking on them in the 3D view. Note however, if the cell is inside a transparent +3D Region or if there are other cells close by it may be difficult to select the correct object. Click 3D Settings and deselect displaying of Regions

    + + + +
    + + + +
    +

    Further things to try...

    + + + + +

    Change the layout of the cells generated. In tab Cell Groups, click the table entry under + Cell Packing Adapter. This will open up the packing pattern dialog. If the random packing adapter is selected, + the number of cells to pack into the Region can be changed. There are also options to change settings on whether the cell bodies + can overlap, and whether the whole cell body should stay inside the region, or just the centres. The packing pattern itself can be changed too, + from randomly placed to a single cell placed at a precise 3D point, a hexagonal pattern, cubic close packed, etc. + More on the various types of packing patterns available.

    + + + +

    Change the size/shape of the Region. Go to tab Region, select the line with the Region details, + click on Edit Selected Region, and either change the position and size of the Rectangular region + or change it to a Spherical Region placed in 3D.

    + + +

    Edit the morphology of the cell. Go to tab Visualisation, select 3D Settings and make sure display is on All solid + and the 3D axes are not shown. Save these settings and view the cell you've added. Click on any of the segments. Make sure Pick Segments/Sections is selected + in the lower right drop down box. It will turn red (if there are any other segments in the same section they will turn yellow). Click on Edit... and you can alter the end points, etc. + At the drop down box in the Segment selector, there are a number of functions for adding new segments, specifying axonal arbours for Volume Based Connections, etc.

    + + + +

    Add some other Cell Mechanisms to the project (e.g. NaConductance, KConductance) and apply these to the cell membrane in the same way as the leak conductance.

    + + + +
    + + +

     

    + +

     

    + +
    +
    +
    +
    + + + diff --git a/docs/docs/tutorials/tutorial3.html b/docs/docs/tutorials/tutorial3.html new file mode 100644 index 00000000..af689083 --- /dev/null +++ b/docs/docs/tutorials/tutorial3.html @@ -0,0 +1,411 @@ + + + + + + + + + + + + +Network Connections Tutorial + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Network Connections Tutorial +

    +
    +
    + + + + + +
    +

    Introduction

    + + + +

    Network Connections in neuroConstruct are made between cells in 2 Cell Groups.

    + + + +

    +Run neuroConstruct. Click on File -> New Project. + +Enter the project name and the directory in which to place the main project folder. Click OK + +Reject the offer to create a few sample objects in the new project.

    + + + +

    Add 2 cell types to the project. Go to Cell Types -> Add New Cell Type to Project and specify GranuleCell in the drop down box (naming the cell Granule). Add a PurkinjeCell calledPurkinje also.

    + + + +

    Before a Network Connection can be made a Synaptic Mechanism (e.g. a Double Exponential Synapse) needs to be +associated with subsets of dendrites/axons on the Cells in these Groups.

    + + +

    To add a new Synaptic Mechanism for the project, go to tab Cell Mechanism -> Add ChannelML from Template and +select the Double Exponential Synapse. Enter the name of the Mechanism (e.g. PF_Purk_Syn) and the new mechanism will be opened for editing. You can view the HTML representation of the ChannelML file (1st tab) or the original ChannelML file (2nd tab). +Pressing Validate file will validate the XML against the latest XML Schema file describing the content of ChannelML files. Pressing Generate relevant plots +creates a plot of the conductance waveform in the file (note the implementation of plot generation is hardcoded in Java for a subset of ChannelML files). The 3rd tab can be used to edit the XML in an external text editor. +The 4th and 5th tabs show the XSD files which transform the XML into NEURON and GENESIS format. +More info on Cell Mechanisms available here. + +

    + + + + +

    Go to the tab Visualisation, select View with the granule cell selected in the drop down box.

    + + +
    + + + +
    +

    Specifying Groups

    + + + + +

    Select Groups in the lower right hand drop down box to view the Section Groups. +There are four pre defined Section Groups:

    + + +
      + +
    • + +all: Every Section is included in this Group
    • + +
    • + +soma_group: This Group should contain only one Section, representing the soma
    • + +
    • + +dendrite_group: The Group of dendritic Sections
    • + +
    • + +axon_group: The Group of axonal Sections
    • + +
    + + + +

    Network Connections will generally initiate on a Section in either the soma_group or the +axon_group, and the connections will generally terminate on a Section in either the soma_group +or the dendrite_group. These can be changed at the bottom of the Morphology based connection dialog to allow, e.g. axo-axonic or dendrodendritic +connections, which can be quite useful for electrical synapses.

    + + +

    Not every Section of the Cell would be a suitable location of a particular synapse, + so other subgroups can be defined which specify where the connections should be made. By pressing Edit Groups, + new Section Groups can be made (e.g. basal/apical dendrites, parallel fibers), grouping Sections into biophysically +interesting regions of the cell. A Section will always belong to at most one of soma_group, dendrite_group or axon_group.

    + + +

    For the granule cell, click on Edit Groups, add a new group called parallel_fibers, and add the sections parallelFiberPos and parallelFiberNeg to the group.

    + + + +
    + + + +
    +

    Specifying Synaptic Connection Locations

    + + + + + +

    Select Synaptic Connection Location in the drop down box. Click Edit Synaptic Locations. + The added Synaptic Mechanism (PF_Purk_Syn) should be in the drop down list. Select this and then select the Section Group, parallel_fibers, where the +synapse can be found.

    + + +

    It is important to point out again that the PRE synaptic location will be the intersection of the Sections specified in the GUI for presynaptic connections (nromally soma_group or the +axon_group, but see above) and the Group(s) selected here. Similarly for the POST synaptic location. Therefore if the +Group all is selected as a Synaptic Connection Location, synapses can be made on the axons (PRE), +dendrites (POST) and soma (PRE and POST). However if only the Group dendrite_group is selected as a +Synaptic Connection Location (or another Group only containing dendrites), then this particular Cell Type will only have +POST synaptic connections. Axons on another Cell Type will need to be specified as Synaptic Connection Locations for +this Synaptic Mechanism to make a Network Connection. +

    + + +

    View the PurkinjeCell now. There should be a group main_dends already defined. Associate this group with the Synaptic Mechanism (PF_Purk_Syn) also.

    + + + +
    + + + + +
    +

    Specifying packing of Cell Groups

    + + + +

    Add 2 regions as in Tutorial 2. Make both rectangular boxes, the first with lower point (0,0,0) measuring 120x50x120 (default values). + The second region will automatically be placed on top of this starting at (0,50,0) with the same dimensions.

    + + +

    Add 2 Cell Groups. The first named GranuleCells, associate with the lower region, fill with 12 granule cells (click on Choose... beside Packing Pattern in the New Cell Group dialog + and enter 12 beside CellNumber). The Second, PurkinjeCell, place in the upper region, and fill with a single Purkinje cell. +

    + +
    + + + +
    +

    Creating Network Connections

    + + + +

    Now that it is specified on which parts of the Cells synapses can be made, Network Connections can be created.

    + +

    Go to tab Network and click on Add Morphology Connection under Morphology Based Connections.

    + + +

    Select the source Cell Group (GranuleCells) and the Target Cell Group (PurkinjeCell). +

    + + +

    Select the Synaptic Properties, including which Synaptic Mechanism is involved in the Network Connection, the voltage threshold + which will cause the synapse to fire, the delay after passing the threshold, and the weight of the synapse. These past two + values can be given fixed or variable values, in which case a new value will be generated for each instance of the synapse. +

    + + +

    Other options include the method for searching for the connection point, the max and min lengths of the allowed + connections, and a number of other Connection Conditions. These are explained in more detail in the Tool Tips which + pop up when the cursor hovers over the relevant panel/label. Ensure viewing Tool Tips is enabled in + Settings -> General Properties & Project Defaults. +

    + + + +

    Once a Network Connection is specified, generate the network, and view the latest positions in tab Visualisation. + You will see the generated Network Connections as lines going from green (PRE synaptic location) to red + (POST synaptic location) between the Sections which are connected by the synapse. If the option is selected in + 3D Settings a sphere will be placed at each of the Synaptic Endpoints. +

    + + +
    + + + +
    +

    Further things to try...

    + + + +

    Try adjusting the parameters in the Network Connection. Set max and min values for the lengths of the connections. Distances from pre to post synaptic location can be checked by clicking + Analyse connection lengths after generation of the network.

    + + +

    Add more Purkinje cells and see how many connections go to each. Select Analyse number of connections at tab Generate. +

    + + +

    Try adding cell mechanisms to the cell as in Tutorial 2, adding input to the Granule cells and running the network. Note these cells are greatly simplified versions of the + cells in the cerebellum and are unlikely to show very many of the properties of their biological counterparts. Look at the included examples, e.g. GranuleCellLayer.ncx for more realistic cells.

    + + + +
    + + +

     

    + +

     

    + +
    +
    +
    +
    + + + diff --git a/docs/download/index.html b/docs/download/index.html new file mode 100644 index 00000000..251fd3bd --- /dev/null +++ b/docs/download/index.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + +Download neuroConstruct + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Download neuroConstruct +

    +
    +
    + + + + +

    The source code for the application, as well as instructions for installation can be found: on GitHub.

    + + +

     

    + +

     

    + +

     

    + +

     

    + +

     

    + +

     

    + +

     

    + +

     

    + + +
    +
    +
    +
    + + + diff --git a/docs/XML/xmlForHtml/images/NeuroMLSmall.png b/docs/images/NeuroMLSmall.png similarity index 100% rename from docs/XML/xmlForHtml/images/NeuroMLSmall.png rename to docs/images/NeuroMLSmall.png diff --git a/docs/XML/xmlForHtml/images/eusynapse.png b/docs/images/eusynapse.png similarity index 100% rename from docs/XML/xmlForHtml/images/eusynapse.png rename to docs/images/eusynapse.png diff --git a/docs/XML/xmlForHtml/images/favicon.ico b/docs/images/favicon.ico old mode 100755 new mode 100644 similarity index 100% rename from docs/XML/xmlForHtml/images/favicon.ico rename to docs/images/favicon.ico diff --git a/docs/XML/xmlForHtml/images/incf2.png b/docs/images/incf2.png similarity index 100% rename from docs/XML/xmlForHtml/images/incf2.png rename to docs/images/incf2.png diff --git a/docs/XML/xmlForHtml/images/logoMain.png b/docs/images/logoMain.png old mode 100755 new mode 100644 similarity index 100% rename from docs/XML/xmlForHtml/images/logoMain.png rename to docs/images/logoMain.png diff --git a/docs/XML/xmlForHtml/images/mrcsmall.png b/docs/images/mrcsmall.png old mode 100755 new mode 100644 similarity index 100% rename from docs/XML/xmlForHtml/images/mrcsmall.png rename to docs/images/mrcsmall.png diff --git a/docs/XML/xmlForHtml/images/neuroConstruct32.png b/docs/images/neuroConstruct32.png old mode 100755 new mode 100644 similarity index 100% rename from docs/XML/xmlForHtml/images/neuroConstruct32.png rename to docs/images/neuroConstruct32.png diff --git a/docs/XML/xmlForHtml/images/nif.jpg b/docs/images/nif.jpg similarity index 100% rename from docs/XML/xmlForHtml/images/nif.jpg rename to docs/images/nif.jpg diff --git a/docs/images/openworm.png b/docs/images/openworm.png new file mode 100644 index 00000000..6675e160 Binary files /dev/null and b/docs/images/openworm.png differ diff --git a/docs/XML/xmlForHtml/images/wct.png b/docs/images/wct.png old mode 100755 new mode 100644 similarity index 100% rename from docs/XML/xmlForHtml/images/wct.png rename to docs/images/wct.png diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 00000000..c3b6eae8 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,396 @@ + + + + + + + + + + + + +neuroConstruct: Software for developing biologically realistic 3D neural networks + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +neuroConstruct: Software for developing biologically realistic 3D neural networks +

    +
    +
    + + +

     

    + + + +
    +The OpenWorm project is using neuroConstruct to develop detailed models of the C. elegans nervous system.
    + +
    + + +

     

    + + +
    +

    Introduction

    + + +

    neuroConstruct is being developed in the Silver Lab in the + + Department of Neuroscience, Physiology and Pharmacology at + UCL. neuroConstruct has been designed to simplify development of complex networks + of biologically realistic neurons, i.e. models incorporating dendritic morphologies and realistic cell membrane conductances. + It is implemented in Java and generates script files for a number of widely used neuronal simulation platforms + (including NEURON, + GENESIS, MOOSE, + PSICS and PyNN). It uses the + latest NeuroML specifications, + including MorphML, ChannelML + and NetworkML.

    + + +

    Development of this software was made possible with funding from the Wellcome + Trust, the Medical Research Council and the EU Synapse Project.

    + +
    + + + + +
    +

    Latest News

    + + + + +

    The latest version of neuroConstruct (v1.7.4) is available + here. + The source code has been released under GPL.

    + + +

    A paper describing version 1 of the Open Source Brain platform has been published: + Open Source Brain: a collaborative resource for visualizing, analyzing, simulating and developing standardized models + of neurons and circuits. Gleeson P, Cantarelli M, Marin B, Quintana A, Earnshaw M, et al. (2019) Neuron 103 + (3):395–411. Many of the neuroConstruct standard example models are included in that paper. + Click here + to see all OSB models which include neuroConstruct projects.

    + + +

    A paper describing the latest stable version of NeuroML has been + published: NeuroML: A Language for Describing Data Driven Models of Neurons and + Networks with a High Degree of Biological Detail, P Gleeson, S Crook, RC Cannon, ML Hines, GO Billings, + M Farinella, TM Morse, AP Davison, + S Ray, US Bhalla, SR Barnes, YD Dimitrova, + RA Silver, PLoS Comput Biol 2010. It can be downloaded here and it + describes in detail the structure of version 1.x (Levels 1-3, MorphML, ChannelML, NetworkML), includes a + detailed discussion of the elements present at each level along with example NeuroML code (see the + supporting text + of the paper), outlines current simulator support, and presents a number of new cell and network models which have been + converted to the format.

    + + +

    A morphologically detailed CA1 pyramidal + cell model and a number of cells from the Traub et al. 2005 thalamocortical + network model are available here for download in NeuroML format or as complete neuroConstruct + projects for execution on a number of simulation platforms. + These models are also included with the latest version of neuroConstruct.

    + + + + +

    A Nature paper + (Jason S. Rothman, Laurence Cathala, Volker Steuber, R. Angus Silver, + Synaptic depression enables neuronal gain control. Nature 2009) has used neuroConstruct to investigate + a detailed layer 5 pyramidal cell model (Kole et al 2008) with dendritically distributed excitatory and + inhibitory synaptic input to look at the effects of short term plasticity on gain control ( + see project on Open Source Brain).

    + + + + +

    The paper describing the application has been published: + P. Gleeson, V. Steuber and R. A. Silver, neuroConstruct: A Tool for Modeling Networks of Neurons in 3D + Space, Neuron 2007 + It is available via Open Access here.

    + + + +

    A more complete list of publications related to neuroConstruct can be + found here.

    + + + + +

    To report any issue with using neuroConstruct, please open an issue on GitHub.

    + + + +
    + + + +
    +

    What is neuroConstruct?

    + + + +

    Some of the key features of neuroConstruct are:

    + +
      + +
    • neuroConstruct can import morphology files in GENESIS, NEURON, + Neurolucida, SWC and MorphML format for inclusion in single cell or network models, or more abstract cells can also be built manually.
    • + +
    • Creation of networks of conductance based neurons positioned in 3D +
    • + +
    • Complex connectivity patterns between cell groups can be specified for the networks
    • + +
    • Simulation scripts can be generated for NEURON, + GENESIS, MOOSE, PSICS and +PyNN based simulators (note: not every project can be generated for every simulator)
    • + +
    • Biophysically realistic cellular mechanisms (synapses/channel mechanisms) can be imported from native script files (*.mod or *.g) or created from templates using ChannelML +
    • + +
    • Automatic generation of code to record simulation data and visualisation/analysis of data in neuroConstruct
    • + + +
    • Recorded simulation runs can be viewed and managed through the Simulation Browser interface
    • + +
    • A Python based scripting interface can be used to control model generation and execution, allowing multiple + simulations to be run for cell and network model optimisation
    • + + + +
    + +
    + + +
    +

    What isn't neuroConstruct?

    + + + +
      + +
    • neuroConstruct is not a replacement for neural network simulators like NEURON or GENESIS
    • + +
    + +

    These packages have sophisticated environments for creating neuronal simulations from scratch, +and controlling all aspects of the simulation run. neuroConstruct automates the generation of script files for +these platforms, and provides a framework for creating conductance based neuronal models, creating, visualising and +analysing networks of cells in 3D, managing simulations and analysing network firing behaviour.

    + + + + +

     

    + +

     

    + +

     

    + +

     

    + + +
    + + + + + + +
    +
    +
    +
    + + + diff --git a/docs/linkmap.html b/docs/linkmap.html new file mode 100644 index 00000000..b11f88ad --- /dev/null +++ b/docs/linkmap.html @@ -0,0 +1,317 @@ + + + + + + + + + + + + +Site Linkmap Table of Contents + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Site Linkmap Table of Contents +

    +
    +
    +

    + This is a map of the complete site and its structure. +

    +
      +
    • +neuroConstruct  ___________________  site +
    • +
        + + +
          +
        • +Home  ___________________  main +
        • +
            + +
              +
            • +Introduction  ___________________  index : Introduction to neuroConstruct
            • +
            + +
          +
        + + + + +
          +
        • +Examples  ___________________  projects +
        • +
            + +
              +
            • +Examples  ___________________  projects : Downloadable neuroConstruct example projects
            • +
            + +
          +
        + + + + + +
          +
        • +Documentation  ___________________  documenation +
        • +
            + +
              +
            • +Home  ___________________  documenation : Documentation for neuroConstruct
            • +
            + +
              +
            • +Contents  ___________________  documenation : Contents of documentation
            • +
            + +
              +
            • +Installation  ___________________  documenation : Installing neuroConstruct
            • +
            + +
              +
            • +Tutorials  ___________________  documenation : Introductory tutorials
            • +
            + +
              +
            • +Glossary  ___________________  documenation : Glossary of terms used in neuroConstruct
            • +
            + +
          +
        + + +
          +
        • +Download  ___________________  download +
        • +
            + +
              +
            • +Download code  ___________________  download : Download the code
            • +
            + +
          +
        + + +
          +
        • +Links  ___________________  links +
        • +
            + +
              +
            • +Useful links  ___________________  links : Useful neuroConstruct links
            • +
            + +
              +
            • +Publications  ___________________  links : neuroConstruct publications
            • +
            + +
              +
            • +Courses  ___________________  links : neuroConstruct courses
            • +
            + +
          +
        + + +
          +
        • +Contact  ___________________  contact +
        • +
            + +
              +
            • +Contact us  ___________________  contact : Find out more
            • +
            + +
          +
        + + + + +
      +
    +
    +
    +
    +
    + + + diff --git a/docs/XML/xmlForHtml/images/BrainTrainC.png b/docs/links/images/BrainTrainC.png similarity index 100% rename from docs/XML/xmlForHtml/images/BrainTrainC.png rename to docs/links/images/BrainTrainC.png diff --git a/docs/XML/xmlForHtml/images/nCcourse.png b/docs/links/images/nCcourse.png similarity index 100% rename from docs/XML/xmlForHtml/images/nCcourse.png rename to docs/links/images/nCcourse.png diff --git a/docs/links/index.html b/docs/links/index.html new file mode 100644 index 00000000..7f67155d --- /dev/null +++ b/docs/links/index.html @@ -0,0 +1,313 @@ + + + + + + + + + + + + +Useful neuroConstruct related links + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +Useful neuroConstruct related links +

    +
    +
    + + +

     

    + +

    Note that a list of software packages with support for NeuroML is maintained here. neuroConstruct can interact with + most of these tools through import/export of NeuroML.

    + + +

     

    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Silver Lab at University College London + + http://silverlab.org/ +
    + NeuroML + + http://www.neuroml.org +
    + NeuroML Sourceforge site + + http://sourceforge.net/projects/neuroml +
    + Web application for validating MorphML/ChannelML files + + http://www.neuroml.org/NeuroMLValidator +
    + GENESIS Simulator + + http://www.genesis-sim.org/GENESIS +
    + MOOSE Simulator (reimplementation of GENESIS core) + + http://moose.sourceforge.net +
    + NEURON Simulator + + http://www.neuron.yale.edu/neuron +
    + PyNN simulator language + + http://neuralensemble.org/trac/PyNN +
    + PSICS + + http://www.psics.org +
    + Java + + http://java.sun.com +
    + Java 3D API + + https://java3d.dev.java.net +
    +
    + + +

     

    + +

     

    + +

     

    + +

    neuroConstruct is registered +with the following sites, which contain information on and links to many computational neuroscience tools:

    + +

       INCF Software Center    + Neuroscience Information Framework +

    + + +

     

    + +

     

    + +
    +
    +
    +
    + + + diff --git a/docs/links/publications.html b/docs/links/publications.html new file mode 100644 index 00000000..8c98987d --- /dev/null +++ b/docs/links/publications.html @@ -0,0 +1,571 @@ + + + + + + + + + + + + +neuroConstruct and NeuroML related publications + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +neuroConstruct and NeuroML related publications +

    +
    +
    + + + + + + +
    +

    Core publications

    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +

    +neuroConstruct: A Tool for Modeling Networks of Neurons in 3D Space, Neuron, Volume 54, Issue 2, 19 April 2007, Pages 219-235.

    + +

    Padraig Gleeson, Volker Steuber, R. Angus Silver

    + +

    +PubMed + Open access download +

    + +
    +

     

    + The main neuroConstruct paper. An introduction to all of the key functionality, including some + network examples.

    +Please cite this paper if you use neuroConstruct in your research. +

    + +
    + +

    +NeuroML: A Language for Describing Data Driven Models of Neurons and + Networks with a High Degree of Biological Detail, PLoS Comput Biol 6(6): e1000815

    + +

    Padraig Gleeson, Sharon Crook, Robert C. Cannon, Michael L. Hines, Guy O. Billings, Matteo Farinella, Thomas M. Morse, + Andrew P. Davison, Subhasis Ray, Upinder S. Bhalla, Simon R. Barnes, Yoana D. Dimitrova, R. Angus Silver

    + + +

    +PLoS Comput Biol +

    + +
    +

     

    + The main NeuroML paper. Describes in detail the structure of version 1.x (Levels 1-3, + MorphML, ChannelML, NetworkML), includes a detailed discussion of the elements + present at each level along with example NeuroML code (see the supporting text + of the paper), outlines current simulator support, + and presents a number of new cell and network models which have recently been + converted to the format.

    +Please cite this paper if you use NeuroML in your research. +

    + +
    + +

    +Using neuroConstruct to Develop and Modify Biologically Detailed 3D Neuronal Network Models in Health and Disease. + In Computational Neuroscience in Epilepsy, 2008, I. Soltesz, and K. Staley, eds. (Elsevier).

    + +

    Padraig Gleeson, Volker Steuber, R. Angus Silver

    + +

    +Elsevier +

    + +
    +

     

    + A chapter in a book outlining the various modelling approached being used in epilepsy research. Attractive image on the book cover... + +
    + +

    +MorphML: Level 1 of the NeuroML Standards for Neuronal Morphology Data and Model Specification, + Neuroinformatics 2007, Volume 5; Number 2, Pages 96-104

    + + +

    Sharon Crook, Padraig Gleeson, Fred Howell, Joe Svitak, R. Angus Silver

    + + +

    +PubMed +

    + +
    +

     

    + The introductory paper to MorphML. Compares morphological representations from + NEURON, GENESIS, Neurolucida and neuroConstruct to MorphML. +
    + +

    +Interoperability of Neuroscience Modeling Software: Current Status and Future Directions, Neuroinformatics 2007, Volume 5, 127-138.

    + +

    Robert C. Cannon, Marc-Oliver Gewaltig, Padraig Gleeson, Upinder S. Bhalla, Hugo Cornelis, Michael L. Hines, + Fredrick W. Howell, Eilif Muller, Joel R. Stiles, Stefan Wils, Erik De Schutter

    + +

    +PubMed +

    + +
    +

     

    + A review of the current state of interoperability for modelling applications, resulting from a workshop at CNS 2006. + +
    +
    + +
    + + +
    +

    The original NeuroML paper

    + + + + +
    + + + + + + + + + + + + +
    + +

    +Towards NeuroML: Model Description Methods for Collaborative Modelling in Neuroscience, Philos Trans R Soc Lond B Biol Sci 356, 1209-1228.

    + +

    Nigel Goddard, Michael Hucka, Fred Howell, Hugo Cornelis, Kavita Shankar, David Beeman

    + +

    +PubMed +

    + +
    +

     

    + The original NeuroML introductory paper. Although the language has evolved significantly since this paper + (with a focus now on key elements which need to be transferred between neuroinformatics applications, as represented by + MorphML, ChannelML and NeuroML, see Gleeson et al. 2010 above for details) + the key aims of NeuroML as outlined in this paper, including clarity, portability and modularity of neuronal model descriptions, remain the same. + +
    +
    + +
    + + +
    +

    Combined experimental and modelling investigations

    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +

    +Synaptic depression enables neuronal gain control, Nature 2009

    + +

    Jason S. Rothman, Laurence Cathala, Volker Steuber, R. Angus Silver

    + +

    +Nature.com +

    + +
    +

     

    + +(Silver Lab) An experimental and modelling paper looking at the effects of short term plasticity on gain control. Used neuroConstruct to investigate + a detailed layer 5 pyramidal cell model (Kole et al 2008) with dendritically distributed excitatory and inhibitory synaptic input. + +
    + +

    +Rapid Desynchronization of an Electrically Coupled Interneuron Network with Sparse Excitatory Synaptic Input, Neuron 2010

    + +

    Vervaeke, K. and LÅ‘rincz, A. and Gleeson, P. and Farinella, M. and Nusser, Z. and Silver, R. A.

    + +

    +Cell.com +

    + +
    +

     

    + +(Silver Lab) A highly detailed electrically coupled cerebellar Golgi cell network was created using neuroConstruct to help explain experimental data related to the spread of desynchronisation in this network following sparse synaptic activation. Experimental data on gap junction location, distance dependent coupling strengths, reconstructed cells and realistic conductances were used in the construction of the model. + +
    + +

    +Gap junctions compensate for sub-linear dendritic integration in an inhibitory network, Science 2012

    + +

    Vervaeke, K. and LÅ‘rincz, A. and Nusser, Z. and Silver, R. A.

    + +

    +Sciencemag.org +

    + +
    +

     

    + +(Silver Lab) This study found that the dendrites of cerebellar Golgi cells have no significant voltage-gated ion channels and + therefore integrate input sub-linearly. Their dendrites are however coupled by gap junctions, predominantly in the molecular layer. + These allow synaptic charge to be shared among cells and compensate for sub-linear integration. + + +
    + +

    +Signal Propagation in Drosophila Central Neurons, Journal of Neuroscience 2009

    + +

    Nathan W. Gouwens and Rachel I. Wilson

    + +

    +Pubmed +

    + +
    +

     

    + A paper investigating the electrical properties of Drosophila neurons which utilises realistic morphological reconstructions and electrophysiological recordings. + +
    + +

    +Stochastic amplification of calcium-activated potassium currents in Ca2+ microdomains, Journal of Computational Neuroscience 2011

    + +

    David Stanley, Berj Bardakjian, Mark Spano and William Ditto

    + +

    +Springer +

    + +
    +

     

    + Investigation of the effects of stochastic L-Type Ca2+ channels on the response of SK channels in Ca2+ microdomains + +
    + +

    +Emergence of small-world structure in networks of spiking neurons through STDP plasticity, in From Brains to Systems Advances (series Experimental Medicine and Biology) 2011

    + +

    Gleb Basalyga, Pablo M. Gleiser and Thomas Wennekers

    + +

    +Springer +

    + +
    +

     

    + Looking at the emergence of small world network properties of networks containing synapses with spike timing dependent plasticity + +
    + +

    +A biophysical cortical column model to study the multi-component origin of the VSDI signal, NeuroImage 2010

    + +

    Sandrine Chemla and Frédéric Chavane

    + +

    +ScienceDirect +

    + +
    +

     

    + Creating a biophysically detailed cortical column model to study the origin of the voltage sensitive dye imaging signal + +
    + +

    +Imbalanced pattern completion vs. separation in cognitive disease: network simulations of synaptic pathologies predict a personalized therapeutics strategy, BMC Neuroscience 2010

    + +

    Jesse Hanson and Daniel Madison

    + +

    +BioMedCentral +

    + +
    +

     

    + Investigating how synaptic pathologies (alteration in long term depression (LTD)/potentiation (LTP), inhibition or connectivity) can underlie specific cognitive impairments + +
    +
    + + +
    + + +

     

    + +

     

    + +

     

    + +

     

    + +
    +
    +
    +
    + + + diff --git a/docs/links/training.html b/docs/links/training.html new file mode 100644 index 00000000..ffbb6ac2 --- /dev/null +++ b/docs/links/training.html @@ -0,0 +1,436 @@ + + + + + + + + + + + + +neuroConstruct course + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +neuroConstruct course +

    +
    +
    + + + + +
    +BrainTrain Cerebnet
    + + +

    +Introduction to compartmental neuronal modelling with neuroConstruct and recent advances in rapid 2-photon imaging +

    + +

    University College London, May 2nd-4th 2012

    + + + + +

     

    + +

    This course, being run by the Silver Lab @ UCL, will provide an introduction +to 3D biophysically detailed neuronal modelling and +recent advances in 2-photon imaging methods for studying rapid neuronal signalling. Creation of multicompartmental, +conductance based neuronal models has been greatly facilitated by software packages such as NEURON +and GENESIS +and a range of detailed cell and network models are available which are faithful to the anatomical and biophysical +properties of the corresponding biological entities. neuroConstruct is an application +which facilitates the construction and analysis of such models through a 3D graphical interface and automates +code generation for a number of widely used simulators.

    + + +

    The course will give an overview of the field of detailed +compartmental modelling and how it can complement experimental approaches including 2-photon imaging. It will +consist of some introductory lectures on modeling and imaging, provide hands on experience of using neuroConstruct, +introduce the existing cortical, cerebellar and hippocampal models which are already available in this format, and outline +the process of creating new models from experimental data. The course will also cover the simulator independent model +description language NeuroML and the growing number of tools available for handling models in this format.

    + + +

    This course is primarily intended for participants in the BrainTrain and +Marie Curie Cerebnet training programs, +although there are a limited number of places available for other researchers.

    + + +

     

    + +

     PRACTICALITIES +

    + +
      + +
    • +Registration for the course is closed! . Contact p.gleeson -at- ucl.ac.uk for any enquiries.
    • + +
    • The venue for the meeting will be the main campus at UCL, with morning lectures taking place in the Watson lecture theatre (G02) in the Medawar building and + afternoon hands on practical sessions taking place in G20 in the Christopher Ingold Building. See here for a map of the locations + (or look on Google maps).
    • + +
    • Booking accomodation in London is the responsibility of attendees (try Hotel Cavendish, Gower House Hotel or search for something within your budget). + Cerebnet/BrainTrain members should contact their own course administrators regarding refunding expenses.
    • + +
    • The course will start at 9am on Wed 2nd May and finish at 5pm on Fri 4th May. The overall format will consist of lectures in the morning, hands on modelling in the afternoon.
    • + +
    • Participants should bring their own laptops on which they can install software (and have about 2GB of disk space).
    • + +
    • Lunch (2nd-4th May) and dinner (2nd-3rd May) will be provided.
    • + +
    • Contact p.gleeson -at- ucl.ac.uk for more details.
    • + +
    + + +

     

    + +

     COURSE LECTURERS +

    + +
      + +
    • Padraig Gleeson
    • + +
    • R. Angus Silver
    • + +
    • Volker Steuber
    • + +
    • Arnd Roth
    • + +
    • Guy Billings
    • + +
    • Matteo Farinella
    • + +
    • Eugenio Piasini
    • + +
    • Emmanuelle Chaigneau
    • + +
    • Tomás Fernández-Alfonso
    • + +
    • Paul Kirkby
    • + +
    • K. M. Naga Srinivas Nadella
    • + +
    + +

     

    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
         Day 1, Wednesday 2nd May
    9:00Welcome, outline of courseAngus SilverWatson lecture theatre, Medawar building
    9:15Introduction to cable modellingArnd Roth
    10:00Compartmental modelling and the Hodgkin Huxley modelVolker Steuber
    11:00Coffee
    11:15Introduction to dendritic computationArnd Roth
    12:00Overview of simulatorsPadraig Gleeson
    12:30Introduction to neuroConstruct (1)Padraig Gleeson
    13:15Lunch
    14:00Introduction to neuroConstruct (2)Padraig GleesonG20 cluster room, Christopher Ingold Building
    15:00Hands on modelling with neuroConstruct
    15:30Coffee
    18:00Finish
    19:30Dinner: Navarro's, 67 Charlotte Street
     
         Day 2, Thursday 3rd May
    9:00Introduction to NEURONArnd RothWatson lecture theatre, Medawar building
    10:00Modelling synapsesGuy Billings
    11:00Coffee
    11:15NeuroML and related tools/databasesPadraig Gleeson
    12:00Example of using neuroConstruct in a research project: investigating NMDA spikesMatteo Farinella
    12:30The Open Source Brain initiativeEugenio Piasini
    13:00LunchHaldane room, Wilkins building
    14:00Advanced neuroConstruct: Parallel and PythonPadraig GleesonG20 cluster room, Christopher Ingold Building
    15:00Hands on modelling with neuroConstruct
    15:30Coffee
    18:00Finish
    19:30Dinner: The Queens Head and Artichoke, 30-32 Albany Street, Regents Park
     
         Day 3, Friday 4th May
    9:00Introduction to 2-photon microscopyTomás Fernández-AlfonsoWatson lecture theatre, Medawar building
    10:00Principles of 2-photon photolysisEmmanuelle Chaigneau
    11:00Coffee
    11:15High speed 3D 2-photon imagingAngus Silver
    12:15LunchHaldane room, Wilkins building
    13:00Silver Lab visit (2 groups in 2 parallel sessions seeing 2-photon experimental set ups)3rd floor, Anatomy Building
        Paul Kirkby/K. M. Naga Srinivas Nadella/Tomás Fernández-Alfonso: High speed 3D 2-photon imaging
        Emmanuelle Chaigneau: 2-photon uncaging
    15:00Hands on modelling with neuroConstructPadraig GleesonG20 cluster room, Christopher Ingold Building
    15:30Coffee
    17:00Finish
    +
    + +

     

    + +

     

    + +

     

    + +

     

    + +
    +
    +
    +
    + + + diff --git a/docs/XML/neuroConstruct.xml b/docs/neuroConstruct.xml similarity index 100% rename from docs/XML/neuroConstruct.xml rename to docs/neuroConstruct.xml diff --git a/docs/parallel/parallel.pdf b/docs/parallel/parallel.pdf deleted file mode 100644 index 2877302a..00000000 Binary files a/docs/parallel/parallel.pdf and /dev/null differ diff --git a/docs/parallel/parallel.tex b/docs/parallel/parallel.tex deleted file mode 100644 index 29df2301..00000000 --- a/docs/parallel/parallel.tex +++ /dev/null @@ -1,66 +0,0 @@ -\documentclass[11pt]{article} -\usepackage{hyperref} -\usepackage{color} -\setlength{\topmargin}{-.5in} -\setlength{\textheight}{9in} -\setlength{\oddsidemargin}{.125in} -\setlength{\textwidth}{6.25in} - -\begin{document} -\title{Instructions for generating network simulations on Parallel NEURON with neuroConstruct} -\author{Padraig Gleeson} - -\maketitle - -\begin{center} -\textbf{\textcolor{black}{*** Note: these features are still in development! Feel free to experiment with this functionality (and send on any bug reports to p.gleeson@ucl.ac.uk) but use for your core research at your own risk! ***}} -\end{center} - -\section {Overview} -neuroConstruct can generate code for execution on Parallel NEURON, in much the same way that it generates code for serial NEURON. Much of the functionality for this is generic and can be reused for other parallel network simulators in the future (although there are no plans to support PGENESIS, we will wait for parallel support in GENESIS 3/MOOSE). -\\\\The main prerequisite for using the parallel functionality is a successful installation of Parallel NEURON. The main set of instructions for doing this are here: -\\\\ -http://www.neuron.yale.edu/neuron/static/docs/help/neuron/neuron/classes/parcon.html\#MPI -\\\\ -and a useful paper for learning about Parallel NEURON is: -\\\\ -http://www.springerlink.com/content/r41x6t86x6033533 -\\\\ -One essential part of getting Parallel NEURON working is enabling ssh login to nodes (including localhost) without entering your password. Ensure this is set up for any machines you wish to test on. Although neuroConstruct can generate, execute and analyse Parallel Neuron code without requiring the user to write or even look at the code, users are very much encouraged to try writing some simple examples themselves before using this functionality in neuroConstruct. -\\\\It is recommended that you use the latest version of the neuroConstruct code from the Subversion repository. Check out the code using: -\\\\git clone https://github.com/NeuralEnsemble/neuroConstruct.git -\\\\After the first successful checkout, run ./updatenC.sh (Linux/Mac) or updatenC.bat (Windows) in the neuroConstruct directory, as there are some NeuroML files needed that reside at the NeuroML Sourceforge repository. Running the updatenC command in future (as opposed to just "svn update") will ensure a consistent set of neuroConstruct source, NeuroML files and example models. -\\\\The Java code needs to be compiled and run with the command "ant run", so install Ant too: http://ant.apache.org. Alternatively, you will be able to compile and run -neuroConstruct using "nC.bat -make" and "nC.bat" respectively (replace with nC.sh on Linux/Mac) without Ant. -\\\\Users unfamiliar with neuroConstruct should browse the included examples or try the online tutorials (http://www.neuroconstruct.org/docs/tutorials) and to to get a feel for the application. -\\\\To enable the parallel functionality of neuroConstruct, create an empty file named 'parallel' in the install directory of neuroConstruct (normally /home/username/neuroConstruct or c:$\backslash$neuroConstruct). This will enable the GUI elements related to generating parallel network simulations. Why is the parallel functionality disabled by default? The parallel simulation support in neuroConstruct is still in development, and is very easy to make very large and long running but meaningless simulations with this feature. While it has been tested in our lab with a number of networks, it is currently only suitable for advanced users who are willing to work with code at the development stage. - -\section {Generating Parallel NEURON simulations on the local (multiprocessor) machine} -Ensure Parallel NEURON is installed and tested on the machine you are running neuroConstruct from (note: while it is possible to use Parallel NEURON on Windows machines, the execution of parallel code from neuroConstruct has only been tested on Linux and Macs in this lab). With the 'parallel' file present, start the neuroConstruct GUI and create a network with a few cells and some network connections (or alternatively, use the included example Ex6\_CerebellumDemo.ncx). Note that the network connections \underline{must have non zero synaptic delay}, as the minimum synaptic delay is used during the NEURON simulations (all nodes can run independently for this time before they need to exchange spikes). Generate and test the simulation in serial NEURON to ensure all cells are actively spiking. -\\\\Save the project and go to tab Generate then press Edit Simulation Configurations. There will be a new drop down box present for Parallel Configurations. Here a number of host/processor combinations can be chosen from, one of which is associated with each Simulation Configuration. Note the following usage of terms: -\begin{quotation} - \textbf{host:} a single machine with its own hostname, a number of processors and a single shared memory -\end{quotation} -\begin{quotation} - \textbf{processor:} an individual CPU on a host -\end{quotation} - -There are a number of standard Parallel Configurations to choose from including: "Local machine, serial mode with 1 host and 1 processor" and "Local machine (4p) with 1 host, 4 processors". Choose the 2 or 4 local processor option. Close the Simulation Configuration Manager GUI and generate the network. There should be a summary of the number of cells on each host/processor in the network generation output. Now go to tab Export -$\rangle$ NEURON, and create the network scripts in the usual way. On viewing the main project hoc file, the extra lines can be seen for parallel setup of the network (e.g. \textit{if (isCellOnNode("CG1", 0))} {...). Try running the simulation. Note there will be no plots/3D shape windows. A console should appear giving feedback from each of the processes running. After it has finished, the simulation should be listed when the Simulation Browser (at tab Visualisation $\rightarrow$ View Prev Sims in 3D) is opened, and cell behaviour can be replayed and plotted. -\\\\If there is a problem at this point it's best to close neuroConstruct, and go to the generatedNEURON directory of the project, and try running the runsim.sh script manually. Note: this file is generated for MPICH v1.x by default. If NEURON was compiled against another version of MPI it may be possible to get the automatic running of the script to work by placing a file named 'MPICH2' (for MPICH v2.x) or 'MPI2' for OpenMPI in the install folder beside 'parallel' and restarting neuroConstruct. For more customisation, see: \\src/ucl/physiol/neuroconstruct/neuronNeuronFileManager.java (search for MPICH). Note that the hoc scripts are the same whatever version of MPI is used. -\\\\Further customisation of the Parallel Configuration options are possible by editing the file src/ucl/physiol/neuroconstruct/hpc/mpi/MpiSettings.java. For example if a Parallel Configuration is required containing hostA (with 4 procs) and hostB (with 4 procs), this can be added by creating an MpiConfiguration with 2 MpiHosts. Note hostA or hostB do not need to be the local machine, a simulation can be run in this way on these machines as long as there is passwordless ssh access to both of these and the neuroConstruct project is present \underline{on a shared filesystem} whose paths are identical on these machines. - -\section {Generating Parallel NEURON simulations on remote (cluster) machines} -It is also possible to generate parallel simulations for execution on remote machines which don't share a file system. Access to the machine without password using ssh is still required, but in this case the scripts generated by neuroConstruct are zipped up (in a tar.gz file), transferred to the remote machine by sftp, unzipped, mod files compiled and the simulation started. -\\\\There are examples of Parallel Configurations using this feature in:\\src/ucl/physiol/neuroconstruct/hpc/mpi/MpiSettings.java: 'CLUSTER\_4PROC' etc. A RemoteLogin object is needed for these MpiConfigurations, giving the details of the remote login host, the location to store the files, the remote copy of NEURON to use, etc. Try changing the values in the directLogin object to a machine where NEURON is installed and generate the project, followed by the NEURON code. The file runsim.sh now contains the commands to zip, transfer, unzip etc. This script can be customised by editing\\src/ucl/physiol/neuroconstruct/hpc/mpi/MpiConfiguration.java, but should work as is when suitable values are used in creating the RemoteLogin object. -\\\\Once simulations are completed, they can be reloaded by opening the Simulation Browser interface for the project. Non locally run simulations which have not yet been retrieved will have 'Remote simulation' in the Date modified field. To check the status of remote sims, press Reload simulation list. This will run the pullsim.sh script in the simulations folder under simulations/, which tries to retrieve all simulation data files from the remote server. If the time.dat file is absent (this is only written on successful completion of the simulation) then 'Remote simulation' will continue to be shown, otherwise the completion date will be entered in that field, and the simulation can be reloaded as normal. Note that as some larger simulations may take some time to retrieve, closing and reopening the Simulation Browser interface after a short while may be needed before all completed simulations show up. - - -\section {Generating Parallel NEURON simulations for submission to a queueing/scheduling system} -The above scenario is applicable when code can be executed directly on the remote machine. For many systems, code can only be run on (shared) clusters after submission of a job to a queue. This system has been tested in UCL on the LEGION cluster (with a queueing/submission system using Torque and Moab), and should be easily adaptable to other systems. neuroConstruct carries out a similar sequence of actions as above, zipping and transferring the files, but instead of running the script, calls the qsub command on a script subjob.sh, which submits the job to the queue. The completed simulations are retrieved in the same way as above. -\\\\To customise this behaviour, add an MpiConfiguration similar to legionLogin in\\src/ucl/physiol/neuroconstruct/hpc/mpi/MpiSettings.java. It is likely that the generated runsim.sh/subjob.sh may have to be altered by editing the script file generation in\\src/ucl/physiol/neuroconstruct/hpc/mpi/MpiConfiguration.java. - -\end{document} - - - - diff --git a/docs/regenerate.sh b/docs/regenerate.sh deleted file mode 100755 index b5e22a56..00000000 --- a/docs/regenerate.sh +++ /dev/null @@ -1,2 +0,0 @@ -docker build -t nc_website . - diff --git a/docs/run.sh b/docs/run.sh deleted file mode 100755 index 4c927213..00000000 --- a/docs/run.sh +++ /dev/null @@ -1 +0,0 @@ -docker run -d -p 80:80 --name nc_run nc_website diff --git a/docs/samples/downloads/Ex10_NeuroML2.ncx.zip b/docs/samples/downloads/Ex10_NeuroML2.ncx.zip new file mode 100644 index 00000000..76c28f38 Binary files /dev/null and b/docs/samples/downloads/Ex10_NeuroML2.ncx.zip differ diff --git a/docs/samples/downloads/Ex10_NeuroML2_NeuroML.zip b/docs/samples/downloads/Ex10_NeuroML2_NeuroML.zip new file mode 100644 index 00000000..4635ef5a Binary files /dev/null and b/docs/samples/downloads/Ex10_NeuroML2_NeuroML.zip differ diff --git a/docs/samples/downloads/Ex1_Simple.ncx.zip b/docs/samples/downloads/Ex1_Simple.ncx.zip new file mode 100644 index 00000000..0585e0b2 Binary files /dev/null and b/docs/samples/downloads/Ex1_Simple.ncx.zip differ diff --git a/docs/samples/downloads/Ex1_Simple_NeuroML.zip b/docs/samples/downloads/Ex1_Simple_NeuroML.zip new file mode 100644 index 00000000..941dd7ba Binary files /dev/null and b/docs/samples/downloads/Ex1_Simple_NeuroML.zip differ diff --git a/docs/samples/downloads/Ex2_Packing.ncx.zip b/docs/samples/downloads/Ex2_Packing.ncx.zip new file mode 100644 index 00000000..3c2eca81 Binary files /dev/null and b/docs/samples/downloads/Ex2_Packing.ncx.zip differ diff --git a/docs/samples/downloads/Ex2_Packing_NeuroML.zip b/docs/samples/downloads/Ex2_Packing_NeuroML.zip new file mode 100644 index 00000000..6fab62f0 Binary files /dev/null and b/docs/samples/downloads/Ex2_Packing_NeuroML.zip differ diff --git a/docs/samples/downloads/Ex3_Morphology.ncx.zip b/docs/samples/downloads/Ex3_Morphology.ncx.zip new file mode 100644 index 00000000..b4f5423f Binary files /dev/null and b/docs/samples/downloads/Ex3_Morphology.ncx.zip differ diff --git a/docs/samples/downloads/Ex4_HHcell.ncx.zip b/docs/samples/downloads/Ex4_HHcell.ncx.zip new file mode 100644 index 00000000..dce237d2 Binary files /dev/null and b/docs/samples/downloads/Ex4_HHcell.ncx.zip differ diff --git a/docs/samples/downloads/Ex4_HHcell_NeuroML.zip b/docs/samples/downloads/Ex4_HHcell_NeuroML.zip new file mode 100644 index 00000000..dd06294a Binary files /dev/null and b/docs/samples/downloads/Ex4_HHcell_NeuroML.zip differ diff --git a/docs/samples/downloads/Ex5_Networks.ncx.zip b/docs/samples/downloads/Ex5_Networks.ncx.zip new file mode 100644 index 00000000..389d1ddd Binary files /dev/null and b/docs/samples/downloads/Ex5_Networks.ncx.zip differ diff --git a/docs/samples/downloads/Ex5_Networks_NeuroML.zip b/docs/samples/downloads/Ex5_Networks_NeuroML.zip new file mode 100644 index 00000000..828da63e Binary files /dev/null and b/docs/samples/downloads/Ex5_Networks_NeuroML.zip differ diff --git a/docs/samples/downloads/Ex6_CerebellumDemo.ncx.zip b/docs/samples/downloads/Ex6_CerebellumDemo.ncx.zip new file mode 100644 index 00000000..b5988b70 Binary files /dev/null and b/docs/samples/downloads/Ex6_CerebellumDemo.ncx.zip differ diff --git a/docs/samples/downloads/Ex6_CerebellumDemo_NeuroML.zip b/docs/samples/downloads/Ex6_CerebellumDemo_NeuroML.zip new file mode 100644 index 00000000..ff4ce384 Binary files /dev/null and b/docs/samples/downloads/Ex6_CerebellumDemo_NeuroML.zip differ diff --git a/docs/samples/downloads/Ex7_PSICSDemo.ncx.zip b/docs/samples/downloads/Ex7_PSICSDemo.ncx.zip new file mode 100644 index 00000000..842d53d1 Binary files /dev/null and b/docs/samples/downloads/Ex7_PSICSDemo.ncx.zip differ diff --git a/docs/samples/downloads/Ex7_PSICSDemo_NeuroML.zip b/docs/samples/downloads/Ex7_PSICSDemo_NeuroML.zip new file mode 100644 index 00000000..2ee693ec Binary files /dev/null and b/docs/samples/downloads/Ex7_PSICSDemo_NeuroML.zip differ diff --git a/docs/samples/downloads/Ex8_PyNNDemo.ncx.zip b/docs/samples/downloads/Ex8_PyNNDemo.ncx.zip new file mode 100644 index 00000000..b33f390d Binary files /dev/null and b/docs/samples/downloads/Ex8_PyNNDemo.ncx.zip differ diff --git a/docs/samples/downloads/Ex8_PyNNDemo_NeuroML.zip b/docs/samples/downloads/Ex8_PyNNDemo_NeuroML.zip new file mode 100644 index 00000000..4c16ce6c Binary files /dev/null and b/docs/samples/downloads/Ex8_PyNNDemo_NeuroML.zip differ diff --git a/docs/samples/downloads/Ex9_Synapses.ncx.zip b/docs/samples/downloads/Ex9_Synapses.ncx.zip new file mode 100644 index 00000000..62c8be11 Binary files /dev/null and b/docs/samples/downloads/Ex9_Synapses.ncx.zip differ diff --git a/docs/samples/downloads/Ex9_Synapses_NeuroML.zip b/docs/samples/downloads/Ex9_Synapses_NeuroML.zip new file mode 100644 index 00000000..d63a4703 Binary files /dev/null and b/docs/samples/downloads/Ex9_Synapses_NeuroML.zip differ diff --git a/docs/samples/images/Ex1_Simple/large.png b/docs/samples/images/Ex1_Simple/large.png new file mode 100644 index 00000000..05689e60 Binary files /dev/null and b/docs/samples/images/Ex1_Simple/large.png differ diff --git a/docs/samples/images/Ex1_Simple/small.png b/docs/samples/images/Ex1_Simple/small.png new file mode 100644 index 00000000..24ffde26 Binary files /dev/null and b/docs/samples/images/Ex1_Simple/small.png differ diff --git a/docs/samples/images/Ex2_Packing/large.png b/docs/samples/images/Ex2_Packing/large.png new file mode 100644 index 00000000..72b68472 Binary files /dev/null and b/docs/samples/images/Ex2_Packing/large.png differ diff --git a/docs/samples/images/Ex2_Packing/small.png b/docs/samples/images/Ex2_Packing/small.png new file mode 100644 index 00000000..8ef6e144 Binary files /dev/null and b/docs/samples/images/Ex2_Packing/small.png differ diff --git a/docs/samples/images/Ex3_Morphology/large.png b/docs/samples/images/Ex3_Morphology/large.png new file mode 100644 index 00000000..4e9c079b Binary files /dev/null and b/docs/samples/images/Ex3_Morphology/large.png differ diff --git a/docs/samples/images/Ex3_Morphology/small.png b/docs/samples/images/Ex3_Morphology/small.png new file mode 100644 index 00000000..96ea3c73 Binary files /dev/null and b/docs/samples/images/Ex3_Morphology/small.png differ diff --git a/docs/samples/images/Ex4_HHcell/large.png b/docs/samples/images/Ex4_HHcell/large.png new file mode 100644 index 00000000..ab03a092 Binary files /dev/null and b/docs/samples/images/Ex4_HHcell/large.png differ diff --git a/docs/samples/images/Ex4_HHcell/small.png b/docs/samples/images/Ex4_HHcell/small.png new file mode 100644 index 00000000..1275f5b2 Binary files /dev/null and b/docs/samples/images/Ex4_HHcell/small.png differ diff --git a/docs/samples/images/Ex5_Networks/large.png b/docs/samples/images/Ex5_Networks/large.png new file mode 100644 index 00000000..a6443c02 Binary files /dev/null and b/docs/samples/images/Ex5_Networks/large.png differ diff --git a/docs/samples/images/Ex5_Networks/small.png b/docs/samples/images/Ex5_Networks/small.png new file mode 100644 index 00000000..54b49748 Binary files /dev/null and b/docs/samples/images/Ex5_Networks/small.png differ diff --git a/docs/samples/images/Ex6_CerebellumDemo/large.png b/docs/samples/images/Ex6_CerebellumDemo/large.png new file mode 100644 index 00000000..10b90929 Binary files /dev/null and b/docs/samples/images/Ex6_CerebellumDemo/large.png differ diff --git a/docs/samples/images/Ex6_CerebellumDemo/small.png b/docs/samples/images/Ex6_CerebellumDemo/small.png new file mode 100644 index 00000000..950c8220 Binary files /dev/null and b/docs/samples/images/Ex6_CerebellumDemo/small.png differ diff --git a/docs/samples/images/Ex7_PSICSDemo/large.png b/docs/samples/images/Ex7_PSICSDemo/large.png new file mode 100644 index 00000000..dfc6bbed Binary files /dev/null and b/docs/samples/images/Ex7_PSICSDemo/large.png differ diff --git a/docs/samples/images/Ex7_PSICSDemo/small.png b/docs/samples/images/Ex7_PSICSDemo/small.png new file mode 100644 index 00000000..8aa52f2d Binary files /dev/null and b/docs/samples/images/Ex7_PSICSDemo/small.png differ diff --git a/docs/samples/images/Ex9_Synapses/large.png b/docs/samples/images/Ex9_Synapses/large.png new file mode 100644 index 00000000..99424a1c Binary files /dev/null and b/docs/samples/images/Ex9_Synapses/large.png differ diff --git a/docs/samples/images/Ex9_Synapses/small.png b/docs/samples/images/Ex9_Synapses/small.png new file mode 100644 index 00000000..bcf04f43 Binary files /dev/null and b/docs/samples/images/Ex9_Synapses/small.png differ diff --git a/docs/samples/index.html b/docs/samples/index.html new file mode 100644 index 00000000..5fa4d46e --- /dev/null +++ b/docs/samples/index.html @@ -0,0 +1,725 @@ + + + + + + + + + + + + +neuroConstruct example projects + + + + + + + + + + + + + + +
    + +
     
    +
    +
    +
    + + + + +
    neuroConstruct +
    +
    +
    +
    +
    +

    +neuroConstruct example projects +

    +
    +
    + + +

    Downloadable neuroConstruct example projects. These illustrate the core functionality of neuroConstruct, as opposed to providing electrophysiologically accurate models. +
    +
    +Note: all of these examples are included with the standard neuroConstruct release! + +
    +
    Find more neuroConstruct projects containing biophysically detailed neuronal cell and network models on Open Source Brain. Open Source Brain

    + + +
    +

    Ex10_NeuroML2

    + + + +
    + + + + + + + + + +
    + +

    Project name: Ex10_NeuroML2 +

    + +

    A test of a number of cell/channel models which can be mapped to LEMS/NeuroML version 2.0

    + +

    Project last modified: Friday November 13, 2015

    + +
    + +

    Downloads*:

    + +

    + +neuroConstruct project + +

    + +

    + + + Download core project elements in NeuroML format + +

    + +
    +
    + +
    + + +
    +

    Ex1_Simple

    + + + +
    + + + + + + + + + + +
    + +

    + + + Screenshot of Ex1_Simple + +

    + +
    + +

    Project name: Ex1_Simple +

    + +

    Simple example with a single passive electrical cell positioned randomly in a 3D volume. Used to test that neuroConstruct is correctly installed.

    + +

    Project last modified: Friday November 13, 2015

    + +
    + +

    Downloads*:

    + +

    + +neuroConstruct project + +

    + +

    + + + Download core project elements in NeuroML format + +

    + +
    +
    + +
    + + +
    +

    Ex2_Packing

    + + + +
    + + + + + + + + + + +
    + +

    + + + Screenshot of Ex2_Packing + +

    + +
    + +

    Project name: Ex2_Packing +

    + +

    Example illustrating packing of cells in 3D Regions. Various packing patterns are shown. Note that these are just intended to demonstrate the capabilities of the packing functionality, rather than recreate a biologically realistic network. + +Just click Generate -> Generate Cell Positions and Connections, followed by Visualisations -> View, with Latest Generated Positions selected in the drop down box.

    + +

    Project last modified: Friday November 13, 2015

    + +
    + +

    Downloads*:

    + +

    + +neuroConstruct project + +

    + +

    + + + Download core project elements in NeuroML format + +

    + +
    +
    + +
    + + +
    +

    Ex3_Morphology

    + + + +
    + + + + + + + + + + +
    + +

    + + + Screenshot of Ex3_Morphology + +

    + +
    + +

    Project name: Ex3_Morphology +

    + +

    This example demonstrates importation of a number of cell morphology files in different formats, including the Purkinje Cell Model of Erik De Schutter and Jim Bower.

    + +

    Project last modified: Friday November 13, 2015

    + +
    + +

    Downloads*:

    + +

    + +neuroConstruct project + +

    + +
    +
    + +
    + + +
    +

    Ex4_HHcell

    + + + +
    + + + + + + + + + + +
    + +

    + + + Screenshot of Ex4_HHcell + +

    + +
    + +

    Project name: Ex4_HHcell +

    + +

    A simple example to test the interaction of neuroConstruct with NEURON/GENESIS using a simple network of 2 cells with Hodgkin Huxley conductances.

    + +

    Project last modified: Thursday October 13, 2016

    + +
    + +

    Downloads*:

    + +

    + +neuroConstruct project + +

    + +

    + + + Download core project elements in NeuroML format + +

    + +
    +
    + +
    + + +
    +

    Ex5_Networks

    + + + +
    + + + + + + + + + + +
    + +

    + + + Screenshot of Ex5_Networks + +

    + +
    + +

    Project name: Ex5_Networks +

    + +

    This example illustrates some of the types of network connections possible between groups of cells. A number of Simulation Configurations are included, which show the different algorithms for searching for postsynaptic connections, effects due to action potential propagation delay, and non uniformity of connection probability.

    + +

    Project last modified: Friday November 13, 2015

    + +
    + +

    Downloads*:

    + +

    + +neuroConstruct project + +

    + +

    + + + Download core project elements in NeuroML format + +

    + +
    +
    + +
    + + +
    +

    Ex6_CerebellumDemo

    + + + +
    + + + + + + + + + + +
    + +

    + + + Screenshot of Ex6_CerebellumDemo + +

    + +
    + +

    Project name: Ex6_CerebellumDemo +

    + +

    Example of a section of the cerebellar cortex containing some of the main cell types. NOTE: this is NOT AN ELECTROPHYSIOLOGICALLY DETAILED CEREBELLUM MODEL and is only intended to reproduce some basic anatomical details of cerebellar connectivity to illustrate neuroConstruct's functionality; none of the cells have realistic sets of ion channels.

    + +

    Project last modified: Friday November 13, 2015

    + +
    + +

    Downloads*:

    + +

    + +neuroConstruct project + +

    + +

    + + + Download core project elements in NeuroML format + +

    + +
    +
    + +
    + + +
    +

    Ex7_PSICSDemo

    + + + +
    + + + + + + + + + + +
    + +

    + + + Screenshot of Ex7_PSICSDemo + +

    + +
    + +

    Project name: Ex7_PSICSDemo +

    + +

    A simple project used to test the mapping of ChannelML to the PSICS simulator (http://www.psics.org). Currently a simple cell with HH Na and K channels can be mapped to PSICS, NEURON and GENESIS producing the comparable traces on each. Note that the current neuroConstruct mapping to PSICS uses deterministic channels as opposed to stochastic channels which are a key feature of PSICS.

    + +

    Project last modified: Friday November 13, 2015

    + +
    + +

    Downloads*:

    + +

    + +neuroConstruct project + +

    + +

    + + + Download core project elements in NeuroML format + +

    + +
    +
    + +
    + + +
    +

    Ex8_PyNNDemo

    + + + +
    + + + + + + + + + +
    + +

    Project name: Ex8_PyNNDemo +

    + +

    Project for testing generation of code for PyNN compatible simulators. Generate the chosen Simulation Configuration, go to tab Export -> PyNN, and generate for one of the supported simulators.

    + +

    Project last modified: Friday November 13, 2015

    + +
    + +

    Downloads*:

    + +

    + +neuroConstruct project + +

    + +

    + + + Download core project elements in NeuroML format + +

    + +
    +
    + +
    + + +
    +

    Ex9_Synapses

    + + + +
    + + + + + + + + + + +
    + +

    + + + Screenshot of Ex9_Synapses + +

    + +
    + +

    Project name: Ex9_Synapses +

    + +

    Example project containing networks of cells connected by different types of synapses, including electrical connections at gap junctions. These networks are aimed at multicompartmental cell network simulators like NEURON, GENESIS and MOOSE. There are more examples of synapse models in Ex8_PyNNDemo.

    + +

    Project last modified: Friday November 13, 2015

    + +
    + +

    Downloads*:

    + +

    + +neuroConstruct project + +

    + +

    + + + Download core project elements in NeuroML format + +

    + +
    +
    + +
    + + +

     * Note: neuroConstruct project downloads (most of which are included with the standard software distribution) can be loaded directly into neuroConstruct to generate cell and network scripts for NEURON, GENESIS, etc., but NeuroML downloads just consist of the core elements of the project (morphologies, channels, etc.) which have been exported in NeuroML format. The latter can be useful for testing NeuroML compliant applications. If no NeuroML download link is present, this usually indicates that the model is mainly implemented using channel/synapse mechanisms in a simulator's native language (e.g. mod files) which have not fully been converted to ChannelML yet.

    + + +

    +

     

    + +
    +
    +
    +
    + + + diff --git a/docs/skin/CommonMessages_de.xml b/docs/skin/CommonMessages_de.xml new file mode 100644 index 00000000..bc461196 --- /dev/null +++ b/docs/skin/CommonMessages_de.xml @@ -0,0 +1,23 @@ + + + + Schriftgrösse: + Zuletzt veröffentlicht: + Suche: + Suche auf der Seite mit + diff --git a/docs/skin/CommonMessages_en_US.xml b/docs/skin/CommonMessages_en_US.xml new file mode 100644 index 00000000..88dfe143 --- /dev/null +++ b/docs/skin/CommonMessages_en_US.xml @@ -0,0 +1,23 @@ + + + + Font size: + Last Published: + Search + Search site with + diff --git a/docs/skin/CommonMessages_es.xml b/docs/skin/CommonMessages_es.xml new file mode 100644 index 00000000..63be6712 --- /dev/null +++ b/docs/skin/CommonMessages_es.xml @@ -0,0 +1,23 @@ + + + + Tamaño del texto: + Fecha de publicación: + Buscar + Buscar en + diff --git a/docs/skin/CommonMessages_fr.xml b/docs/skin/CommonMessages_fr.xml new file mode 100644 index 00000000..622569a4 --- /dev/null +++ b/docs/skin/CommonMessages_fr.xml @@ -0,0 +1,23 @@ + + + + Taille : + Dernière publication : + Rechercher + Rechercher sur le site avec + diff --git a/docs/skin/README.txt b/docs/skin/README.txt new file mode 100644 index 00000000..df8319b4 --- /dev/null +++ b/docs/skin/README.txt @@ -0,0 +1,19 @@ +The base for this skin is http://style.tigris.org/ + +Got style-1.1.zip from http://style.tigris.org/servlets/ProjectDocumentList +Which provides: +images/*.gif ... we added a few of our own icons (pdfdoc, printer, xmldoc). +css/*.css ... we added forrest.css.xslt and quirks.css (not sure where +the quirks.css came from - it is not in the tigris dist). + +We made some changes to the CSS (evidently these should go into +the inst.css - but not sure how) ... + +tigris.css + added: img { border: 0; } + changed: for each image url(), removed the "../" + changed: "inline-block" to "inline" at line 709 (fixes CSS validation error) + added: .pdflink .xmllink .podlink .printlink + added: .txtlink + added: .footerLogos + diff --git a/docs/skin/breadcrumbs-optimized.js b/docs/skin/breadcrumbs-optimized.js new file mode 100644 index 00000000..507612af --- /dev/null +++ b/docs/skin/breadcrumbs-optimized.js @@ -0,0 +1,90 @@ +/* +* Licensed to the Apache Software Foundation (ASF) under one or more +* contributor license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright ownership. +* The ASF licenses this file to You under the Apache License, Version 2.0 +* (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +var PREPREND_CRUMBS=new Array(); +var link1="@skinconfig.trail.link1.name@"; +var link2="@skinconfig.trail.link2.name@"; +var link3="@skinconfig.trail.link3.name@"; +if(!(link1=="")&&!link1.indexOf( "@" ) == 0){ + PREPREND_CRUMBS.push( new Array( link1, @skinconfig.trail.link1.href@ ) ); } +if(!(link2=="")&&!link2.indexOf( "@" ) == 0){ + PREPREND_CRUMBS.push( new Array( link2, @skinconfig.trail.link2.href@ ) ); } +if(!(link3=="")&&!link3.indexOf( "@" ) == 0){ + PREPREND_CRUMBS.push( new Array( link3, @skinconfig.trail.link3.href@ ) ); } +var DISPLAY_SEPARATOR=" > "; +var DISPLAY_PREPREND=" > "; +var DISPLAY_POSTPREND=":"; +var CSS_CLASS_CRUMB="breadcrumb"; +var CSS_CLASS_TRAIL="breadcrumbTrail"; +var CSS_CLASS_SEPARATOR="crumbSeparator"; +var FILE_EXTENSIONS=new Array( ".html", ".htm", ".jsp", ".php", ".php3", ".php4" ); +var PATH_SEPARATOR="/"; + +function sc(s) { + var l=s.toLowerCase(); + return l.substr(0,1).toUpperCase()+l.substr(1); +} +function getdirs() { + var t=document.location.pathname.split(PATH_SEPARATOR); + var lc=t[t.length-1]; + for(var i=0;i < FILE_EXTENSIONS.length;i++) + { + if(lc.indexOf(FILE_EXTENSIONS[i])) + return t.slice(1,t.length-1); } + return t.slice(1,t.length); +} +function getcrumbs( d ) +{ + var pre = "/"; + var post = "/"; + var c = new Array(); + if( d != null ) + { + for(var i=0;i < d.length;i++) { + pre+=d[i]+postfix; + c.push(new Array(d[i],pre)); } + } + if(PREPREND_CRUMBS.length > 0 ) + return PREPREND_CRUMBS.concat( c ); + return c; +} +function gettrail( c ) +{ + var h=DISPLAY_PREPREND; + for(var i=0;i < c.length;i++) + { + h+=''+sc(c[i][0])+''; + if(i!=(c.length-1)) + h+=DISPLAY_SEPARATOR; } + return h+DISPLAY_POSTPREND; +} + +function gettrailXHTML( c ) +{ + var h=''+DISPLAY_PREPREND; + for(var i=0;i < c.length;i++) + { + h+=''+sc(c[i][0])+''; + if(i!=(c.length-1)) + h+=''+DISPLAY_SEPARATOR+''; } + return h+DISPLAY_POSTPREND+''; +} + +if(document.location.href.toLowerCase().indexOf("http://")==-1) + document.write(gettrail(getcrumbs())); +else + document.write(gettrail(getcrumbs(getdirs()))); + diff --git a/docs/skin/breadcrumbs.js b/docs/skin/breadcrumbs.js new file mode 100644 index 00000000..aea80ec0 --- /dev/null +++ b/docs/skin/breadcrumbs.js @@ -0,0 +1,237 @@ +/* +* Licensed to the Apache Software Foundation (ASF) under one or more +* contributor license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright ownership. +* The ASF licenses this file to You under the Apache License, Version 2.0 +* (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +/** + * This script, when included in a html file, builds a neat breadcrumb trail + * based on its url. That is, if it doesn't contains bugs (I'm relatively + * sure it does). + * + * Typical usage: + * + */ + +/** + * IE 5 on Mac doesn't know Array.push. + * + * Implement it - courtesy to fritz. + */ +var abc = new Array(); +if (!abc.push) { + Array.prototype.push = function(what){this[this.length]=what} +} + +/* ======================================================================== + CONSTANTS + ======================================================================== */ + +/** + * Two-dimensional array containing extra crumbs to place at the front of + * the trail. Specify first the name of the crumb, then the URI that belongs + * to it. You'll need to modify this for every domain or subdomain where + * you use this script (you can leave it as an empty array if you wish) + */ +var PREPREND_CRUMBS = new Array(); + +var link1 = "@skinconfig.trail.link1.name@"; +var link2 = "@skinconfig.trail.link2.name@"; +var link3 = "@skinconfig.trail.link3.name@"; + +var href1 = "@skinconfig.trail.link1.href@"; +var href2 = "@skinconfig.trail.link2.href@"; +var href3 = "@skinconfig.trail.link3.href@"; + + if(!(link1=="")&&!link1.indexOf( "@" ) == 0){ + PREPREND_CRUMBS.push( new Array( link1, href1 ) ); + } + if(!(link2=="")&&!link2.indexOf( "@" ) == 0){ + PREPREND_CRUMBS.push( new Array( link2, href2 ) ); + } + if(!(link3=="")&&!link3.indexOf( "@" ) == 0){ + PREPREND_CRUMBS.push( new Array( link3, href3 ) ); + } + +/** + * String to include between crumbs: + */ +var DISPLAY_SEPARATOR = " > "; +/** + * String to include at the beginning of the trail + */ +var DISPLAY_PREPREND = " > "; +/** + * String to include at the end of the trail + */ +var DISPLAY_POSTPREND = ""; + +/** + * CSS Class to use for a single crumb: + */ +var CSS_CLASS_CRUMB = "breadcrumb"; + +/** + * CSS Class to use for the complete trail: + */ +var CSS_CLASS_TRAIL = "breadcrumbTrail"; + +/** + * CSS Class to use for crumb separator: + */ +var CSS_CLASS_SEPARATOR = "crumbSeparator"; + +/** + * Array of strings containing common file extensions. We use this to + * determine what part of the url to ignore (if it contains one of the + * string specified here, we ignore it). + */ +var FILE_EXTENSIONS = new Array( ".html", ".htm", ".jsp", ".php", ".php3", ".php4" ); + +/** + * String that separates parts of the breadcrumb trail from each other. + * When this is no longer a slash, I'm sure I'll be old and grey. + */ +var PATH_SEPARATOR = "/"; + +/* ======================================================================== + UTILITY FUNCTIONS + ======================================================================== */ +/** + * Capitalize first letter of the provided string and return the modified + * string. + */ +function sentenceCase( string ) +{ return string; + //var lower = string.toLowerCase(); + //return lower.substr(0,1).toUpperCase() + lower.substr(1); +} + +/** + * Returns an array containing the names of all the directories in the + * current document URL + */ +function getDirectoriesInURL() +{ + var trail = document.location.pathname.split( PATH_SEPARATOR ); + + // check whether last section is a file or a directory + var lastcrumb = trail[trail.length-1]; + for( var i = 0; i < FILE_EXTENSIONS.length; i++ ) + { + if( lastcrumb.indexOf( FILE_EXTENSIONS[i] ) ) + { + // it is, remove it and send results + return trail.slice( 1, trail.length-1 ); + } + } + + // it's not; send the trail unmodified + return trail.slice( 1, trail.length ); +} + +/* ======================================================================== + BREADCRUMB FUNCTIONALITY + ======================================================================== */ +/** + * Return a two-dimensional array describing the breadcrumbs based on the + * array of directories passed in. + */ +function getBreadcrumbs( dirs ) +{ + var prefix = "/"; + var postfix = "/"; + + // the array we will return + var crumbs = new Array(); + + if( dirs != null ) + { + for( var i = 0; i < dirs.length; i++ ) + { + prefix += dirs[i] + postfix; + crumbs.push( new Array( dirs[i], prefix ) ); + } + } + + // preprend the PREPREND_CRUMBS + if(PREPREND_CRUMBS.length > 0 ) + { + return PREPREND_CRUMBS.concat( crumbs ); + } + + return crumbs; +} + +/** + * Return a string containing a simple text breadcrumb trail based on the + * two-dimensional array passed in. + */ +function getCrumbTrail( crumbs ) +{ + var xhtml = DISPLAY_PREPREND; + + for( var i = 0; i < crumbs.length; i++ ) + { + xhtml += ''; + xhtml += unescape( crumbs[i][0] ) + ''; + if( i != (crumbs.length-1) ) + { + xhtml += DISPLAY_SEPARATOR; + } + } + + xhtml += DISPLAY_POSTPREND; + + return xhtml; +} + +/** + * Return a string containing an XHTML breadcrumb trail based on the + * two-dimensional array passed in. + */ +function getCrumbTrailXHTML( crumbs ) +{ + var xhtml = ''; + xhtml += DISPLAY_PREPREND; + + for( var i = 0; i < crumbs.length; i++ ) + { + xhtml += ''; + xhtml += unescape( crumbs[i][0] ) + ''; + if( i != (crumbs.length-1) ) + { + xhtml += '' + DISPLAY_SEPARATOR + ''; + } + } + + xhtml += DISPLAY_POSTPREND; + xhtml += ''; + + return xhtml; +} + +/* ======================================================================== + PRINT BREADCRUMB TRAIL + ======================================================================== */ + +// check if we're local; if so, only print the PREPREND_CRUMBS +if( document.location.href.toLowerCase().indexOf( "http://" ) == -1 ) +{ + document.write( getCrumbTrail( getBreadcrumbs() ) ); +} +else +{ + document.write( getCrumbTrail( getBreadcrumbs( getDirectoriesInURL() ) ) ); +} + diff --git a/docs/skin/fontsize.js b/docs/skin/fontsize.js new file mode 100644 index 00000000..11722bfc --- /dev/null +++ b/docs/skin/fontsize.js @@ -0,0 +1,166 @@ +/* +* Licensed to the Apache Software Foundation (ASF) under one or more +* contributor license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright ownership. +* The ASF licenses this file to You under the Apache License, Version 2.0 +* (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +function init() +{ //embedded in the doc + //ndeSetTextSize(); +} + +function checkBrowser(){ + if (!document.getElementsByTagName){ + return true; + } + else{ + return false; + } +} + + +function ndeSetTextSize(chgsize,rs) +{ + var startSize; + var newSize; + + if (!checkBrowser) + { + return; + } + + startSize = parseInt(ndeGetDocTextSize()); + + if (!startSize) + { + startSize = 16; + } + + switch (chgsize) + { + case 'incr': + newSize = startSize + 2; + break; + + case 'decr': + newSize = startSize - 2; + break; + + case 'reset': + if (rs) {newSize = rs;} else {newSize = 16;} + break; + + default: + try{ + newSize = parseInt(ndeReadCookie("nde-textsize")); + } + catch(e){ + alert(e); + } + + if (!newSize || newSize == 'NaN') + { + newSize = startSize; + } + break; + + } + + if (newSize < 10) + { + newSize = 10; + } + + newSize += 'px'; + + document.getElementsByTagName('html')[0].style.fontSize = newSize; + document.getElementsByTagName('body')[0].style.fontSize = newSize; + + ndeCreateCookie("nde-textsize", newSize, 365); +} + +function ndeGetDocTextSize() +{ + if (!checkBrowser) + { + return 0; + } + + var size = 0; + var body = document.getElementsByTagName('body')[0]; + + if (body.style && body.style.fontSize) + { + size = body.style.fontSize; + } + else if (typeof(getComputedStyle) != 'undefined') + { + size = getComputedStyle(body,'').getPropertyValue('font-size'); + } + else if (body.currentStyle) + { + size = body.currentStyle.fontSize; + } + + //fix IE bug + if( isNaN(size)){ + if(size.substring(size.length-1)=="%"){ + return + } + + } + + return size; + +} + + + +function ndeCreateCookie(name,value,days) +{ + var cookie = name + "=" + value + ";"; + + if (days) + { + var date = new Date(); + date.setTime(date.getTime()+(days*24*60*60*1000)); + cookie += " expires=" + date.toGMTString() + ";"; + } + cookie += " path=/"; + + document.cookie = cookie; + +} + +function ndeReadCookie(name) +{ + var nameEQ = name + "="; + var ca = document.cookie.split(';'); + + + for(var i = 0; i < ca.length; i++) + { + var c = ca[i]; + while (c.charAt(0) == ' ') + { + c = c.substring(1, c.length); + } + + ctest = c.substring(0,name.length); + + if(ctest == name){ + return c.substring(nameEQ.length,c.length); + } + } + return null; +} diff --git a/docs/skin/forrest.css b/docs/skin/forrest.css new file mode 100644 index 00000000..d0c2c15b --- /dev/null +++ b/docs/skin/forrest.css @@ -0,0 +1,193 @@ + + +/* ==================== aural ============================ */ + +@media aural { + h1, h2, h3, h4, h5, h6 { voice-family: paul, male; stress: 20; richness: 90 } + h1 { pitch: x-low; pitch-range: 90 } + h2 { pitch: x-low; pitch-range: 80 } + h3 { pitch: low; pitch-range: 70 } + h4 { pitch: medium; pitch-range: 60 } + h5 { pitch: medium; pitch-range: 50 } + h6 { pitch: medium; pitch-range: 40 } + li, dt, dd { pitch: medium; richness: 60 } + dt { stress: 80 } + pre, code, tt { pitch: medium; pitch-range: 0; stress: 0; richness: 80 } + em { pitch: medium; pitch-range: 60; stress: 60; richness: 50 } + strong { pitch: medium; pitch-range: 60; stress: 90; richness: 90 } + dfn { pitch: high; pitch-range: 60; stress: 60 } + s, strike { richness: 0 } + i { pitch: medium; pitch-range: 60; stress: 60; richness: 50 } + b { pitch: medium; pitch-range: 60; stress: 90; richness: 90 } + u { richness: 0 } + + :link { voice-family: harry, male } + :visited { voice-family: betty, female } + :active { voice-family: betty, female; pitch-range: 80; pitch: x-high } +} + +a.external { + padding: 0 20px 0px 0px; + display:inline; + background-repeat: no-repeat; + background-position: center right; + background-image: url(images/external-link.gif); +} + +#banner, #banner td, #toptabs { background-color: #FFFFFF;} +#toptabs td { border-left: 1px solid #FFFFFF;} +#toptabs th { border-left: 1px solid #FFFFFF;} +#banner { border-top: 1px solid #ffffff;} + +.tabs th { + background-color: #a5b6c6; + border-right: 1px solid #737f8a; + color: #000000;} +.tabs th a:link{ + color: #000000;} +.tabs th a:visited { + color: #000000;} +.tabs th a:hover { + color: #000000 !important; } +#mytools .label, #projecttools .label, #admintools .label, #communitytools .label { + background-color: #a5b6c6;} +#mytools, #projecttools, #admintools, #communitytools { + background-color: #a5b6c6; + border-right: 1px solid #737f8a; + border-bottom: 1px solid #737f8a; +} +.tabs { border-bottom: 6px #a5b6c6 solid; } +.tabs td { + background-color: #F7F7F7; + color: #000000;} +.tabs td a:link{ + color: #000000;} +.tabs td a:visited { + color: #000000;} +.tabs td a:hover { + color: #000000 !important;} + +#breadcrumbs a:link{ + color: #000000;} +#breadcrumbs a:visited { + color: #000000;} + +#breadcrumbs { color: #000000;} +#breadcrumbs {background-color: #a5b6c6; + border-top: 1px solid #ebffff;} +#main {border-top: 1px solid #737f8a;} +#breadcrumbs a:link{ + color: #000000;} +#breadcrumbs a:visited { + color: #000000;} +#breadcrumbs a:hover { + color: #000000 !important;} + +.app h3 { + background-color: #a5b6c6; + background-image: url('images/rc-t-l-10-1body-2heading-3heading.png'); +} + +.app h4 { + background-color: #CFDCED; + background-image: url('images/rc-t-l-10-1body-2subheading-3subheading.png'); +} + +#topmodule { background-color: #CFDCED; + border-top: 1px solid #ffffff; + border-bottom: 1px solid #909aa5; + color: #000000;} +#topmodule #issueid { + border-right: 1px solid #909aa5; +} +#topmodule a:link{ + color: #000000;} +#topmodule a:visited { + color: #000000;} +#topmodule a:hover { + color: #000000 !important; } + +.toolgroup .label { background: #a5b6c6; + border-bottom: 1px solid #737f8a; + border-right: 1px solid #737f8a; + color: #000000; +} +#mytools .body, #projecttools .body, #admintools .body, #communitytools .body { + background-color: #F7F7F7; + border-right: 1px solid #ffffff; + border-bottom: 1px solid #ffffff; + border-top: 1px solid #acacac; + border-left: 1px solid #acacac; + } +#mytools .body a:link, #projecttools .body a:link, #admintools .body a:link, #communitytools .body a:link{ + color: #000000;} +#mytools .body a:visited, #projecttools .body a:visited, #admintools .body a:visited, #communitytools .body a:visited{ + color: #000000;} +#mytools .body a:hover, #projecttools .body a:hover, #admintools .body a:hover, #communitytools .body a:hover{ + color: #000000 !important;} + +.toolgroup { background: #F7F7F7;} +.toolgroup .body { + border-right: 1px solid #acacac;; + border-bottom: 1px solid #acacac;; +} + +body { background-color: #ffffff;} +a:link, #navcolumn a:visited, .app a:visited, .tasknav a:visited { + color: #0F3660; +} +a:link.selfref, a:visited.selfref { + color: #009999 !important; + text-decoration: none; +} +a:active, a:hover, #leftcol a:active, #leftcol a:hover { + color: #000066 !important; +} + +body .grid td { + border-top: 1px solid #a5b6c6; + border-left: 1px solid #a5b6c6;} +.app th { + background-color: #a5b6c6;} +body .grid td { + background-color: #ffffff; +} +.highlight { background-color: #ffff00;} +.warningmessage {border-color: #cc6600;} +.infomessage { border-color: #006699;} +.errormessage{ border-color: #990000;} +.code, code, pre { border-color: #a5b6c6;} +#footer { background-color: #CFDCED;} /* extra-css */ + + p.quote { + margin-left: 2em; + padding: .5em; + font-family: monospace; + } + + code { + font-style: italic; + font-weight: bold; + font-family: monospace; + } + + code.exec { + font-weight: bold; + font-family: monospace; + } + + table.noborder { + border: none + } + + +#toptabs td{ + background-image: url('images/rc-t-l-10-1header-2tab-unselected-3tab-unselected.png'); + + +} + +#toptabs th { + background-image: url('images/rc-t-l-10-1header-2tab-selected-3tab-selected.png'); +} + diff --git a/docs/skin/getBlank.js b/docs/skin/getBlank.js new file mode 100644 index 00000000..d9978c0b --- /dev/null +++ b/docs/skin/getBlank.js @@ -0,0 +1,40 @@ +/* +* Licensed to the Apache Software Foundation (ASF) under one or more +* contributor license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright ownership. +* The ASF licenses this file to You under the Apache License, Version 2.0 +* (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +/** + * getBlank script - when included in a html file and called from a form text field, will set the value of this field to "" + * if the text value is still the standard value. + * getPrompt script - when included in a html file and called from a form text field, will set the value of this field to the prompt + * if the text value is empty. + * + * Typical usage: + * + * + */ + diff --git a/docs/skin/getMenu.js b/docs/skin/getMenu.js new file mode 100644 index 00000000..b17aad61 --- /dev/null +++ b/docs/skin/getMenu.js @@ -0,0 +1,45 @@ +/* +* Licensed to the Apache Software Foundation (ASF) under one or more +* contributor license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright ownership. +* The ASF licenses this file to You under the Apache License, Version 2.0 +* (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +/** + * This script, when included in a html file, can be used to make collapsible menus + * + * Typical usage: + * + */ + +if (document.getElementById){ + document.write('') +} + + +function SwitchMenu(obj, thePath) +{ +var open = 'url("'+thePath + 'images/chapter_open.gif")'; +var close = 'url("'+thePath + 'images/chapter.gif")'; + if(document.getElementById) { + var el = document.getElementById(obj); + var title = document.getElementById(obj+'Title'); + + if(el.style.display != "block"){ + title.style.backgroundImage = open; + el.style.display = "block"; + }else{ + title.style.backgroundImage = close; + el.style.display = "none"; + } + }// end - if(document.getElementById) +}//end - function SwitchMenu(obj) diff --git a/docs/skin/images/README.txt b/docs/skin/images/README.txt new file mode 100644 index 00000000..e0932f4a --- /dev/null +++ b/docs/skin/images/README.txt @@ -0,0 +1 @@ +The images in this directory are used if the current skin lacks them. diff --git a/docs/skin/images/add.jpg b/docs/skin/images/add.jpg new file mode 100644 index 00000000..06831eeb Binary files /dev/null and b/docs/skin/images/add.jpg differ diff --git a/docs/skin/images/apache-thanks.png b/docs/skin/images/apache-thanks.png new file mode 100644 index 00000000..c0bea09c Binary files /dev/null and b/docs/skin/images/apache-thanks.png differ diff --git a/docs/skin/images/built-with-cocoon.gif b/docs/skin/images/built-with-cocoon.gif new file mode 100644 index 00000000..0b38f785 Binary files /dev/null and b/docs/skin/images/built-with-cocoon.gif differ diff --git a/docs/skin/images/built-with-forrest-button.png b/docs/skin/images/built-with-forrest-button.png new file mode 100644 index 00000000..4a787abe Binary files /dev/null and b/docs/skin/images/built-with-forrest-button.png differ diff --git a/docs/skin/images/corporate_logo.gif b/docs/skin/images/corporate_logo.gif new file mode 100644 index 00000000..b291fb7a Binary files /dev/null and b/docs/skin/images/corporate_logo.gif differ diff --git a/docs/skin/images/external-link.gif b/docs/skin/images/external-link.gif new file mode 100644 index 00000000..ff2f7b2a Binary files /dev/null and b/docs/skin/images/external-link.gif differ diff --git a/docs/skin/images/file.gif b/docs/skin/images/file.gif new file mode 100644 index 00000000..72c13cc7 Binary files /dev/null and b/docs/skin/images/file.gif differ diff --git a/docs/skin/images/fix.jpg b/docs/skin/images/fix.jpg new file mode 100644 index 00000000..1d6820b4 Binary files /dev/null and b/docs/skin/images/fix.jpg differ diff --git a/docs/skin/images/folder-closed.gif b/docs/skin/images/folder-closed.gif new file mode 100644 index 00000000..2baed621 Binary files /dev/null and b/docs/skin/images/folder-closed.gif differ diff --git a/docs/skin/images/folder-open.gif b/docs/skin/images/folder-open.gif new file mode 100644 index 00000000..3955d19e Binary files /dev/null and b/docs/skin/images/folder-open.gif differ diff --git a/docs/skin/images/forrest-credit-logo.png b/docs/skin/images/forrest-credit-logo.png new file mode 100644 index 00000000..8a63e420 Binary files /dev/null and b/docs/skin/images/forrest-credit-logo.png differ diff --git a/docs/skin/images/hack.jpg b/docs/skin/images/hack.jpg new file mode 100644 index 00000000..f38d50fe Binary files /dev/null and b/docs/skin/images/hack.jpg differ diff --git a/docs/skin/images/help_logo.gif b/docs/skin/images/help_logo.gif new file mode 100644 index 00000000..cc25c033 Binary files /dev/null and b/docs/skin/images/help_logo.gif differ diff --git a/docs/skin/images/icon_alert.gif b/docs/skin/images/icon_alert.gif new file mode 100644 index 00000000..4968bca4 Binary files /dev/null and b/docs/skin/images/icon_alert.gif differ diff --git a/docs/skin/images/icon_alertsml.gif b/docs/skin/images/icon_alertsml.gif new file mode 100644 index 00000000..3d9a53c1 Binary files /dev/null and b/docs/skin/images/icon_alertsml.gif differ diff --git a/docs/skin/images/icon_arrowfolder1_sml.gif b/docs/skin/images/icon_arrowfolder1_sml.gif new file mode 100644 index 00000000..89408afa Binary files /dev/null and b/docs/skin/images/icon_arrowfolder1_sml.gif differ diff --git a/docs/skin/images/icon_arrowfolder2_sml.gif b/docs/skin/images/icon_arrowfolder2_sml.gif new file mode 100644 index 00000000..d9e7e1cf Binary files /dev/null and b/docs/skin/images/icon_arrowfolder2_sml.gif differ diff --git a/docs/skin/images/icon_arrowfolderclosed1_sml.gif b/docs/skin/images/icon_arrowfolderclosed1_sml.gif new file mode 100644 index 00000000..c48e8b64 Binary files /dev/null and b/docs/skin/images/icon_arrowfolderclosed1_sml.gif differ diff --git a/docs/skin/images/icon_arrowfolderopen2_sml.gif b/docs/skin/images/icon_arrowfolderopen2_sml.gif new file mode 100644 index 00000000..477e327c Binary files /dev/null and b/docs/skin/images/icon_arrowfolderopen2_sml.gif differ diff --git a/docs/skin/images/icon_arrowmembers1_sml.gif b/docs/skin/images/icon_arrowmembers1_sml.gif new file mode 100644 index 00000000..b4dea830 Binary files /dev/null and b/docs/skin/images/icon_arrowmembers1_sml.gif differ diff --git a/docs/skin/images/icon_arrowmembers2_sml.gif b/docs/skin/images/icon_arrowmembers2_sml.gif new file mode 100644 index 00000000..0e743574 Binary files /dev/null and b/docs/skin/images/icon_arrowmembers2_sml.gif differ diff --git a/docs/skin/images/icon_arrowusergroups1_sml.gif b/docs/skin/images/icon_arrowusergroups1_sml.gif new file mode 100644 index 00000000..5177959c Binary files /dev/null and b/docs/skin/images/icon_arrowusergroups1_sml.gif differ diff --git a/docs/skin/images/icon_arrowusergroups2_sml.gif b/docs/skin/images/icon_arrowusergroups2_sml.gif new file mode 100644 index 00000000..574bb456 Binary files /dev/null and b/docs/skin/images/icon_arrowusergroups2_sml.gif differ diff --git a/docs/skin/images/icon_arrowwaste1_sml.gif b/docs/skin/images/icon_arrowwaste1_sml.gif new file mode 100644 index 00000000..25d75f73 Binary files /dev/null and b/docs/skin/images/icon_arrowwaste1_sml.gif differ diff --git a/docs/skin/images/icon_arrowwaste2_sml.gif b/docs/skin/images/icon_arrowwaste2_sml.gif new file mode 100644 index 00000000..54dbf425 Binary files /dev/null and b/docs/skin/images/icon_arrowwaste2_sml.gif differ diff --git a/docs/skin/images/icon_confirmsml.gif b/docs/skin/images/icon_confirmsml.gif new file mode 100644 index 00000000..ca3c810b Binary files /dev/null and b/docs/skin/images/icon_confirmsml.gif differ diff --git a/docs/skin/images/icon_doc_lrg.gif b/docs/skin/images/icon_doc_lrg.gif new file mode 100644 index 00000000..b4582671 Binary files /dev/null and b/docs/skin/images/icon_doc_lrg.gif differ diff --git a/docs/skin/images/icon_doc_sml.gif b/docs/skin/images/icon_doc_sml.gif new file mode 100644 index 00000000..239bfaad Binary files /dev/null and b/docs/skin/images/icon_doc_sml.gif differ diff --git a/docs/skin/images/icon_error_lrg.gif b/docs/skin/images/icon_error_lrg.gif new file mode 100644 index 00000000..fccffd17 Binary files /dev/null and b/docs/skin/images/icon_error_lrg.gif differ diff --git a/docs/skin/images/icon_error_sml.gif b/docs/skin/images/icon_error_sml.gif new file mode 100644 index 00000000..61132ef2 Binary files /dev/null and b/docs/skin/images/icon_error_sml.gif differ diff --git a/docs/skin/images/icon_folder_lrg.gif b/docs/skin/images/icon_folder_lrg.gif new file mode 100644 index 00000000..3683e75c Binary files /dev/null and b/docs/skin/images/icon_folder_lrg.gif differ diff --git a/docs/skin/images/icon_folder_sml.gif b/docs/skin/images/icon_folder_sml.gif new file mode 100644 index 00000000..8e26f89a Binary files /dev/null and b/docs/skin/images/icon_folder_sml.gif differ diff --git a/docs/skin/images/icon_help_lrg.gif b/docs/skin/images/icon_help_lrg.gif new file mode 100644 index 00000000..c2162957 Binary files /dev/null and b/docs/skin/images/icon_help_lrg.gif differ diff --git a/docs/skin/images/icon_help_sml.gif b/docs/skin/images/icon_help_sml.gif new file mode 100644 index 00000000..43bfd56f Binary files /dev/null and b/docs/skin/images/icon_help_sml.gif differ diff --git a/docs/skin/images/icon_info_lrg.gif b/docs/skin/images/icon_info_lrg.gif new file mode 100644 index 00000000..b390fd4a Binary files /dev/null and b/docs/skin/images/icon_info_lrg.gif differ diff --git a/docs/skin/images/icon_info_sml.gif b/docs/skin/images/icon_info_sml.gif new file mode 100644 index 00000000..c6cb9ad7 Binary files /dev/null and b/docs/skin/images/icon_info_sml.gif differ diff --git a/docs/skin/images/icon_infosml.gif b/docs/skin/images/icon_infosml.gif new file mode 100644 index 00000000..1aa2d30a Binary files /dev/null and b/docs/skin/images/icon_infosml.gif differ diff --git a/docs/skin/images/icon_members_lrg.gif b/docs/skin/images/icon_members_lrg.gif new file mode 100644 index 00000000..7ba2df6b Binary files /dev/null and b/docs/skin/images/icon_members_lrg.gif differ diff --git a/docs/skin/images/icon_members_sml.gif b/docs/skin/images/icon_members_sml.gif new file mode 100644 index 00000000..997e6998 Binary files /dev/null and b/docs/skin/images/icon_members_sml.gif differ diff --git a/docs/skin/images/icon_sortdown.gif b/docs/skin/images/icon_sortdown.gif new file mode 100644 index 00000000..9561bbe2 Binary files /dev/null and b/docs/skin/images/icon_sortdown.gif differ diff --git a/docs/skin/images/icon_sortleft.gif b/docs/skin/images/icon_sortleft.gif new file mode 100644 index 00000000..4fd21e8c Binary files /dev/null and b/docs/skin/images/icon_sortleft.gif differ diff --git a/docs/skin/images/icon_sortright.gif b/docs/skin/images/icon_sortright.gif new file mode 100644 index 00000000..ea8076e3 Binary files /dev/null and b/docs/skin/images/icon_sortright.gif differ diff --git a/docs/skin/images/icon_sortup.gif b/docs/skin/images/icon_sortup.gif new file mode 100644 index 00000000..61942d6d Binary files /dev/null and b/docs/skin/images/icon_sortup.gif differ diff --git a/docs/skin/images/icon_success_lrg.gif b/docs/skin/images/icon_success_lrg.gif new file mode 100644 index 00000000..9af317d8 Binary files /dev/null and b/docs/skin/images/icon_success_lrg.gif differ diff --git a/docs/skin/images/icon_success_sml.gif b/docs/skin/images/icon_success_sml.gif new file mode 100644 index 00000000..fb63382a Binary files /dev/null and b/docs/skin/images/icon_success_sml.gif differ diff --git a/docs/skin/images/icon_usergroups_lrg.gif b/docs/skin/images/icon_usergroups_lrg.gif new file mode 100644 index 00000000..3a4e3569 Binary files /dev/null and b/docs/skin/images/icon_usergroups_lrg.gif differ diff --git a/docs/skin/images/icon_usergroups_sml.gif b/docs/skin/images/icon_usergroups_sml.gif new file mode 100644 index 00000000..92361013 Binary files /dev/null and b/docs/skin/images/icon_usergroups_sml.gif differ diff --git a/docs/skin/images/icon_warning_lrg.gif b/docs/skin/images/icon_warning_lrg.gif new file mode 100644 index 00000000..83359d81 Binary files /dev/null and b/docs/skin/images/icon_warning_lrg.gif differ diff --git a/docs/skin/images/icon_warning_sml.gif b/docs/skin/images/icon_warning_sml.gif new file mode 100644 index 00000000..873bbb52 Binary files /dev/null and b/docs/skin/images/icon_warning_sml.gif differ diff --git a/docs/skin/images/icon_waste_lrg.gif b/docs/skin/images/icon_waste_lrg.gif new file mode 100644 index 00000000..e5434aa4 Binary files /dev/null and b/docs/skin/images/icon_waste_lrg.gif differ diff --git a/docs/skin/images/icon_waste_sml.gif b/docs/skin/images/icon_waste_sml.gif new file mode 100644 index 00000000..6dd046d4 Binary files /dev/null and b/docs/skin/images/icon_waste_sml.gif differ diff --git a/docs/skin/images/nw_maj.gif b/docs/skin/images/nw_maj.gif new file mode 100644 index 00000000..452296b7 Binary files /dev/null and b/docs/skin/images/nw_maj.gif differ diff --git a/docs/skin/images/nw_maj_hi.gif b/docs/skin/images/nw_maj_hi.gif new file mode 100644 index 00000000..54c39336 Binary files /dev/null and b/docs/skin/images/nw_maj_hi.gif differ diff --git a/docs/skin/images/nw_maj_rond.gif b/docs/skin/images/nw_maj_rond.gif new file mode 100644 index 00000000..add42a40 Binary files /dev/null and b/docs/skin/images/nw_maj_rond.gif differ diff --git a/docs/skin/images/nw_med.gif b/docs/skin/images/nw_med.gif new file mode 100644 index 00000000..d2b6d91d Binary files /dev/null and b/docs/skin/images/nw_med.gif differ diff --git a/docs/skin/images/nw_med_hi.gif b/docs/skin/images/nw_med_hi.gif new file mode 100644 index 00000000..0c2db4cf Binary files /dev/null and b/docs/skin/images/nw_med_hi.gif differ diff --git a/docs/skin/images/nw_med_rond.gif b/docs/skin/images/nw_med_rond.gif new file mode 100644 index 00000000..8aaa564e Binary files /dev/null and b/docs/skin/images/nw_med_rond.gif differ diff --git a/docs/skin/images/nw_min.gif b/docs/skin/images/nw_min.gif new file mode 100644 index 00000000..bf4bc759 Binary files /dev/null and b/docs/skin/images/nw_min.gif differ diff --git a/docs/skin/images/nw_min_036.gif b/docs/skin/images/nw_min_036.gif new file mode 100644 index 00000000..eb344a8f Binary files /dev/null and b/docs/skin/images/nw_min_036.gif differ diff --git a/docs/skin/images/nw_min_hi.gif b/docs/skin/images/nw_min_hi.gif new file mode 100644 index 00000000..a8a30abf Binary files /dev/null and b/docs/skin/images/nw_min_hi.gif differ diff --git a/docs/skin/images/pdfdoc.gif b/docs/skin/images/pdfdoc.gif new file mode 100644 index 00000000..ec13eb52 Binary files /dev/null and b/docs/skin/images/pdfdoc.gif differ diff --git a/docs/skin/images/poddoc.png b/docs/skin/images/poddoc.png new file mode 100644 index 00000000..a393df73 Binary files /dev/null and b/docs/skin/images/poddoc.png differ diff --git a/docs/skin/images/poweredby_036.gif b/docs/skin/images/poweredby_036.gif new file mode 100644 index 00000000..49d0345d Binary files /dev/null and b/docs/skin/images/poweredby_036.gif differ diff --git a/docs/skin/images/printer.gif b/docs/skin/images/printer.gif new file mode 100644 index 00000000..a8d0d419 Binary files /dev/null and b/docs/skin/images/printer.gif differ diff --git a/docs/skin/images/product_logo.gif b/docs/skin/images/product_logo.gif new file mode 100644 index 00000000..327b8388 Binary files /dev/null and b/docs/skin/images/product_logo.gif differ diff --git a/docs/skin/images/remove.jpg b/docs/skin/images/remove.jpg new file mode 100644 index 00000000..8c9b9efa Binary files /dev/null and b/docs/skin/images/remove.jpg differ diff --git a/docs/skin/images/rss.png b/docs/skin/images/rss.png new file mode 100644 index 00000000..f0796ac8 Binary files /dev/null and b/docs/skin/images/rss.png differ diff --git a/docs/skin/images/se_maj_rond.gif b/docs/skin/images/se_maj_rond.gif new file mode 100644 index 00000000..da2510e9 Binary files /dev/null and b/docs/skin/images/se_maj_rond.gif differ diff --git a/docs/skin/images/spacer.gif b/docs/skin/images/spacer.gif new file mode 100644 index 00000000..35d42e80 Binary files /dev/null and b/docs/skin/images/spacer.gif differ diff --git a/docs/skin/images/strich.gif b/docs/skin/images/strich.gif new file mode 100644 index 00000000..a33e79d9 Binary files /dev/null and b/docs/skin/images/strich.gif differ diff --git a/docs/skin/images/sw_maj_rond.gif b/docs/skin/images/sw_maj_rond.gif new file mode 100644 index 00000000..110bdf4e Binary files /dev/null and b/docs/skin/images/sw_maj_rond.gif differ diff --git a/docs/skin/images/sw_med_rond.gif b/docs/skin/images/sw_med_rond.gif new file mode 100644 index 00000000..6671c3d0 Binary files /dev/null and b/docs/skin/images/sw_med_rond.gif differ diff --git a/docs/skin/images/sw_min.gif b/docs/skin/images/sw_min.gif new file mode 100644 index 00000000..d96369d4 Binary files /dev/null and b/docs/skin/images/sw_min.gif differ diff --git a/docs/skin/images/txtdoc.png b/docs/skin/images/txtdoc.png new file mode 100644 index 00000000..bf8b3744 Binary files /dev/null and b/docs/skin/images/txtdoc.png differ diff --git a/docs/skin/images/update.jpg b/docs/skin/images/update.jpg new file mode 100644 index 00000000..beb92073 Binary files /dev/null and b/docs/skin/images/update.jpg differ diff --git a/docs/skin/images/valid-html401.png b/docs/skin/images/valid-html401.png new file mode 100644 index 00000000..3855210c Binary files /dev/null and b/docs/skin/images/valid-html401.png differ diff --git a/docs/skin/images/vcss.png b/docs/skin/images/vcss.png new file mode 100644 index 00000000..9b2f596e Binary files /dev/null and b/docs/skin/images/vcss.png differ diff --git a/docs/skin/images/xmldoc.gif b/docs/skin/images/xmldoc.gif new file mode 100644 index 00000000..c92d9b90 Binary files /dev/null and b/docs/skin/images/xmldoc.gif differ diff --git a/docs/skin/inst.css b/docs/skin/inst.css new file mode 100644 index 00000000..8d29e084 --- /dev/null +++ b/docs/skin/inst.css @@ -0,0 +1,146 @@ +/* $Id: inst.css,v 1.1 2003/04/10 22:58:32 tfahrner Exp $ + +This file contains rules that extend or override the more basic formatting defined in tigris.css. Edit it to customize the look of applications using tigris.css (instances). You are responsible for maintaining your own set of (optional) deltas from tigris.css defaults; this file is intended as an example. + +*/ + +/* colors, backgrounds, borders, link indication */ +#cn { + background-image: url(../images/corporate_logo.gif); + display: block; + height: 17px; + width: 138px; +} + +#poweredby { + background-image: url(../images/poweredby_036.gif); + display: block; + height: 38px; + width: 102px; +} + +#sc { + background-image: url(../images/product_logo.gif); + display: block; + height: 25px; + width: 138px; +} + +#toptabs td, #toptabs th { + background-image: url(../images/nw_min_036.gif); +} + +.app h3, #banner, #banner td, #toptabs { + background-color: #036; + color: #fff; +} + +body #banner td a, .app h3 a, .app h4 a { + color: #fff !important; +} + +#banner { + border-top: 1px solid #369; +} + +#mytools .label, #projecttools .label, #admintools .label, #communitytools .label { + background-color: #ddd; + border: none; +} + +#mytools .body, #projecttools .body, #admintools .body, #communitytools .body { + background-color: #fff; + border-right: none; + border-bottom: none; + border-top: 1px solid #999; +} + +#mytools, #projecttools, #admintools, #communitytools { + background-color: #ddd; + border-right: 1px solid #666; + border-bottom: 1px solid #666; +} + +#helptext { + background-color: #ffc; +} + +#helptext .label { + border-bottom: 1px solid #996; + border-right: 1px solid #996; + background-color: #cc9; +} + +#helptext .body { + border-bottom: 1px solid #cc9; + border-right: 1px solid #cc9; +} + +#topmodule { + background-color: #ddd; + border-top: 1px solid #fff; + border-bottom: 1px solid #aaa; +} + +#topmodule #issueid { + border-right: 1px solid #aaa; +} + +#login a:link, #login a:visited { + color: white; + text-decoration: underline; +} + +#banner a:active, #banner a:hover { + color: #f90 !important; +} + +#toptabs td { + border-bottom: 1px solid #666; + border-right: 1px solid #333; + border-left: 1px solid #036; +} + +#toptabs th { + border-left: 1px solid #036; +} + +/* font and text properties, exclusive of link indication, alignment, text-indent */ +#bodycol h2 { + font-family: Tahoma, Verdana, Helvetica, Arial, sans-serif; + font-size: 1.5em; + font-weight: normal; +} + +/* box properties (exclusive of borders), positioning, alignments, list types, text-indent */ +#toptabs { + margin: 0; + padding-top: .67em; + padding-left: 8px; +} + +#topmodule { + margin: -4px -4px 0 -4px; +} + +#topmodule td { + vertical-align: middle; + padding: 2px 8px; +} + +#navcolumn { + margin-right: -4px; +} + +#mytools .body, #projecttools .body, #admintools .body, #communitytools .body { + padding-top: .33em; +} + +#mytools, #projecttools, #admintools, #communitytools { + padding: 0 6px 6px 6px; + margin: -4px 0 6px -4px; +} + +#mytools .label, #projecttools .label, #admintools .label, #communitytools .label { + padding-left: 2px; +} diff --git a/docs/skin/menu.js b/docs/skin/menu.js new file mode 100644 index 00000000..06ea471d --- /dev/null +++ b/docs/skin/menu.js @@ -0,0 +1,48 @@ +/* +* Licensed to the Apache Software Foundation (ASF) under one or more +* contributor license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright ownership. +* The ASF licenses this file to You under the Apache License, Version 2.0 +* (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +/** + * This script, when included in a html file, can be used to make collapsible menus + * + * Typical usage: + * + */ + +if (document.getElementById){ + document.write('') +} + +function SwitchMenu(obj) +{ + if(document.getElementById) { + var el = document.getElementById(obj); + var title = document.getElementById(obj+'Title'); + + if(obj.indexOf("_selected_")==0&&el.style.display == ""){ + el.style.display = "block"; + title.className = "pagegroupselected"; + } + + if(el.style.display != "block"){ + el.style.display = "block"; + title.className = "pagegroupopen"; + } + else{ + el.style.display = "none"; + title.className = "pagegroup"; + } + }// end - if(document.getElementById) +}//end - function SwitchMenu(obj) diff --git a/docs/skin/ns4_only.css b/docs/skin/ns4_only.css new file mode 100644 index 00000000..dd2d68b6 --- /dev/null +++ b/docs/skin/ns4_only.css @@ -0,0 +1,254 @@ +/* $Id: ns4_only.css,v 1.4 2003/04/10 22:58:32 tfahrner Exp $ + +simple rules suitable for Netscape 4.x only; richer rules are in tigris.css. see */ + +/* colors, backgrounds, borders, link indication */ + +body { + background: #fff; + color: #000; + } +#leftcol a:link, #leftcol a:visited { + color: blue; + } +a:active, a:hover, #leftcol a:active, #leftcol a:hover { + color: #f30; + } +#login a:link, #login a:visited { + color: white; + text-decoration: underline; + } +#banner a:active, #banner a:hover { + color: #f90; + } +#leftcol a, #breadcrumbs a { + text-decoration: none; + } +#apphead h2 em { + color: #777 + } +.a td { + background: #ddd; + } +.b td { + background: #efefef; + } +.tabs th { + background-color: #ddd; + color: #fff; + } +.tabs td { + background-color: #666; + } +.tabs th, .tabs th a:link, .tabs th a:visited { + color: #333; + } +.tabs td, .tabs td a:link, .tabs td a:visited { + color: #fff; + } +.app th { + background-color: #bbb; + } +.app .axial th { + background-color: #ddd; + color: black + } +.alert { + color: #c00; + } +.confirm { + color: green; + } +.info { + color: blue; + } +.selection { + background: #ffc; + } +#login { + color: #fff; + } +#banner, #banner td { + background: #036; + color: #fff; + } +body #banner #login a { + color: white; + } +.cvsdiff, .cvsblame { + background-color: #ccc; + } +.cvsdiffadd { + background-color: #afa; + } +.cvsdiffremove { + background-color: #faa; + } +.cvsdiffchanges1 { + background-color: #ff7; + } +.cvsdiffchanges2 { + background-color: #ff7; + } +.band1 { + color: #fff; + background-color: #663; +} + +.band2 { + color: #fff; + background-color: #66C; +} + +.band3 { + background-color: #C99; +} + +.band4 { + background-color: #CFF; +} + +.band5 { + color: #fff; + background-color: #336; +} + +.band6 { + color: #fff; + background-color: #966; +} + +.band7 { + background-color: #9CC; +} + +.band8 { + background-color: #FFC; +} + +.band9 { + color: #fff; + background-color: #633; +} + +.band10 { + color: #fff; + background-color: #699; +} + +.band11 { + background-color: #CC9; +} + +.band12 { + background-color: #CCF; +} + +.band13 { + color: #fff; + background-color: #366; +} + +.band14 { + color: #fff; + background-color: #996; +} + +.band15 { + background-color: #99C; +} + +.band16 { + background-color: #FCC; +} + + + +/* font and text properties, exclusive of link indication, alignment, text-indent */ + +body, div, p, th, td, li, dl, dd { + font-family: Lucida, Arial, Helvetica, sans-serif; + } +code, pre { + font-family: 'Andale Mono', Courier, monospace; + } +h2, h3, h4 { + font-family: Tahoma, Verdana, Helvetica, Arial, sans-serif; + } +.selection { + font-weight: bold + } +#login .username { + font-weight: bold; + } +#apphead h2 em { + font-style: normal; + } +.tabs th { + font-weight: bold + } + +/* box properties (exclusive of borders), positioning, alignments, list types, text-indent */ + +th, td { + text-align: left; + vertical-align: top + } +.right { + text-align: right; + } +.center { + text-align: center; + } +body .app .axial th { + text-align: right; + } +.app .axial td th { + text-align: left; + } +body td .stb { + margin-top: 1em; + text-indent: 0; + } +body td .mtb { + margin-top: 2em; + text-indent: 0; + } +dd { + margin-bottom: .67em; + } +#footer, #breadcrumbs { + margin: 4px + } +.courtesylinks { + margin-top: 1em; + padding-top: 1em + } +#navcolumn .toolgroup { + margin-bottom: 1em; + margin-left: 4px; + } +#navcolumn .body div { + margin-top: .3em; + padding-left: 1em; + } +#banner, #banner td { + vertical-align: middle; + } +body.docs, body.nonav { + margin: 1em + } +.tier1 { margin-left: 0 } +.tier2 { margin-left: 1.5em } +.tier3 { margin-left: 3em } +.tier4 { margin-left: 4.5em } +.tier5 { margin-left: 6em } +.tier6 { margin-left: 7.5em } +.tier7 { margin-left: 9em } +.tier8 { margin-left: 10.5em } +.tier9 { margin-left: 12em } +.tier10 { margin-left: 13.5em } + +.messagechild { + padding-left: 34px; +} diff --git a/docs/skin/print.css b/docs/skin/print.css new file mode 100644 index 00000000..e176a93e --- /dev/null +++ b/docs/skin/print.css @@ -0,0 +1,9 @@ +/* $Id: print.css,v 1.2 2003/04/10 22:58:32 tfahrner Exp $ */ + +#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks { + display: none; + } +body.docs div.docs { + margin: 0 !important; + border: none !important + } \ No newline at end of file diff --git a/docs/skin/prototype.js b/docs/skin/prototype.js new file mode 100644 index 00000000..ed7d920c --- /dev/null +++ b/docs/skin/prototype.js @@ -0,0 +1,1257 @@ +/* Prototype JavaScript framework, version 1.4.0_pre4 + * (c) 2005 Sam Stephenson + * + * THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please diff + * against the source tree, available from the Prototype darcs repository. + * + * Prototype is freely distributable under the terms of an MIT-style license. + * + * For details, see the Prototype web site: http://prototype.conio.net/ + * +/*--------------------------------------------------------------------------*/ + +var Prototype = { + Version: '1.4.0_pre4', + + emptyFunction: function() {}, + K: function(x) {return x} +} + +var Class = { + create: function() { + return function() { + this.initialize.apply(this, arguments); + } + } +} + +var Abstract = new Object(); + +Object.extend = function(destination, source) { + for (property in source) { + destination[property] = source[property]; + } + return destination; +} + +Function.prototype.bind = function(object) { + var __method = this; + return function() { + return __method.apply(object, arguments); + } +} + +Function.prototype.bindAsEventListener = function(object) { + var __method = this; + return function(event) { + return __method.call(object, event || window.event); + } +} + +Number.prototype.toColorPart = function() { + var digits = this.toString(16); + if (this < 16) return '0' + digits; + return digits; +} + +var Try = { + these: function() { + var returnValue; + + for (var i = 0; i < arguments.length; i++) { + var lambda = arguments[i]; + try { + returnValue = lambda(); + break; + } catch (e) {} + } + + return returnValue; + } +} + +/*--------------------------------------------------------------------------*/ + +var PeriodicalExecuter = Class.create(); +PeriodicalExecuter.prototype = { + initialize: function(callback, frequency) { + this.callback = callback; + this.frequency = frequency; + this.currentlyExecuting = false; + + this.registerCallback(); + }, + + registerCallback: function() { + setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); + }, + + onTimerEvent: function() { + if (!this.currentlyExecuting) { + try { + this.currentlyExecuting = true; + this.callback(); + } finally { + this.currentlyExecuting = false; + } + } + } +} + +/*--------------------------------------------------------------------------*/ + +function $() { + var elements = new Array(); + + for (var i = 0; i < arguments.length; i++) { + var element = arguments[i]; + if (typeof element == 'string') + element = document.getElementById(element); + + if (arguments.length == 1) + return element; + + elements.push(element); + } + + return elements; +} + +if (!Array.prototype.push) { + Array.prototype.push = function() { + var startLength = this.length; + for (var i = 0; i < arguments.length; i++) + this[startLength + i] = arguments[i]; + return this.length; + } +} + +if (!Function.prototype.apply) { + // Based on code from http://www.youngpup.net/ + Function.prototype.apply = function(object, parameters) { + var parameterStrings = new Array(); + if (!object) object = window; + if (!parameters) parameters = new Array(); + + for (var i = 0; i < parameters.length; i++) + parameterStrings[i] = 'parameters[' + i + ']'; + + object.__apply__ = this; + var result = eval('object.__apply__(' + + parameterStrings.join(', ') + ')'); + object.__apply__ = null; + + return result; + } +} + +Object.extend(String.prototype, { + stripTags: function() { + return this.replace(/<\/?[^>]+>/gi, ''); + }, + + escapeHTML: function() { + var div = document.createElement('div'); + var text = document.createTextNode(this); + div.appendChild(text); + return div.innerHTML; + }, + + unescapeHTML: function() { + var div = document.createElement('div'); + div.innerHTML = this.stripTags(); + return div.childNodes[0].nodeValue; + }, + + parseQuery: function() { + var str = this; + if (str.substring(0,1) == '?') { + str = this.substring(1); + } + var result = {}; + var pairs = str.split('&'); + for (var i = 0; i < pairs.length; i++) { + var pair = pairs[i].split('='); + result[pair[0]] = pair[1]; + } + return result; + } +}); + + +var _break = new Object(); +var _continue = new Object(); + +var Enumerable = { + each: function(iterator) { + var index = 0; + try { + this._each(function(value) { + try { + iterator(value, index++); + } catch (e) { + if (e != _continue) throw e; + } + }); + } catch (e) { + if (e != _break) throw e; + } + }, + + all: function(iterator) { + var result = true; + this.each(function(value, index) { + if (!(result &= (iterator || Prototype.K)(value, index))) + throw _break; + }); + return result; + }, + + any: function(iterator) { + var result = true; + this.each(function(value, index) { + if (result &= (iterator || Prototype.K)(value, index)) + throw _break; + }); + return result; + }, + + collect: function(iterator) { + var results = []; + this.each(function(value, index) { + results.push(iterator(value, index)); + }); + return results; + }, + + detect: function (iterator) { + var result; + this.each(function(value, index) { + if (iterator(value, index)) { + result = value; + throw _break; + } + }); + return result; + }, + + findAll: function(iterator) { + var results = []; + this.each(function(value, index) { + if (iterator(value, index)) + results.push(value); + }); + return results; + }, + + grep: function(pattern, iterator) { + var results = []; + this.each(function(value, index) { + var stringValue = value.toString(); + if (stringValue.match(pattern)) + results.push((iterator || Prototype.K)(value, index)); + }) + return results; + }, + + include: function(object) { + var found = false; + this.each(function(value) { + if (value == object) { + found = true; + throw _break; + } + }); + return found; + }, + + inject: function(memo, iterator) { + this.each(function(value, index) { + memo = iterator(memo, value, index); + }); + return memo; + }, + + invoke: function(method) { + var args = $A(arguments).slice(1); + return this.collect(function(value) { + return value[method].apply(value, args); + }); + }, + + max: function(iterator) { + var result; + this.each(function(value, index) { + value = (iterator || Prototype.K)(value, index); + if (value >= (result || value)) + result = value; + }); + return result; + }, + + min: function(iterator) { + var result; + this.each(function(value, index) { + value = (iterator || Prototype.K)(value, index); + if (value <= (result || value)) + result = value; + }); + return result; + }, + + partition: function(iterator) { + var trues = [], falses = []; + this.each(function(value, index) { + ((iterator || Prototype.K)(value, index) ? + trues : falses).push(value); + }); + return [trues, falses]; + }, + + pluck: function(property) { + var results = []; + this.each(function(value, index) { + results.push(value[property]); + }); + return results; + }, + + reject: function(iterator) { + var results = []; + this.each(function(value, index) { + if (!iterator(value, index)) + results.push(value); + }); + return results; + }, + + sortBy: function(iterator) { + return this.collect(function(value, index) { + return {value: value, criteria: iterator(value, index)}; + }).sort(function(left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + }).pluck('value'); + }, + + toArray: function() { + return this.collect(Prototype.K); + }, + + zip: function() { + var iterator = Prototype.K, args = $A(arguments); + if (typeof args.last() == 'function') + iterator = args.pop(); + + var collections = [this].concat(args).map($A); + return this.map(function(value, index) { + iterator(value = collections.pluck(index)); + return value; + }); + } +} + +Object.extend(Enumerable, { + map: Enumerable.collect, + find: Enumerable.detect, + select: Enumerable.findAll, + member: Enumerable.include, + entries: Enumerable.toArray +}); + +$A = Array.from = function(iterable) { + var results = []; + for (var i = 0; i < iterable.length; i++) + results.push(iterable[i]); + return results; +} + +Object.extend(Array.prototype, { + _each: function(iterator) { + for (var i = 0; i < this.length; i++) + iterator(this[i]); + }, + + first: function() { + return this[0]; + }, + + last: function() { + return this[this.length - 1]; + } +}); + +Object.extend(Array.prototype, Enumerable); + + +var Ajax = { + getTransport: function() { + return Try.these( + function() {return new ActiveXObject('Msxml2.XMLHTTP')}, + function() {return new ActiveXObject('Microsoft.XMLHTTP')}, + function() {return new XMLHttpRequest()} + ) || false; + } +} + +Ajax.Base = function() {}; +Ajax.Base.prototype = { + setOptions: function(options) { + this.options = { + method: 'post', + asynchronous: true, + parameters: '' + } + Object.extend(this.options, options || {}); + }, + + responseIsSuccess: function() { + return this.transport.status == undefined + || this.transport.status == 0 + || (this.transport.status >= 200 && this.transport.status < 300); + }, + + responseIsFailure: function() { + return !this.responseIsSuccess(); + } +} + +Ajax.Request = Class.create(); +Ajax.Request.Events = + ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; + +Ajax.Request.prototype = Object.extend(new Ajax.Base(), { + initialize: function(url, options) { + this.transport = Ajax.getTransport(); + this.setOptions(options); + this.request(url); + }, + + request: function(url) { + var parameters = this.options.parameters || ''; + if (parameters.length > 0) parameters += '&_='; + + try { + if (this.options.method == 'get') + url += '?' + parameters; + + this.transport.open(this.options.method, url, + this.options.asynchronous); + + if (this.options.asynchronous) { + this.transport.onreadystatechange = this.onStateChange.bind(this); + setTimeout((function() {this.respondToReadyState(1)}).bind(this), 10); + } + + this.setRequestHeaders(); + + var body = this.options.postBody ? this.options.postBody : parameters; + this.transport.send(this.options.method == 'post' ? body : null); + + } catch (e) { + } + }, + + setRequestHeaders: function() { + var requestHeaders = + ['X-Requested-With', 'XMLHttpRequest', + 'X-Prototype-Version', Prototype.Version]; + + if (this.options.method == 'post') { + requestHeaders.push('Content-type', + 'application/x-www-form-urlencoded'); + + /* Force "Connection: close" for Mozilla browsers to work around + * a bug where XMLHttpReqeuest sends an incorrect Content-length + * header. See Mozilla Bugzilla #246651. + */ + if (this.transport.overrideMimeType) + requestHeaders.push('Connection', 'close'); + } + + if (this.options.requestHeaders) + requestHeaders.push.apply(requestHeaders, this.options.requestHeaders); + + for (var i = 0; i < requestHeaders.length; i += 2) + this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i+1]); + }, + + onStateChange: function() { + var readyState = this.transport.readyState; + if (readyState != 1) + this.respondToReadyState(this.transport.readyState); + }, + + respondToReadyState: function(readyState) { + var event = Ajax.Request.Events[readyState]; + + if (event == 'Complete') + (this.options['on' + this.transport.status] + || this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')] + || Prototype.emptyFunction)(this.transport); + + (this.options['on' + event] || Prototype.emptyFunction)(this.transport); + + /* Avoid memory leak in MSIE: clean up the oncomplete event handler */ + if (event == 'Complete') + this.transport.onreadystatechange = Prototype.emptyFunction; + } +}); + +Ajax.Updater = Class.create(); +Ajax.Updater.ScriptFragment = '(?:)((\n|.)*?)(?:<\/script>)'; + +Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), { + initialize: function(container, url, options) { + this.containers = { + success: container.success ? $(container.success) : $(container), + failure: container.failure ? $(container.failure) : + (container.success ? null : $(container)) + } + + this.transport = Ajax.getTransport(); + this.setOptions(options); + + var onComplete = this.options.onComplete || Prototype.emptyFunction; + this.options.onComplete = (function() { + this.updateContent(); + onComplete(this.transport); + }).bind(this); + + this.request(url); + }, + + updateContent: function() { + var receiver = this.responseIsSuccess() ? + this.containers.success : this.containers.failure; + + var match = new RegExp(Ajax.Updater.ScriptFragment, 'img'); + var response = this.transport.responseText.replace(match, ''); + var scripts = this.transport.responseText.match(match); + + if (receiver) { + if (this.options.insertion) { + new this.options.insertion(receiver, response); + } else { + receiver.innerHTML = response; + } + } + + if (this.responseIsSuccess()) { + if (this.onComplete) + setTimeout((function() {this.onComplete( + this.transport)}).bind(this), 10); + } + + if (this.options.evalScripts && scripts) { + match = new RegExp(Ajax.Updater.ScriptFragment, 'im'); + setTimeout((function() { + for (var i = 0; i < scripts.length; i++) + eval(scripts[i].match(match)[1]); + }).bind(this), 10); + } + } +}); + +Ajax.PeriodicalUpdater = Class.create(); +Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), { + initialize: function(container, url, options) { + this.setOptions(options); + this.onComplete = this.options.onComplete; + + this.frequency = (this.options.frequency || 2); + this.decay = 1; + + this.updater = {}; + this.container = container; + this.url = url; + + this.start(); + }, + + start: function() { + this.options.onComplete = this.updateComplete.bind(this); + this.onTimerEvent(); + }, + + stop: function() { + this.updater.onComplete = undefined; + clearTimeout(this.timer); + (this.onComplete || Ajax.emptyFunction).apply(this, arguments); + }, + + updateComplete: function(request) { + if (this.options.decay) { + this.decay = (request.responseText == this.lastText ? + this.decay * this.options.decay : 1); + + this.lastText = request.responseText; + } + this.timer = setTimeout(this.onTimerEvent.bind(this), + this.decay * this.frequency * 1000); + }, + + onTimerEvent: function() { + this.updater = new Ajax.Updater(this.container, this.url, this.options); + } +}); + +document.getElementsByClassName = function(className) { + var children = document.getElementsByTagName('*') || document.all; + var elements = new Array(); + + for (var i = 0; i < children.length; i++) { + var child = children[i]; + var classNames = child.className.split(' '); + for (var j = 0; j < classNames.length; j++) { + if (classNames[j] == className) { + elements.push(child); + break; + } + } + } + + return elements; +} + +/*--------------------------------------------------------------------------*/ + +if (!window.Element) { + var Element = new Object(); +} + +Object.extend(Element, { + toggle: function() { + for (var i = 0; i < arguments.length; i++) { + var element = $(arguments[i]); + element.style.display = + (element.style.display == 'none' ? '' : 'none'); + } + }, + + hide: function() { + for (var i = 0; i < arguments.length; i++) { + var element = $(arguments[i]); + element.style.display = 'none'; + } + }, + + show: function() { + for (var i = 0; i < arguments.length; i++) { + var element = $(arguments[i]); + element.style.display = ''; + } + }, + + remove: function(element) { + element = $(element); + element.parentNode.removeChild(element); + }, + + getHeight: function(element) { + element = $(element); + return element.offsetHeight; + }, + + hasClassName: function(element, className) { + element = $(element); + if (!element) + return; + var a = element.className.split(' '); + for (var i = 0; i < a.length; i++) { + if (a[i] == className) + return true; + } + return false; + }, + + addClassName: function(element, className) { + element = $(element); + Element.removeClassName(element, className); + element.className += ' ' + className; + }, + + removeClassName: function(element, className) { + element = $(element); + if (!element) + return; + var newClassName = ''; + var a = element.className.split(' '); + for (var i = 0; i < a.length; i++) { + if (a[i] != className) { + if (i > 0) + newClassName += ' '; + newClassName += a[i]; + } + } + element.className = newClassName; + }, + + // removes whitespace-only text node children + cleanWhitespace: function(element) { + var element = $(element); + for (var i = 0; i < element.childNodes.length; i++) { + var node = element.childNodes[i]; + if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) + Element.remove(node); + } + } +}); + +var Toggle = new Object(); +Toggle.display = Element.toggle; + +/*--------------------------------------------------------------------------*/ + +Abstract.Insertion = function(adjacency) { + this.adjacency = adjacency; +} + +Abstract.Insertion.prototype = { + initialize: function(element, content) { + this.element = $(element); + this.content = content; + + if (this.adjacency && this.element.insertAdjacentHTML) { + this.element.insertAdjacentHTML(this.adjacency, this.content); + } else { + this.range = this.element.ownerDocument.createRange(); + if (this.initializeRange) this.initializeRange(); + this.fragment = this.range.createContextualFragment(this.content); + this.insertContent(); + } + } +} + +var Insertion = new Object(); + +Insertion.Before = Class.create(); +Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), { + initializeRange: function() { + this.range.setStartBefore(this.element); + }, + + insertContent: function() { + this.element.parentNode.insertBefore(this.fragment, this.element); + } +}); + +Insertion.Top = Class.create(); +Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), { + initializeRange: function() { + this.range.selectNodeContents(this.element); + this.range.collapse(true); + }, + + insertContent: function() { + this.element.insertBefore(this.fragment, this.element.firstChild); + } +}); + +Insertion.Bottom = Class.create(); +Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), { + initializeRange: function() { + this.range.selectNodeContents(this.element); + this.range.collapse(this.element); + }, + + insertContent: function() { + this.element.appendChild(this.fragment); + } +}); + +Insertion.After = Class.create(); +Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), { + initializeRange: function() { + this.range.setStartAfter(this.element); + }, + + insertContent: function() { + this.element.parentNode.insertBefore(this.fragment, + this.element.nextSibling); + } +}); + +var Field = { + clear: function() { + for (var i = 0; i < arguments.length; i++) + $(arguments[i]).value = ''; + }, + + focus: function(element) { + $(element).focus(); + }, + + present: function() { + for (var i = 0; i < arguments.length; i++) + if ($(arguments[i]).value == '') return false; + return true; + }, + + select: function(element) { + $(element).select(); + }, + + activate: function(element) { + $(element).focus(); + $(element).select(); + } +} + +/*--------------------------------------------------------------------------*/ + +var Form = { + serialize: function(form) { + var elements = Form.getElements($(form)); + var queryComponents = new Array(); + + for (var i = 0; i < elements.length; i++) { + var queryComponent = Form.Element.serialize(elements[i]); + if (queryComponent) + queryComponents.push(queryComponent); + } + + return queryComponents.join('&'); + }, + + getElements: function(form) { + var form = $(form); + var elements = new Array(); + + for (tagName in Form.Element.Serializers) { + var tagElements = form.getElementsByTagName(tagName); + for (var j = 0; j < tagElements.length; j++) + elements.push(tagElements[j]); + } + return elements; + }, + + getInputs: function(form, typeName, name) { + var form = $(form); + var inputs = form.getElementsByTagName('input'); + + if (!typeName && !name) + return inputs; + + var matchingInputs = new Array(); + for (var i = 0; i < inputs.length; i++) { + var input = inputs[i]; + if ((typeName && input.type != typeName) || + (name && input.name != name)) + continue; + matchingInputs.push(input); + } + + return matchingInputs; + }, + + disable: function(form) { + var elements = Form.getElements(form); + for (var i = 0; i < elements.length; i++) { + var element = elements[i]; + element.blur(); + element.disabled = 'true'; + } + }, + + enable: function(form) { + var elements = Form.getElements(form); + for (var i = 0; i < elements.length; i++) { + var element = elements[i]; + element.disabled = ''; + } + }, + + focusFirstElement: function(form) { + var form = $(form); + var elements = Form.getElements(form); + for (var i = 0; i < elements.length; i++) { + var element = elements[i]; + if (element.type != 'hidden' && !element.disabled) { + Field.activate(element); + break; + } + } + }, + + reset: function(form) { + $(form).reset(); + } +} + +Form.Element = { + serialize: function(element) { + var element = $(element); + var method = element.tagName.toLowerCase(); + var parameter = Form.Element.Serializers[method](element); + + if (parameter) + return encodeURIComponent(parameter[0]) + '=' + + encodeURIComponent(parameter[1]); + }, + + getValue: function(element) { + var element = $(element); + var method = element.tagName.toLowerCase(); + var parameter = Form.Element.Serializers[method](element); + + if (parameter) + return parameter[1]; + } +} + +Form.Element.Serializers = { + input: function(element) { + switch (element.type.toLowerCase()) { + case 'submit': + case 'hidden': + case 'password': + case 'text': + return Form.Element.Serializers.textarea(element); + case 'checkbox': + case 'radio': + return Form.Element.Serializers.inputSelector(element); + } + return false; + }, + + inputSelector: function(element) { + if (element.checked) + return [element.name, element.value]; + }, + + textarea: function(element) { + return [element.name, element.value]; + }, + + select: function(element) { + var value = ''; + if (element.type == 'select-one') { + var index = element.selectedIndex; + if (index >= 0) + value = element.options[index].value || element.options[index].text; + } else { + value = new Array(); + for (var i = 0; i < element.length; i++) { + var opt = element.options[i]; + if (opt.selected) + value.push(opt.value || opt.text); + } + } + return [element.name, value]; + } +} + +/*--------------------------------------------------------------------------*/ + +var $F = Form.Element.getValue; + +/*--------------------------------------------------------------------------*/ + +Abstract.TimedObserver = function() {} +Abstract.TimedObserver.prototype = { + initialize: function(element, frequency, callback) { + this.frequency = frequency; + this.element = $(element); + this.callback = callback; + + this.lastValue = this.getValue(); + this.registerCallback(); + }, + + registerCallback: function() { + setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); + }, + + onTimerEvent: function() { + var value = this.getValue(); + if (this.lastValue != value) { + this.callback(this.element, value); + this.lastValue = value; + } + } +} + +Form.Element.Observer = Class.create(); +Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { + getValue: function() { + return Form.Element.getValue(this.element); + } +}); + +Form.Observer = Class.create(); +Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { + getValue: function() { + return Form.serialize(this.element); + } +}); + +/*--------------------------------------------------------------------------*/ + +Abstract.EventObserver = function() {} +Abstract.EventObserver.prototype = { + initialize: function(element, callback) { + this.element = $(element); + this.callback = callback; + + this.lastValue = this.getValue(); + if (this.element.tagName.toLowerCase() == 'form') + this.registerFormCallbacks(); + else + this.registerCallback(this.element); + }, + + onElementEvent: function() { + var value = this.getValue(); + if (this.lastValue != value) { + this.callback(this.element, value); + this.lastValue = value; + } + }, + + registerFormCallbacks: function() { + var elements = Form.getElements(this.element); + for (var i = 0; i < elements.length; i++) + this.registerCallback(elements[i]); + }, + + registerCallback: function(element) { + if (element.type) { + switch (element.type.toLowerCase()) { + case 'checkbox': + case 'radio': + element.target = this; + element.prev_onclick = element.onclick || Prototype.emptyFunction; + element.onclick = function() { + this.prev_onclick(); + this.target.onElementEvent(); + } + break; + case 'password': + case 'text': + case 'textarea': + case 'select-one': + case 'select-multiple': + element.target = this; + element.prev_onchange = element.onchange || Prototype.emptyFunction; + element.onchange = function() { + this.prev_onchange(); + this.target.onElementEvent(); + } + break; + } + } + } +} + +Form.Element.EventObserver = Class.create(); +Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { + getValue: function() { + return Form.Element.getValue(this.element); + } +}); + +Form.EventObserver = Class.create(); +Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { + getValue: function() { + return Form.serialize(this.element); + } +}); + + +if (!window.Event) { + var Event = new Object(); +} + +Object.extend(Event, { + KEY_BACKSPACE: 8, + KEY_TAB: 9, + KEY_RETURN: 13, + KEY_ESC: 27, + KEY_LEFT: 37, + KEY_UP: 38, + KEY_RIGHT: 39, + KEY_DOWN: 40, + KEY_DELETE: 46, + + element: function(event) { + return event.target || event.srcElement; + }, + + isLeftClick: function(event) { + return (((event.which) && (event.which == 1)) || + ((event.button) && (event.button == 1))); + }, + + pointerX: function(event) { + return event.pageX || (event.clientX + + (document.documentElement.scrollLeft || document.body.scrollLeft)); + }, + + pointerY: function(event) { + return event.pageY || (event.clientY + + (document.documentElement.scrollTop || document.body.scrollTop)); + }, + + stop: function(event) { + if (event.preventDefault) { + event.preventDefault(); + event.stopPropagation(); + } else { + event.returnValue = false; + } + }, + + // find the first node with the given tagName, starting from the + // node the event was triggered on; traverses the DOM upwards + findElement: function(event, tagName) { + var element = Event.element(event); + while (element.parentNode && (!element.tagName || + (element.tagName.toUpperCase() != tagName.toUpperCase()))) + element = element.parentNode; + return element; + }, + + observers: false, + + _observeAndCache: function(element, name, observer, useCapture) { + if (!this.observers) this.observers = []; + if (element.addEventListener) { + this.observers.push([element, name, observer, useCapture]); + element.addEventListener(name, observer, useCapture); + } else if (element.attachEvent) { + this.observers.push([element, name, observer, useCapture]); + element.attachEvent('on' + name, observer); + } + }, + + unloadCache: function() { + if (!Event.observers) return; + for (var i = 0; i < Event.observers.length; i++) { + Event.stopObserving.apply(this, Event.observers[i]); + Event.observers[i][0] = null; + } + Event.observers = false; + }, + + observe: function(element, name, observer, useCapture) { + var element = $(element); + useCapture = useCapture || false; + + if (name == 'keypress' && + ((/Konqueror|Safari|KHTML/.test(navigator.userAgent)) + || element.attachEvent)) + name = 'keydown'; + + this._observeAndCache(element, name, observer, useCapture); + }, + + stopObserving: function(element, name, observer, useCapture) { + var element = $(element); + useCapture = useCapture || false; + + if (name == 'keypress' && + ((/Konqueror|Safari|KHTML/.test(navigator.userAgent)) + || element.detachEvent)) + name = 'keydown'; + + if (element.removeEventListener) { + element.removeEventListener(name, observer, useCapture); + } else if (element.detachEvent) { + element.detachEvent('on' + name, observer); + } + } +}); + +/* prevent memory leaks in IE */ +Event.observe(window, 'unload', Event.unloadCache, false); + +var Position = { + + // set to true if needed, warning: firefox performance problems + // NOT neeeded for page scrolling, only if draggable contained in + // scrollable elements + includeScrollOffsets: false, + + // must be called before calling withinIncludingScrolloffset, every time the + // page is scrolled + prepare: function() { + this.deltaX = window.pageXOffset + || document.documentElement.scrollLeft + || document.body.scrollLeft + || 0; + this.deltaY = window.pageYOffset + || document.documentElement.scrollTop + || document.body.scrollTop + || 0; + }, + + realOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.scrollTop || 0; + valueL += element.scrollLeft || 0; + element = element.parentNode; + } while (element); + return [valueL, valueT]; + }, + + cumulativeOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + element = element.offsetParent; + } while (element); + return [valueL, valueT]; + }, + + // caches x/y coordinate pair to use with overlap + within: function(element, x, y) { + if (this.includeScrollOffsets) + return this.withinIncludingScrolloffsets(element, x, y); + this.xcomp = x; + this.ycomp = y; + this.offset = this.cumulativeOffset(element); + + return (y >= this.offset[1] && + y < this.offset[1] + element.offsetHeight && + x >= this.offset[0] && + x < this.offset[0] + element.offsetWidth); + }, + + withinIncludingScrolloffsets: function(element, x, y) { + var offsetcache = this.realOffset(element); + + this.xcomp = x + offsetcache[0] - this.deltaX; + this.ycomp = y + offsetcache[1] - this.deltaY; + this.offset = this.cumulativeOffset(element); + + return (this.ycomp >= this.offset[1] && + this.ycomp < this.offset[1] + element.offsetHeight && + this.xcomp >= this.offset[0] && + this.xcomp < this.offset[0] + element.offsetWidth); + }, + + // within must be called directly before + overlap: function(mode, element) { + if (!mode) return 0; + if (mode == 'vertical') + return ((this.offset[1] + element.offsetHeight) - this.ycomp) / + element.offsetHeight; + if (mode == 'horizontal') + return ((this.offset[0] + element.offsetWidth) - this.xcomp) / + element.offsetWidth; + }, + + clone: function(source, target) { + source = $(source); + target = $(target); + target.style.position = 'absolute'; + var offsets = this.cumulativeOffset(source); + target.style.top = offsets[1] + 'px'; + target.style.left = offsets[0] + 'px'; + target.style.width = source.offsetWidth + 'px'; + target.style.height = source.offsetHeight + 'px'; + } +} diff --git a/docs/skin/quirks.css b/docs/skin/quirks.css new file mode 100644 index 00000000..98a08b0e --- /dev/null +++ b/docs/skin/quirks.css @@ -0,0 +1,17 @@ +/* + + This file defines basic default formatting for HTML conforming to Tigris application style. To extend or override these rules for your instance, edit inst.css instead of this file. */ + +/* colors, backgrounds, borders, link indication */ +/* + +This file contains rules that extend or override the standard rules defined in tigris.css +that need changing as we output loose-DTD html while the original one used a tigris DTD. +This makes the browser show content in 'quirks' mode, that impacts in this case table + inheritance. +*/ + +table { + font-size: small; +} + diff --git a/docs/skin/tigris.css b/docs/skin/tigris.css new file mode 100644 index 00000000..4835ab4f --- /dev/null +++ b/docs/skin/tigris.css @@ -0,0 +1,916 @@ +/* $Id: tigris.css,v 1.9 2003/04/10 22:58:32 tfahrner Exp $ + + This file defines basic default formatting for HTML conforming to Tigris application style. To extend or override these rules for your instance, edit inst.css instead of this file. */ + +/* colors, backgrounds, borders, link indication */ +body { + background: #fff; + color: #000; +} + +img { border: 0; } + +.app h3, .app h4, .tabs td, .tabs th, .functnbar { + background-image: url(images/nw_maj_rond.gif); + background-repeat: no-repeat; +} + +.functnbar, .functnbar2 { + background-color: #aaa; +} + +.functnbar2, .functnbar3 { + background-color: #aaa; + background-image: url(images/sw_maj_rond.gif); + background-repeat: no-repeat; + background-position: bottom left; +} + +.functnbar3 { + background-color: #ddd; + background-image: url(images/sw_med_rond.gif); +} + +.functnbar, .functnbar2, .functnbar3 { + color: #000; +} + +.functnbar a, .functnbar2 a, .functnbar3 a { + color: #000; + text-decoration: underline; +} + +#navcolumn .body div, body.docs #toc li li { + background-image: url(images/strich.gif); + background-repeat: no-repeat; + background-position: .5em .5em; +} + +#searchbox .body div, #navcolumn .body .heading { + background-image: none; +} + +a:link, #navcolumn a:visited, .app a:visited, .tasknav a:visited { + color: blue; +} + +a:link.selfref, a:visited.selfref { + color: #555 !important; + text-decoration: none; +} + +a:active, a:hover, #leftcol a:active, #leftcol a:hover { + color: #f30 !important; +} + +#leftcol a, #breadcrumbs a { + text-decoration: none; +} + +.app h3, .app h4 { + color: #fff; +} + +.app h3 { + background-color: #333; +} + +.app h3 a:link, .app h3 a:visited, .app h4 a:link, .app h4 a:visited { + color: #fff !important; + text-decoration: underline; +} + +.app h4 { + background-color: #888; +} + +.a td { + background: #ddd; +} + +.b td { + background: #efefef; +} + +table, th, td { + border: none; +} + +div.colbar { + background: #eee; + border-color: #999 #EEE #EEE #999; + border-width: 1px; + border-style: solid; +} + +.toolgroup { + background: #efefef; +} + +.toolgroup .label { + border-bottom: 1px solid #666; + border-right: 1px solid #666; + background: #ddd; + color: #555; +} + +.toolgroup .body { + border-right: 1px solid #aaa; + border-bottom: 1px solid #aaa; +} + +#breadcrumbs { + border-top: 1px solid #fff; + background-color: #ccc; +} + +#main { + border-top: 1px solid #999; +} + +#rightcol div.www, #rightcol div.help { + border: 1px solid #ddd; +} + +body.docs div.docs { + background-color: #fff; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; +} + +#helptext .label { + background-image: url(images/icon_help_sml.gif); + background-repeat: no-repeat; + background-position: 97%; +} + +body.docs { + background: #eee url(images/help_logo.gif) top right no-repeat !important; +} + +.docs h3, .docs h4 { + border-top: solid 1px #000; +} + +#apphead h2 em { + color: #777; +} + +.app th { + background-color: #bbb; +} + +.tabs th { + border-right: 1px solid #333; + background-color: #ddd; + color: #fff; + border-left: 1px solid #fff; +} + +.tabs td { + background-color: #999; + border-bottom: 1px solid #fff; + border-right: 1px solid #fff; + border-left: 1px solid #fff; +} + +.tabs { + border-bottom: 6px #ddd solid; +} + +.tabs th, .tabs th a:link, .tabs th a:visited { + color: #555; +} + +.tabs td, .tabs td a:link, .tabs td a:visited { + color: #fff; +} + +.tabs a { + text-decoration: none; +} + +.axial th { + background-color: #ddd; + color: black; +} + +.alert { + background-color: #ff9; +} + +.expandedwaste { + background: url(images/icon_arrowwaste2_sml.gif) no-repeat; +} + +.collapsedwaste { + background: url(images/icon_arrowwaste1_sml.gif) no-repeat; +} + +.filebrowse .expanded, .filebrowse-alt .expanded { + background-image: url(images/icon_arrowfolderopen2_sml.gif); + background-repeat: no-repeat; +} + +.filebrowse .collapsed, .filebrowse-alt .collapsed { + background-image: url(images/icon_arrowfolderclosed1_sml.gif); + background-repeat: no-repeat; +} + +.filebrowse .leafnode, .filebrowse-alt .leafnode { + background-image: url(images/icon_folder_sml.gif); + background-repeat: no-repeat; +} + +.filebrowse .leaf, .filebrowse-alt .leaf { + background-image: url(images/icon_doc_sml.gif); + background-repeat: no-repeat; +} + +.sortup { + background: url(images/icon_sortup.gif) no-repeat; +} + +.sortdown { + background: url(images/icon_sortdown.gif) no-repeat; +} + +.collapsedwaste { + background: url(images/icon_arrowwaste1_sml.gif) no-repeat; +} + +body .grid td { + border-top: 1px solid #ccc; + border-left: 1px solid #ccc; + background-color: transparent; +} + +.confirm { + color: #090; +} + +.info { + color: #069; +} + +.errormessage, .warningmessage, .donemessage, .infomessage { + border-top: 5px solid #900; + border-left: 1px solid #900; + background-image: url(images/icon_error_lrg.gif); + background-repeat: no-repeat; + background-position: 5px 1.33em; +} + +.warningmessage { + background-image: url(images/icon_warning_lrg.gif); + border-color: #c60; +} + +.donemessage { + background-image: url(images/icon_success_lrg.gif); + border-color: #090; +} + +.infomessage { + background-image: url(images/icon_info_lrg.gif); + border-color: #069; +} + +.docinfo { + background: url(images/icon_doc_lrg.gif) no-repeat; +} + +.dirinfo { + background: url(images/icon_folder_lrg.gif) no-repeat; +} + +.memberinfo { + background: url(images/icon_members_lrg.gif) no-repeat; +} + +.usergroupinfo { + background: url(images/icon_usergroups_lrg.gif) no-repeat; +} + +.errormark, .warningmark, .donemark, .infomark { + background: url(images/icon_error_sml.gif) no-repeat; +} + +.warningmark { + background-image: url(images/icon_warning_sml.gif); +} + +.donemark { + background-image: url(images/icon_success_sml.gif); +} + +.infomark { + background-image: url(images/icon_info_sml.gif); +} + +.cvsdiff, .cvsblame { + background-color: #ccc; +} + +.cvsdiffadd { + background-color: #afa; +} + +.cvsdiffremove { + background-color: #faa; +} + +.cvsdiffchanges1 { + background-color: #ff7; +} + +.cvsdiffchanges2 { + background-color: #ff7; +} + +li.selection ul a { + background: #fff; +} + +.band1 { + color: #fff; + background-color: #663; +} + +.band2 { + color: #fff; + background-color: #66C; +} + +.band3 { + background-color: #C99; +} + +.band4 { + background-color: #CFF; +} + +.band5 { + color: #fff; + background-color: #336; +} + +.band6 { + color: #fff; + background-color: #966; +} + +.band7 { + background-color: #9CC; +} + +.band8 { + background-color: #FFC; +} + +.band9 { + color: #fff; + background-color: #633; +} + +.band10 { + color: #fff; + background-color: #699; +} + +.band11 { + background-color: #CC9; +} + +.band12 { + background-color: #CCF; +} + +.band13 { + color: #fff; + background-color: #366; +} + +.band14 { + color: #fff; + background-color: #996; +} + +.band15 { + background-color: #99C; +} + +.band16 { + background-color: #FCC; +} + +.app .helplink, #helptext .helplink { + cursor: help; +} + +.legend th, .bars th { + background-color: #fff; +} + +/* font and text properties, exclusive of link indication, alignment, text-indent */ +body, th, td, input, select { + font-family: Verdana, Helvetica, Arial, sans-serif; +} + +code, pre { + font-family: 'Andale Mono', Courier, monospace; +} + +body, .app h3, .app h4, #rightcol h3, pre, code, #apphead h2 small { + font-size: x-small; + voice-family: "\"}\""; + voice-family: inherit; + font-size: small; +} + +small, div#footer, div#login, div.tabs th, div.tabs td, input, select, .paginate, .functnbar, .functnbar2, .functnbar3, #breadcrumbs, .courtesylinks, #rightcol div.help, .colbar, .tasknav, body.docs div#toc, #leftcol, .legend, .bars { + font-size: xx-small; + voice-family: "\"}\""; + voice-family: inherit; + font-size: x-small; +} + +.tabs td, .tabs th, dt, .tasknav .selfref, #login .username, .selection { + font-weight: bold; +} + +li.selection ul { + font-weight: normal; +} + +h4, table { + font-size: 1em; +} + +#apphead h2 em { + font-style: normal; +} + +#banner h1 { + font-size: 1.25em; +} + +/* box properties (exclusive of borders), positioning, alignments, list types, text-indent */ +#bodycol h2 { + margin-top: .3em; + margin-bottom: .5em; +} + +p, ul, ol, dl, .bars table { + margin-top: .67em; + margin-bottom: .67em; +} + +h3, h4 { + margin-bottom: 0; +} + +form { + margin: 0; +} + +#bodycol { + padding-left: 12px; + padding-right: 12px; + width: 100%; + voice-family: "\"}\""; + voice-family: inherit; + width: auto; +} + +html>body #bodycol { + width: auto; +} + +.docs { + line-height: 1.4; +} + +ol ol { + list-style-type: lower-alpha; +} + +ol ol ol { + list-style-type: lower-roman; +} + +.app h3, .app h4 { + padding: 5px; + margin-right: 2px; + margin-left: 2px; +} + +.app td, .app th { + padding: 2px 3px; +} + +.h3 p, .h4 p, .h3 dt, .h4 dt { + margin-right: 7px; + margin-left: 7px; +} + +.tasknav { + margin-bottom: 1.33em; +} + +div.colbar { + padding: 3px; + margin: 2px 2px 0; +} + +.tabs { + margin-top: .67em; + margin-right: 2px; + margin-left: 2px; + padding-left: 8px; +} + +.tabs td, .tabs th { + padding: 3px 9px; +} + +#rightcol div.www, #rightcol div.help { + padding: 0 .5em; +} + +body.docs #toc { + position: absolute; + top: 15px; + left: 0px; + width: 120px; + padding: 0 20px 0 0; +} + +body.docs #toc ul, #toc ol { + margin-left: 0; + padding-left: 0; +} + +body.docs #toc li { + margin-top: 7px; + padding-left: 10px; + list-style-type: none; +} + +body.docs div.docs { + margin: 61px 0 0 150px; + padding: 1em 2em 1em 1em !important; +} + +.docs p+p { + text-indent: 5%; + margin-top: -.67em; +} + +.docs h3, .docs h4 { + margin-bottom: .1em; + padding-top: .3em; +} + +.functnbar, .functnbar2, .functnbar3 { + padding: 5px; + margin: .67em 2px; +} + +.functnbar3 { + margin-top: 0; +} + +body { + padding: 1em; +} + +body.composite, body.docs { + margin: 0; + padding: 0; +} + +th, td { + text-align: left; + vertical-align: top; +} + +.footerLogos { + text-align: right; + vertical-align: middle; +} + +.right { + text-align: right !important; +} + +.center { + text-align: center !important; +} + +.axial th, .axial th .strut { + text-align: right; +} + +.app .axial td th { + text-align: left; +} + +body .stb { + margin-top: 1em; + text-indent: 0; +} + +body .mtb { + margin-top: 2em; + text-indent: 0; +} + +.courtesylinks { + margin-top: 1em; + padding-top: 1em; +} + +dd { + margin-bottom: .67em; +} + +.toolgroup { + margin-bottom: 6px; +} + +.toolgroup .body { + padding: 4px 4px 4px 0; +} + +.toolgroup .label { + padding: 4px; +} + +.toolgroup .body div { + padding-bottom: .3em; + padding-left: 1em; +} + +.toolgroup .body div div { + margin-top: .3em; + padding-bottom: 0; +} + +.tier1 { + margin-left: 0; +} + +.tier2 { + margin-left: 1.5em; +} + +.tier3 { + margin-left: 3em; +} + +.tier4 { + margin-left: 4.5em; +} + +.tier5 { + margin-left: 6em; +} + +.tier6 { + margin-left: 7.5em; +} + +.tier7 { + margin-left: 9em; +} + +.tier8 { + margin-left: 10.5em; +} + +.tier9 { + margin-left: 12em; +} + +.tier10 { + margin-left: 13.5em; +} + +.filebrowse .expanded, .filebrowse .collapsed { + padding-left: 34px; +} + +.filebrowse .leafnode, .filebrowse .leaf { + padding-left: 20px; +} + +.messagechild { + padding-left: 34px; +} + +.filebrowse-alt .expanded, .filebrowse-alt .collapsed, .filebrowse-alt .leaf, .filebrowse-alt .leafnode, .expandedwaste, .collapsedwaste, .sortup, .sortdown { + /* hide from macie5\*/ + float: left; + /* resume */ + display: inline; + height: 15px; + width: 34px; + padding-left: 0 !important; +} + +.filebrowse-alt .leaf, .filebrowse-alt .leafnode, .sortup, .sortdown { + width: 20px; +} + +.filebrowse ul, .filebrowse-alt ul { + list-style-type: none; + padding-left: 0; + margin-left: 0; +} + +.filebrowse ul ul, .filebrowse-alt ul ul { + margin-left: 1.5em; + margin-top: 0; + padding-top: .67em; +} + +.filebrowse li, .filebrowse-alt li { + margin-bottom: .67em; +} + +td.filebrowse h3 { + margin-top: 0; +} + +.errormessage, .warningmessage, .donemessage, .infomessage, .docinfo, .dirinfo, .memberinfo, .usergroupinfo { + margin: .67em 0; + padding: .33em 0 .67em 42px; + min-height: 32px; +} + +.errormark, .warningmark, .donemark, .infomark { + padding-left: 20px; + min-height: 15px; +} + +.alt { + display: none; +} + +#banner h1 { + margin: 0; +} + +#leftcol { + width: 14em; +} + +.axial th, .axial th .strut, #leftcol .strut { + width: 12em; +} + +#breadcrumbs { + padding: 2px 8px; +} + +.app h3, .app h4, .bars { + clear: both; +} + +.legend { + float: right; +} + +.legend th, .bars th { + text-align: right; + padding-left: 1em; +} + +.bars table { + table-layout: fixed; +} + +.bars th { + width: 12em; +} + +#projectdocumentlist td.filebrowse-alt { + padding-right: .75em; +} + +.pdflink { + position: relative; /* IE bugfix cont'd */ + float: right; + margin: 0px 5px; + padding: 0; +} +.pdflink br { + margin-top: -10px; + padding-left: 1px; +} +.pdflink a { + display: block; + font-size: 70%; + text-align: center; + margin: 0; + padding: 0; +} + +.pdflink img { + display: block; + height: 16px; + width: 16px; +} +.xmllink { + position: relative; /* IE bugfix cont'd */ + float: right; + margin: 0px 5px; + padding: 0; +} +.xmllink br { + margin-top: -10px; + padding-left: 1px; +} +.xmllink a { + display: block; + font-size: 70%; + text-align: center; + margin: 0; + padding: 0; +} + +.xmllink img { + display: block; + height: 16px; + width: 16px; +} +.podlink { + position: relative; /* IE bugfix cont'd */ + float: right; + margin: 0px 5px; + padding: 0; +} +.podlink br { + margin-top: -10px; + padding-left: 1px; +} +.podlink a { + display: block; + font-size: 70%; + text-align: center; + margin: 0; + padding: 0; +} + +.podlink img { + display: block; + height: 16px; + width: 16px; +} + +.txtlink { + position: relative; /* IE bugfix cont'd */ + float: right; + margin: 0px 5px; + padding: 0; +} +.txtlink br { + margin-top: -10px; + padding-left: 1px; +} +.txtlink a { + display: block; + font-size: 70%; + text-align: center; + margin: 0; + padding: 0; +} + +.txtlink img { + display: block; + height: 16px; + width: 16px; +} + +.printlink { + position: relative; /* IE bugfix cont'd */ + float: right; + text-align: center; +} +.printlink br { + margin-top: -10px; + padding-left: 1px; +} +.printlink a { + display: block; + font-size: 70%; + text-align: center; + margin: 0; + padding: 0; +} +.printlink img { + display: block; + height: 16px; + width: 16px; +} diff --git a/docs/skin/tigris.js b/docs/skin/tigris.js new file mode 100644 index 00000000..b411d1d5 --- /dev/null +++ b/docs/skin/tigris.js @@ -0,0 +1,77 @@ +/* +* Licensed to the Apache Software Foundation (ASF) under one or more +* contributor license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright ownership. +* The ASF licenses this file to You under the Apache License, Version 2.0 +* (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +// Write the Netscape 4-specific stylesheet. +if (document.layers) { + document.writeln('') +} + + +// Focus on user name input (the "loginform.loginID" field). +function focus() { + if (document.loginform) { + document.loginform.loginID.focus(); + } +} + +/* Open popup widows of (mostly) predetermined types. + + windowURL -- The URL to load in the new browser window. + type -- The (predetermined) type of window to launch. + acceptable values for type: + 1: a help window + 2: a 400x400 window + 3: Issuezilla assignable users popup window + ... and you can hard code others yourself inside the function. + atts -- (optional) If the window you wish to create is unique and you do + not want to set up a "type" for it, or if you want to pass + additional attributes for a certain "type", you can pass its + attributes directly to the function via this parameter. +*/ + +var tigrisPopupCounter = 0; + +function launch(windowURL, type, atts) { + tigrisPopupCounter += 1; + + var windowName = 'SourceCast' + type; + if (atts) { + windowName += tigrisPopupCounter; + } + + var windowAttributes; + if (type == 1) { + windowAttributes = 'resizable=yes,left=10,top=10,screenX=12,screenY=12,height=485,width=724,status=yes,scrollbars=yes,toolbar=yes,menubar=yes,location=yes' + } + else if (type == 2) { + windowAttributes = 'resizable=yes,left=10,top=10,screenX=12,screenY=12,height=400,width=400'; + } + else if (type == 3) { + windowAttributes = 'resizable=yes,left=10,top=10,screenX=12,screenY=12,height=440,width=600,scrollbars=yes'; + } + if (atts) { + windowAttributes += ',' + atts; + } + + var windowObj = window.open(windowURL, windowName, windowAttributes); + + if (windowObj) { + return false; + } + else { + return true; + } +} diff --git a/docs/stop.sh b/docs/stop.sh deleted file mode 100755 index 142fb764..00000000 --- a/docs/stop.sh +++ /dev/null @@ -1,2 +0,0 @@ -docker stop nc_run -docker rm nc_run diff --git a/docs/webapp/WEB-INF/logs/access.log b/docs/webapp/WEB-INF/logs/access.log new file mode 100644 index 00000000..e69de29b diff --git a/docs/webapp/WEB-INF/logs/core.log b/docs/webapp/WEB-INF/logs/core.log new file mode 100644 index 00000000..cae7b7c8 --- /dev/null +++ b/docs/webapp/WEB-INF/logs/core.log @@ -0,0 +1,2 @@ +WARN (2022-04-04) 10:18.24:524 [core.language.java] (Unknown-URI) Unknown-Thread/JavaLanguage: Attempted to retrieve directory listing of non-directory /usr/java/packages/lib/ext +WARN (2022-04-04) 10:18.24:715 [core.modules.mapper.lm] (Unknown-URI) Unknown-Thread/MountNode: Failed to mount locationmap at: cocoon://locationmap-project.xml diff --git a/docs/webapp/WEB-INF/logs/debug.log b/docs/webapp/WEB-INF/logs/debug.log new file mode 100644 index 00000000..70524ddd --- /dev/null +++ b/docs/webapp/WEB-INF/logs/debug.log @@ -0,0 +1,9 @@ +WARN (2022-04-04) 10:18.27:769 [debug.manager] (Unknown-URI) Unknown-Thread/ExcaliburComponentManager: disposing of handler for unreleased component. role [org.apache.cocoon.components.thread.RunnableManager] +WARN (2022-04-04) 10:18.27:770 [debug.manager] (Unknown-URI) Unknown-Thread/ExcaliburComponentManager: disposing of handler for unreleased component. role [org.apache.excalibur.xml.EntityResolver] +WARN (2022-04-04) 10:18.27:770 [debug.manager] (Unknown-URI) Unknown-Thread/ExcaliburComponentManager: disposing of handler for unreleased component. role [org.apache.excalibur.store.StoreJanitor] +WARN (2022-04-04) 10:18.27:770 [debug.manager] (Unknown-URI) Unknown-Thread/ExcaliburComponentManager: disposing of handler for unreleased component. role [org.apache.excalibur.store.Store/XPathXMLFileTransientStore] +WARN (2022-04-04) 10:18.27:770 [debug.manager] (Unknown-URI) Unknown-Thread/ExcaliburComponentManager: disposing of handler for unreleased component. role [org.apache.cocoon.components.modules.input.InputModuleSelector] +WARN (2022-04-04) 10:18.27:771 [debug.manager] (Unknown-URI) Unknown-Thread/ExcaliburComponentManager: disposing of handler for unreleased component. role [org.apache.excalibur.xml.xpath.XPathProcessor] +WARN (2022-04-04) 10:18.27:771 [debug.manager] (Unknown-URI) Unknown-Thread/ExcaliburComponentManager: disposing of handler for unreleased component. role [org.apache.avalon.excalibur.logger.LoggerManager] +WARN (2022-04-04) 10:18.27:771 [debug.manager] (Unknown-URI) Unknown-Thread/ExcaliburComponentManager: disposing of handler for unreleased component. role [org.apache.excalibur.store.Store/TransientStore] +WARN (2022-04-04) 10:18.27:771 [debug.manager] (Unknown-URI) Unknown-Thread/ExcaliburComponentManager: disposing of handler for unreleased component. role [org.apache.excalibur.xml.sax.SAXParser] diff --git a/docs/webapp/WEB-INF/logs/deprecation.log b/docs/webapp/WEB-INF/logs/deprecation.log new file mode 100644 index 00000000..e69de29b diff --git a/docs/webapp/WEB-INF/logs/error.log b/docs/webapp/WEB-INF/logs/error.log new file mode 100644 index 00000000..e69de29b diff --git a/docs/webapp/WEB-INF/logs/flow.log b/docs/webapp/WEB-INF/logs/flow.log new file mode 100644 index 00000000..e69de29b diff --git a/docs/webapp/WEB-INF/logs/idgen.log b/docs/webapp/WEB-INF/logs/idgen.log new file mode 100644 index 00000000..e69de29b diff --git a/docs/webapp/WEB-INF/logs/linkrewriter.log b/docs/webapp/WEB-INF/logs/linkrewriter.log new file mode 100644 index 00000000..e69de29b diff --git a/docs/webapp/WEB-INF/logs/locationmap.log b/docs/webapp/WEB-INF/logs/locationmap.log new file mode 100644 index 00000000..56ca0fa3 --- /dev/null +++ b/docs/webapp/WEB-INF/logs/locationmap.log @@ -0,0 +1 @@ +WARN (2022-04-04) 10:18.24:715 [core.modules.mapper.lm] (Unknown-URI): Failed to mount locationmap at: cocoon://locationmap-project.xml diff --git a/docs/webapp/WEB-INF/logs/sitemap-execution.log b/docs/webapp/WEB-INF/logs/sitemap-execution.log new file mode 100644 index 00000000..e69de29b diff --git a/docs/webapp/WEB-INF/logs/sitemap.log b/docs/webapp/WEB-INF/logs/sitemap.log new file mode 100644 index 00000000..e69de29b diff --git a/docs/webapp/WEB-INF/logs/xmlform.log b/docs/webapp/WEB-INF/logs/xmlform.log new file mode 100644 index 00000000..e69de29b