additional data file - BioMedSearch

outstandingmaskData Management

Nov 29, 2012 (4 years and 9 months ago)

217 views


1

Functionality and Implementation

of FEED

The functionality in FEED has four overall components: 1)
Management of u
ser
account
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

create
users.


A user c
an belong to one or both of contributor
s’

and terminologist
s’

user groups.
Contributors have read and write access to the studies they deposited themselves and
read
-
only (search and download) access to other studies. Terminologists can add, delete,
and ed
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.

Foll
owing this model, the system provides
forms
-
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
an export

2

format by most
software for managing
lab
oratory data

(e.g., IgorPro, WaveMetrics,
Portland OR).
Files are uploaded through the

contributor
’s web browser
.

End
-
users can search the database by controlled metadata terms, select Trials of
interest, a
nd download the data recordings as well as associated metadata in tabular form.
FEED
permits searching trials by five metadata elements: Species, Muscle, Sensor,
Primary Behavior, and Food Type. The list of primary behaviors that is searchable
correspond
s to the feeding behaviors in the controlled vocabulary (Table 2).

Results of
s
earch
es

are displayed in tabular format with information given about Trial, Species,
Primary behavior, Food type, Technique (i.e., sensor),
and
Anatomical Location.


Any of
the

Trials from the search results can be placed into a

“bucket”, which
is a user
-
defined
shopping cart

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
e
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 metadata

and vocabularies
. 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
available

in Supplementary Data 2.


The web application is implemented in

the Python programming language
(
http://python.org
), a scripting language that is supported on most major operating
systems

and is well
-
suited to

rapid application prototyping.

We built FEED on the
Django web
-
application framework (
http://www.djangoproject.com/
), which has much of

3

the functionality generically needed for web applications al
ready built
-
in. The parts of the
user interface that deal with browsing, creating, and manipulating metadata records in the
database were adapted from

Admin, a

Django add
-
on component (django.contrib.admin
package).


For running the database we use Postgre
SQL (
http://postgresql.org
), a full
-
featured open
-
source relational database management system. All server
-
side
interactions of the web application with the database, including querying, inserting, and
mod
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
management systems
.


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)
at

https://github.com/NESCent/feed
ingdb/
.

All components used by FEED are also open
-
source and freely available.