Next: 1 Software Architecture Up: Plotting and Analysis for Previous: Plotting and Analysis for Index
Subsections

- - 1 Introduction
    - 1.1 What is the PANDORA Toolbox?
    - 1.2 Why did you make it?
    - 1.3 How is it implemented?
    - 1.4 How can I use it?
    - 1.5 Who is it made for?
    - 1.6 Finding your way around
    - 1.7 Overview of this document
  - 2 Installation

## Contents

- - - 1 Introduction
      - 1.1 What is the PANDORA Toolbox?
      - 1.2 Why did you make it?
      - 1.3 How is it implemented?
      - 1.4 How can I use it?
      - 1.5 Who is it made for?
      - 1.6 Finding your way around
      - 1.7 Overview of this document
    - 2 Installation
- 1 Software Architecture
  - 3 Toolbox Components
    - 3.1 Databases hold all the information
    - 3.2 Datasets create the databases
    - 3.3 Bundling the database and dataset together
    - 3.4 Wrapper classes hold raw data
    - 3.5 Profiles hold results of measurements
    - 3.6 Integrated plotting for easy visualization
    - 3.7 Miscellaneous classes
  - 4 Programming Conventions
    - 4.1 Using property structures for passing optional arguments to methods
    - 4.2 Overloaded operators for transparent access to object contents
    - 4.3 Troubleshooting errors
    - 4.4 Creating a new class
- 2 User's Manual
  - 5 Recipes for Common Tasks
    - 5.1 Loading a database
    - 5.2 Finding constrained subsets in a database
    - 5.3 Sorting the database according to a measure
    - 5.4 Preprocessing a raw (physiology) database by elimination and averaging
    - 5.5 Making a database by merging multiple rows from another database
  - 6 Visualization
    - 6.1 Visualizing traces
    - 6.2 Displaying database contents
    - 6.3 Plotting all measure histograms
    - 6.4 Plotting all parameter histograms
    - 6.5 Plotting database statistics
    - 6.6 Plotting parameter-measure variations
    - 6.7 Insets
    - 6.8 Generating a report comparing two databases
- Bibliography
  - 1 Function Reference
    - 1.1 Class chans_db
    - 1.2 Class cip_trace
    - 1.3 Class cip_trace_allspikes_profile
    - 1.4 Class cip_trace_profile
    - 1.5 Class cip_traces_dataset
    - 1.6 Class cip_traceset
    - 1.7 Class cip_traceset_dataset
    - 1.8 Class cluster_db
    - 1.9 Class corrcoefs_db
    - 1.10 Class dataset_db_bundle
    - 1.11 Class doc_generate
    - 1.12 Class doc_multi
    - 1.13 Class doc_plot
    - 1.14 Class histogram_db
    - 1.15 Class model_ct_bundle
    - 1.16 Class model_ranked_to_physiol_bundle
    - 1.17 Class params_cip_trace_fileset
    - 1.18 Class params_tests_dataset
    - 1.19 Class params_tests_db
    - 1.20 Class params_tests_fileset
    - 1.21 Class params_tests_profile
    - 1.22 Class period
    - 1.23 Class physiol_bundle
    - 1.24 Class physiol_cip_traceset
    - 1.25 Class physiol_cip_traceset_fileset
    - 1.26 Class plot_abstract
    - 1.27 Class plot_bars
    - 1.28 Class plot_errorbar
    - 1.29 Class plot_errorbars
    - 1.30 Class plot_image
    - 1.31 Class plot_inset
    - 1.32 Class plot_simple
    - 1.33 Class plot_stack
    - 1.34 Class plot_superpose
    - 1.35 Class ranked_db
    - 1.36 Class results_profile
    - 1.37 Class script_array
    - 1.38 Class script_array_for_cluster
    - 1.39 Class script_factory
    - 1.40 Class spike_shape
    - 1.41 Class spike_shape_profile
    - 1.42 Class spikes
    - 1.43 Class spikes_db
    - 1.44 Class sql_portal
    - 1.45 Class stats_db
    - 1.46 Class tests_3D_db
    - 1.47 Class tests_db
    - 1.48 Class trace
    - 1.49 Class trace_profile
    - 1.50 Utility functions
- Index

# 1 Introduction

## 1.1 What is the PANDORA Toolbox?

The PANDORA Toolbox is a software package which consists of a collection of MATLAB object-oriented classes and script functions for creating, analyzing and visualizing databases based on data from electrophysiological neuron simulations and recordings.

## 1.2 Why did you make it?

Motivations to create this software were:

- Analyze data generated by brute-force and other parameter search methods.
- Analyze subsets of parameter spaces and special cases.
- Evaluate robustness of model neurons.
- Find functional roles of specific conductances.

## 1.3 How is it implemented?

A custom database management system (DBMS) is written from scratch in the MATLAB language. The toolbox design follows object-oriented programming principles. It uses functions from the statistics and signal processing toolboxes of MATLAB, but they are not strictly necessary. It does not use MATLAB's database (DB) toolbox.1

## 1.4 How can I use it?

The PANDORA Toolbox uses an object-oriented approach to provide maximal flexibility for interactive use on the MATLAB command-line.2 Objects can be created, modified, analyzed, and visualized interactively in few steps. It is straightforward to save and load binary representations of these objects into files. Scripts can be made to programmatically repeat these procedures. Existing object classes are designed with the prospect of future extension, to accommodate new types of data and analyses.

## 1.5 Who is it made for?

PANDORA Toolbox is customized for neuroscientific research. However, the concepts of a complex dataset, extraction of multiple observations from each item of the dataset, and analysis of multi-dimensional parameter spaces are universal. In its current form the database and dataset classes can be used for data other than electrophysiologic sources. As this toolbox is designed for flexible extensibility, one can add extensions that deal with different types of data and analyses.

##
1.6 Finding your way around

The source code uses MATLAB's documentation system, therefore all methods and classes are documented. To get help about all classes, issue the

>> help djlab
at the MATLAB prompt. This should give you an overview of available classes. Then, to learn about a specific class, ask for the documentation for the constructor method. For instance, for the `trace` class, issuing

>> help trace
gives you the documentation for the constructor together with an overview for the class. Sometimes, if there are multiple methods with the same name under different classes, you may get the wrong documentation. In that case, you can specify the class from which to take the method by prepending the class name to the method, such as in

>> help trace/spikes
In order to learn all methods available for a class, you can use MATLAB's `methods` command. For the `trace` class, do

>> methods(trace)
However, some documentation may be outdated or simply wrong. Please report these to the author via e-mail to `cgunay@emory.edu`.

## 1.7 Overview of this document

Next, Section 2 guides the reader through the installation of the package and other dependencies. You can skip this section if you already have a running software environment. Section 3 introduces the essential components of the software and talks about their design decisions. You can also skip this part if you're not interested in the guts of the system and you are in favor of a quick start. The recipes in Section 5 provide a tutorial for some common tasks. It may be easier for some readers to follow these recipes to jump-start using the software. However, it is recommended that you familiarize yourself with the basic organization of the classes before proceeding into more complex tasks. Section 6 takes the tutorial approach to describe common visualization tasks. Finally, Section A points to the list of individual methods provided by the software. These methods are documented in detail using the MATLAB online help system.

#
2 Installation

Download the latest package file from:

`http://userwww.service.emory.edu/~cgunay/pandora`.

Unpack the archive anywhere in your system, using

$ tar xzf pandora-xyz.tar.gz
and follow the instructions in the README file.

Basically it involves pointing your MATLAB installation to look at the `pandora/` subdirectory for loading the PANDORA files. This can be achieved by adding this directory to your MATLAB search path using the `addpath` Matlab command. To avoid its repeated application for each new session, you can have a startup script, `startup.m`, in the directory that you run MATLAB with the following commands:

%-- startup.m for matlab

addpath /my/download/directory/pandora-1.0b/pandora

%-- end startup.m

This will be loaded everytime you run MATLAB from this directory. in UN*X systems, this can be improved further by placing the command in the file `$HOME/matlab/startup.m, which` is executed no matter from where MATLAB is called, especially if you are running Matlab from different or unknown places each time. In Windows, place the file under `My Documents/MATLAB`, or add the directory to the search path using the File->Set Path menu option.

Next: 1 Software Architecture Up: Plotting and Analysis for Previous: Plotting and Analysis for Index