New denoising modules and miscellaneous fixes from WASHU - #274
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a re-RP of #262 with conflict resolution, as seen below:
This PR primarily contains new code for epi denoising. This includes aamod_scrub_epis to generate frame censoring (scrubbing) regressors, and a collection of related functions like aamod_DVARS to calculate DVARS and make it available as a stream, aamod_GLOBALMEAN for global mean, aamod_greyplot to generate a greyplot (ala Power), and aamod_lossplot to generate data loss summaries resulting from various thresholding.
The PR also contains a new module aamod_AROMA_denoise that makes FSL's untrained ICA available for denoising. Also, Jorn Diedrichsen's robust weighted least squares has been added as an option to aamod_firstlevel_model (toolbox class name: wls). Also, aamod_waveletdespike has been modified to work with the new toolbox class interface (class name wds).
There's one example script aa_example_denoising.m/xml to demonstrate how to use the new functionality. Testing has been broken into separate scripts, aatest_ds000114_scrubbing, aatest_ds000114_AROMA, and aatest_ds000114_wavelet.
Some of the new code requires a third-party installs: AROMA requires FSL/AROMA, wavelet despiking requires BrainWavelet toolbox, and rWLS requires the rWLS toolbox.
A few miscellaneous fixes also included:
Some of the test scripts got broken in the last go-round when subject and session parameters being passed to aas_processBIDS were replaced with aap.acq_details.selected_subjects and aap.acq_details.selected_visits. aas_processBIDS ignores these settings, so I change the code back to the way I originally wrote it.
I modified aa_test so you can pass in a parameter file. I find that useful, but it's totally optional.
I edited the comments in aatest_ds000114_TEMPLATE.m to (hopefully) be clearer.
I fixed the aamod_biascorrect_meanepi typo mentioned in discussion Experiences with Getting Started #254
I added a bit of QA to aamod_firstlevel_model: It now saves the design matrix (previously this required you to run reporting) and it also now saves a plaintext file of regressors and event onsets.
added aamod_rescale_epi to rescale an epi
modified aamod_realign to calculate and output FD.
added another pause(1) to aas_getfiles_bystream.m trying to fix random failures under OS-X PCT that felt like a race condition issue
a few other minor things that I'm probably forgetting