350 likes | 507 Views
fBIRN Image Processing Stream (FIPS) Douglas N. Greve MGH Martinos Center. FIPS Design Goals. Massive fMRI Analysis All Levels Query-Driven Facilitate Collaboration Calibration. A work in progress …. BIRN Data Hierarchy. Root (SRB). Directory Structure Naming Convention XML
E N D
fBIRN Image Processing Stream(FIPS)Douglas N. GreveMGH Martinos Center
FIPS Design Goals • Massive fMRI Analysis • All Levels • Query-Driven • Facilitate Collaboration • Calibration A work in progress …
BIRN Data Hierarchy Root (SRB) • Directory Structure • Naming Convention • XML • Human Upload Script • SRB • FIPS “Database” • Well-Defined Rules Project Subject/BIRNId Study Visit Series/Run Analysis K-Reconstruction PixelData/XML
Analysis Levels • Preprocessing – MC, STC, B0, Smoothing, Brain Extraction, Registration • First Level – Estimate amplitude of HDR, Significance • Higher Levels • Visit, Subject, Group, Cross-Group, … • Fixed, Random, Mixed Effects • Stimulus Schedule – EPrime • FIPS Database and Web page • QA – All Levels (nothing in FIPS yet) • Mostly FSL-based
Analysis Configuration Centralized vs Customized • Centralized/Global • Preprocessing and First-Level • High-Level Instructions • Do a few times • Assures same analysis
Automatic Analysis Customization • Low-Level Sources of Variance • Run, Visit, Subject, Site • Intended – Stimulus Schedule • Unintended, Known – Slice Timing • Unintended, Unknown – Smoothness, HDR, B0 • Remove or Account for Automatically • Insulate the user • Starts with data upload – STC, EPrime; GIGO • Global Analysis Configuration (FLAC, PPC) • Customize – Schedules, STC, Smoothing-To
Query-Driven Analysis Cross-Group • Specify Match Criteria • Eg, All subjects from Minn • Male, Left Handed, Schz • Hypothesis • Automatic Level Traversal Group1 Subj1 Visit1 Run1 First-Level PreProc Raw
Facilitate Collaboration • Sharing of: • Raw Data • Analysis • Storage • Computation • Global Configurations (Centralized) • Stimulus Schedules • PPC • FLAC • Done a few times – bring all expertise to bear
Status … • Software Exists! www.nmr.mgh.harvard.edu/~greve/fbirn/fips • And people are using it. • Tue, 830-930AM, Laguna Room • Mostly wrappers around FSL • EPrime Stimulus Schedules • PreProc – • FSL: MC, STC, Smooth • Smoothing-To • Some Modularization • First Level – FSL
… Status • Visit Level – FSL Fixed Effects • Subject Level – Not Yet • Group Level (Talairach Space) • OSGM FSL RFx, FFx, MFx • Where? DB? • XGroup Level – Not Yet. Where? DB? • Queryability • FIPS DB (need real DB) • Automatic Traversal • Local Processing Only • ROI – Some FreeSurfer Integration
Current Issues • Databasing – extracting info for designs • QA and Repair • Modularization • Centralized Configurations • Provenance/Distribution/Testing • Multi-Stage Registration • Format – currently Analyze, want NIFTI • Computational Power/Cluster
Configure First-Level Analysis Stimulus Timing Scanner Human Upload FLAC Library EPrime First-Level Analysis Hierarchy (Local SRB) FIPS Database PixelData ImageWrapper.xml fips-process.xml Stimulus Schedules FIPS Overview
Local Human Upload and Data Hierarchy • $LOCAL_SRB_HOME_BIRN/ • ProjectName_ProjectId • SubjectID/ • Visit__SiteId_VisitNo/ • Study__StudyId/ • ExperimentSeries/ • Native/ • Original__0001/ • Analyze_7.5/ /space/BIRN/ fBIRNPhaseII__000010/ 00900000103/ Visit__009_0001/ Study__0001/ sm3/ Native/ Original__0001/ Analyze_7.5/ In Analyze_7.5/: Pixel Data: f0001.img, f0002.img, … (analyze format + .mat) ImageWrapper.xml – geometry, voxel size, slice order fips-process.xml – paradigm, run, site, BIRN Id, etc (redundant) XML files contain data-specific information.
fips-process.xml • paradigm – eg, SIRP • run number within paradigm • All hierarchy information (BIRNID, etc) • Analysis Level (none, FirstLevel) • Stored with Raw and Analyzed data
FIPS Resource File: ~/.fipsrc setenv LOCAL_SRB_HOME_BIRN /space/mojave/1/users/swallace/SRB setenv MY_FIPS_DIR /birn/users/share/fips/db setenv FIPS_FLAC_DIR /birn/users/share/fips/flac LOCAL_SRB_HOME_BIRN: root of Local SRB MY_FIPS_DIR: Local FIPS Database (low storage) FIPS_FLAC_DIR: Place were FLACs are saved (low storage)
FIPS Database • fips-build-db • Finds all fips-process.xml files 9 levels down • Creates a table in $MY_FIPS_DIR • Creates html in $MY_FIPS_DIR • $MY_FIPS_DIR not in the hierarchy (~/.fipsrc)
Analysis Parameters Data-Independent Data-Specific • Event Definitions • HRF • Smoothing Level • Use Slice Timing or not • Contrasts • Slice Timing (XML) • Discarded Acqs (XML) • Stimulus Schedules Lower-level, Hidden, Nuisance. Handled at upload, within-hierarchy. ImageWrapper.xml, fips-process.xml Higher-level, Share, Save in DB, Queryable, extra-hierarchy. FLAC.
Stimulus Schedules and Data Hierarchy • $LOCAL_SRB_HOME_BIRN/ • ProjectName_ProjectId • SubjectID/ • Visit__SiteId_VisitNo/ • Study__StudyId/ • ExperimentSeries/ • Native/ • Original__0001/ • StimulusSchedules/ /space/BIRN/ fBIRNPhaseII__000010/ 00900000103/ Visit__009_0001/ Study__0001/ sm3/ Native/ Original__0001/ StimulusSchedules/ In StimulusSchedules/: Happy.stf, Sad.stf, … fips-import-sched – program to copy stimulus schedules for a data set into the correct place in the hierarchy.
Stimulus Schedule Issues • More automation needed. • Combine with upload? • Predefined within analysis? • Flexible enough for post hoc event definitions? • Keep in SRB Hierarchy or save in DB? • Note: SIRP and MM schedules for Phase II in fips/etc (thanks Bryon!)
Analysis Parameters Data-Independent Data-Specific • Event Definitions • HRF • Smoothing Level • Use Slice Timing or not • Contrasts • Slice Timing (XML) • Discarded Acqs (XML) • Stimulus Schedules Lower-level, Hidden, Nuisance. Handled at upload. Higher-level, Share, Save in DB, Queryable.
First Level Analysis Configuration (FLAC) • Motion Correction • Slice-timing Correction • Spatial Smoothing • Intensity Normalization (Grand Mean) • Fit General Linear Model (GLM) • Event Types and Schedules • HRF Type and Parameters, Derivatives • Contrasts of Regression Coefficients • Register to Standard Space • Configure ONCE
Creating the FLAC • fips-fla-config – program that uses FSL’s FEAT GUI to configure • first-level analyses. Saves FLAC to FLAC “library”. • fips-fla-config --flac sirp-stc-smth5mm –paradigm SIRP • –projectname fBIRNPhaseII • --flac: name of the FLAC to be used in later calls • --paradigm: as specified during upload • --projectname: as specified during the upload • Creates: $MY_FLAC_DIR/fBIRNPhaseII/SIRP/sirp-stc-smth5mm • sirp-stc-smth5mm is a text file crated by FSL. • FLAC “Library” $MY_FLAC_DIRnot in the hierarchy (~/.fipsrc) • DO THIS ONCE!
What fips-fla-config is doing • Creates temporary staging directory • Copies the data and schedules from a template subject (confusing but required by FEAT) • Runs FSL’s FEAT GUI • User specifies the config (including schedules) • User saves to “design.fsf” • Renames design.fsf and copies to FLAC Library
Analyzing Data: fips-fla USAGE: fips-fla --projectname name : eg, fBIRNPhaseII --paradigm name : eg, SIRP --flac FLACName : eg, sirp-stc-smth5mm Analyzes all matching data sets, unless: --birnid id : eg, 00042105 --siteid id : eg, 0006 --visitid id : eg, L0001 --studyname name : eg, bay4-trio --run nthrun --visitname name --studyid id
FLA and Data Hierarchy • $LOCAL_SRB_HOME_BIRN/ • ProjectName_ProjectId • SubjectID/ • Visit__SiteId_VisitNo/ • Study__StudyId/ • ExperimentSeries/ • Analysis/ • Original__0001/ • FLACName.feat/ /space/BIRN/ fBIRNPhaseII__000010/ 00900000103/ Visit__009_0001/ Study__0001/ sirp3/ Analysis/ Original__0001/ sirp-stc-smth5mm.feat/ In FLACName.feat/: FSL Analysis results, fips-process.xml. Rebuild DB (fips-build-db) to see results in HTML.
What fips-fla is doing • Finds a matching data set • Copies FLAC file (FSL FEAT format) • Customizes for that data set (eg, slice order) • Runs FEAT scripts (does “everything”) • Runs a check to catch errors • Creates a new fips-process.xml (changes “Analysis Level” to “FirstLevel”)
First-Level Analysis Visualization • FSL-created HTML File • fips-view • AFNI • FreeSurfer (tkmedit) • Slicer
First Level Analysis Workflow 0.Define and upload FLAC (once for all sessions) For each session: • Collect data for a session • Local Upload • (Re)Build FIPS DB • Upload stimulus timing files (if necessary) • Analyze (First Level) • Rebuild FIPS DB • Visualize
FIPS and MBIRN/FreeSurfer • Visualization • ROI Definition and Analysis • fips-fsreg – register functional to anatomical • fips-feat2surf – sample results on surface • fips-fsroi – maps ROIs to functional space • fips-fsroisum – summarizes ROIs
Outstanding Issues • Higher-Level Analysis (where in hierarchy?) • Analyze on Upload (stimulus timing files) • Include FLAC in DB? • Portalize • Continue to use FEAT?
Stimulus Identification and Timing 1 2 3 4 5 6 7 8 Time t=0 t=3.0 t=10.0 t=15.0 t=30.0 t=28.7 t=37.1 t=43.1 t=13.0 SAD HAPPY Sad.stf: 3.0 2 1 13.0 2 1 15.0 2 1 37.1 2 1 Happy.stf: 10.0 2 1 30.0 2 1 28.7 6 1 43.1 2 1 • Columns: • Onset Time • Duration • Weight