Code Monkey home page Code Monkey logo

Multi-echo ICA (ME-ICA) Processing of fMRI Data

⚠️ PLEASE NOTE This code base is currently unmaintained. No new feature enhancements or bug fixes will be considered at this time.

We encourage prospective users to instead consider tedana, which maintains and extends many of the multi-echo-specific features of ME-ICA.

For fMRI processing more generally, we refer users to AFNI or fMRIPrep

This repository is a fork of the (also unmaintained) Bitbucket repository.

Dependencies

  1. AFNI
  2. Python 2.7
  3. numpy
  4. scipy

Installation

Install Python and other dependencies. If you have AFNI installed and on your path, you should already have an up-to-date version of ME-ICA on your path. Running meica.py without any options will check for dependencies and let you know if they are met. If you don't have numpy/scipy (or appropriate versions) installed, I would strongly recommend using the Enthought Canopy Python Distribution. Click here for more installation help.

Important Files and Directories

  • meica.py : a master script that performs preprocessing and calls the ICA/TE-dependence analysis script tedana.py
  • meica.libs : a folder that includes utility functions for TE-dependence analysis for denoising and anatomical-functional co-registration
  • meica.libs/tedana.py : performs ICA and TE-dependence calculations

Usage

fMRI data is called: rest_e1.nii.gz, rest_e2.nii.gz, rest_e3.nii.gz, etc. Anatomical is: mprage.nii.gz

meica.py and tedana.py have a number of options which you can view using the -h flag.

Here's an example use:

meica.py -d rest1_e1.nii.gz,rest1_e2.nii.gz,rest1_e3.nii.gz -e 15,30,45 -b 15s -a mprage.nii --MNI --prefix sub1_rest

This means:

-e 15,30,45   are the echo times in milliseconds
-d rest_e1.nii.gz,rest_e2...   are the 4-D time series datasets (comma separated list of dataset of each TE) from a multi-echo fMRI acqusition
-a ...   is a "raw" mprage with a skull
-b   15 means drop first 15 seconds of data for equilibration
--MNI   warp anatomical to MNI space using a built-in high-resolution MNI template. 
--prefix sub1_rest   prefix for final functional output datasets, i.e. sub1_rest_....nii.gz

Again, see meica.py -h for handling other situations such as: anatomical with no skull, no anatomical at all, applying FWHM smoothing, non-linear warp to standard space, etc.

Click here more info on group analysis.

Output

  • ./meica.rest1_e1/ : contains preprocessing intermediate files. Click here for detailed listing.
  • sub1_rest_medn.nii.gz : 'Denoised' BOLD time series after: basic preprocessing, T2* weighted averaging of echoes (i.e. 'optimal combination'), ICA denoising. Use this dataset for task analysis and resting state time series correlation analysis. See here for information on degrees of freedom in denoised data.
  • sub1_rest_tsoc.nii.gz : 'Raw' BOLD time series dataset after: basic preprocessing and T2* weighted averaging of echoes (i.e. 'optimal combination'). 'Standard' denoising or task analyses can be assessed on this dataset (e.g. motion regression, physio correction, scrubbing, blah...) for comparison to ME-ICA denoising.
  • sub1_rest_mefc.nii.gz : Component maps (in units of \delta S) of accepted BOLD ICA components. Use this dataset for ME-ICR seed-based connectivity analysis.
  • sub1_rest_mefl.nii.gz : Component maps (in units of \delta S) of ALL ICA components.
  • sub1_rest_ctab.nii.gz : Table of component Kappa, Rho, and variance explained values, plus listing of component classifications. See here for more info.

For a step-by-step guide on how to assess ME-ICA results in more detail, click here

#Some Notes

  • Make sure your datasets have slice timing information in the header. If not sure, specify a --tpattern option to meica.py. Check AFNI documentation of 3dTshift to see slice timing codes.
  • For more info on T2* weighted anatomical-functional coregistration click here
  • FWHM smoothing is not recommended. tSNR boost is provided by optimal combination of echoes. For better overlap of 'blobs' across subjects, use non-linear standard space normalization instead with meica.py ... --qwarp

me-ica's Projects

aroma icon aroma

ICA-AROMA, as a Python package. A work in progress.

ddmra icon ddmra

Code for running distance-dependent motion-related artifact analyses in Python

ds003592 icon ds003592

OpenNeuro dataset available at https://openneuro.org/datasets/ds003592

ds003643 icon ds003643

OpenNeuro dataset - Le Petit Prince: A multilingual fMRI corpus using ecological stimuli

ds003823 icon ds003823

OpenNeuro dataset available at https://openneuro.org/datasets/ds003823

ds004627 icon ds004627

OpenNeuro dataset - Characterization and Treatment of Adolescent Depression (CAT-D)

ds004662 icon ds004662

OpenNeuro dataset - Denoising task-correlated head motion from motor-task fMRI data with multi-echo ICA

ds004787 icon ds004787

OpenNeuro dataset - NIMH METeR (Multi-Echo Test-Retest)

ds004935 icon ds004935

OpenNeuro dataset - The NIMH Intramural Multivariate Assessment of Inhibitory Control in Youth: Links with Psychopathology and Brain Function Dataset

ds005085 icon ds005085

OpenNeuro dataset - Sequence pilot: multiecho and multiband fMRI

ds005118 icon ds005118

OpenNeuro dataset - Weill Cornell Medicine Multi-echo (WCM-ME) Dataset

godec icon godec

Go Decomposition for fMRI data, in Python. A work in progress.

mapca icon mapca

A Python implementation of the moving average principal components analysis methods from GIFT

me-ica icon me-ica

Core code for ME-ICA command line interface

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.