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:
- Run Script: The executable code that performs the gear's function
- Manifest: A JSON file that defines the gear's metadata, inputs, and configuration
- 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
- Gear Specifications: Technical specifications for developing Flywheel gears
- Gear Building Tutorial: A comprehensive tutorial for building your first gear
- Gear Exchange: Information about sharing your gears with the Flywheel community
Additional Resources
- Gear Permissions: Learn about controlling access to gears
- Gear Rules with SDK Gears: Automate workflows with gear rules
- Webinar: Intro to Flywheel Gear Building: Watch our introductory webinar on gear building