Skip to content

Flywheel Gears for Developers

Introduction

Gears are containerized applications that run in the Flywheel platform. As a developer, you can create custom gears to automate data processing, analysis, and management tasks. This section provides resources for developers who want to build, test, and deploy gears in the Flywheel ecosystem.

What is a Gear?

A gear is a Docker container with a standardized structure that allows it to interact with the Flywheel platform. Gears consist of three main components:

  1. Run Script: The executable code that performs the gear's function
  2. Manifest: A JSON file that defines the gear's metadata, inputs, and configuration
  3. Dockerfile: Instructions for building the Docker container that houses the gear

Gears come in two main types:

  • Utility Gears: Typically run simpler, less resource-intensive algorithms, often as pre-processing steps in a data pipeline. Outputs are saved at the project, subject, session, or acquisition level.
  • Analysis Gears: House more complex, resource-intensive algorithms with outputs isolated in gear-run-created Analysis containers.

Benefits of Developing Gears

  • Automation: Create tools that automate routine tasks like metadata extraction, classification, and quality assurance
  • Reproducibility: Ensure consistent processing across datasets with containerized environments
  • Shareability: Share your algorithms with the broader Flywheel community through the Gear Exchange
  • Scalability: Build processing pipelines that can run at scale

Getting Started with Gear Development

To start developing gears, you'll need:

  • Basic understanding of Docker containerization
  • Familiarity with the programming language of your choice (Python is commonly used)
  • Knowledge of the Flywheel platform and its data hierarchy

Our Gear Building Tutorial provides a step-by-step guide to creating your first gear, from setting up your development environment to running and debugging your gear.

Key Resources

Additional Resources