FACETpy Logo
2.0

Getting Started

  • Project Overview
    • What is FACETpy?
    • The Problem: EEG-fMRI Artifacts
    • Core Methodology: Averaged Artifact Subtraction (AAS)
    • Key Features and Capabilities
    • Use Cases and Applications
    • Technical Architecture
    • Integration and Workflow
    • Performance and Validation
    • Future Directions
  • Installation
    • Requirements
    • Install from PyPI (Recommended)
    • Full Setup from Source (Contributing, Example Datasets/Scripts, Early Access to features)
      • Unix (macOS/Linux)
      • Other platforms (including Windows)
    • Development Installation
    • Optional Components
      • C Extension for ANC
    • Verify Installation
    • Troubleshooting
      • MNE-Python Issues
      • Import Errors
  • Quick Start
    • Basic Correction Pipeline
    • Understanding the Standard Pipeline
    • Custom Pipeline
    • Step-by-Step Processing
    • Pipe Operator (|)
    • Execution Modes
    • Common Patterns
      • BCG Correction
      • Batch Processing
    • Accessing Results
    • Next Steps
  • Tutorial
    • Dataset
    • Step 1: Load Your Data
    • Step 2: Detect fMRI Triggers
    • Step 3: Upsample for Precision
    • Step 4: Align Triggers
    • Step 5: Apply AAS Correction
    • Step 6: Optional Additional Corrections
    • Step 7: Downsample
    • Step 8: Apply Final Filter
    • Step 9: Evaluate Results
    • Step 10: Export Corrected Data
    • Complete Pipeline
    • Parallel Processing
    • Visualization
    • Next Steps
  • Examples
    • Running Repository Examples
    • Basic Correction
    • BCG Correction
    • Batch Processing
    • Conditional Processing
    • Custom Processor
    • Accessing Metrics
    • Manual Trigger Specification
    • Working with Different File Formats
      • BIDS Format
      • GDF Format
      • Converting Between Formats
    • Performance Optimization
      • Parallel Processing
      • Memory-Efficient Processing
    • Debugging
      • Check Processing History
      • Save Intermediate Results
    • More Examples

User Guide

  • Use Cases & Supported Artifacts
    • Supported Artifacts
    • Use Cases
      • Simultaneous EEG-fMRI Research
      • Multi-Subject / Multi-Session Batch Studies
      • Algorithm Comparison & Benchmarking
      • Synthetic EEG Testing & Algorithm Development
      • Clinical Feasibility Studies
      • Teaching & Reproducible Science
  • Architecture Overview
    • Core Concepts
    • Processors
      • Example Processor
      • Processor Lifecycle
    • Processing Context
      • Context is Immutable
      • Accessing Data
      • Processing Metadata
    • Pipeline
      • Pipeline Features
      • Composite Processors
    • Registry
      • Registration
      • Discovery
    • Parallel Execution
      • Pipeline-Level Parallelization
      • Processor-Level Parallelization
      • Channel-Wise Parallelization
    • Data Flow
    • Design Principles
    • Benefits
    • Next Steps
  • Configuration
    • Precedence
    • Available Keys
      • console_mode
      • log_level
      • log_file
      • log_file_level
      • log_dir
      • auto_logging
    • Python API Syntax
    • Environment Variable Syntax
    • TOML File Syntax
    • Practical Recommendation
  • Pipeline Guide
    • What is a Pipeline?
    • Basic Pipeline Usage
      • Creating a Pipeline
      • Running a Pipeline
      • With Initial Context
    • Pipeline Results
    • Advanced Pipeline Features
      • Pipe Operator
      • Inline Lambdas for Context-Dependent Parameters
      • Parallel Execution
      • Fluent API
      • Pipeline Inspection
      • Validation
    • Pipeline Builder
      • Conditional Addition
    • Common Pipeline Patterns
      • Standard Correction Pipeline
      • Custom Correction Pipeline
      • Batch Processing Pipeline
      • Evaluation-Only Pipeline
    • Error Handling
      • Handling Pipeline Failures
      • Try-Except Pattern
    • Performance Tips
    • Best Practices
    • Next Steps
  • Helper Cookbook
    • Quick File Conversion (facet.load / facet.export)
    • Manual Trigger Injection (with_trigger_samples)
    • MNE Events Bridge (with_mne_events)
    • Batch Processing (Pipeline.map + BatchResult.summary_df)
    • Result Convenience (PipelineResult.metric, metrics_df, plot, release_raw)
    • Context Metric Shortcut (ProcessingContext.get_metric)
    • Trigger QA (TriggerExplorer / InteractiveTriggerExplorer)
  • MNE-Python Integration
    • When to Add FACETpy
    • Run FACETpy on an Existing MNE Raw
    • Reuse Events From an Existing MNE Project
    • Defaults for Optional Helper Fields
    • Continue With MNE After Correction
    • BIDS-Centered Workflows
    • Recommendations for Research Projects
  • Processors Guide
    • What is a Processor?
    • Processor Lifecycle
    • Live Progress Bars
    • Available Processors
      • I/O Processors
        • Loading Data
        • Exporting Data
      • Preprocessing Processors
        • Filtering
        • Resampling
        • Trigger Detection
        • Alignment
        • Data Transforms
      • Correction Processors
      • Evaluation Processors
      • Composite Processors
    • Processor Requirements
      • Common Requirements
      • Checking Requirements
    • Processor Properties
    • Using Processors
      • Direct Execution
      • In a Pipeline
      • Callable Interface
      • Chaining Processors
    • Processor Discovery
      • Using the Registry
    • Best Practices
    • Processor Comparison
      • Correction Algorithms
      • Filter Types
    • Performance Tips
    • Next Steps
  • Parallel and Channel-Sequential Processing
    • Overview
    • Quick Start
    • Channel-Sequential Execution
      • Why It Matters
      • How It Works
      • When to Prefer Channel-Sequential
      • Enabling Channel-Sequential Execution
    • Processor-Level Parallelization
      • How It Works
      • Enabling Parallelization
      • Specifying Number of Jobs
      • Which Processors Support Parallelization?
      • ParallelExecutor
    • Channel-wise Execution
      • Opting In
      • Execution Flow
      • Enabling it via the Pipeline
      • Choosing a Backend
      • Writing a Custom Channel-wise Processor
    • Pipeline-Level Parallelization
      • Process Multiple Files
      • Thread Pool vs Process Pool
      • Batch Processing Example
    • Performance Considerations
      • When to Use Parallelization
      • Optimal Number of Workers
      • Memory Usage
      • Overhead
    • Benchmarking
      • Compare Performance
      • Scaling Analysis
    • Best Practices
    • Troubleshooting
      • Parallel Processing Not Working
      • Out of Memory Errors
      • Slower with Parallelization
    • Advanced Topics
      • Custom Parallel Executors
      • GPU Acceleration
      • Distributed Processing
    • Next Steps
  • Custom Processors
    • Why Create Custom Processors?
    • Basic Custom Processor
      • Minimal Example
      • Key Components
    • Processor Template
      • Complete Template
    • Practical Examples
      • Example 1: Channel Selection
      • Example 2: Artifact Marker
      • Example 3: Custom Filter
      • Example 4: Metadata Enrichment
    • Registration
      • Registering Processors
      • Using Registered Processors
    • Validation
      • Best Practices
    • Error Handling
      • Handling Errors Gracefully
    • Testing Custom Processors
      • Unit Tests
      • Integration Tests
    • Performance Optimization
      • Making Processors Parallel-Safe
      • Vectorization
    • Advanced Topics
      • Stateful Processors
      • Chaining Custom Processors
    • Documentation
      • Documenting Your Processor
    • Sharing Processors
      • Package Your Processor
      • Install and Use
    • Next Steps

API Reference

  • Top-Level API
    • Convenience Functions
      • load()
      • export()
      • create_standard_pipeline()
    • Configuration
      • get_config()
      • set_config()
      • reset_config()
    • Commonly Used Re-Exports
      • Core
      • Errors
  • Core API
    • Base Classes
      • Processor
        • Processor
      • ProcessingContext
        • ProcessingContext
      • ProcessingStep
        • ProcessingStep
      • ProcessingMetadata
        • ProcessingMetadata
    • Pipeline
      • Pipeline
        • Pipeline
      • PipelineResult
        • PipelineResult
      • BatchResult
        • BatchResult
      • PipelineBuilder
        • PipelineBuilder
    • Composite Processors
      • SequenceProcessor
        • SequenceProcessor
      • ConditionalProcessor
        • ConditionalProcessor
      • SwitchProcessor
        • SwitchProcessor
      • NoOpProcessor
        • NoOpProcessor
      • LambdaProcessor
        • LambdaProcessor
    • Registry
      • register_processor()
      • get_processor()
      • list_processors()
    • Parallel Execution
      • ParallelExecutor
        • ParallelExecutor
      • ChannelSequentialExecutor
        • ChannelSequentialExecutor
    • Exceptions
      • ProcessorError
      • ProcessorValidationError
      • PipelineError
  • I/O API
    • Loaders
      • Loader
        • Loader
      • BIDSLoader
        • BIDSLoader
    • Exporters
      • Exporter
        • Exporter
      • EDFExporter
        • EDFExporter
      • BDFExporter
        • BDFExporter
      • BrainVisionExporter
        • BrainVisionExporter
      • EEGLABExporter
        • EEGLABExporter
      • FIFExporter
        • FIFExporter
      • GDFExporter
        • GDFExporter
      • MFFExporter
        • MFFExporter
      • BIDSExporter
        • BIDSExporter
  • Preprocessing API
    • Filtering
      • Filter
        • Filter
      • HighPassFilter
        • HighPassFilter
      • LowPassFilter
        • LowPassFilter
      • BandPassFilter
        • BandPassFilter
      • NotchFilter
        • NotchFilter
      • MATLABPreFilter
        • MATLABPreFilter
    • Resampling
      • Resample
        • Resample
      • UpSample
        • UpSample
      • DownSample
        • DownSample
    • Trigger Detection
      • TriggerDetector
        • TriggerDetector
      • QRSTriggerDetector
        • QRSTriggerDetector
      • MissingTriggerDetector
        • MissingTriggerDetector
      • MissingTriggerCompleter
        • MissingTriggerCompleter
      • SliceTriggerGenerator
        • SliceTriggerGenerator
      • TriggerExplorer
        • TriggerExplorer
      • InteractiveTriggerExplorer
        • InteractiveTriggerExplorer
    • Alignment
      • TriggerAligner
        • TriggerAligner
      • SliceAligner
        • SliceAligner
      • SubsampleAligner
        • SubsampleAligner
    • Transforms
      • CutAcquisitionWindow
        • CutAcquisitionWindow
      • PasteAcquisitionWindow
        • PasteAcquisitionWindow
      • Crop
        • Crop
      • MagicErasor
        • MagicErasor
      • RawTransform
        • RawTransform
      • PickChannels
        • PickChannels
      • DropChannels
        • DropChannels
      • ChannelStandardizer
        • ChannelStandardizer
      • PrintMetric
        • PrintMetric
    • Diagnostics
      • AnalyzeDataReport
        • AnalyzeDataReport
      • CheckDataReport
        • CheckDataReport
  • Correction API
    • AAS Correction
      • AASCorrection
        • AASCorrection
      • AveragedArtifactSubtraction (alias)
        • AveragedArtifactSubtraction
    • FARM Correction
      • FARMCorrection
        • FARMCorrection
    • Volume Artifact Correction
      • VolumeArtifactCorrection
        • VolumeArtifactCorrection
      • RemoveVolumeArtifactCorrection
        • RemoveVolumeArtifactCorrection
    • AAS Weighting Variants
      • CorrespondingSliceCorrection
        • CorrespondingSliceCorrection
      • VolumeTriggerCorrection
        • VolumeTriggerCorrection
      • SliceTriggerCorrection
        • SliceTriggerCorrection
      • MoosmannCorrection
        • MoosmannCorrection
    • ANC Correction
      • ANCCorrection
        • ANCCorrection
      • AdaptiveNoiseCancellation (alias)
        • AdaptiveNoiseCancellation
    • PCA Correction
      • PCACorrection
        • PCACorrection
    • Legacy Weighting Aliases
      • AvgArtWghtCorrespondingSliceCorrection
        • AvgArtWghtCorrespondingSliceCorrection
      • AvgArtWghtVolumeTriggerCorrection
        • AvgArtWghtVolumeTriggerCorrection
      • AvgArtWghtSliceTriggerCorrection
        • AvgArtWghtSliceTriggerCorrection
      • AvgArtWghtMoosmannCorrection
        • AvgArtWghtMoosmannCorrection
  • Evaluation API
    • Utilities
      • ReferenceDataMixin
        • ReferenceDataMixin
    • Interactive Selectors
      • ReferenceIntervalSelector
        • ReferenceIntervalSelector
      • SignalIntervalSelector
        • SignalIntervalSelector
    • Metrics Calculators
      • SNRCalculator
        • SNRCalculator
      • LegacySNRCalculator
        • LegacySNRCalculator
      • RMSCalculator
        • RMSCalculator
      • RMSResidualCalculator
        • RMSResidualCalculator
      • MedianArtifactCalculator
        • MedianArtifactCalculator
      • FFTAllenCalculator
        • FFTAllenCalculator
      • FFTNiazyCalculator
        • FFTNiazyCalculator
    • Reports
      • MetricsReport
        • MetricsReport
      • RawPlotter
        • RawPlotter

Development

  • Contributing to FACETpy
    • Terminal Conventions
    • Quick Setup
    • Development Workflow
    • Code Style
    • Linting and Formatting
    • Testing
    • Documentation Style
    • Pull Requests
  • AI Agents For Processor Development
    • Required Prompt Context
    • Prompt Template (Short)
    • Tips And Practices
    • Review Workflow With Codex
    • Useful Additional Context Files
    • Optional Skill Ideas
    • Starter Kit In This Repository
  • Changelog
    • [2.0.0] - 2025-10-31
      • Added
  • Roadmap
    • Vision
    • Current Status
    • Near-Term Milestones
    • Research And Platform Direction
FACETpy
  • Search


© Copyright 2025, FACETpy Team.

Built with Sphinx using a theme provided by Read the Docs.