Functionality and Implementation
The functionality in FEED has four overall components: 1)
Management of u
s and the
audit system; 2) entering and managing records and descriptive
metadata at each level in the hierarchical data model (see
Data Model); 3) upload and
storage of physiologic recordings; and 4) search and download of recordings as well as
their associated metadata.
All creation and update actions in FEED are associated with a specific user, and
thus each contributing user has
an account in the system. Users can have different levels
of privileges. Those with
database administrator privileges have read and write access to
all of the metadata, the physiologic data, and
the controlled vocabularies, and can
A user c
an belong to one or both of contributor
Contributors have read and write access to the studies they deposited themselves and
only (search and download) access to other studies. Terminologists can add, delete,
it terms i
n the controlled vocabularies.
Data entry is designed to flow in a hierarchical order from Study through Trial
(see Data Model). This flow derives from the logical flow of metadata that a researcher
would annotate in a laboratory notebook.
owing this model, the system provides
based user interfaces for specifying controlled and free
text attributes, for
uploading illustrations, and for supplying extended free
text narratives. The latter
capture details about feeding behaviors, anatomi
cal structures, and data acquisition
protocols that are not formalized in the controlled vocabulary.
FEED stores one raw data file associated with each Trial record. The expected
format of tab
delimited columns of numbers (see Data Model) is supported as
format by most
software for managing
(e.g., IgorPro, WaveMetrics,
Files are uploaded through the
’s web browser
users can search the database by controlled metadata terms, select Trials of
nd download the data recordings as well as associated metadata in tabular form.
permits searching trials by five metadata elements: Species, Muscle, Sensor,
Primary Behavior, and Food Type. The list of primary behaviors that is searchable
s to the feeding behaviors in the controlled vocabulary (Table 2).
are displayed in tabular format with information given about Trial, Species,
Primary behavior, Food type, Technique (i.e., sensor),
Trials from the search results can be placed into a
is a user
of the content that a user wants to download from FEED.
Once Trials have
been collected into a bucket, their metadata, raw physiologic data, or both can b
downloaded, bundled into
a compressed zip file.
After download, the metadata files can
be opened with software such as MS Excel (Microsoft Corp., Seattle WA.).
FEED is implemented as a web application that provides a dynamic and
interactive graphical us
er interface (GUI) and a relational database that stores and indexes
. The raw data files are stored on the server’s file system.
Screen shots illustrating the user
interfaces for data entry, search, and download are
in Supplementary Data 2.
The web application is implemented in
the Python programming language
), a scripting language that is supported on most major operating
and is well
rapid application prototyping.
We built FEED on the
application framework (
), which has much of
the functionality generically needed for web applications al
in. The parts of the
user interface that deal with browsing, creating, and manipulating metadata records in the
database were adapted from
on component (django.contrib.admin
For running the database we use Postgre
), a full
source relational database management system. All server
interactions of the web application with the database, including querying, inserting, and
ifying data are implemented with a Django component that abstracts these
programming tasks from the SQL query language flavor understood by a particular
database management system and should thus work with most modern relational database
All source code for FEED, including documentation for how to build and install
the application, is freely available under the GNU General Public License (version 3)
All components used by FEED are also open
source and freely available.