We are close to a major release.
Major changes:
Pipeline supports Python now! (I think this deserves the first place)
Referencing electrodes does not require users to run wavelet anymore (this one wins the second as it allows for more flexible data processing pipelines)
Added PipelineCollections, allowing users to build and run multiple pipelines
run_wavelet will trigger caching existing references
The pipeline errors is properly handled
Pipeline error messages also print out the expressions causing the issues
Clears pipeline object directory when related errors are raised; in this case pipeline is rescheduled automatically
Pipeline also reports warning messages
Allow pipelines to fork
Added external data path (extdata) to pipeline to store large temporary data
Added prepare_subject_phase and prepare_subject_wavelet to support loading phase and time-frequency data (besides amplitude)
Pipeline shared scripts uses script directory as working directory
Added lapply_async that can run in parallel standalone while is compatible with with_future_parallel; this function replaces dipsaus::lapply_async2
Added a new subject class RAVEMetaSubject for meta-analysis
Added support for FreeSurfer recon-all-clinical.sh, allowing users to apply super-resolution to their clinical MRI before surface reconstruction
Supports when one NSx block data contains multiple recordings (discontinued/paused recording in one block)
rave_export exports summary in Matlab format as well (thanks @Kaitlyn)
Added cmd_run_r to generate reproducible shell scripts that run code
Added pipeline$visualize to view the target relationships and schedule graphs
Added pipeline$shared_env to obtain shared environment
Minor changes:
rave-ieegGithub action configurationsMRI to derivative folder when importing images from NIfTI format (before imaging segmentation and CT to MRI registration)ravemanagerS3generics in validate_raw_file_lfpis_on_cran, allowing certain examples and tests to be suppressed during CRAN check, while these code are enabled in the local tests - this helps me to keep examples up-to-dateBug fixes:
UI having extra padding on bottomBlackrock NEV-3.0 specification configurationsset_default and get_default raise errors when configuration files are corruptedMajor changes:
rave-subject has been implementedas_rave_subject such that the subject information will be updated when calledinclude_electrodes argumentcoregistration via ANTsMRI registering to templates via non-linear transformsMinor changes:
Nolabel to NoLabel)Bug fixes:
pipeline_runMajor changes:
run_wavelet to isolate wavelet kernels for each subject, requires to update ravetoolsravetools options when loading the packageclean method to pipeline to clean the data objectspipelines to save and load customized data to avoid polluting the settings.yamlpipelines to eval instead of runraw-voltage to method load_blocks (class LFP_electrode) to load the raw voltage dataprepare_subject_bare0 to load subject that with only voltage data imported (before Notch filters).nev converter to export BlackRock format to Matlab or HDF5 formatsMinor changes:
FLIRT script to perform less search to speed upMNI305_to_MNI152 matrixquiet option when loading electrodes to suppress warningsravetools whenever possibleBlackRock.nev headers to shorten loading timeBug fixes:
watchdog when electrode table is unavailablerand_string not random when running with multicore future parallelpreprocess_file path in class LFP_electrode.nev converter bugs causing index overflows in some casesMajor changes:
RAVE 1.0 and 2.0 formatsBlackRock (NEV, NSx) formats with specification number (>=2.2)targets to avoid serializing large objectsRAVEWatchDog that can automatically monitor NEV and NSx files, import & process datamerge_subjects to merge multiple subjects from the same project but different blocksrecon-all, dcm2niix, 3dAllineate, and flirt shell-commands (requires external programs to be installed)Minor changes:
Bug fixes:
generate_reference set array to read-only mode before saving headersMajor changes:
PipelineTools class and wrapped constructor raveio::pipeline to load common utility tools needed to run the pipelineRAVE-2.0import_electrode_table to import table without replacing existing electrode files with dry_run optionMajor changes:
read_mat2 to allow reading Matlab files stored in HDF5 formatsset_default and get_default methodsmulticore by default, so users can use their own plan provided by the future packagepower_baseline directly from repositoryRAVE subjects with identical key as signaturewith_future_parallel to enable multicore features in the expressionsravedash log system provided if the package is installedraveio_getopt and raveio_setoptvalidate_time_window to return intervals of time windowssave_json and load_json to handle JSON format using jsonlite packagethreeBrain template brainimport_electrode_table to import electrode table with coordinates in T1 or MNI space to tkrRASnormalize_commandline_path and cmd_* functions to search for external system commands such as FreeSurfer, FSL-FLIRT, dcm2niixbackup_file to back up existing files instead of overwritingrave-server as services (currently only works on OSX)Changes to pipeline framework:
async mode works in shiny applicationsR6 class for pipeline results in promises wayAsync pipelines can have callback functions at each check, useful for monitoring the progressEnhancements:
save_yaml can write to connectionsrave_imports runs in parallel in native2 formatOSX and Linux)EDF files to be partially readravetools respects tensor_temp_path as its temporary pathMajor changes:
hdf5r as it passes the CRAN checks nowHDF5 bugsRAVEMajor changes:
lazyarray, pryrget_ram errors when system command not foundSolarishdf5r to rhdf5Initial CRAN submission.