<commit_before>* The Noctua (Editor + Barista + Minerva) Stack
  
  _Current development is very rapid, so some of these docs may be out
  of date._

  More docs/API to be found [[http://geneontology.github.io/noctua][here]].
  
  Prototype editor frontend (Noctua) and messenger server (Barista)
  for the Gene Ontology Molecular Modal Environment server (Minerva).

  It is based on BBOP(X) JS (using the AmiGO 2 environment) and
  jsPlumb. The backend is the OWLTools Molecular Model Manager.
  
  While the editor is generally developed with Firefox, the user
  experience using Chrome/Chromium is quite a bit smoother.

  The current alpha instance is available at: http://noctua.berkeleybop.org

** Installation
  
   You must start with a modern version of Node.js (say >=0.12.3). All
   of the tooling is built around that and should install easily with:

   : npm install
   : ./node_modules/.bin/gulp build

   Or, if you have "./node_modules/.bin" in your path:

   : npm install
   : gulp build

   Tha available gulp tasks are:

   - doc - build the docs, available in doc/
   - test - need more here
   - build - assemble the apps for running
   - watch - development file monitor
   - clean - clean out /doc and /deploy

** Running

*** Minerva

    TODO

    Everybody is different, but mine is like: 

    : make start-minerva-go

    Or, in a more granular way:

    : cd ../minerva//minerva-server/bin && ./start-go-minerva.sh /home/sjcarbon/local/src/svn/geneontology.org/trunk/ /home/sjcarbon/local/src/git/noctua-models/models/

    Learn more about minerva at [[https://github.com/geneontology/minerva][here]].

*** Barista

    TODO

    Everybody is different, but mine is like: 

    : make start-barista-dev

*** Graph Editor (previously "Noctua")

    TODO

    Everybody is different, but mine is like: 

    : make start-noctua-dev

** How to use demo
*** Generating/selecting a model

    - Models that are currently known (either in memory or file) are
      found under [Current State] > select "Usable" > [Jump]
    - To create a new model from a class and a DB, use [Wizard] >
      (fill out first sections) > [Generate]; this operation could
      take tens of minutes depending on the complexity
    - To create a new model from just a DB, use [Wizard] > (fill out
      second section) > [Generate]; this operation may take minutes
      depending on the size of the GAF to be loaded
    - Directly loading by copy-and-paste is not currently tested

*** Instances and edges

   - A new instance can be created by filling in the form on the left
     side of the display
   - Double clicking edges and instances allows the editing of
     evidence and comments
   - Clicking on the green box upper-left of an instance allows you
     to view and edit the instance type information
   - By dragging the blue circle in the upper-right of an instance to
     anywhere on a different instance will allow you to create a
     relation between the two
   - A complex expression can be added by opening the instance type
     editor and
    - Selecting: enabled_by
    - Entering an expression of the form: "GO:0043234 and ('has part'
      some UniProtKB:P0002) and ('has part' some UniProtKB:P0003)"
   
*** Models

    - Model meta information can be edited by selecting [Model] >
      [Edit annotations] from the top menu
    - [Model] > [Soft refresh] gets a fully updated model from the
      server; this is what you'll use for the time being when another
      user makes a change to the model
    - [Model] > [Reset] complete reloads everything from the server
      from scratch
    - To export to a text file (Manchester syntax), use
      [Export]
    - To save your current model, select [Model] > [Save]; your model
      should now be available from the landing page

*** General navigation

    - Dragging on the background of the model allows you to pan around
      without using the scrollbars
    - Under [Views], there are various zooming options
    - To reduce clutter, the "part of" relation can be hidden by
      selecting [View] > [Show/hide "part of"]
    - The minimum space you start with is 800x600px. If you need more,
      try reseting your model--the space you can use will grow with
      it.

** Known Issues

   The bulk of major issues and feature requests are handled by the
   tracker (https://github.com/geneontology/noctua/issues). If something is
   not mentioned here or in the tracker, please contact Seth or Chris.

   - Sometimes, when moving instance or relations near a boundary, the
     relations will fall out of sync; either move nearby instances or
     refresh the model
   - Sometimes, when editing an instance, the relations (edges) will
     fall out of sync; either move nearby instances or refresh the
     model
   - The endpoint scheme is reversed between creation and instantiation
   - TODO, etc.

** Deployment
   +This should be deployable in most JS environments. It should be+
   +noted that we do most development on Ubuntu 12.04 using <NAME>'s+
   +[[https://launchpad.net/~chris-lea/+archive/ubuntu/node.js][repo]]. Also, our alpha deployment environment is RedHat's OpenShift,+
   +so we're hoping this is fairly flexible.+

   We do have people who have run the whole stack easily on OS X.
   
*** Running Minerva
    The main/best way to run Minerva is with the "start-go-minerva.sh"
    script, found in the [[https://code.google.com/p/owltools/][OWLTools checkout]] (in
    owltools/MolecularModelServer/bin). The only input parameter is
    the root directory for the local GO-SVN checkout.

    In typical setup for running Minerva, you will have to:

    - Build Minerva (only required after updates): build-server.sh
    - Start server: start-go-minerva.sh /path/to/GO-trunk
*** Running Noctua and Barista
    The most important part of getting familiar with the setup is
    understanding the options in the Makefile. As well, besides the
    environmental variables, there are a couple of important files for
    configuration:

    - config/app.json
    - config/users.json

    These are the backend mapping configuration and user authorization
    files respectively.

    Also, remember that Noctua cannot be run successfully until both
    Minerva and Barista are running.

    Also remember that Barista and Noctua are designed to be very
    flexible about where they are pointing, so that configurations
    like cloud -> server -> another server and perfectly fine. It is
    important to look at the initial output of all the server to know
    who that are trying to talk to and where they are--it is all
    configurable, you just need the right option.
**** Local testing
     make start-barista
     make start-noctua
**** Local testing with copies of BBOP JS and BBOPX JS
     make start-barista-dev
     make start-noctua-dev
**** OpenShift (currently noctua.js only)
     git push openshift master
     (currently at: http://go-genkisugi.rhcloud.com/)<commit_msg>Updating Minerva docs<commit_after>* The Noctua (Editor + Barista + Minerva) Stack
  
  _Current development is very rapid, so some of these docs may be out
  of date._

  More docs/API to be found [[http://geneontology.github.io/noctua][here]].
  
  Prototype editor frontend (Noctua) and messenger server (Barista)
  for the Gene Ontology Molecular Modal Environment server (Minerva).

  It is based on BBOP(X) JS (using the AmiGO 2 environment) and
  jsPlumb. The backend is the OWLTools Molecular Model Manager.
  
  While the editor is generally developed with Firefox, the user
  experience using Chrome/Chromium is quite a bit smoother.

  The current alpha instance is available at: http://noctua.berkeleybop.org

** Installation
  
   You must start with a modern version of Node.js (say >=0.12.3). All
   of the tooling is built around that and should install easily with:

   : npm install
   : ./node_modules/.bin/gulp build

   Or, if you have "./node_modules/.bin" in your path:

   : npm install
   : gulp build

   Tha available gulp tasks are:

   - doc - build the docs, available in doc/
   - test - need more here
   - build - assemble the apps for running
   - watch - development file monitor
   - clean - clean out /doc and /deploy

** Running

*** Minerva

    TODO

    Everybody is different, but mine is like: 
    
    : git clone <EMAIL>:geneontology/minerva.git
    : cd minerva
    : make start-minerva-go

    Or, in a more granular way:

    : cd ../minerva//minerva-server/bin && ./start-go-minerva.sh /home/sjcarbon/local/src/svn/geneontology.org/trunk/ /home/sjcarbon/local/src/git/noctua-models/models/

    Learn more about minerva at [[https://github.com/geneontology/minerva][here]].

*** Barista

    TODO

    Everybody is different, but mine is like: 

    : make start-barista-dev

*** Graph Editor (previously "Noctua")

    TODO

    Everybody is different, but mine is like: 

    : make start-noctua-dev

** How to use demo
*** Generating/selecting a model

    - Models that are currently known (either in memory or file) are
      found under [Current State] > select "Usable" > [Jump]
    - To create a new model from a class and a DB, use [Wizard] >
      (fill out first sections) > [Generate]; this operation could
      take tens of minutes depending on the complexity
    - To create a new model from just a DB, use [Wizard] > (fill out
      second section) > [Generate]; this operation may take minutes
      depending on the size of the GAF to be loaded
    - Directly loading by copy-and-paste is not currently tested

*** Instances and edges

   - A new instance can be created by filling in the form on the left
     side of the display
   - Double clicking edges and instances allows the editing of
     evidence and comments
   - Clicking on the green box upper-left of an instance allows you
     to view and edit the instance type information
   - By dragging the blue circle in the upper-right of an instance to
     anywhere on a different instance will allow you to create a
     relation between the two
   - A complex expression can be added by opening the instance type
     editor and
    - Selecting: enabled_by
    - Entering an expression of the form: "GO:0043234 and ('has part'
      some UniProtKB:P0002) and ('has part' some UniProtKB:P0003)"
   
*** Models

    - Model meta information can be edited by selecting [Model] >
      [Edit annotations] from the top menu
    - [Model] > [Soft refresh] gets a fully updated model from the
      server; this is what you'll use for the time being when another
      user makes a change to the model
    - [Model] > [Reset] complete reloads everything from the server
      from scratch
    - To export to a text file (Manchester syntax), use
      [Export]
    - To save your current model, select [Model] > [Save]; your model
      should now be available from the landing page

*** General navigation

    - Dragging on the background of the model allows you to pan around
      without using the scrollbars
    - Under [Views], there are various zooming options
    - To reduce clutter, the "part of" relation can be hidden by
      selecting [View] > [Show/hide "part of"]
    - The minimum space you start with is 800x600px. If you need more,
      try reseting your model--the space you can use will grow with
      it.

** Known Issues

   The bulk of major issues and feature requests are handled by the
   tracker (https://github.com/geneontology/noctua/issues). If something is
   not mentioned here or in the tracker, please contact Seth or Chris.

   - Sometimes, when moving instance or relations near a boundary, the
     relations will fall out of sync; either move nearby instances or
     refresh the model
   - Sometimes, when editing an instance, the relations (edges) will
     fall out of sync; either move nearby instances or refresh the
     model
   - The endpoint scheme is reversed between creation and instantiation
   - TODO, etc.

** Deployment
   +This should be deployable in most JS environments. It should be+
   +noted that we do most development on Ubuntu 12.04 using Chris Lea's+
   +[[https://launchpad.net/~chris-lea/+archive/ubuntu/node.js][repo]]. Also, our alpha deployment environment is RedHat's OpenShift,+
   +so we're hoping this is fairly flexible.+

   We do have people who have run the whole stack easily on OS X.
   
*** Running Minerva
    Consult the Minerva docs at https://github.com/geneontology/minerva
    
*** Running Noctua and Barista
    The most important part of getting familiar with the setup is
    understanding the options in the Makefile. As well, besides the
    environmental variables, there are a couple of important files for
    configuration:

    - config/app.json
    - config/users.json

    These are the backend mapping configuration and user authorization
    files respectively.

    Also, remember that Noctua cannot be run successfully until both
    Minerva and Barista are running.

    Also remember that Barista and Noctua are designed to be very
    flexible about where they are pointing, so that configurations
    like cloud -> server -> another server and perfectly fine. It is
    important to look at the initial output of all the server to know
    who that are trying to talk to and where they are--it is all
    configurable, you just need the right option.
**** Local testing
     make start-barista
     make start-noctua
**** Local testing with copies of BBOP JS and BBOPX JS
     make start-barista-dev
     make start-noctua-dev
**** OpenShift (currently noctua.js only)
     git push openshift master
     (currently at: http://go-genkisugi.rhcloud.com/)
{'fraction_non_alphanumeric': 0.06652046783625731, 'fraction_numerical': 0.0043859649122807015, 'mean_word_length': 2.9839836924868957, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 33, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6973987', 'n_tokens_mistral': 3898, 'n_tokens_neox': 3678, 'n_words': 1809}