A fully cloud- and browser-based 3D annotation tool for distributed large-scale data analysis in light- and electron-microscopy based Connectomics
JavaScript Scala Python Java PLpgSQL Shell Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.circleci backend unit tests for nml parser and writer (#2829) Jul 9, 2018
.github Update PULL_REQUEST_TEMPLATE.md (#3037) Aug 13, 2018
app Added info text to upload zone when upload is disabled (#3051) Aug 17, 2018
conf API route for listing experience domains (#3060) Aug 15, 2018
doc Oxalis entity-diagram for paper #311 Apr 6, 2014
flow-typed/npm Polish sharing for tracings and datasets (#3029) Aug 13, 2018
fossildb upgrade grpc and use new fossildb standard health check (#2637) Jun 7, 2018
project Refactor backend: Merge TeamSQL and Team (#2958) Jul 25, 2018
public Display rockefeller logo for rockefeller datasets (#2747) Jun 14, 2018
test Upload hybrid tracings as nml/zip (#3040) Aug 15, 2018
tools API route for listing experience domains (#3060) Aug 15, 2018
util/src/main/scala/com/scalableminds/util make bool2Fox always explicit (#2989) Aug 2, 2018
webknossos-datastore Add drag&drop nml upload functionality to dashboard (#3002) Aug 14, 2018
.babelrc add two integration tests that send update actions and snapshot the t… Aug 13, 2018
.dockerignore Removes debian packages and cleans up docker images and configs (#2258) Jan 10, 2018
.editorconfig fixed snapshot tests (WIP) #935 Mar 22, 2018
.eslintrc.json Update eslint and related dependencies (#3063) Aug 16, 2018
.flowconfig Hybrid tracings: Adapt front-end to handle skeleton and volume tracin… Aug 7, 2018
.gitignore Screenshot test tracing view (#2858) Jul 11, 2018
.prettierignore Import NML in frontend (#2253) Jan 3, 2018
.prettierrc update prettier, add prettierrc and integrate prettier in ci testing Aug 29, 2017
CHANGELOG.md Added info text to upload zone when upload is disabled (#3051) Aug 17, 2018
Dockerfile rename sbt project and binary from “oxalis” to “webknossos” (#2925) Jul 20, 2018
Dockerfile.dev docker sbt: fix global sbt dir (#2849) Jul 4, 2018
LICENSE added deployment instructions to Readme + added license Jan 24, 2017
MIGRATIONS.md API route for listing experience domains (#3060) Aug 15, 2018
README.md add versioning (#2841) Jul 9, 2018
build.sbt rename sbt project and binary from “oxalis” to “webknossos” (#2925) Jul 20, 2018
clean Screenshot test tracing view (#2858) Jul 11, 2018
docker-compose.yml rename sbt project and binary from “oxalis” to “webknossos” (#2925) Jul 20, 2018
package.json Update eslint and related dependencies (#3063) Aug 16, 2018
sbt sbt start script: set default exit_code May 10, 2018
webpack.config.js add two integration tests that send update actions and snapshot the t… Aug 13, 2018
yarn.lock Update eslint and related dependencies (#3063) Aug 16, 2018

README.md

webKnossos

Cellular-resolution connectomics is currently substantially limited by the throughput and efficiency of data analysis. Current solutions require an efficient integration of automated image analysis with massive manual data annotation. To scale such annotation efforts it is decisive to be able to crowd source data analysis online. Here we present webKnossos.

Boergens, Berning, Bocklisch, Bräunlein, Drawitsch, Frohnhofen, Herold, Otto, Rzepka, Werkmeister, Werner, Wiese, Wissler and Helmstaedter
webKnossos: efficient online 3D data annotation for connectomics.
Nature Methods (2017) DOI:10.1038/NMETH.4331.

webKnossos logo CircleCI

Demo

https://demo.webknossos.org/

Features

Development setup

Docker

This is the fastest way to try webKnossos. Docker CE 17+ and Docker Compose 1.18+ is required. This is only recommended for testing. For production, a more elaborate setup with persistent file mounts and HTTPS reverse proxy is recommended.

docker-compose pull webknossos
docker-compose up webknossos

Dependencies

OS X

If you are using OS X try using this awesome installer: https://gist.github.com/normanrz/9128496

Or install Java manually and run:

# Install Homebrew package manager
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

# Install git, node.js, mongoDB, sbt, gfind, gsed
brew install git node postgresql sbt findutils coreutils gnu-sed
npm install -g yarn

# Start mongo
brew services start postgresql

# Create PostgreSQL user
createdb
psql -c "CREATE DATABASE webknossos;"
psql -c "CREATE USER postgres WITH ENCRYPTED PASSWORD 'postgres';"
psql -c "ALTER USER postgres WITH SUPERUSER;"
psql -c "GRANT ALL PRIVILEGES ON DATABASE webknossos TO postgres;"

# Checkout the webKnossos git repository
git clone git@github.com:scalableminds/webknossos.git

Ubuntu 16.04 LTS

# Adding repositories for sbt, nodejs and yarn
echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee /etc/apt/sources.list.d/sbt.list
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 642AC823
echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list
curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

# Installing everything
sudo apt-get update
sudo apt-get install -y git postgresql-10 postgresql-client-10 nodejs scala sbt openjdk-8-jdk yarn

# Assign a password to PostgreSQL user
sudo -u postgres psql -c "ALTER USER postgres WITH ENCRYPTED PASSWORD 'postgres';"

On older Ubuntu distributions: Please make sure to have the correct versions of node, PostgreSQL and java installed.

Manual Installation

Java
  • Install Java JDK 8 (from Oracle or OpenJDK)
  • make sure JAVA_HOME and JDK_HOME are set and PATH contains path to JDK
sbt

See: http://www.scala-sbt.org/release/docs/Getting-Started/Setup.html

PostgreSQL
node.js & yarn

Run locally

sbt run

Will fetch all Scala, Java and node dependencies and run the application on Port 9000. Make sure that the PostgreSQL service is running before you start sbt.

Run on a remote machine

sbt "run -Dhttp.uri=http://<remote address>:9000"

Will fetch all Scala, Java and node dependencies and run the application on Port 9000. Make sure that the PostgreSQL service is running before you start sbt.

Make sure to open port 9000 in your firewall. This is only recommended for development purposes. See below for a recommended production setup.

Production setup

See wiki for recommended production setup.

For upgrades, please check the changelog & migration guide.

Tests

# Frontend linting
yarn run lint

# Format frontend code
yarn run pretty

# Frontend type checking
yarn flow

# Frontend tests
yarn test-verbose

# End-to-end tests
docker-compose run e2e-tests

Contact and support

Contact us at hello@scalableminds.com.

scalable minds offers commercial hosting, support and development services for webKnossos.

Credits

Thanks

  • CircleCI for letting us run builds and tests on their CI
  • Browser Stack for letting us test WebKnossos on a variety of different devices
    Browserstack Logo

License

AGPLv3