Cyber-Workstation for Computational Neuroscience
Identifieur interne : 000538 ( Pmc/Corpus ); précédent : 000537; suivant : 000539Cyber-Workstation for Computational Neuroscience
Auteurs : Jack Digiovanna ; Prapaporn Rattanatamrong ; Ming Zhao ; Babak Mahmoudi ; Linda Hermer ; Renato Figueiredo ; Jose C. Principe ; Jose Fortes ; Justin C. SanchezSource :
- Frontiers in Neuroengineering [ 1662-6443 ] ; 2010.
Abstract
A Cyber-Workstation (CW) to study
Url:
DOI: 10.3389/neuro.16.017.2009
PubMed: 20126436
PubMed Central: 2814557
Links to Exploration step
PMC:2814557Le document en format XML
<record><TEI><teiHeader><fileDesc><titleStmt><title xml:lang="en">Cyber-Workstation for Computational Neuroscience</title>
<author><name sortKey="Digiovanna, Jack" sort="Digiovanna, Jack" uniqKey="Digiovanna J" first="Jack" last="Digiovanna">Jack Digiovanna</name>
<affiliation><nlm:aff id="aff1"><institution>Neuroprosthetics Control Group, ETH Zurich</institution>
<country>Switzerland</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Rattanatamrong, Prapaporn" sort="Rattanatamrong, Prapaporn" uniqKey="Rattanatamrong P" first="Prapaporn" last="Rattanatamrong">Prapaporn Rattanatamrong</name>
<affiliation><nlm:aff id="aff2"><institution>Advanced Computing & Information Systems Lab, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Zhao, Ming" sort="Zhao, Ming" uniqKey="Zhao M" first="Ming" last="Zhao">Ming Zhao</name>
<affiliation><nlm:aff id="aff3"><institution>School of Computing & Information Sciences, Florida International University</institution>
<country>Miami, FL, USA</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Mahmoudi, Babak" sort="Mahmoudi, Babak" uniqKey="Mahmoudi B" first="Babak" last="Mahmoudi">Babak Mahmoudi</name>
<affiliation><nlm:aff id="aff4"><institution>Neuroprosthetics Research Group, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Hermer, Linda" sort="Hermer, Linda" uniqKey="Hermer L" first="Linda" last="Hermer">Linda Hermer</name>
<affiliation><nlm:aff id="aff5"><institution>Department of Psychology, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Figueiredo, Renato" sort="Figueiredo, Renato" uniqKey="Figueiredo R" first="Renato" last="Figueiredo">Renato Figueiredo</name>
<affiliation><nlm:aff id="aff2"><institution>Advanced Computing & Information Systems Lab, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Principe, Jose C" sort="Principe, Jose C" uniqKey="Principe J" first="Jose C." last="Principe">Jose C. Principe</name>
<affiliation><nlm:aff id="aff6"><institution>Computational NeuroEngineering Laboratory, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Fortes, Jose" sort="Fortes, Jose" uniqKey="Fortes J" first="Jose" last="Fortes">Jose Fortes</name>
<affiliation><nlm:aff id="aff2"><institution>Advanced Computing & Information Systems Lab, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Sanchez, Justin C" sort="Sanchez, Justin C" uniqKey="Sanchez J" first="Justin C." last="Sanchez">Justin C. Sanchez</name>
<affiliation><nlm:aff id="aff4"><institution>Neuroprosthetics Research Group, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</nlm:aff>
</affiliation>
</author>
</titleStmt>
<publicationStmt><idno type="wicri:source">PMC</idno>
<idno type="pmid">20126436</idno>
<idno type="pmc">2814557</idno>
<idno type="url">http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2814557</idno>
<idno type="RBID">PMC:2814557</idno>
<idno type="doi">10.3389/neuro.16.017.2009</idno>
<date when="2010">2010</date>
<idno type="wicri:Area/Pmc/Corpus">000538</idno>
</publicationStmt>
<sourceDesc><biblStruct><analytic><title xml:lang="en" level="a" type="main">Cyber-Workstation for Computational Neuroscience</title>
<author><name sortKey="Digiovanna, Jack" sort="Digiovanna, Jack" uniqKey="Digiovanna J" first="Jack" last="Digiovanna">Jack Digiovanna</name>
<affiliation><nlm:aff id="aff1"><institution>Neuroprosthetics Control Group, ETH Zurich</institution>
<country>Switzerland</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Rattanatamrong, Prapaporn" sort="Rattanatamrong, Prapaporn" uniqKey="Rattanatamrong P" first="Prapaporn" last="Rattanatamrong">Prapaporn Rattanatamrong</name>
<affiliation><nlm:aff id="aff2"><institution>Advanced Computing & Information Systems Lab, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Zhao, Ming" sort="Zhao, Ming" uniqKey="Zhao M" first="Ming" last="Zhao">Ming Zhao</name>
<affiliation><nlm:aff id="aff3"><institution>School of Computing & Information Sciences, Florida International University</institution>
<country>Miami, FL, USA</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Mahmoudi, Babak" sort="Mahmoudi, Babak" uniqKey="Mahmoudi B" first="Babak" last="Mahmoudi">Babak Mahmoudi</name>
<affiliation><nlm:aff id="aff4"><institution>Neuroprosthetics Research Group, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Hermer, Linda" sort="Hermer, Linda" uniqKey="Hermer L" first="Linda" last="Hermer">Linda Hermer</name>
<affiliation><nlm:aff id="aff5"><institution>Department of Psychology, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Figueiredo, Renato" sort="Figueiredo, Renato" uniqKey="Figueiredo R" first="Renato" last="Figueiredo">Renato Figueiredo</name>
<affiliation><nlm:aff id="aff2"><institution>Advanced Computing & Information Systems Lab, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Principe, Jose C" sort="Principe, Jose C" uniqKey="Principe J" first="Jose C." last="Principe">Jose C. Principe</name>
<affiliation><nlm:aff id="aff6"><institution>Computational NeuroEngineering Laboratory, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Fortes, Jose" sort="Fortes, Jose" uniqKey="Fortes J" first="Jose" last="Fortes">Jose Fortes</name>
<affiliation><nlm:aff id="aff2"><institution>Advanced Computing & Information Systems Lab, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Sanchez, Justin C" sort="Sanchez, Justin C" uniqKey="Sanchez J" first="Justin C." last="Sanchez">Justin C. Sanchez</name>
<affiliation><nlm:aff id="aff4"><institution>Neuroprosthetics Research Group, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</nlm:aff>
</affiliation>
</author>
</analytic>
<series><title level="j">Frontiers in Neuroengineering</title>
<idno type="eISSN">1662-6443</idno>
<imprint><date when="2010">2010</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc><textClass></textClass>
</profileDesc>
</teiHeader>
<front><div type="abstract" xml:lang="en"><p>A Cyber-Workstation (CW) to study <italic>in vivo</italic>
, real-time interactions between computational models and large-scale brain subsystems during behavioral experiments has been designed and implemented. The design philosophy seeks to directly link the <italic>in vivo</italic>
neurophysiology laboratory with scalable computing resources to enable more sophisticated computational neuroscience investigation. The architecture designed here allows scientists to develop new models and integrate them with existing models (e.g. recursive least-squares regressor) by specifying appropriate connections in a block-diagram. Then, adaptive middleware transparently implements these user specifications using the full power of remote grid-computing hardware. In effect, the middleware deploys an <italic>on-demand and flexible</italic>
neuroscience research test-bed to provide the neurophysiology laboratory extensive computational power from an outside source. The CW consolidates distributed software and hardware resources to support time-critical and/or resource-demanding computing during data collection from behaving animals. This power and flexibility is important as experimental and theoretical neuroscience evolves based on insights gained from data-intensive experiments, new technologies and engineering methodologies. This paper describes briefly the computational infrastructure and its most relevant components. Each component is discussed within a systematic process of setting up an <italic>in vivo</italic>
, neuroscience experiment. Furthermore, a co-adaptive brain machine interface is implemented on the CW to illustrate how this integrated computational and experimental platform can be used to study systems neurophysiology and learning in a behavior task. We believe this implementation is also the first remote execution and adaptation of a brain-machine interface.</p>
</div>
</front>
<back><div1 type="bibliography"><listBibl><biblStruct><analytic><author><name sortKey="Abeles, M" uniqKey="Abeles M">M. Abeles</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Asai, Y" uniqKey="Asai Y">Y. Asai</name>
</author>
<author><name sortKey="Suzuki, Y" uniqKey="Suzuki Y">Y. Suzuki</name>
</author>
<author><name sortKey="Kido, Y" uniqKey="Kido Y">Y. Kido</name>
</author>
<author><name sortKey="Oka, H" uniqKey="Oka H">H. Oka</name>
</author>
<author><name sortKey="Heien, E" uniqKey="Heien E">E. Heien</name>
</author>
<author><name sortKey="Nakanishi, M" uniqKey="Nakanishi M">M. Nakanishi</name>
</author>
<author><name sortKey="Urai, T" uniqKey="Urai T">T. Urai</name>
</author>
<author><name sortKey="Hagihara, K" uniqKey="Hagihara K">K. Hagihara</name>
</author>
<author><name sortKey="Kurachi, Y" uniqKey="Kurachi Y">Y. Kurachi</name>
</author>
<author><name sortKey="Nomura, T" uniqKey="Nomura T">T. Nomura</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Corrado, G" uniqKey="Corrado G">G. Corrado</name>
</author>
<author><name sortKey="Doya, K" uniqKey="Doya K">K. Doya</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Craig, J J" uniqKey="Craig J">J. J. Craig</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Deisenroth, M P" uniqKey="Deisenroth M">M. P. Deisenroth</name>
</author>
<author><name sortKey="Rassmussen, C E" uniqKey="Rassmussen C">C. E. Rassmussen</name>
</author>
<author><name sortKey="Peters, J" uniqKey="Peters J">J. Peters</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Digiovanna, J" uniqKey="Digiovanna J">J. DiGiovanna</name>
</author>
<author><name sortKey="Mahmoudi, B" uniqKey="Mahmoudi B">B. Mahmoudi</name>
</author>
<author><name sortKey="Fortes, J" uniqKey="Fortes J">J. Fortes</name>
</author>
<author><name sortKey="Principe, J C" uniqKey="Principe J">J. C. Principe</name>
</author>
<author><name sortKey="Sanchez, J C" uniqKey="Sanchez J">J. C. Sanchez</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Digiovanna, J" uniqKey="Digiovanna J">J. DiGiovanna</name>
</author>
<author><name sortKey="Mahmoudi, B" uniqKey="Mahmoudi B">B. Mahmoudi</name>
</author>
<author><name sortKey="Mitzelfelt, J" uniqKey="Mitzelfelt J">J. Mitzelfelt</name>
</author>
<author><name sortKey="Sanchez, J C" uniqKey="Sanchez J">J. C. Sanchez</name>
</author>
<author><name sortKey="Principe, J C" uniqKey="Principe J">J. C. Principe</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Fitzsimmons, N A" uniqKey="Fitzsimmons N">N. A. Fitzsimmons</name>
</author>
<author><name sortKey="Lebedev, M A" uniqKey="Lebedev M">M. A. Lebedev</name>
</author>
<author><name sortKey="Peikon, I D" uniqKey="Peikon I">I. D. Peikon</name>
</author>
<author><name sortKey="Nicolelis, M A L" uniqKey="Nicolelis M">M. A. L. Nicolelis</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Hatsopoulos, N G" uniqKey="Hatsopoulos N">N. G. Hatsopoulos</name>
</author>
<author><name sortKey="Donoghue, J P" uniqKey="Donoghue J">J. P. Donoghue</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Laubach, M" uniqKey="Laubach M">M. Laubach</name>
</author>
<author><name sortKey="Arieh, Y" uniqKey="Arieh Y">Y. Arieh</name>
</author>
<author><name sortKey="Luczak, A" uniqKey="Luczak A">A. Luczak</name>
</author>
<author><name sortKey="Oh, J" uniqKey="Oh J">J. Oh</name>
</author>
<author><name sortKey="Xu, Y" uniqKey="Xu Y">Y. Xu</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Leuthardt, E C" uniqKey="Leuthardt E">E. C. Leuthardt</name>
</author>
<author><name sortKey="Schalk, G" uniqKey="Schalk G">G. Schalk</name>
</author>
<author><name sortKey="Moran, D" uniqKey="Moran D">D. Moran</name>
</author>
<author><name sortKey="Ojemann, J G" uniqKey="Ojemann J">J. G. Ojemann</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Mahmoudi, B" uniqKey="Mahmoudi B">B. Mahmoudi</name>
</author>
<author><name sortKey="Principe, J C" uniqKey="Principe J">J. C. Principe</name>
</author>
<author><name sortKey="Sanchez, J C" uniqKey="Sanchez J">J. C. Sanchez</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Markram, H" uniqKey="Markram H">H. Markram</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Nicolelis, M A L" uniqKey="Nicolelis M">M. A. L. Nicolelis</name>
</author>
<author><name sortKey="Lebedev, M A" uniqKey="Lebedev M">M. A. Lebedev</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Purves, D" uniqKey="Purves D">D. Purves</name>
</author>
<author><name sortKey="Augustine, G J" uniqKey="Augustine G">G. J. Augustine</name>
</author>
<author><name sortKey="Fitzpatrick, D" uniqKey="Fitzpatrick D">D. Fitzpatrick</name>
</author>
<author><name sortKey="Hall, W C" uniqKey="Hall W">W. C. Hall</name>
</author>
<author><name sortKey="Lamantia, A S" uniqKey="Lamantia A">A.-S. LaMantia</name>
</author>
<author><name sortKey="Mcnamara, J O" uniqKey="Mcnamara J">J. O. McNamara</name>
</author>
<author><name sortKey="Williams, S M" uniqKey="Williams S">S. M. Williams</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Rattanatamrong, P" uniqKey="Rattanatamrong P">P. Rattanatamrong</name>
</author>
<author><name sortKey="Zhao, M" uniqKey="Zhao M">M. Zhao</name>
</author>
<author><name sortKey="Digiovanna, J" uniqKey="Digiovanna J">J. DiGiovanna</name>
</author>
<author><name sortKey="Mahmoudi, B" uniqKey="Mahmoudi B">B. Mahmoudi</name>
</author>
<author><name sortKey="Principe, J C" uniqKey="Principe J">J. C. Principe</name>
</author>
<author><name sortKey="Sanchez, J C" uniqKey="Sanchez J">J. C. Sanchez</name>
</author>
<author><name sortKey="Figueiredo, R" uniqKey="Figueiredo R">R. Figueiredo</name>
</author>
<author><name sortKey="Hermer Vazquez, L" uniqKey="Hermer Vazquez L">L. Hermer-Vazquez</name>
</author>
<author><name sortKey="Fortes, J" uniqKey="Fortes J">J. Fortes</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Sakai, H" uniqKey="Sakai H">H. Sakai</name>
</author>
<author><name sortKey="Aoyama, T" uniqKey="Aoyama T">T. Aoyama</name>
</author>
<author><name sortKey="Yamaji, K" uniqKey="Yamaji K">K. Yamaji</name>
</author>
<author><name sortKey="Usui, S" uniqKey="Usui S">S. Usui</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Sanchez, J C" uniqKey="Sanchez J">J. C. Sanchez</name>
</author>
<author><name sortKey="Principe, J C" uniqKey="Principe J">J. C. Principe</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Schalk, G" uniqKey="Schalk G">G. Schalk</name>
</author>
<author><name sortKey="Mcfarland, D J" uniqKey="Mcfarland D">D. J. McFarland</name>
</author>
<author><name sortKey="Hinterberger, T" uniqKey="Hinterberger T">T. Hinterberger</name>
</author>
<author><name sortKey="Birbaumer, N" uniqKey="Birbaumer N">N. Birbaumer</name>
</author>
<author><name sortKey="Wolpaw, J R" uniqKey="Wolpaw J">J. R. Wolpaw</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Schwartz, A" uniqKey="Schwartz A">A. Schwartz</name>
</author>
<author><name sortKey="Cui, X T" uniqKey="Cui X">X. T. Cui</name>
</author>
<author><name sortKey="Weber, D J" uniqKey="Weber D">D. J. Weber</name>
</author>
<author><name sortKey="Moran, D W" uniqKey="Moran D">D. W. Moran</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Snir, M" uniqKey="Snir M">M. Snir</name>
</author>
<author><name sortKey="Otto, S" uniqKey="Otto S">S. Otto</name>
</author>
<author><name sortKey="Huss Lederman, S" uniqKey="Huss Lederman S">S. Huss-Lederman</name>
</author>
<author><name sortKey="Walker, D" uniqKey="Walker D">D. Walker</name>
</author>
<author><name sortKey="Dongarra, J" uniqKey="Dongarra J">J. Dongarra</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Sutton, R S" uniqKey="Sutton R">R. S. Sutton</name>
</author>
<author><name sortKey="Barto, A G" uniqKey="Barto A">A. G. Barto</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Trappenberg, T P" uniqKey="Trappenberg T">T. P. Trappenberg</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Wilson, J A" uniqKey="Wilson J">J. A. Wilson</name>
</author>
<author><name sortKey="Williams, J C" uniqKey="Williams J">J. C. Williams</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Zhao, M" uniqKey="Zhao M">M. Zhao</name>
</author>
<author><name sortKey="Rattanatamrong, P" uniqKey="Rattanatamrong P">P. Rattanatamrong</name>
</author>
<author><name sortKey="Digiovanna, J" uniqKey="Digiovanna J">J. DiGiovanna</name>
</author>
<author><name sortKey="Mahmoudi, B" uniqKey="Mahmoudi B">B. Mahmoudi</name>
</author>
<author><name sortKey="Figueiredo, R" uniqKey="Figueiredo R">R. Figueiredo</name>
</author>
<author><name sortKey="Sanchez, J C" uniqKey="Sanchez J">J. C. Sanchez</name>
</author>
<author><name sortKey="Principe, J C" uniqKey="Principe J">J. C. Principe</name>
</author>
<author><name sortKey="Fortes, J" uniqKey="Fortes J">J. Fortes</name>
</author>
</analytic>
</biblStruct>
</listBibl>
</div1>
</back>
</TEI>
<pmc article-type="research-article"><pmc-dir>properties open_access</pmc-dir>
<front><journal-meta><journal-id journal-id-type="nlm-ta">Front Neuroengineering</journal-id>
<journal-id journal-id-type="publisher-id">Front. Neuroeng.</journal-id>
<journal-title-group><journal-title>Frontiers in Neuroengineering</journal-title>
</journal-title-group>
<issn pub-type="epub">1662-6443</issn>
<publisher><publisher-name>Frontiers Research Foundation</publisher-name>
</publisher>
</journal-meta>
<article-meta><article-id pub-id-type="pmid">20126436</article-id>
<article-id pub-id-type="pmc">2814557</article-id>
<article-id pub-id-type="doi">10.3389/neuro.16.017.2009</article-id>
<article-categories><subj-group subj-group-type="heading"><subject>Neuroscience</subject>
<subj-group><subject>Methods Article</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group><article-title>Cyber-Workstation for Computational Neuroscience</article-title>
</title-group>
<contrib-group><contrib contrib-type="author"><name><surname>DiGiovanna</surname>
<given-names>Jack</given-names>
</name>
<xref ref-type="aff" rid="aff1"><sup>1</sup>
</xref>
<xref ref-type="author-notes" rid="fn001">*</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Rattanatamrong</surname>
<given-names>Prapaporn</given-names>
</name>
<xref ref-type="aff" rid="aff2"><sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Zhao</surname>
<given-names>Ming</given-names>
</name>
<xref ref-type="aff" rid="aff3"><sup>3</sup>
</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Mahmoudi</surname>
<given-names>Babak</given-names>
</name>
<xref ref-type="aff" rid="aff4"><sup>4</sup>
</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Hermer</surname>
<given-names>Linda</given-names>
</name>
<xref ref-type="aff" rid="aff5"><sup>5</sup>
</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Figueiredo</surname>
<given-names>Renato</given-names>
</name>
<xref ref-type="aff" rid="aff2"><sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Principe</surname>
<given-names>Jose C.</given-names>
</name>
<xref ref-type="aff" rid="aff6"><sup>6</sup>
</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Fortes</surname>
<given-names>Jose</given-names>
</name>
<xref ref-type="aff" rid="aff2"><sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Sanchez</surname>
<given-names>Justin C.</given-names>
</name>
<xref ref-type="aff" rid="aff4"><sup>4</sup>
</xref>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup>
<institution>Neuroprosthetics Control Group, ETH Zurich</institution>
<country>Switzerland</country>
</aff>
<aff id="aff2"><sup>2</sup>
<institution>Advanced Computing & Information Systems Lab, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</aff>
<aff id="aff3"><sup>3</sup>
<institution>School of Computing & Information Sciences, Florida International University</institution>
<country>Miami, FL, USA</country>
</aff>
<aff id="aff4"><sup>4</sup>
<institution>Neuroprosthetics Research Group, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</aff>
<aff id="aff5"><sup>5</sup>
<institution>Department of Psychology, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</aff>
<aff id="aff6"><sup>6</sup>
<institution>Computational NeuroEngineering Laboratory, University of Florida</institution>
<country>Gainesville, FL, USA</country>
</aff>
<author-notes><fn fn-type="edited-by"><p>Edited by: Michele Giugliano, Ecole Polytechnique Federale De Lausanne, Switzerland; University of Antwerpen, Belgium; University of Antwerp, Belgium</p>
</fn>
<fn fn-type="edited-by"><p>Reviewed by: Alessandro E. P. Villa, Université Joseph Fourier Grenoble, France; Gediminas Luksys, Basel University, Switzerland</p>
</fn>
<corresp id="fn001">*Correspondence: Jack DiGiovanna, Neuroprosthesis Control Group, Automatic Control Lab, Physikstrasse 3, Zürich 8057, Switzerland. e-mail: <email>digiovanna@control.ee.ethz.ch</email>
</corresp>
</author-notes>
<pub-date pub-type="epreprint"><day>27</day>
<month>10</month>
<year>2009</year>
</pub-date>
<pub-date pub-type="epub"><day>20</day>
<month>1</month>
<year>2010</year>
</pub-date>
<pub-date pub-type="collection"><year>2009</year>
</pub-date>
<volume>2</volume>
<elocation-id>17</elocation-id>
<history><date date-type="received"><day>29</day>
<month>9</month>
<year>2009</year>
</date>
<date date-type="accepted"><day>07</day>
<month>12</month>
<year>2009</year>
</date>
</history>
<permissions><copyright-statement>Copyright © 2010 DiGiovanna, Rattanatamrong, Zhao, Mahmoudi, Hermer, Figueiredo, Principe, Fortes and Sanchez.</copyright-statement>
<copyright-year>2010</copyright-year>
<license license-type="open-access" xlink:href="http://www.frontiersin.org/licenseagreement"><license-p>This is an open-access article subject to an exclusive license agreement between the authors and the Frontiers Research Foundation, which permits unrestricted use, distribution, and reproduction in any medium, provided the original authors and source are credited.</license-p>
</license>
</permissions>
<abstract><p>A Cyber-Workstation (CW) to study <italic>in vivo</italic>
, real-time interactions between computational models and large-scale brain subsystems during behavioral experiments has been designed and implemented. The design philosophy seeks to directly link the <italic>in vivo</italic>
neurophysiology laboratory with scalable computing resources to enable more sophisticated computational neuroscience investigation. The architecture designed here allows scientists to develop new models and integrate them with existing models (e.g. recursive least-squares regressor) by specifying appropriate connections in a block-diagram. Then, adaptive middleware transparently implements these user specifications using the full power of remote grid-computing hardware. In effect, the middleware deploys an <italic>on-demand and flexible</italic>
neuroscience research test-bed to provide the neurophysiology laboratory extensive computational power from an outside source. The CW consolidates distributed software and hardware resources to support time-critical and/or resource-demanding computing during data collection from behaving animals. This power and flexibility is important as experimental and theoretical neuroscience evolves based on insights gained from data-intensive experiments, new technologies and engineering methodologies. This paper describes briefly the computational infrastructure and its most relevant components. Each component is discussed within a systematic process of setting up an <italic>in vivo</italic>
, neuroscience experiment. Furthermore, a co-adaptive brain machine interface is implemented on the CW to illustrate how this integrated computational and experimental platform can be used to study systems neurophysiology and learning in a behavior task. We believe this implementation is also the first remote execution and adaptation of a brain-machine interface.</p>
</abstract>
<kwd-group><kwd>cyber-workstation</kwd>
<kwd>distributed parallel processing</kwd>
<kwd>real-time computational neuroscience</kwd>
<kwd>brain-machine interface</kwd>
</kwd-group>
<counts><fig-count count="6"></fig-count>
<table-count count="1"></table-count>
<equation-count count="6"></equation-count>
<ref-count count="25"></ref-count>
<page-count count="11"></page-count>
<word-count count="8846"></word-count>
</counts>
</article-meta>
</front>
<body><sec sec-type="introduction"><title>Introduction</title>
<p>In the last decade, there has been an explosion in the number of models and amount of physiological data that can be obtained from either basic neuroscience or computational neuroscience experiments (Trappenberg, <xref ref-type="bibr" rid="B23">2002</xref>
; Purves et al., <xref ref-type="bibr" rid="B15">2004</xref>
). The data from these experiments is beginning to be leveraged to address the problem of <italic>reverse-engineering</italic>
the brain (Markram, <xref ref-type="bibr" rid="B13">2006</xref>
). This process has been identified by the U.S. National Academy of Engineering as one of the 21st Century's great challenges for engineering and neuroscience because it has the potential to: (1) impact human health by providing a guide for repairing diseased neural tissue and (2) create innovation in neuromorphic systems based on details of brain function. The challenge arises due to both <italic>anatomical</italic>
and <italic>behavioral</italic>
complexity. Human brains contain approximately 10<sup>15</sup>
synapses connecting 10<sup>11</sup>
neurons of different classes which are hierarchically self-organized across multiple temporal and spatial scales (Abeles, <xref ref-type="bibr" rid="B1">1991</xref>
). Furthermore, the neuronal properties, structural networks, and functional networks can adapt based on experience and learning.</p>
<p>A prominent project addressing anatomical complexity is the Blue Brain Project which combines realistic neuron models (Markram, <xref ref-type="bibr" rid="B13">2006</xref>
). Currently, experimental data is fed to a supercomputer (IBM Blue Gene) with 10,000 processors to model a rat neocortical column (one processor per neuron). Despite current analytical and computational limitations, Henry Markram suggests there will be sufficient computational advances to model an entire human brain within 10 years. With a ‘complete’ brain model, behavioral complexity could be investigated through simulated interactions with the environment. An alternative to this approach is to directly investigate behavioral complexity by modeling the relationship between behavior and brain subsystems (e.g. single neurons, neural ensembles) <italic>in vivo</italic>
. This modeling may be achieved in a typical neurophysiology laboratory given simple models. Notice that both of these approaches only address one area of complexity (anatomical or behavioral).</p>
<p>Alternatively, it would be useful to provide increased computational capacity to facilitate real-time modeling of interactions between multiple brain subsystems, learning, and behaviors. Such interactions may provide insight into existing research questions (e.g. hierarchical vs. connectionist organization) by revealing functional relationships within the brain and between the brain and external world. Recently, increased computation power has been harnessed via a multi-core graphics processing unit for parallel computations (Wilson and Williams, <xref ref-type="bibr" rid="B24">2009</xref>
). Additionally, the ability for researchers to share (and improve) models has proven successful in projects like <italic>BCI2000</italic>
(Schalk et al., <xref ref-type="bibr" rid="B19">2004</xref>
) and <italic>Physiome</italic>
(Asai et al., <xref ref-type="bibr" rid="B2">2008</xref>
). The <italic>Concierge</italic>
platform at RIKEN provides centralized experimental results and analysis for researchers around the world (Sakai et al., <xref ref-type="bibr" rid="B17">2007</xref>
). Here we aim to incorporate aspects of all those systems into a modular, user-friendly workstation for <italic>in vivo</italic>
experiments. We further believe that information technology has an important role to play in encapsulating many details of the laboratory work – translating advanced computational neuroscience methods into accessible tools for experimental neuroscience. The Cyber-Workstation (CW) developed here was designed with those philosophies in mind.</p>
<p>The CW provides a computational infrastructure for real-time neural systems modeling and collection (and storage) of multiple channels of neural and environmental data during behavior. Synchronous modeling and experimentation can provide a window to functional aspects of neural systems that combine sensory, cognitive, and motor processing while interacting with dynamic environments. The CW allows a neuroscientist to expand <italic>in vivo</italic>
paradigms by providing as much computational power as needed.</p>
<p>The CW was developed around and will be demonstrated via a Co-Adaptive Brain-Machine Interface (CABMI). Brain-Machine Interfaces (BMIs) generally create a model of a specific brain subsystem's (e.g. motor, parietal) interaction with the external world (Sanchez and Principe, <xref ref-type="bibr" rid="B18">2007</xref>
) such that the BMI can decode user intention to control a prosthetic. Co-adaptive BMIs go a step further by engaging <italic>both</italic>
the user and a computer model to <italic>learn</italic>
to control a prosthetic's movements based on interaction with the environment (DiGiovanna et al., <xref ref-type="bibr" rid="B6">2009</xref>
). The CW is an ideal platform for CABMI approaches which naturally require concurrent modeling and experimentation. Although neuroscience encompasses many more topics than BMI; implementing a BMI is a microcosm of the challenges in blending computational and experimental neuroscience.</p>
<p>The next section specifies system requirements for BMI research and design choices given our available computational resources. The section <xref ref-type="sec" rid="s5">‘Architecture’</xref>
describes the system architecture, how the middleware interfaces the software and hardware, and the web-portal user interface. The section <xref ref-type="sec" rid="s6">‘Evaluating the CyberWorkstation’</xref>
introduces BMI and overviews the CABMI used to demonstrate some CW capabilities. The final section discusses implications of the CW for computational neuroscience.</p>
</sec>
<sec id="s8"><title>Functional System Requirements</title>
<p>The practical embodiment of our CW consolidated software and hardware resources across three collaborating labs: Neuroprosthetics Research Group (NRG), Advanced Computing and Information Systems (ACIS) Lab, and Computational NeuroEngineering Laboratory (CNEL) at the University of Florida. The CW enables neurophysiology researchers to setup, carry out, monitor and review experiments <italic>locally</italic>
that require powerful <italic>remote</italic>
online and/or offline data processing. The initial design of the CW was centered around the development of BMIs where neural activity was used to directly control the position of a robotic (prosthetic) arm. The CW was designed to improve the efficiency and efficacy of the typical workflow required by closed-loop experiments. Specifically, several aspects of the workflow can be automated, hidden or supported by a cyberinfrastructure that exposes, through a single point of access, only the needed functionality for a neuroscientist to conceptualize, conduct and reason about an experiment. Figure <xref ref-type="fig" rid="F1">1</xref>
depicts a high-level view of what such an infrastructure might consist of. Neural signals are sampled from behaving animals at NRG and sent across the network for computing. At ACIS (> 500 m away from NRG), a variety of computational models process these data on a pool of servers; then results are aggregated and used to control robot movement in real-time at NRG. The architecture of the CW is described in the next section and has general applicability beyond the specific environments of the ACIS, NRG and CNEL laboratories.</p>
<fig id="F1" position="float"><label>Figure 1</label>
<caption><p><bold>Infrastructure for execution of BMI experiments and online/offline analysis of data</bold>
. Individual components (e.g. experiment management, parallel computing) are discussed in the next section and Figure <xref ref-type="fig" rid="F2">2</xref>
.</p>
</caption>
<graphic xlink:href="fneng-02-017-g001"></graphic>
</fig>
<p><italic>Under the hood</italic>
of such interface, middleware would be responsible for supporting:</p>
<list list-type="bullet"><list-item><p>Real-time operations that scale with biological responses (<100 ms)</p>
</list-item>
<list-item><p>Parallel processing capability for many multi-input, multi-output models</p>
</list-item>
<list-item><p>Large memory capacity for neurophysiological data streams and model parameterization</p>
</list-item>
<list-item><p>Customizable signal processing models</p>
</list-item>
<list-item><p>Data warehousing for large volumes of neural signals, experiment parameters, and computational results (e.g. prosthetic movements)</p>
</list-item>
<list-item><p>Integrated analysis platform for visualization of modeling and physiological parameters</p>
</list-item>
<list-item><p>Simple yet powerful user interfaces for scientists to manage experiments</p>
</list-item>
</list>
<p>These application requirements arise from over three decades of BMI research (Leuthardt et al., <xref ref-type="bibr" rid="B11">2006</xref>
; Hatsopoulos and Donoghue, <xref ref-type="bibr" rid="B9">2009</xref>
; Nicolelis and Lebedev, <xref ref-type="bibr" rid="B14">2009</xref>
). Prior BMI researchers have exploited distributed local computation (Laubach et al., <xref ref-type="bibr" rid="B10">2003</xref>
; Wilson and Williams, <xref ref-type="bibr" rid="B24">2009</xref>
) or controlled robots by sending control signals around the world (Fitzsimmons et al., <xref ref-type="bibr" rid="B8">2009</xref>
). However, to our knowledge, the CW is the first architecture to meet these requirements through distributed, remote computing.</p>
</sec>
<sec id="s5"><title>Architecture</title>
<p>The CW architecture was designed to satisfy all of the application requirements in the prior section. Researchers may combine existing models (e.g. a toolbox) and/or develop novel models via object oriented programming constructs. These models are connected in a block diagram and then adaptive middleware transparently implements the specifications using the full power of the remote hardware. In effect, the middleware deploys an <italic>on-demand</italic>
neuroscience research test-bed that consolidates distributed software and hardware resources to support time-critical and resource-demanding computing.</p>
<p>Multiple interacting and customizable components make it difficult to give a single ‘blueprint’ of the CW. However, the CW is divided into four functional layers in Figure <xref ref-type="fig" rid="F2">2</xref>
; these layers mirror the key stages of the typical workflow (Sanchez and Principe, <xref ref-type="bibr" rid="B18">2007</xref>
) of a BMI experiment:</p>
<fig id="F2" position="float"><label>Figure 2</label>
<caption><p><bold>Functional CyberWorkstation layers</bold>
. The left side of each panel represents entities/actions at a neurophysiology lab and the right side represents their associated events at a computing lab. <bold>(A)</bold>
Physical Access and Setup: The CW is configured to communicate with the user's specific recording hardware and prosthetic. <bold>(B)</bold>
Model Selection and Composition: The user specifies and connects models and, implicitly, necessary resources to run them. <bold>(C)</bold>
Virtual Resources Request and Reservation: The middleware transparently allocates and configures computing resources and network links (black lines are connected, gray lines not used). <bold>(D)</bold>
Run-time Management: Ensures experiment operates within expected timings and provides user-specified visualizations. Here the ‘real-time’ CW operation loop is shown by green (outgoing) and red (returning) lines.</p>
</caption>
<graphic xlink:href="fneng-02-017-g002"></graphic>
</fig>
<list list-type="bullet"><list-item><p>Access to experimental test-bed</p>
</list-item>
<list-item><p>Model selection and composition</p>
</list-item>
<list-item><p>Virtual resources request and reservation</p>
</list-item>
<list-item><p>Run-time management of experiments</p>
</list-item>
</list>
<p>Each of these four stages is discussed in this section, first in a general context and then as embodied in our CW implementation. Real-time system operation is achieved through the use of low-level communication protocols and interfaces, use of parallel computing to reduce computation times and careful optimization of middleware components in the critical path (closed loop in Figure <xref ref-type="fig" rid="F1">1</xref>
). These and other IT-related design and implementation details will be reported elsewhere (Rattanatamrong et al., <xref ref-type="bibr" rid="B16">2009</xref>
).</p>
<sec><title>Access to experimental test-bed</title>
<p>This functionality enables neuroscientists to gain access to a physical system consisting of the subject and all devices needed to enable and monitor subject-environment interaction. Necessarily, such a system is specific to a class of experiments and may change over time (e.g. subject specific differences). If a test-bed can be reused among several researchers, ideally individual researchers could avoid the overhead (time and cost) of interfacing and maintaining different components. Instead, it is desirable to allow researchers to specify needed configurations without having to directly modify individual components, each of which may have its own idiosyncratic programming procedures.</p>
<p>The CW enables both the reuse of existing system components and the ability to integrate with remote resources during experiments through what we labeled as a <italic>physical layer</italic>
(see Figure <xref ref-type="fig" rid="F2">2</xref>
A). This physical layer is transparent to the CW users but provides an interface with data acquisition hardware and prosthetic devices. This layer ensures that formatting conventions are respected and network communication between the neurophysiology lab and remote computational resources is stable and reliable. During experimental design, the user must configure the physical layer, i.e. specify the manufacturer and model number such that the CW is aware of all hardware it should interact with. However, this configuration is kept at a block-diagram level. Next we provide an example of basic interfacing in the physical layer and communication to the remote facility.</p>
<sec><title>Data acquisition from neurophysiology hardware</title>
<p>In our physical layer, the CW was configured to sample neural signals from a multi-channel, digital signal-processing (DSP) device<sup><xref ref-type="fn" rid="fn1">1</xref>
</sup>
. The DSP contains buffers that store estimated firing rates from electrodes implanted in behaving animals at the NRG laboratory. After acquiring neural activity from the brain, the CW packs data into an input data structure and sends it over the campus network to the ACIS compute cluster. Our implementation sampled 32 electrodes (up to 96 neurons on our DSPs) in 8.1 ms (see <xref ref-type="sec" rid="s1">“Evaluation”</xref>
section). Expanding this to 256 neurons (assuming eight detected neurons per electrode) with current Tucker-Davis Technologies components would only double the necessary sampling (due to better compression). The theoretical maximum number of electrodes the CW could support involves a tradeoff between other processes in the computation budget and network transfer speed. We believe this sampling time will scale linearly with the number of electrodes for the range of array sizes used in current BMI studies (Hatsopoulos and Donoghue, <xref ref-type="bibr" rid="B9">2009</xref>
).</p>
</sec>
<sec><title>Prosthetic control</title>
<p>The physical layer also must be configured to control the prosthetic. At NRG the prosthetic was a robotic arm (Dynaservo, Markham, ON, Canada) using four degrees of freedom. This robot accepts both <italic>incremental</italic>
and <italic>point-to-point</italic>
types of movement commands. Incremental control specifies differential changes for each joint of the robot arm, which must finish within a closed-loop cycle (∼100 ms). Alternatively, point-to-point control specifies absolute endpoints but does not guarantee completion time. The CW could seamlessly communicate with the robot in either mode (and switch between modes) to exploit the advantages of each.</p>
</sec>
<sec><title>Communication to remote facilities</title>
<p>Once this layer is configured, it is necessary to communicate with the remote compute cluster. A connectionless User Datagram Protocol (RFC 768 Standard) socket was selected to provide low latency communication between the data collection site (NRG) and processing site (ACIS). This protocol provides lower overhead for real-time operation at the expense of reliability. Data loss and unexpected delay could happen at any time during the communication over the campus network because of its unreliable and shared nature; thus, reliable data transfer must be ensured at the application level via middleware to support <italic>reliable</italic>
and <italic>real-time</italic>
experiments. Middleware at the remote facility creates a timeout if it is unlikely that computation results will be available in time to meet the deadline. A circular first-in-first-out (FIFO) buffer is utilized to store newly acquired data samples while retransmitting the previously failed results. The possible delay between neural activity and robot action is limited by the size of the buffer, which is adjustable based on model requirements and user preference.</p>
</sec>
</sec>
<sec id="s2"><title>Model selection and composition</title>
<p>This functionality enables a computational neuroscientist to choose and implement models on the basis of experimental goals. These models may have components involving statistics and machine learning (e.g. adaptive filters, neural networks, Hidden Markov models, etc. (Trappenberg, <xref ref-type="bibr" rid="B23">2002</xref>
)). Desirably, an investigator should have access to a toolbox of models that could be instantiated easily and composed as necessary to capture the architecture of the neural system under investigation. The toolbox should be easy to extend and share with different researchers. We provided this toolbox in what we labeled an <italic>allocation layer</italic>
(see Figure <xref ref-type="fig" rid="F2">2</xref>
B). It uses a template-based approach where a researcher can specify his or her choices of modules for each part of the template. As long as the modules satisfy pre-specified interface requirements, the components instantiated on the template are guaranteed to communicate and interact correctly. In this layer, the user specifies data flow, model types, experiment priority, and visualization parameters. Middleware infers the amount and type of resources that need to be reserved to execute all the models to meet these specifications. Additionally, it checks the software design in the user-created models to ensure there are no logic violations with respect to the expected interfaces. Next we provide more details of basic configuration in the allocation layer.</p>
<sec><title>Data flow</title>
<p>Notice in Figure <xref ref-type="fig" rid="F2">2</xref>
A that the local <italic>BMI Controller</italic>
box, which coordinates data acquisition, signal processing, model adaptation, and prosthetic control, is grayed out. The CW makes that component unnecessary in the neurophysiology lab; instead users specify how neuro-physiological data will be processed (e.g. serially or in parallel) at the remote facilities by creating a block diagram to establish the data flow to/from computational models. Figure <xref ref-type="fig" rid="F2">2</xref>
B illustrates possible connections with gray arrows and possible parallel processing (of model sets) with gray planes. This allows user flexibility and also conveys explicitly what can be executed concurrently in order to exploit the parallel computing capability of remote machines. The data flow partially specifies the overall complexity of the remote processing and can also be used to implicitly identify further parallelism at a finer grain. The actual models used in each block (e.g. Model A, B, or C) also contribute to complexity and are discussed next.</p>
</sec>
<sec><title>Model selection</title>
<p>After specifying the data flow, the user must also specify lower-level processing, i.e. which computational models will be used for each block. Here the user has the option to select from a toolbox of established signal processing models (e.g. recursive least squares, moving average). This toolbox is advantageous because the models will have been thoroughly error-checked and vetted by other users. Alternatively, the user can upload custom C++ algorithms for each block.</p>
</sec>
<sec><title>Visualizations</title>
<p>The user also specifies which experimental variables will need to be monitored during the actual experiment, i.e. at run-time. This is also done in the block diagram (see Figure <xref ref-type="fig" rid="F2">2</xref>
D). The user inserts and connects a <italic>visualization</italic>
block to an appropriate area to monitor a variable. The user then specifies which type of visualization (e.g. trace, histogram, error rate) is appropriate.</p>
</sec>
<sec id="s7"><title>Experiment priority and type</title>
<p>The final decision is the experiment's priority. The user informs the CW what type of experiment they plan to run, i.e. online, real-time analysis, or offline. An <italic>online</italic>
experiment will run at the user's lab and has the highest priority – the CW must meet all user-specified deadlines. A real-time <italic>analysis</italic>
experiment piggybacks onto a collaborator's experiment, e.g. a user at the CNEL lab can run real-time analysis of an online experiment at the NRG lab. An <italic>offline</italic>
experiment has the lowest priority because it does not have any hard deadlines. Offline experiments are useful to try new signal processing techniques on existing data.</p>
</sec>
</sec>
<sec><title>Virtual resources request and reservation</title>
<p>Computing BMI models in real-time often requires investigators to properly structure their models into computational tasks that can be executed concurrently and/or use models that have been previously optimized for parallel execution. These tasks then need to be programmed and deployed on computers that could be dedicated to the test bed or part of a shared computer facility that is usually remote. In the latter case, researchers need to figure out the necessary amount of resources, how to request and reserve them, how to connect to these remote resources and how to submit tasks to (and retrieve results from) them. Ideally, investigators should instead only have to do high-level organization that relies on their domain knowledge (i.e. specific connectivity and processing in the allocation layer) rather than having to refashion algorithms and making sure that communications and computations take place properly on available hardware, both of which require IT expertise. Depending on the extent of the computational demands, the need for real-time computation and the complexity of accessing remote resources, this experimental stage can be rather complex and a significant barrier to the successful completion of an experiment.</p>
<p>We provided this functionality in what we labeled the <italic>configuration layer.</italic>
This transparent layer includes middleware that organizes and allocates virtual resources to the appropriate physical machines based on the needs specified by the allocation layer. An example of user design choices and middleware reservations is shown using black arrows on the left and right side Figure <xref ref-type="fig" rid="F2">2</xref>
C respectively. The CW uses virtualization technology to create virtual machines (VM) and each VM can be customized with the necessary execution environment, including operating system and libraries, to support seamless deployment of a computational model. Multiple models can run concurrently with dedicated VMs, where resources are dynamically provisioned according to model demands and timing requirements. Virtualization provides efficient utilization and isolation of resources (e.g. for parallel computation).</p>
<p>Communication between different models is realized using the Message Passing Interface (MPI). MPI allows communication with both simplicity and portability across systems (Snir et al., <xref ref-type="bibr" rid="B21">1995</xref>
). The integrity and consistency of data in the CW is protected through the mechanisms available from communication channels. In addition, we isolate data addition, modification and deletion from different users in the CW using a lock mechanism. Further improvement via transaction-based consistency protocol is expected as the CW becomes available to more users.</p>
</sec>
<sec><title>Run-time management of experiments</title>
<p>After physical connection, configuration, allocation the experiment is ready to run. All data must properly collected and unanticipated situations properly handled and documented. Beyond collecting data, it is desirable to be able to graphically visualize spatio-temporal data, critical measures, and control experimental parameters (if necessary). The CW includes what we label a <italic>runtime layer</italic>
(see Figure <xref ref-type="fig" rid="F2">2</xref>
D) to ensure all specifications are met.</p>
<p>At the compute cluster, control scripts are used to orchestrate computation processes and communication among them. The master process (blue server in Figure <xref ref-type="fig" rid="F2">2</xref>
D) manages and distributes data to other computers (worker processes) in the cluster (black servers). The worker processes execute the user's control scheme. The control scheme comprises both <italic>computation</italic>
of commands from neural signal and continuous <italic>model adaptation</italic>
. All model set (black planes) results are aggregated at the master process and sent back to NRG for prosthetic control. Model adaptation occurs between neural commands.</p>
<p>Middleware monitors the elapsed time after sending out neural data. The elapsed time includes the segments marked in Figure <xref ref-type="fig" rid="F2">2</xref>
D with green (outgoing) and red (incoming) arrows. A timeout happens when it detects that it is unlikely to get the computation results back (following the red path) in time to meet the deadline (e.g. 100 ms). In a timeout, the middleware stores the failed data sample in a circular first-in-first-out buffer, and starts a new closed-loop cycle by polling the neurophysiology hardware. During the new cycle, it queues the newly acquired sample in the buffer and retries the transmission of the previously failed sample. A delay between neural activity and robot action will occur after this type of timeout. However, the acceptable extent of this delay is adjustable based on model requirements and user preference.</p>
</sec>
<sec><title>Web portal</title>
<p>The prior sections provided an abstract overview of the CW's functional architecture. Here we describe the Web-based portal<sup><xref ref-type="fn" rid="fn2">2</xref>
</sup>
where users actually interact with the CW. Through this portal, users can access the CW from anywhere with an Internet connection. Portal functionalities are provided via AJAX-based JSR-168 compliant portlets, which allow flexible interface customization and responsive, asynchronous content update. Users can configure the portal environment to meet their needs. The main portlets developed were model integration, experiment management, and visualization.</p>
<p>Figure <xref ref-type="fig" rid="F3">3</xref>
illustrates how a user would interact with the web portal to configure the allocation layer (see <xref ref-type="sec" rid="s2">Model Selection and Composition</xref>
). After making all physical connections with the CW (e.g. physical layer), the user should be able to interface with all other CW layers through the Web portal. All input, output, and configuration data of this experiment are persistently stored in the compute cluster, so users can retrieve data or replay the experiment later. The <italic>experiment management portlet</italic>
in the Web portal handles the selection of motor control model sets and model connectivity (i.e. allocation layer). It also ensures that any custom models follow the CW's model API. Model configuration (e.g. static and dynamic parameters, initializations, etc.) and visualization planning will also be performed in this portlet. Additionally, users can fine-tune dynamic model parameters <italic>on the fly</italic>
. Beyond the collection of models already provided in the CW, users can add custom models, developed by the CW's model API, into the CW's collection via the <italic>integration portlet</italic>
. This portlet requires an XML (Sperberg-McQueen et al., 2008) model specification file (containing all information regarding the model's configurable parameters), sample input files, and default parameter values; this information enables the experiment manager portlet to automatically generate a model configuration interface for users.</p>
<fig id="F3" position="float"><label>Figure 3</label>
<caption><p><bold>Flow diagram to configure allocation and configuration layers via the web portal</bold>
. Orange shapes represent explicit actions the user makes in the CW's interface, while green shapes represent implicit actions (e.g. decisions, modifications).</p>
</caption>
<graphic xlink:href="fneng-02-017-g003"></graphic>
</fig>
<p>A conceptual overview of <italic>visualization portlet</italic>
is given in Figure <xref ref-type="fig" rid="F4">4</xref>
, it is a window to the CW's run-time layer. The visualization portlet supports the monitoring of prosthetic and model behavior via real-time video streaming. When the user terminates the experiment (as scheduled or due to an emergency), they will not lose any results. All details of the experiment can be downloaded as one archived file and examined locally after the experiment is ended. Also, users can perform extensive, remote analysis immediately with the tools (e.g. Matlab) provided in the CW. Offline and analysis experiments are configured similarly (Experiment types detailed in the section <xref ref-type="sec" rid="s7">‘Experiment Priority and Type’</xref>
). If the user would like to adjust the model configuration to study alternative parameters or to improve performance, they can fine-tune dynamic model parameters during the experiment in the experiment management portlet.</p>
<fig id="F4" position="float"><label>Figure 4</label>
<caption><p><bold>Conceptual interface with CW run-time layer</bold>
.</p>
</caption>
<graphic xlink:href="fneng-02-017-g004"></graphic>
</fig>
</sec>
</sec>
<sec id="s6"><title>Evaluating the Cyberworkstation</title>
<p>The CW has been designed to meet seven specifications listed in the section <xref ref-type="sec" rid="s8">‘Functional System Requirements’</xref>
. In the prior sections, we have developed an architecture that is powerful, flexible, and user-friendly. Here, we use an online BMI experiment to benchmark the CW's effectiveness in meeting each requirement. BMI architectures and learning tasks are briefly overviewed for context. Then we demonstrate CW performance for each of the seven specifications.</p>
<sec><title>Brain-machine interfaces</title>
<p>Conceptually, a BMI learns an unknown mapping between neural signals and some prosthetic output (e.g. cursor position, endpoint velocity) to decode user ‘intent’. This mapping is typically initially random but is adapted over time to minimize some error metric (e.g. misalignment, failed trials). There are many BMI implementations (e.g. linear regressors, population vectors, kernel methods, point process models); each is tailored towards a particular application (Schwartz et al., <xref ref-type="bibr" rid="B20">2006</xref>
; Sanchez and Principe, <xref ref-type="bibr" rid="B18">2007</xref>
; Hatsopoulos and Donoghue, <xref ref-type="bibr" rid="B9">2009</xref>
). The CW's flexible architecture supports a variety of BMI systems whether they use single models [e.g. Recursive Least Squares (RLS)] or combinations of models (e.g. <italic>mixtures of experts</italic>
). We developed a BMI based on Reinforcement Learning (RL) (DiGiovanna et al., <xref ref-type="bibr" rid="B6">2009</xref>
); in the next subsections we describe RL, RL-based BMI, and the <italic>learning</italic>
tasks. This BMI specifically used real-time processing, limited parallel computation, ‘large’ memory capacity, and data warehousing capabilities of the CW. Later, we also address how other CW abilities could be exploited.</p>
<sec><title>Reinforcement learning</title>
<p>The RL paradigm involves an agent that learns to interact with an environment in a fashion that maximizes future rewards (Sutton and Barto, <xref ref-type="bibr" rid="B22">1998</xref>
). The agent environment interface is modeled as a Markov Decision Process. Agent <italic>actions</italic>
influence environmental <italic>state</italic>
and after completing an action, the environment may provide a reward. The agent tries to maximize return <italic>R<sub>t</sub>
</italic>
which is simply the discounted (γ≤1) sum of rewards <italic>r<sub>n</sub>
</italic>
for all future times <italic>n</italic>
. Equation <xref ref-type="disp-formula" rid="E1">1</xref>
shows that return is conditional on current state-action pairs. The agent does not know whether selected actions were optimal as they are executed. However, over time it can build an estimate of return – a value function <italic>Q</italic>
. These value functions (Eq. <xref ref-type="disp-formula" rid="E2">2</xref>
) are recursively consistent such that Eq. <xref ref-type="disp-formula" rid="E2">2</xref>
can be rearranged into Eq. <xref ref-type="disp-formula" rid="E3">3</xref>
(please refer to Sutton and Barto, <xref ref-type="bibr" rid="B22">1998</xref>
for derivation). Given Eq. <xref ref-type="disp-formula" rid="E3">3</xref>
the agent can start with an initially random <italic>Q</italic>
and learn the value function from observations of states, actions, and rewards. If the agents learns the optimal value function <italic>Q</italic>
*, then it can always maximize reward by taking actions which maximize <italic>Q</italic>
*.</p>
<disp-formula id="E1"><label>(1)</label>
<mml:math id="M1"><mml:mrow><mml:msub><mml:mi>R</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mstyle displaystyle="true"><mml:munderover><mml:mo>∑</mml:mo>
<mml:mrow><mml:mi>k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo>∞</mml:mo>
</mml:munderover>
<mml:mrow><mml:mo>γ</mml:mo>
<mml:msup><mml:mtext> </mml:mtext>
<mml:mi>k</mml:mi>
</mml:msup>
<mml:msub><mml:mi>r</mml:mi>
<mml:mrow><mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>|</mml:mo>
<mml:msub><mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mstyle>
<mml:mo>=</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>,</mml:mo>
<mml:mtext> </mml:mtext>
<mml:msub><mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="E2"><label>(2)</label>
<mml:math id="M2"><mml:mrow><mml:mi>Q</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>,</mml:mo>
<mml:mtext> </mml:mtext>
<mml:mi>a</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi>E</mml:mi>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:msub><mml:mi>R</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>|</mml:mo>
<mml:msub><mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>,</mml:mo>
<mml:mtext> </mml:mtext>
<mml:msub><mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="E3"><label>(3)</label>
<mml:math id="M3"><mml:mrow><mml:mi>Q</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub><mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mtext> </mml:mtext>
<mml:msub><mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub><mml:mi>r</mml:mi>
<mml:mrow><mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mtext>γ</mml:mtext>
<mml:mi>Q</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub><mml:mi>s</mml:mi>
<mml:mrow><mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mtext> </mml:mtext>
<mml:msub><mml:mi>a</mml:mi>
<mml:mrow><mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<p>RL can provide an unbiased estimator of the Bellman Optimality Equation (<xref ref-type="disp-formula" rid="E4">4</xref>
) (Sutton and Barto, <xref ref-type="bibr" rid="B22">1998</xref>
) which can be solved if the state transition <inline-formula><mml:math id="M4"><mml:mrow><mml:msubsup><mml:mi>P</mml:mi>
<mml:mrow><mml:mi>s</mml:mi>
<mml:msup><mml:mi>s</mml:mi>
<mml:mo>′</mml:mo>
</mml:msup>
</mml:mrow>
<mml:mi>a</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
and reward probabilities <inline-formula><mml:math id="M5"><mml:mrow><mml:msubsup><mml:mi>ℛ</mml:mi>
<mml:mrow><mml:mi>s</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mi>a</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
are known and stationary. In situations where these probabilities are unknown and/or non-stationary (e.g. a BMI), RL methods can adapt the value function (Eq. <xref ref-type="disp-formula" rid="E3">3</xref>
) <italic>towards</italic>
the <italic>Q</italic>
* based on temporal difference (TD) error (Eq. <xref ref-type="disp-formula" rid="E5">5</xref>
) (TD error is created by rearranging the terms in Eq.<xref ref-type="disp-formula" rid="E3">3</xref>
). Positive error indicates things are better than expected and <italic>Q</italic>
(<italic>s</italic>
, <italic>a</italic>
) should be increased, negative error indicates the opposite. TD learning is a <italic>boot-strapping</italic>
method using future value estimates to improve current estimates. TD learning is sensitive to the accuracy of <italic>Q</italic>
because it assumes <italic>Q</italic>
(<italic>s</italic>
<sub><italic>t</italic>
+ 1</sub>
, <italic>a</italic>
<sub><italic>t</italic>
+<italic></italic>
1</sub>
) is a good approximation of <italic>R</italic>
<sub><italic>t</italic>
+ 1</sub>
; hence, it may become unstable. However, TD methods asymptotically converge to <italic>Q</italic>
* (Sutton and Barto, <xref ref-type="bibr" rid="B22">1998</xref>
).</p>
<disp-formula id="E4"><label>(4)</label>
<mml:math id="M6"><mml:mrow><mml:msup><mml:mi>Q</mml:mi>
<mml:mtext>∗</mml:mtext>
</mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>a</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mstyle displaystyle="true"><mml:munder><mml:mo>∑</mml:mo>
<mml:msup><mml:mi>s</mml:mi>
<mml:mo>′</mml:mo>
</mml:msup>
</mml:munder>
<mml:mrow><mml:msubsup><mml:mi>P</mml:mi>
<mml:mrow><mml:mi>s</mml:mi>
<mml:msup><mml:mi>s</mml:mi>
<mml:mo>′</mml:mo>
</mml:msup>
</mml:mrow>
<mml:mi>a</mml:mi>
</mml:msubsup>
<mml:mrow><mml:mo>[</mml:mo>
<mml:mrow><mml:msubsup><mml:mi>ℛ</mml:mi>
<mml:mrow><mml:mi>s</mml:mi>
<mml:msup><mml:mi>s</mml:mi>
<mml:mo>′</mml:mo>
</mml:msup>
</mml:mrow>
<mml:mi>a</mml:mi>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:mtext>γ</mml:mtext>
<mml:munder><mml:mrow><mml:mtext>max</mml:mtext>
</mml:mrow>
<mml:mrow><mml:msup><mml:mtext>a</mml:mtext>
<mml:mo>′</mml:mo>
</mml:msup>
</mml:mrow>
</mml:munder>
<mml:msup><mml:mi>Q</mml:mi>
<mml:mtext>∗</mml:mtext>
</mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:msup><mml:mi>s</mml:mi>
<mml:mo>′</mml:mo>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup><mml:mi>a</mml:mi>
<mml:mo>′</mml:mo>
</mml:msup>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="E5"><label>(5)</label>
<mml:math id="M7"><mml:mrow><mml:msub><mml:mtext>δ</mml:mtext>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub><mml:mi>r</mml:mi>
<mml:mrow><mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mtext>γ</mml:mtext>
<mml:mi>Q</mml:mi>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:msub><mml:mi>s</mml:mi>
<mml:mrow><mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub><mml:mi>a</mml:mi>
<mml:mrow><mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi>Q</mml:mi>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:msub><mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub><mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</sec>
<sec><title>RL-based BMI (RLBMI)</title>
<p>We model the interaction of a paralyzed patient (i.e. user) with an intelligent prosthetic controller (agent) to maneuver a robotic arm to a target lever and press it (similar to <italic>reach and grasp</italic>
) as a cooperative RL task (DiGiovanna et al., <xref ref-type="bibr" rid="B6">2009</xref>
). A RL framework is useful for a BMI because it creates an agent that <italic>constantly</italic>
learns from interacting with the world without requiring a ‘desired’ (training) signal (e.g. user movements). We assume relevant control features (e.g. robot position, goal) will be detected by the user and affect the user's neuronal modulations. To achieve control, the agent must learn both how to detect relevant neuronal states and, given the state, evaluate each possible control action such that it can complete tasks (i.e. earn reward).</p>
<p>Briefly, rats had to use a BMI to maneuver a robot to one of two possible targets (randomly selected). Rats were given cues (e.g. lights, target position, robot position) for the task. In brain control, the rat's objective was to modulate neurons in primary motor cortex to create a neural state. The agent's objective was to perform value function estimation on this neural state and select a robot control action every 100 ms. If the agent and rat successfully maneuvered (selected a sequence of actions) the robot endpoint proximal to a target within 4.3 s, both were given a reward and the trial ended successfully. Otherwise, the robot was reset to original position and neither entity was rewarded. Important RL features:</p>
<list list-type="bullet"><list-item><p>States: ensemble of neuronal firing rates</p>
</list-item>
<list-item><p>Actions: robot endpoint motions (set of 26)</p>
</list-item>
<list-item><p>Rewards: +1 proximal to correct target, else −0.01</p>
</list-item>
</list>
</sec>
<sec id="s4"><title>Value function estimation</title>
<p>Neuronal state detection and value function estimation in the above paradigm are both <italic>non-trivial</italic>
tasks for the agent. The state was (average) 60 dimensional (one firing rate or history per dimension) which is intractable for familiar <italic>look-up table</italic>
approaches (Sutton and Barto, <xref ref-type="bibr" rid="B22">1998</xref>
). Instead, an adaptive projection transforms the state into a subspace where segmentation is performed (DiGiovanna et al., <xref ref-type="bibr" rid="B7">2007</xref>
). Specifically, a Multi-Layer Perceptron (MLP) both segments the state (in the hidden layer) and estimates the value <italic>Q</italic>
(in the output layer) as:</p>
<disp-formula id="E6"><label>(6)</label>
<mml:math id="M8"><mml:mrow><mml:msub><mml:mi>Q</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:msub><mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mstyle displaystyle="true"><mml:munder><mml:mo>∑</mml:mo>
<mml:mi>j</mml:mi>
</mml:munder>
<mml:mrow><mml:mi>tanh</mml:mi>
<mml:mo></mml:mo>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:mstyle displaystyle="true"><mml:munder><mml:mo>∑</mml:mo>
<mml:mi>i</mml:mi>
</mml:munder>
<mml:mrow><mml:msub><mml:mi>s</mml:mi>
<mml:mrow><mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub><mml:mi>w</mml:mi>
<mml:mrow><mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msub><mml:mi>w</mml:mi>
<mml:mrow><mml:mi>j</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:math>
</disp-formula>
<p><italic>Q</italic>
is a function of state and weights (<italic>w</italic>
) with <italic>i</italic>
, <italic>j</italic>
, and <italic>k</italic>
indexing the state, hidden layer, and output layers respectively. An ε-greedy policy typically selects the action corresponding to the maximum <italic>Q<sub>k</sub>
</italic>
.</p>
<p>There are two computational tasks created here, network <italic>initialization</italic>
and <italic>adaptation</italic>
. Initialization refers to rapid adaptation of <italic>initially random</italic>
MLP weights to estimate <italic>Q</italic>
based on a sequence of observed states, actions, and rewards. Here the mapping is non-linear and contains many local minima. To increase the probability of converging to a global minimum, multiple networks were created and trained. Networks were adapted by back-propagation of TD(λ) error (similar to TD error described above) as described in (Sutton and Barto, <xref ref-type="bibr" rid="B22">1998</xref>
). Each network was trained for up to 1000 times (epochs). We initially did this offline due to computational limitations (speed and memory) in our local workstation. Initialization includes many adaptations; however, real-time adaptation is challenge that cannot be addressed offline. After each action (every step) the agent has a new state, action, and reward observation; hence new error. <italic>Q</italic>
(λ) learning can require up to 42 complete weight updates [see <xref ref-type="sec" rid="s3">Real-Time Operation that Scale with Biological Responses (<100 ms)</xref>
] per time-step in this task. This must be completed within 100 ms for adaptation and as soon as possible for initialization.</p>
</sec>
</sec>
<sec><title>Experimental setup</title>
<p>A series of both online and simulated RLBMI experiments was used to benchmark CW performance. A 100-ms deadline was imposed on each closed-loop control cycle, which consists of four phases: data acquisition, network transfer, model computation, and robot control (see Figure <xref ref-type="fig" rid="F2">2</xref>
D). Neural signals (32 channels) were sampled through a DSP device (online) or from offline data stores (simulated). The data acquisition and robot control server (local) has dual 2.4 GHz Xeon processors and runs Windows Server 2003. Remote computation was conducted on a cluster of VMware ESX server 3.0-based VMs hosted on several dual 3.2 GHz Xeon servers. Each VM has 1 GB RAM and runs Ubuntu Linux 7.04. The experiment was submitted, controlled, and monitored locally via the Web portal.</p>
</sec>
<sec id="s1"><title>Evaluation</title>
<sec id="s3"><title>Real-time operation that scale with biological responses (<100 ms)</title>
<p>In an online RLBMI experiment with 8151 time steps (13 m 22 s), 99% of closed-loop control cycles were completed in less than 10 ms; 100% completed within 100 ms (Zhao et al., <xref ref-type="bibr" rid="B25">2008</xref>
). This demonstrates the CW provides a high-performance computing environment capable of real-time experiments including BMI adaptation. Table <xref ref-type="table" rid="T1">1</xref>
reports timing results in more detail, including the statistics of the entire cycle time as well as individual phase latency (see Figure <xref ref-type="fig" rid="F2">2</xref>
D for labels).</p>
<table-wrap id="T1" position="float"><label>Table 1</label>
<caption><p><bold>Timing statistics of an online RLBMI experiment</bold>
.</p>
</caption>
<table frame="hsides" rules="groups"><thead><tr><th align="left" rowspan="1" colspan="1">Latency</th>
<th align="left" rowspan="1" colspan="1">Average (ms)</th>
<th align="left" rowspan="1" colspan="1">Stdev (ms)</th>
</tr>
</thead>
<tbody><tr><td align="left" rowspan="1" colspan="1">Entire closed loop</td>
<td align="char" char="." rowspan="1" colspan="1">12.58</td>
<td align="char" char="." rowspan="1" colspan="1">12.77</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">Data acquisition</td>
<td align="char" char="." rowspan="1" colspan="1">8.09</td>
<td align="char" char="." rowspan="1" colspan="1">10.18</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">Network transfer</td>
<td align="char" char="." rowspan="1" colspan="1">1.42</td>
<td align="char" char="." rowspan="1" colspan="1">1.10</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">Model computation</td>
<td align="char" char="." rowspan="1" colspan="1">0.37</td>
<td align="char" char="." rowspan="1" colspan="1">2.60</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">Robot control</td>
<td align="char" char="." rowspan="1" colspan="1">2.54</td>
<td align="char" char="." rowspan="1" colspan="1">6.58</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The <italic>data acquisition</italic>
phase is responsible for a majority of overall variability in closed-loop operation time. Aquiring neural ensemble firing rates from neurophysiology hardware requires 256 bytes (8 bytes per electrode), which is trivial to transfer. However, problems arise because Windows Server 2003 is not a real-time operating system. Although we assign both real-time priority and stop unnecessary services, the Windows Scheduler did not always allow acquisition (or robot control) to start immediately.</p>
<p>The relatively large variance in model computation is related to the specific algorithm used in this example. In <italic>Q</italic>
(λ) learning, error is back propagated through the MLP at each time step (similar to other neural networks). However, this error includes an approximation of return (Eq. <xref ref-type="disp-formula" rid="E1">1</xref>
), which is not completely available at time <italic>t</italic>
+ 1 (details in Sutton and Barto, <xref ref-type="bibr" rid="B22">1998</xref>
). Instead the MLP was adapted multiple times; increasingly often as trial length increased. For example, a four-step trial has an average of 1.5 weight updates per time step [(3 + 2 + 1)/4]. If the rat used the maximum trial length (43 steps) then there were 21 average weight updates per time step. Since the rat is free to maneuver the robot along any path (and trials may not be successful), trial length and computation complexity were variable.</p>
</sec>
<sec><title>Parallel processing capability for multi-input, multi-output models</title>
<p>In addition to closed-loop (online) mode, the CW excels in offline BMI training. A modest example is shown in Figure <xref ref-type="fig" rid="F5">5</xref>
for the real world problem of RLBMI initialization (also common to other BMI). Specifically, value function estimation (see <xref ref-type="sec" rid="s4">Value Function Estimation</xref>
) is not guaranteed to converge to a global optimum, so multiple MLPs (planes in Figure <xref ref-type="fig" rid="F2">2</xref>
) are initialized and trained to find the best performer. The CW allocates VMs to initialize and train each MLP. The CW outperforms local computation if at least 2 VM (each training 18 MLPs) are used. If 18 VM (each training 2 MLPs) are used, initialization time is reduced by nearly a factor of 5. This creates the opportunity to fully initialize (or re-initialize) the BMI with the CW between normal trials<sup><xref ref-type="fn" rid="fn3">3</xref>
</sup>
. This contrasts sharply with our prior solution of offline batch training in (DiGiovanna et al., <xref ref-type="bibr" rid="B6">2009</xref>
) or the common practice of disjoint <italic>train</italic>
and <italic>testing</italic>
phases (Hatsopoulos and Donoghue, <xref ref-type="bibr" rid="B9">2009</xref>
).</p>
<fig id="F5" position="float"><label>Figure 5</label>
<caption><p><bold>Cyberworkstation performance as a function of number of virtual machines used</bold>
. The time required (error bars are standard deviation in 10 trials) to initialize a RLBMI using rat data from (DiGiovanna et al., <xref ref-type="bibr" rid="B6">2009</xref>
). The CW is faster (mean) than the local computer (AMD Turion 64 X2 [1.8 GHz dual core], 4 Gb RAM) when more than one VM is used (single VM time was 4883 ± 33 s). Additionally, the local computer is free for other processing tasks.</p>
</caption>
<graphic xlink:href="fneng-02-017-g005"></graphic>
</fig>
<p>The CW provides the necessary computational performance in experiments where scalability and code reusability are critical. A remote, resource-rich computing center makes it possible to provision the CW with large numbers of virtual/physical machines. This removes resource impediments to the scaling of models and data sets leaving only algorithm parallelization constraints. Two interesting aspects of Figure <xref ref-type="fig" rid="F5">5</xref>
are that the CW is slower than local processing when a single VM is used and computation time increases from 18 to 36 VMs. Overheads in virtualization, communication, resource sharing, parallelization and middleware execution that are not present in a local computer cause the first issue. Using only a single remote VM creates this overhead without any of the benefits; hence, the local workstation is faster. Using additional VM creates speed increases up to a certain point (here >18) when the number of VMs becomes sufficiently large such that the communication and sharing behavior (all VMs write to the same set of files) between VMs exceed the computational savings gained from parallel computation of RLBMI networks.</p>
</sec>
<sec><title>Large memory for neurophysiological data streams and model parameterization</title>
<p>Brain-machine interfaces can present variable challenges to a cyber workstation depending which models (or model sets) are being employed. For example, a linear regression from neural signals to hand position using <italic>least mean squares</italic>
(common in BMI) has complexity O(<italic>N</italic>
) (where <italic>N</italic>
is the number of neural inputs) for each output dimension, <italic>D</italic>
. If a designer wanted to use Gaussian Processes to transform the neural data before filtering, they could add another model but this would have complexity O(<italic>M</italic>
<sup>3</sup>
) where <italic>M</italic>
is the number of training samples. Neurophysiological data often is repeatedly processed in a BMI; hence it may require large, dynamically allocated memory blocks that must scale with <italic>N</italic>
and time of control. Admittedly, RLBMI is parsimonious in parameters relative to other BMI; we expect CW strengths will be better showcased by other BMI – some of which scale exponentially with <italic>N</italic>
or <italic>D</italic>
.</p>
</sec>
<sec><title>Customizable signal processing models</title>
<p>The aspect of the CW with the greatest research potential is its inherent flexibility. Both data flow and signal processing are totally customizable, e.g. in Figure <xref ref-type="fig" rid="F2">2</xref>
B the CW user is presented with a fully interconnected set of three processing models between the input and output. Figure <xref ref-type="fig" rid="F2">2</xref>
C shows how the user could configure the data flow. Specifically, the input goes directly to Model A. Model A has reciprocal connections with B and an outgoing connection to C. Model C has outgoing connections to B and the BMI output. The remaining gray arrows were not utilized. Additionally, the user has selected multiple parallel BMI implementations that may or may not have the same data flow as described above (the user can customize each parallel implementation). The models (i.e. A, B, C) in Figures <xref ref-type="fig" rid="F2">2</xref>
B,C are customizable. Users can either select models from an established model <italic>toolbox</italic>
(e.g. least-squares, RLS) or create their own models in C++ and upload them to the CW.</p>
<p>Model topology and configuration will depend on the particular task attempted. One interesting combination that could be applied to a state-based controller (e.g. RLBMI) involves Gaussian Process models (Deisenroth et al., <xref ref-type="bibr" rid="B5">2009</xref>
) to segment neural state, linear filters to calculate state value, state/reward transition models to estimate the future, models that aggregate learning from experience and prediction, and finally inverse kinematics optimization models to find robot actuations that achieve selected actions. It may also be useful to have a <italic>mixture of experts</italic>
, which is parallel implementation of some of these models such that there is an <italic>expert</italic>
(e.g. value function estimator) for different areas of the state space. We are actively pursuing this topic using the CW.</p>
</sec>
<sec><title>Integrated analysis platform for visualization of modeling and physiological parameters</title>
<p>The CW also facilitates integrated analysis both for the local (neurophysiology) lab and collaborators elsewhere. A conceptual overview of this integration is shown in Figure <xref ref-type="fig" rid="F6">6</xref>
where local CW users are running a standard experiment with a single visualization. Additionally, collaborators are simultaneously analyzing (processing represented by dashed lines) the same experiment. The remote lab can perform additional analysis and communicate with the local lab through an instant messaging client. This is advantageous for the local lab because they get feedback and assistance from the remote lab. The remote lab can implement advanced analysis metrics and even alternative models without causing the local lab to divert their own attention from ensuring the BMI user's safety, the prosthetic function, and their own analysis. If the remote lab develops a model that exhibits better performance (prosthetic control), then ideally their model could be selected and put online locally. The remote lab also benefits because they are given access to a closed-loop experiment without having to invest in access to BMI users and neurophysiology hardware.</p>
<fig id="F6" position="float"><label>Figure 6</label>
<caption><p><bold>Integrated analysis platform for real-time modeling and collaboration</bold>
.</p>
</caption>
<graphic xlink:href="fneng-02-017-g006"></graphic>
</fig>
</sec>
<sec><title>Data warehousing</title>
<p>The CW also provides vast data warehousing capability. Before the CW, computational neuroscience experiments at the NRG lab generated 1–2 Gb of data per hour. Storage was scaled via external hard drives; however, drive failures could be catastrophic, switching between users required switching drives, and these drives were not easily incorporated into a data back-up system. The CW simplifies and centralizes this storage to a Redundant Array of Inexpensive Disks (RAID) high-capacity storage server in the ACIS lab.</p>
</sec>
<sec><title>Simple user interfaces</title>
<p>As previously described in the section <xref ref-type="sec" rid="s5">‘Architecture’</xref>
, the CW was designed with a focus on creating a simple and user-friendly interface to allow BMI developers to focus on research instead of low-level technical details. In order to use available models in the CW, the user does not need to know the specific details of the models; he or she only needs to understand the concepts. Help is provided via in-line mouse-over tips to be able to work with the models in short amount of time. The user interface also integrates multiple terminals (portlets) while conducting online experiments to give users a unified control interface.</p>
</sec>
</sec>
</sec>
<sec><title>Conclusion</title>
<p>We have developed here a new framework to seamlessly bridge computational resources with <italic>in vivo</italic>
experiments to better study the functional aspects of brain systems operating in dynamic environments. Online and offline BMI experiments execute in a closed-loop manner that includes <italic>in vivo</italic>
(for online experiments) data acquisition, reliable network transfer, parallel model computation, and real-time robot control. Scientists can conveniently deploy their algorithms and control structures on the cyber-infrastructure and conduct research through its Web portal. We have shown proof of concept that BMI control schemes (specifically RLS and RLBMI) could be implemented and tested on the CW. Additionally; we demonstrated that the CW met each requirement on the BMI designer's <italic>wish list</italic>
.</p>
<p>This CW potentially dissolves analysis barriers in neurophysiology laboratories while further systematizing both experimental and computational neurophysiological investigations. The CW achieves this functionality by linking available hardware with user-friendly software architecture via a powerful middleware layer that manages their interaction. This novel integration approach makes the CW powerful and customizable but also hides complexity with easy-to-use interfaces for users to conduct research. This simple interface makes the CW accessible to a variety of users, e.g. scientists, engineers, and clinicians. We hope this accessibility catalyzes collaborative research.</p>
<p>It is often the case that data from BMI or general neuroscience experiments are used for follow-up studies which require access to the experimental data according to specific formats and execution of processing tasks to analyze, mine, or identify patterns of interest in the data. One hour of experiments can easily generate gigabytes of data. The CW securely preserves this data in persistent storage, yet keeps it easily available for online processing and visualization. Additionally, analysis code can be centrally stored to ensure reported results are reproducible.</p>
<p>The CW provides the necessary resources for future studies including models to estimate future neural states, environmental rewards, and user's internal reward (Mahmoudi et al., <xref ref-type="bibr" rid="B12">2009</xref>
). This modification would allow a BMI to learn from both <italic>experience</italic>
(DiGiovanna et al., <xref ref-type="bibr" rid="B6">2009</xref>
) and model <italic>prediction</italic>
of possible environmental interactions; thus facilitating faster learning. Additionally, finding explicit functional relationships between brain states, prosthetic actions, and rewards could provide insight into how the different brain areas process and share information. Even biologically reduced models (reductionist approach) can be analyzed to reveal features (e.g. parameter sensitivity, hidden states) which correspond to neural or behavioral decision variables (Corrado and Doya, <xref ref-type="bibr" rid="B3">2007</xref>
).</p>
<p>The capability to include extra models is also useful for prosthetic control, specifically for finding differential commands for each robot joint based on predicted endpoint positions. Determining appropriate commands requires inverse kinematics, but this calculation for a redundant four degree-of-freedom robot (non-unique endpoint to joint angles mapping) does not have a closed form solution (Craig, <xref ref-type="bibr" rid="B4">1989</xref>
). Joint angles can be found via optimization, but it is not guaranteed to find a feasible solution. Error checking and repeated optimizations consume the computing budget. Parallel computation increases the probability of at least one feasible solution in minimal time.</p>
<p>The CW does face a number of possible limitations. The major impediment is that researchers have developed their own models and are not able to devote resources to convert them to C++ compatible with the CW's API. This could limit both the number of available models in the toolbox and number of CW users (to refine said models). Future CW development may expand support for models written in other languages (e.g. Matlab, Python); however, CW adoption may be too time consuming for some labs. Modeling flexibility could be helpful for users who do use the CW; however, middleware is only responsible for checking that users’ code includes a set of data structures for communication – there is no check whether the code <italic>works</italic>
. Users will need to validate models on similar processing architectures before uploading them to the CW. Additionally, transmitting neurophysiological data from animals or humans across the Internet could raise privacy and security concerns [e.g. compliance with Health Insurance Portability and Accountability Act (HIPAA) laws]. Finally, real-time communication cannot be guaranteed for arbitrary Internet connections whose communication latencies are excessive.</p>
<p>Overall, this solution for distributed BMIs could lay the ground for scalable middleware techniques that, in the long run, can support increasingly elaborate neurophysiologic research test beds in which subjects can carry out more complex tasks. These advanced test beds will be essential for the development and optimization of the computational components that can be implemented on future workstations with multiple multi-core processors which, collectively, will be able to provide the necessary resources for deeper study of neural coding and function. This new computational platform is transformative by providing: (1) access to user friendly interfaces to dynamically manage and analyze experiments, (2) unrestricted computer power for simulation, signal processing of brain signals and experimental control, (3) huge storage for data and (4) real-time and closed-loop subject feedback, 24/7, anywhere in the world.</p>
</sec>
<sec><title>Conflict of Interest Statement</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
</body>
<back><ack><p>This work was funded by the NSF under Grant #CNS-0540304. We thank Loris Marchal for his development of RLS algorithms for pilot testing of the CW.</p>
</ack>
<ref-list><title>References</title>
<ref id="B1"><mixed-citation publication-type="book"><person-group person-group-type="author"><name><surname>Abeles</surname>
<given-names>M.</given-names>
</name>
</person-group>
(<year>1991</year>
). <article-title>Corticonics: Neural Circuits of the Cerebral Cortex</article-title>
. <publisher-loc>New York</publisher-loc>
, <publisher-name>Cambridge University Press</publisher-name>
</mixed-citation>
</ref>
<ref id="B2"><mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Asai</surname>
<given-names>Y.</given-names>
</name>
<name><surname>Suzuki</surname>
<given-names>Y.</given-names>
</name>
<name><surname>Kido</surname>
<given-names>Y.</given-names>
</name>
<name><surname>Oka</surname>
<given-names>H.</given-names>
</name>
<name><surname>Heien</surname>
<given-names>E.</given-names>
</name>
<name><surname>Nakanishi</surname>
<given-names>M.</given-names>
</name>
<name><surname>Urai</surname>
<given-names>T.</given-names>
</name>
<name><surname>Hagihara</surname>
<given-names>K.</given-names>
</name>
<name><surname>Kurachi</surname>
<given-names>Y.</given-names>
</name>
<name><surname>Nomura</surname>
<given-names>T.</given-names>
</name>
</person-group>
(<year>2008</year>
). <article-title>Specifications of insilicoML 1.0: a multilevel biophysical model description language</article-title>
. <source>J. Physiol. Sci.</source>
<volume>58</volume>
, <fpage>447</fpage>
–<lpage>458</lpage>
<pub-id pub-id-type="doi">10.2170/physiolsci.RP013308</pub-id>
<pub-id pub-id-type="pmid">18983726</pub-id>
</mixed-citation>
</ref>
<ref id="B3"><mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Corrado</surname>
<given-names>G.</given-names>
</name>
<name><surname>Doya</surname>
<given-names>K.</given-names>
</name>
</person-group>
(<year>2007</year>
). <article-title>Understanding neural coding through the model-based analysis of decision making</article-title>
. <source>J. Neurosci.</source>
<volume>27</volume>
, <fpage>8178</fpage>
–<lpage>8180</lpage>
<pub-id pub-id-type="doi">10.1523/JNEUROSCI.1590-07.2007</pub-id>
<pub-id pub-id-type="pmid">17670963</pub-id>
</mixed-citation>
</ref>
<ref id="B4"><mixed-citation publication-type="book"><person-group person-group-type="author"><name><surname>Craig</surname>
<given-names>J. J.</given-names>
</name>
</person-group>
(<year>1989</year>
). <article-title>Introduction to Robotics: Mechanics and Control</article-title>
, <edition>2nd Edn</edition>
<publisher-loc>Reading</publisher-loc>
, <publisher-name>Addison-Wesley Publishing Co., Inc.</publisher-name>
</mixed-citation>
</ref>
<ref id="B5"><mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Deisenroth</surname>
<given-names>M. P.</given-names>
</name>
<name><surname>Rassmussen</surname>
<given-names>C. E.</given-names>
</name>
<name><surname>Peters</surname>
<given-names>J.</given-names>
</name>
</person-group>
(<year>2009</year>
). <article-title>Gaussian process dynamic programming</article-title>
. <source>Neurocomputing</source>
<volume>72</volume>
, <fpage>1508</fpage>
–<lpage>1524</lpage>
<pub-id pub-id-type="doi">10.1016/j.neucom.2008.12.019</pub-id>
</mixed-citation>
</ref>
<ref id="B6"><mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>DiGiovanna</surname>
<given-names>J.</given-names>
</name>
<name><surname>Mahmoudi</surname>
<given-names>B.</given-names>
</name>
<name><surname>Fortes</surname>
<given-names>J.</given-names>
</name>
<name><surname>Principe</surname>
<given-names>J. C.</given-names>
</name>
<name><surname>Sanchez</surname>
<given-names>J. C.</given-names>
</name>
</person-group>
(<year>2009</year>
). <article-title>Co-adaptive brain-machine interface via reinforcement learning</article-title>
. <source>IEEE Trans. Biomed. Eng.</source>
<volume>56</volume>
, <fpage>54</fpage>
–<lpage>64</lpage>
<pub-id pub-id-type="doi">10.1109/TBME.2008.926699</pub-id>
<pub-id pub-id-type="pmid">19224719</pub-id>
</mixed-citation>
</ref>
<ref id="B7"><mixed-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>DiGiovanna</surname>
<given-names>J.</given-names>
</name>
<name><surname>Mahmoudi</surname>
<given-names>B.</given-names>
</name>
<name><surname>Mitzelfelt</surname>
<given-names>J.</given-names>
</name>
<name><surname>Sanchez</surname>
<given-names>J. C.</given-names>
</name>
<name><surname>Principe</surname>
<given-names>J. C.</given-names>
</name>
</person-group>
(<year>2007</year>
). <article-title>Brain-machine interface control via reinforcement learning</article-title>
. <conf-name>In IEEE EMBS Conference on Neural Engineering</conf-name>
<publisher-loc>Kohala Coast</publisher-loc>
</mixed-citation>
</ref>
<ref id="B8"><mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Fitzsimmons</surname>
<given-names>N. A.</given-names>
</name>
<name><surname>Lebedev</surname>
<given-names>M. A.</given-names>
</name>
<name><surname>Peikon</surname>
<given-names>I. D.</given-names>
</name>
<name><surname>Nicolelis</surname>
<given-names>M. A. L.</given-names>
</name>
</person-group>
(<year>2009</year>
). <article-title>Extracting kinematic parameters for monkey bipedal walking from cortical neuronal ensemble activity</article-title>
. <source>Front. Integr. Neurosci.</source>
<volume>3</volume>
<pub-id pub-id-type="doi">10.3389/neuro.07.003.2009</pub-id>
<pub-id pub-id-type="pmid">19750199</pub-id>
<pub-id pub-id-type="pmid">19404411</pub-id>
</mixed-citation>
</ref>
<ref id="B9"><mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Hatsopoulos</surname>
<given-names>N. G.</given-names>
</name>
<name><surname>Donoghue</surname>
<given-names>J. P.</given-names>
</name>
</person-group>
(<year>2009</year>
). <article-title>The science of neural interface systems</article-title>
. <source>Annu. Rev. Neurosci.</source>
<volume>32</volume>
, <fpage>249</fpage>
–<lpage>266</lpage>
<pub-id pub-id-type="doi">10.1146/annurev.neuro.051508.135241</pub-id>
<pub-id pub-id-type="pmid">19400719</pub-id>
</mixed-citation>
</ref>
<ref id="B10"><mixed-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Laubach</surname>
<given-names>M.</given-names>
</name>
<name><surname>Arieh</surname>
<given-names>Y.</given-names>
</name>
<name><surname>Luczak</surname>
<given-names>A.</given-names>
</name>
<name><surname>Oh</surname>
<given-names>J.</given-names>
</name>
<name><surname>Xu</surname>
<given-names>Y.</given-names>
</name>
</person-group>
(<year>2003</year>
). <article-title>A cluster of workstations for on-line analyses of neurophysiological data</article-title>
. <conf-name>IEEE Bioengineering Conference.</conf-name>
</mixed-citation>
</ref>
<ref id="B11"><mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Leuthardt</surname>
<given-names>E. C.</given-names>
</name>
<name><surname>Schalk</surname>
<given-names>G.</given-names>
</name>
<name><surname>Moran</surname>
<given-names>D.</given-names>
</name>
<name><surname>Ojemann</surname>
<given-names>J. G.</given-names>
</name>
</person-group>
(<year>2006</year>
). <article-title>The emerging world of motor neuroprosthetics: a neurosurgical perspective</article-title>
. <source>Neurosurgery</source>
<volume>59</volume>
, <fpage>1</fpage>
–<lpage>13</lpage>
<pub-id pub-id-type="doi">10.1227/01.NEU.0000221506.06947.AC</pub-id>
<pub-id pub-id-type="pmid">16823294</pub-id>
</mixed-citation>
</ref>
<ref id="B12"><mixed-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Mahmoudi</surname>
<given-names>B.</given-names>
</name>
<name><surname>Principe</surname>
<given-names>J. C.</given-names>
</name>
<name><surname>Sanchez</surname>
<given-names>J. C.</given-names>
</name>
</person-group>
(<year>2009</year>
). <article-title>An actor-critic architecture and simulator for goal-directed brain-machine interfaces</article-title>
. <conf-name>IEEE Eng. Med. Biol. Conference</conf-name>
(pp. <fpage>3365</fpage>
–<lpage>3368</lpage>
), <publisher-loc>Minneapolis</publisher-loc>
</mixed-citation>
</ref>
<ref id="B13"><mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Markram</surname>
<given-names>H.</given-names>
</name>
</person-group>
(<year>2006</year>
). <article-title>The blue brain project</article-title>
. <source>Nat. Rev. Neurosci.</source>
<volume>7</volume>
, <fpage>153</fpage>
–<lpage>160</lpage>
<pub-id pub-id-type="doi">10.1038/nrn1848</pub-id>
<pub-id pub-id-type="pmid">16429124</pub-id>
</mixed-citation>
</ref>
<ref id="B14"><mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Nicolelis</surname>
<given-names>M. A. L.</given-names>
</name>
<name><surname>Lebedev</surname>
<given-names>M. A.</given-names>
</name>
</person-group>
(<year>2009</year>
). <article-title>Principles of neural ensemble physiology underlying the operation of brain-machine interfaces</article-title>
. <source>Nat. Rev. Neurosci.</source>
<volume>10</volume>
, <fpage>530</fpage>
–<lpage>540</lpage>
<pub-id pub-id-type="doi">10.1038/nrn2653</pub-id>
<pub-id pub-id-type="pmid">19543222</pub-id>
</mixed-citation>
</ref>
<ref id="B15"><mixed-citation publication-type="book"><person-group person-group-type="editor"><name><surname>Purves</surname>
<given-names>D.</given-names>
</name>
<name><surname>Augustine</surname>
<given-names>G. J.</given-names>
</name>
<name><surname>Fitzpatrick</surname>
<given-names>D.</given-names>
</name>
<name><surname>Hall</surname>
<given-names>W. C.</given-names>
</name>
<name><surname>LaMantia</surname>
<given-names>A.-S.</given-names>
</name>
<name><surname>McNamara</surname>
<given-names>J. O.</given-names>
</name>
<name><surname>Williams</surname>
<given-names>S. M.</given-names>
</name>
</person-group>
(eds). (<year>2004</year>
). <article-title>Neuroscience</article-title>
, <edition>3rd Edn</edition>
<publisher-loc>Sunderland, MA</publisher-loc>
, <publisher-name>Sinauer Associates, Inc.</publisher-name>
</mixed-citation>
</ref>
<ref id="B16"><mixed-citation publication-type="book"><person-group person-group-type="author"><name><surname>Rattanatamrong</surname>
<given-names>P.</given-names>
</name>
<name><surname>Zhao</surname>
<given-names>M.</given-names>
</name>
<name><surname>DiGiovanna</surname>
<given-names>J.</given-names>
</name>
<name><surname>Mahmoudi</surname>
<given-names>B.</given-names>
</name>
<name><surname>Principe</surname>
<given-names>J. C.</given-names>
</name>
<name><surname>Sanchez</surname>
<given-names>J. C.</given-names>
</name>
<name><surname>Figueiredo</surname>
<given-names>R.</given-names>
</name>
<name><surname>Hermer-Vazquez</surname>
<given-names>L.</given-names>
</name>
<name><surname>Fortes</surname>
<given-names>J.</given-names>
</name>
</person-group>
(<year>2009</year>
). <article-title>Design and Implementation of a Cyber-Workstation for Computational Neuroscience (No. TR-ACIS-09-003)</article-title>
. <publisher-loc>Gainesville</publisher-loc>
, <publisher-name>University of Florida</publisher-name>
</mixed-citation>
</ref>
<ref id="B17"><mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Sakai</surname>
<given-names>H.</given-names>
</name>
<name><surname>Aoyama</surname>
<given-names>T.</given-names>
</name>
<name><surname>Yamaji</surname>
<given-names>K.</given-names>
</name>
<name><surname>Usui</surname>
<given-names>S.</given-names>
</name>
</person-group>
(<year>2007</year>
). <article-title>Concierge: personal database software for managing digital research resources</article-title>
. <source>Front. Neuroinformatics</source>
<volume>1</volume>
, <fpage>5</fpage>
<pub-id pub-id-type="pmid">18974800</pub-id>
</mixed-citation>
</ref>
<ref id="B18"><mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Sanchez</surname>
<given-names>J. C.</given-names>
</name>
<name><surname>Principe</surname>
<given-names>J. C.</given-names>
</name>
</person-group>
(<year>2007</year>
). <article-title>Brain Machine Interface Engineering: Morgan and Claypool</article-title>
.</mixed-citation>
</ref>
<ref id="B19"><mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Schalk</surname>
<given-names>G.</given-names>
</name>
<name><surname>McFarland</surname>
<given-names>D. J.</given-names>
</name>
<name><surname>Hinterberger</surname>
<given-names>T.</given-names>
</name>
<name><surname>Birbaumer</surname>
<given-names>N.</given-names>
</name>
<name><surname>Wolpaw</surname>
<given-names>J. R.</given-names>
</name>
</person-group>
(<year>2004</year>
). <article-title>BCI2000: a general-purpose brain-computer interface (BCI) system</article-title>
. <source>IEEE Trans. Biomed. Eng.</source>
<volume>51</volume>
, <fpage>1034</fpage>
–<lpage>1043</lpage>
<pub-id pub-id-type="doi">10.1109/TBME.2004.827072</pub-id>
<pub-id pub-id-type="pmid">15188875</pub-id>
</mixed-citation>
</ref>
<ref id="B20"><mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Schwartz</surname>
<given-names>A.</given-names>
</name>
<name><surname>Cui</surname>
<given-names>X. T.</given-names>
</name>
<name><surname>Weber</surname>
<given-names>D. J.</given-names>
</name>
<name><surname>Moran</surname>
<given-names>D. W.</given-names>
</name>
</person-group>
(<year>2006</year>
). <article-title>Brain-controlled interfaces: movement restoration with neural prosthetics</article-title>
. <source>Neuron</source>
<volume>52</volume>
, <fpage>205</fpage>
–<lpage>220</lpage>
<pub-id pub-id-type="doi">10.1016/j.neuron.2006.09.019</pub-id>
<pub-id pub-id-type="pmid">17015237</pub-id>
</mixed-citation>
</ref>
<ref id="B21"><mixed-citation publication-type="book"><person-group person-group-type="author"><name><surname>Snir</surname>
<given-names>M.</given-names>
</name>
<name><surname>Otto</surname>
<given-names>S.</given-names>
</name>
<name><surname>Huss-Lederman</surname>
<given-names>S.</given-names>
</name>
<name><surname>Walker</surname>
<given-names>D.</given-names>
</name>
<name><surname>Dongarra</surname>
<given-names>J.</given-names>
</name>
</person-group>
(<year>1995</year>
). <article-title>MPI: The Complete Reference</article-title>
. <publisher-loc>Cambridge, MA</publisher-loc>
, <publisher-name>MIT Press</publisher-name>
</mixed-citation>
</ref>
<ref id="B22"><mixed-citation publication-type="book"><person-group person-group-type="author"><name><surname>Sutton</surname>
<given-names>R. S.</given-names>
</name>
<name><surname>Barto</surname>
<given-names>A. G.</given-names>
</name>
</person-group>
(<year>1998</year>
). <article-title>Reinforcement Learning: An Introduction</article-title>
. <publisher-loc>Cambridge</publisher-loc>
, <publisher-name>MIT Press</publisher-name>
</mixed-citation>
</ref>
<ref id="B23"><mixed-citation publication-type="book"><person-group person-group-type="author"><name><surname>Trappenberg</surname>
<given-names>T. P.</given-names>
</name>
</person-group>
(<year>2002</year>
). <article-title>Fundamentals of Computational Neuroscience</article-title>
. <publisher-loc>New York</publisher-loc>
, <publisher-name>Oxford University Press</publisher-name>
</mixed-citation>
</ref>
<ref id="B24"><mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Wilson</surname>
<given-names>J. A.</given-names>
</name>
<name><surname>Williams</surname>
<given-names>J. C.</given-names>
</name>
</person-group>
(<year>2009</year>
). <article-title>Massively parallel signal processing using the graphics processing unit for real-time brain-computer interface feature extraction</article-title>
. <source>Front. Neuroeng.</source>
<volume>2</volume>
:<fpage>11</fpage>
,<pub-id pub-id-type="doi">10. 3389/neuro.16.011.2009</pub-id>
</mixed-citation>
</ref>
<ref id="B25"><mixed-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Zhao</surname>
<given-names>M.</given-names>
</name>
<name><surname>Rattanatamrong</surname>
<given-names>P.</given-names>
</name>
<name><surname>DiGiovanna</surname>
<given-names>J.</given-names>
</name>
<name><surname>Mahmoudi</surname>
<given-names>B.</given-names>
</name>
<name><surname>Figueiredo</surname>
<given-names>R.</given-names>
</name>
<name><surname>Sanchez</surname>
<given-names>J. C.</given-names>
</name>
<name><surname>Principe</surname>
<given-names>J. C.</given-names>
</name>
<name><surname>Fortes</surname>
<given-names>J.</given-names>
</name>
</person-group>
(<year>2008</year>
). <article-title>BMI Cyberworkstation: enabling dynamic data-driven brain-machine interface research through cyberinfrastructure</article-title>
. <conf-name>IEEE Eng. Med. Biol</conf-name>
<publisher-loc>Vancouver</publisher-loc>
</mixed-citation>
</ref>
</ref-list>
<fn-group><fn id="fn1"><p><sup>1</sup>
The NRG lab uses Tucker-Davis Technologies (Alachua, FL USA) devices; however, the CW should generalize to any recording hardware with buffers that can be sampled within experiment time limits (e.g. 25–100 ms).</p>
</fn>
<fn id="fn2"><p><sup>2</sup>
<uri xlink:type="simple" xlink:href="http://bmi.acis.ufl.edu/">http://bmi.acis.ufl.edu/</uri>
</p>
</fn>
<fn id="fn3"><p><sup>3</sup>
For typical experiments, the minimum (average) inter-trial time was 1:06 [m:ss] (2:12). Using 18 VMs (smaller network than Figure <xref ref-type="fig" rid="F5">5</xref>
; local computation time was 15:33), the entire initialization time was 1:26. Given data, we could theoretically train the networks quickly enough that the user may not notice the delay before they were able to control the prosthetic.</p>
</fn>
</fn-group>
</back>
</pmc>
</record>
Pour manipuler ce document sous Unix (Dilib)
EXPLOR_STEP=$WICRI_ROOT/Ticri/CIDE/explor/CyberinfraV1/Data/Pmc/Corpus
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 000538 | SxmlIndent | more
Ou
HfdSelect -h $EXPLOR_AREA/Data/Pmc/Corpus/biblio.hfd -nk 000538 | SxmlIndent | more
Pour mettre un lien sur cette page dans le réseau Wicri
{{Explor lien |wiki= Ticri/CIDE |area= CyberinfraV1 |flux= Pmc |étape= Corpus |type= RBID |clé= PMC:2814557 |texte= Cyber-Workstation for Computational Neuroscience }}
Pour générer des pages wiki
HfdIndexSelect -h $EXPLOR_AREA/Data/Pmc/Corpus/RBID.i -Sk "pubmed:20126436" \ | HfdSelect -Kh $EXPLOR_AREA/Data/Pmc/Corpus/biblio.hfd \ | NlmPubMed2Wicri -a CyberinfraV1
![]() | This area was generated with Dilib version V0.6.25. | ![]() |