Skip to content

Project: engine

LachlanStuart edited this page Sep 3, 2021 · 1 revision

Installation

Please check the sm-engine-ansible project

Lithops setup

The main implementation of the METASPACE engine uses Lithops to run code in Serverless Cloud Functions. See Lithops.md for setup instructions.

Uploading Dataset and Browsing Results

Please visit the help page of our web application running on AWS:

https://metaspace2020.eu/help

Running tests

There are two modules of pytest tests:

  • sm.engine.tests - unit tests that don't involve the DB, etc.
  • tests - integration tests

It's recommended to use the -vv -n auto command line options when calling pytest to get sufficient debug information and utilize all available CPU cores.

Additionally, there is a "Scientific test" that processes an entire dataset and compares the result against reference results. It can be run on both the Lithops and Spark (default) pipelines:

  • python tests/sci_test/spheroid.py -r --mock-image-storage --lithops --config=conf/scitest_config.json
  • python tests/sci_test/spheroid.py -r --mock-image-storage --config=conf/scitest_config.json

NOTE: the Spark pipeline intermittently fails due to a bug in segment generation. This is a known issue that won't be fixed due to deprecation of the Spark pipeline. It manifests as a single item appearing in the "DIFFERENCES IN METRICS" output. The underlying bug is that when reconstructing ion images, if the last image for an annotation spans multiple dataset segments, only the peaks from the first segment will be used. This causes that annotation's score to drop. As segmentation is based on a random sampling of spectra, the segment boundaries change every run, so it only happens in some runs.

Troubleshooting/testing CI

Install CircleCI CLI tool and run circleci build from the project root.