Table of Contents
freesurfer_pp_moc.py is a dummy FreeSurfer plugin / container that is prepopulated with the results of several a priori FreeSurfer runs. For a given run, this script will simply copy elements of one of these prior runs to the output directory.
python freesurfer_pp_moc.py \
[-v <level>] [--verbosity <level>] \
[--version] \
[--man] \
[--meta] \
[--copySpec <copySpec>] \
[--ageSpec <ageSpec>] \
<inputDir> \
<outputDir>
This plugin can be run in two modes: natively as a python package or as a containerized docker image. The PyPI mode is largely included for completeness sake and only useful if run against some pre-processed tree that exists in the filesystem.
You probably do not want to run the PyPI version unless you are a developer! Mostly likely you want the docker containerized run -- see the next section.
To run from PyPI, simply do a
pip install freesurfer_pp_mocand run with
freesurfer.py --man /tmp /tmpThe real utility of this package is to run it containerized against bundled data that is packed into the container.
Assign an "input" directory to /incoming and an "output" directory to /outgoing. Note that the "input" directory is effectively ignored by this plugin, but is required. Make sure that the host $(pwd)/out directory is world writable!
In the simplest sense, the plugin can be run with
mkdir in out && chmod 777 out
docker run --rm -v $(pwd)/in:/incoming -v $(pwd)/out:/outgoing \
fnndsc/pl-freesurfer_pp_moc freesurfer_pp_moc.py \
/incoming /outgoingwhich will copy only the internal stats directory from a 10-yr/06-mo/01-da subject to the output. By specifying a --copySpec stats,3D,sag,cor,tra several additional directories containing png image frames through parcellated sagittal, coronal, and transverse (axial) planes as well as multiple 3D images are also copied.
To get a listing of the internal tree of already processed and available FreeSurfer choices:
docker run --rm -v $(pwd)/in:/incoming -v $(pwd)/out:/outgoing \
fnndsc/pl-freesurfer_pp_moc freesurfer_pp_moc.py \
-T ../preprocessed \
/incoming /outgoingThis will print a tree of the available choices of preprocessed data in a directory tree.
Select one run, say the 08-yr/07-mo/16-da and specify that to copy:
docker run --rm -v $(pwd)/in:/incoming -v $(pwd)/out:/outgoing \
fnndsc/pl-freesurfer_pp_moc freesurfer_pp_moc.py \
-a 08-07-16 \
/incoming /outgoingTo simulate a processing delay, specify some time in seconds:
docker run --rm -v $(pwd)/in:/incoming -v $(pwd)/out:/outgoing \
fnndsc/pl-freesurfer_pp_moc freesurfer_pp_moc.py \
-a 08-07-16 \
-P 20 \
/incoming /outgoingTo copy all the image directories from the 10-yr/06-mo/01-da subject,
docker run --rm -v $(pwd)/in:/incoming -v $(pwd)/out:/outgoing \
fnndsc/pl-freesurfer_pp_moc freesurfer_pp_moc.py \
-a 10-06-01 \
-c stats,sag,cor,tra,3D \
/incoming /outgoing