Source code for osl_ephys.source_recon.rhino.fsl_utils

"""Wrappers for fsleyes.

"""

# Authors: Mark Woolrich <mark.woolrich@ohba.ox.ac.uk>
#          Chetan Gohil <chetan.gohil@psych.ox.ac.uk>

import os
import os.path as op

import nibabel as nib

import osl_ephys.source_recon.rhino.utils as rhino_utils


[docs]def setup_fsl(directory): """Setup FSL. Parameters ---------- directory : str Path to FSL installation. """ if "FSLDIR" not in os.environ: os.environ["FSLDIR"] = directory if "{:s}/bin" not in os.getenv("PATH"): os.environ["PATH"] = "{:s}/bin:{:s}".format(directory, os.getenv("PATH")) if "FSLOUTPUTTYPE" not in os.environ: os.environ["FSLOUTPUTTYPE"] = "NIFTI_GZ"
[docs]def check_fsl(): """Check FSL is installed.""" if "FSLDIR" not in os.environ: raise RuntimeError("Please setup FSL, e.g. with osl_ephys.source_recon.setup_fsl().")
[docs]def fsleyes(image_list): """Displays list of niftii's using external command line call to fsleyes. Parameters ---------- image_list : string | tuple of strings Niftii filenames or tuple of niftii filenames Examples -------- fsleyes(image) fsleyes((image1, image2)) """ # Check if image_list is a single file name if isinstance(image_list, str): image_list = (image_list,) cmd = "fsleyes " for img in image_list: cmd += img cmd += " " cmd += "&" rhino_utils.system_call(cmd, verbose=True)
[docs]def fsleyes_overlay(background_img, overlay_img): """Displays overlay_img and background_img using external command line call to fsleyes. Parameters ---------- background_img : string Background niftii filename overlay_img : string Overlay niftii filename """ if type(background_img) is str: if background_img == "mni": mni_resolution = int(nib.load(overlay_img).header.get_zooms()[0]) background_img = op.join(os.environ["FSLDIR"], "data/standard/MNI152_T1_{}mm_brain.nii.gz".format(mni_resolution)) elif background_img[0:3] == "mni": mni_resolution = int(background_img[3]) background_img = op.join(os.environ["FSLDIR"], "data/standard/MNI152_T1_{}mm_brain.nii.gz".format(mni_resolution)) cmd = "fsleyes {} --volume 0 {} --alpha 100.0 --cmap red-yellow --negativeCmap blue-lightblue --useNegativeCmap &".format(background_img, overlay_img) rhino_utils.system_call(cmd)