Inaccurate brain mask when enabling --use-syn-sdc

Hello,

I got inaccurate brain mask estimation when enabling --use-syn-sdc and there are some wired ghost artifacts in the brain image. When--use-syn-sdc is not used, everything looks fine. Do you know what’s wrong here? Please find below the snapshots of HTML reports and fmriprep codes. Thanks.

* fMRIPrep version: 21.0.2
* fMRIPrep command: `/opt/conda/bin/fmriprep -w /DATA/fmriprep_work --participant-label 1111 --bids-filter-file /OUTPUT/bids_filters.json --output-spaces MNI152NLin2009cAsym MNI152NLin6Asym T1w fsnative fsaverage --output-layout bids --notrack --skip_bids_validation --use-syn-sdc --write-graph --omp-nthreads 8 --nprocs 16 --mem_mb 65536 --resource-monitor /DATA/EEGfMRI_prep /DATA/EEGfMRI_prep/derivatives/fmriprep participant`
* Date preprocessed: 2022-06-25 20:19:06 +0000

Brain mask and brain tissue segmentation of the T1w

Surface reconstruction

When --use-syn-sdc is not used, both brain mask and brain image look fine.

* fMRIPrep version: 21.0.2
* fMRIPrep command: `/opt/conda/bin/fmriprep -w /DATA/fmriprep_work --participant-label 1111 --bids-filter-file /OUTPUT/bids_filters.json --output-spaces MNI152NLin2009cAsym MNI152NLin6Asym T1w fsnative fsaverage --output-layout bids --notrack --skip_bids_validation --write-graph --omp-nthreads 8 --nprocs 16 --mem_mb 65536 --resource-monitor /DATA/EEGfMRI_prep /DATA/EEGfMRI_prep/derivatives/fmriprep participant`
* Date preprocessed: 2022-06-26 15:14:37 +0000


A previous fmriprep version also worked fine without --use-syn-sdc

* fMRIPrep version: 20.2.5
* fMRIPrep command: `/usr/local/miniconda/bin/fmriprep -w /DATA/fmriprep_work --participant-label 1111 --bids-filter-file /OUTPUT/bids_filters.json --output-spaces MNI152NLin2009cAsym MNI152NLin6Asym T1w fsnative fsaverage --output-layout bids --notrack --skip_bids_validation --write-graph --omp-nthreads 8 --nprocs 16 --mem_mb 65536 --resource-monitor /DATA/EEGfMRI_prep /DATA/EEGfMRI_prep/derivatives/fmriprep participant`
* Date preprocessed: 2022-06-24 21:51:26 +0000


Hi,

Can you confirm the phase encoding direction is set correctly in the bold json files?

Best,
Steven

Sure, it is “j-” and here is the whole JSON file for one BOLD run,

{
    "PercentPhaseFOV":100,
    "TotalReadoutTime":0.0296097,
    "SequenceName":"*epfid2d1_64",
    "AcquisitionMatrixPE":64,
    "BandwidthPerPixelPhaseEncode":33.245,
    "MRAcquisitionType":"2D",
    "SeriesDescription":"BOLd 64_FA70_TE25_1900TR_fov237_iso",
    "SliceTiming":[
        0,
        0.9325,
        0.055,
        0.985,
        0.11,
        1.04,
        0.165,
        1.095,
        0.22,
        1.15,
        0.275,
        1.205,
        0.33,
        1.26,
        0.385,
        1.315,
        0.4375,
        1.37,
        0.4925,
        1.425,
        0.5475,
        1.48,
        0.6025,
        1.535,
        0.6575,
        1.5875,
        0.7125,
        1.6425,
        0.7675,
        1.6975,
        0.8225,
        1.7525,
        0.8775
    ],
    "DelayTime":0.1,
    "ScanningSequence":"EP",
    "TxRefAmp":320.235,
    "EffectiveEchoSpacing":0.000469995,
    "RepetitionTime":1.9,
    "SpacingBetweenSlices":3.7,
    "DerivedVendorReportedEchoSpacing":0.000469996,
    "DwellTime":3.2e-06,
    "PhaseEncodingDirection":"j-",
    "MagneticFieldStrength":3,
    "ImageType":[
        "ORIGINAL",
        "PRIMARY",
        "M",
        "ND",
        "NORM",
        "MOSAIC"
    ],
    "PhaseResolution":1,
    "FlipAngle":70,
    "PercentSampling":100,
    "PulseSequenceDetails":"%SiemensSeq%\\ep2d_bold",
    "ReceiveCoilName":"HeadMatrix",
    "BaseResolution":64,
    "SeriesNumber":3,
    "ScanOptions":"FS",
    "SequenceVariant":"SK",
    "ImageOrientationPatientDICOM":[
        1,
        -1e-16,
        0,
        1e-16,
        0.999848,
        -0.0174061
    ],
    "PixelBandwidth":2441,
    "SAR":0.0955017,
    "InPlanePhaseEncodingDirectionDICOM":"COL",
    "Manufacturer":"Siemens",
    "EchoTime":0.025,
    "Modality":"MR",
    "StationName":"MRC35056",
    "TaskName":"spike",
    "ProtocolName":"BOLd 64_FA70_TE25_1900TR_fov237_iso",
    "ReconMatrixPE":64,
    "ImagingFrequency":123.254,
    "ProcedureStepDescription":"Functional",
    "SliceThickness":3.7,
    "PatientPosition":"HFS",
    "ManufacturersModelName":"TrioTim",
    "PhaseEncodingSteps":64,
    "ConversionSoftwareVersion":"v1.0.20210317",
    "ConversionSoftware":"dcm2niix",
    "AcquisitionTime":"13:27:58.535000",
    "PartialFourier":1,
    "CoilString":"C:HEA;HEP",
    "SoftwareVersions":"syngo MR B17",
    "AcquisitionNumber":1,
    "ShimSetting":[
        344,
        -28488,
        -8333,
        378,
        47,
        518,
        258,
        18
    ]
}

Hi @Steven, I launched it one more time with the same code and data, brain mask looks normal. Don’t know why, maybe there is some randomness in the brain mask estimation or intensity non-uniformity correction. Here are the code and snapshots,

* fMRIPrep version: 21.0.2
* fMRIPrep command: '/opt/conda/bin/fmriprep -w /DATA/fmriprep_work --participant-label 1111 --bids-filter-file /OUTPUT/bids_filters.json --output-spaces MNI152NLin2009cAsym MNI152NLin6Asym T1w fsnative fsaverage --output-layout bids --notrack --skip_bids_validation --use-syn-sdc --write-graph --omp-nthreads 8 --nprocs 16 --mem_mb 65536 --resource-monitor /DATA/EEGfMRI_prep /DATA/EEGfMRI_prep/derivatives/fmriprep participant'
* Date preprocessed: 2022-06-27 00:10:26 +0000


Had another try with 22.xrc, which gives a bit inaccurate brain mask around the top of parietal lobe…

* fMRIPrep version: 22.0.0rc1
* fMRIPrep command: '/opt/conda/bin/fmriprep -w /DATA/fmriprep_work --participant-label 1111 --bids-filter-file /OUTPUT/bids_filters.json --output-spaces MNI152NLin2009cAsym MNI152NLin6Asym T1w fsnative fsaverage --output-layout bids --notrack --skip_bids_validation --use-syn-sdc --write-graph --omp-nthreads 8 --nprocs 16 --mem_mb 65536 --resource-monitor /DATA/EEGfMRI_prep /DATA/EEGfMRI_prep/derivatives/fmriprep participant'
* Date preprocessed: 2022-06-27 12:03:30 +0000