Web-based data science analysis and visualization platform.
JavaScript Python CSS HTML Gherkin Dockerfile Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Sample-Images adding sample images for #543 Jan 26, 2016
agent fixed logic for xyce creation Aug 9, 2018
artwork Update the system diagram. Dec 23, 2014
data Changing copyright symbol to ascii equivaldent to prevent slycat from… Apr 17, 2018
docker setting proper permissions for slycat home in docker Apr 19, 2018
docs Adding react-dom dependency May 23, 2018
end-to-end-tests Changing copyright symbol to ascii equivaldent to prevent slycat from… Apr 17, 2018
features Changing copyright symbol to ascii equivaldent to prevent slycat from… Apr 17, 2018
munin-plugins Changing copyright symbol to ascii equivaldent to prevent slycat from… Apr 17, 2018
packages/slycat added locking around model updates Jun 22, 2018
test Changing copyright symbol to ascii equivaldent to prevent slycat from… Apr 17, 2018
travis-ci removed feed server from proxy config #738 Aug 10, 2017
web-client Changing copyright symbol to ascii equivaldent to prevent slycat from… Apr 17, 2018
web-server fixed logic for xyce creation Aug 9, 2018
.codeclimate.yml adding excludes to code climate Apr 6, 2018
.gitignore adding a docker backend pre population Apr 9, 2018
.travis.yml fixed docker file to work with pypi Apr 19, 2018
CHANGELOG.md testing hook for travis Apr 6, 2018
Figure27B.PNG Add files via upload Apr 2, 2018
LICENSE Initial open-source release. Jul 12, 2013
README.md Update README.md Apr 16, 2018
regression.py Changing copyright symbol to ascii equivaldent to prevent slycat from… Apr 17, 2018
setup.cfg Enable coverage for the top-level regression tests. Jul 30, 2014
setup.py Changing copyright symbol to ascii equivaldent to prevent slycat from… Apr 17, 2018
travisyml.old adding in the old travis file as a quick reference for later Oct 3, 2017

README.md

Slycat

This is Slycat - a web-based ensemble analysis and visualization platform, created at Sandia National Laboratories.

Slycat Demo

You can try out slycat at https://myslycat.com

Username: demo
Password: demo

The data in this demo instance of Slycat is erased on a regular basis, so please don't upload anything you intend to keep.

Slycat-data

A github repo of sample data that can be used by slycat.

Quick Start

Run from docker hub image (fastest way to start playing with slycat)

  1. Download and install Docker.
  2. Pull the Slycat image with the following command:
    docker pull slycat/slycat-developer
  3. Get Slycat running on localhost:
    docker run -p 80:80 -p 443:443 -d --name slycat slycat/slycat-developer
  4. Visit your local instance of Slycat at https://localhost
    You can log in with any username as long as the password is the same as the username. For example:
    Username: slycat
    Password: slycat
    Also, your browser will probably notify you of a privacy issue because we provide a self-signed certificate. You can proceed anyway.
  5. You can get into your local slycat container:
    docker exec -u slycat -it slycat bash
  6. Once inside your container, you can update the Slycat source code like so:
    a. cd ~/src/slycat
    b. git pull
    Slycat will automatically restart to pick up any new changes.
  7. To exit your container:
    exit
  8. Once you're out of your container, you can stop Slycat:
    docker stop slycat
  9. And start it back up:
    docker start slycat
    (don't run the docker run command from step 3 again, it's only required the first time you start Slycat)
  10. Set up a firewall on the host machine if you are deploying Slycat. A good firewall configuration would block all ports except 80, 443, and 22 (or whichever port you use to ssh to the host).

Slower Start

Build/Run slycat image from scratch command line

  • install Docker
  • clone the slycat repo
git clone https://github.com/sandialabs/slycat.git
  • in a terminal shell move into the /open-source-build directory inside the repo
cd /open-source-docker/docker/open-source-build/
python build.py slycat-developer-image
  • make the container
docker run -p 2222:22 -p 80:80 -p 443:443 -p 5984:5984 -d --name slycat-developer sandialabs/slycat-developer
  • log into slycat and play around! https://localhost/login/slycat-login.html
  • for logging into this quick container the only requirement is username = pasword
  • root user:pass is slycat:slycat for the container
ssh slycat@localhost -p 2222

Ensemble analysis and Visualization

Multiple Levels of Abstraction

  • Ensemble summaries (correlations or similarities)

alt tag

  • Individual runs relative to the group (distributions or behaviors)

alt tag

  • Run-specific data (numeric values, images, or videos)

alt tag

##Sensitivity Analysis

  1. Model Understanding
  2. Model Validation
  3. Model Simplification

alt tag alt tag

Parameter Space Exploration

  1. Results Clustering
  2. Design Optimization
  3. Model Tuning

alt tag alt tag alt tag

Anomaly Detection

  1. Unique Features
  2. Bugs

alt tag alt tag alt tag alt tag alt tag alt tag alt tag alt tag

Tests

If you use the development container, shell into it and run the tests as described in the below sections.

If you aren't using the development container, here are some tips on getting your environment set up for testing.

Make sure your PYTHONPATH is set correctly. You may need to add the slycat packages directory for the unit tests to work:

PYTHONPATH=(path to slycat src)/packages

Also, you should install the same modules as slycat uses (e.g. CherryPy, pillow, etc). For some tests, you'll also need testing modules imported by the current tests in the codebase. At present these are:

  • nose
  • selenium
  • pyvirtualdisplay (also install xvfb in the OS if needed)

Unit Tests

Unit tests are mostly using py.test. If you have coverage, you can run them from the root slycat folder with

py.test test/

If you have the coverage package, you can run the tests and generate both stdout and html coverage output with

coverage run --source . -m py.test ; coverage html

You can leave off the coverage html if you don't want the html output. By default, the output will generate in the htmlcov directory.

Integration Tests

You can run behave tests by simply running behave since slycat uses the default name, features.

End-to-end Tests

Install and run the slycat-developer image as described above. Set the SLYCAT_TEST_SERVER environment variable to the uri of your test server being used for these tests. Then from the host (not inside the container), run

behave end-to-end-tests

A new browser instance will open up and will try to load slycat. You may need to accept the https exception. Once you get to the login page, enter the default username/password for the container (slycat:slycat). The tests should run, and you may see the test suite interacting with the browser as it carries out its tests.