Releases: ME-ICA/tedana
0.0.11rc1
Release Notes
We have made this release candidate to test recent enhancements. Please open issues if you experience any problems.
Changes
- [DOC] Add link to EuskalIBUR dataset in documentation (#780) @tsalo
- [FIX] Add resources folder to package data (#772) @tsalo
- [ENH] Use different masking thresholds for denoising and classification (#736) @tsalo
- [DOC, MAINT] Updated dependency version numbers (#763) @handwerkerd
- [REF] Move logger management to new functions (#750) @tsalo
- [FIX] Ignore non-significant kappa elbow when no non-significant kappa values exist (#760) @tsalo
- [ENH] Coerce images to 32-bit (#759) @jbteves
- [ENH] Add carpet plot to outputs (#696) @tsalo
- [FIX] Correct manacc documentation and check for associated inputs (#754) @tsalo
- [DOC] Reorganize documentation (#740) @tsalo
- [REF] Do not modify mixing matrix with sign-flipping (#749) @tsalo
- [REF] Eliminate component sorting from metric calculation (#741) @tsalo
- [FIX] Update apt in CircleCI (#746) @notZaki
- [DOC] Update resource page with dataset and link to Dash app visualizations (#745) @jsheunis
- [DOC] Clarify communication pathways (#742) @tsalo
- [FIX] Disable report logging during ICA restart loop (#743) @tsalo
- [REF] Replace metric dependency dictionaries with json file (#739) @tsalo
- [FIX] Add references back into the HTML report (#737) @tsalo
- [ENH] Allows iterative clustering (#732) @jbteves
- [REF] Modularize metric calculation (#591) @tsalo
- Rename sphinx functions to fix building error for docs (#727) @eurunuela
- [ENH] Generate BIDS Derivatives-compatible outputs (#691) @tsalo
0.0.10
Release Notes
The 0.0.10 release of tedana includes a number of bug fixes over the previous stable release, and drops support for Python 3.5, as well as adding formal support for Python 3.8 and 3.9.
As always, we encourage users to review our documentation (at tedana.readthedocs.io) which includes information for theoretical background for multi-echo, acquisition-related guidance, and documentation for our ✨ interactive reports. ✨
The complete changelog since the last alpha release is included below. Here, we briefly summarize the significant changes since our last stable release.
🔧 Breaking changes
- PCA is now normalized over time, which may change number of PCA components retained
- A bug-fix for ICA f-statistic thresholding may change some component classifications and metric calculations.
- For datasets with more than 3 echoes, a bug was fixed where we required all echoes to be "good" instead of just the minimum three needed for accurate metric calculation. This may significantly impact classifications on datasets with more than 3 echoes.
✨ Enhancements
- Formal support added for Python 3.8 and 3.9.
- We now normalize PCA over time.
🐛 Bug fixes
- In prior releases, f-statistic maps were thresholded just before kappa/rho calculation, such that the metric maps related to T2 and S0 were not aligned with the values used to calculate kappa and rho. All T2 and S0 maps are now thresholded at calculation, so that their derivative metrics reflect this thresholding as well.
- In previous releases, there was a bug where datasets required all echoes be considered "good" for a voxel to be included in denoising. However, in datasets with more than three echoes, this is too conservative. This release requires only the minimal 3 echoes in order to perform accurate metric calculations.
Changes since last stable release
- [MAINT] Modifies actions to run on release publish (#725) @jbteves
- [DOC] Add warning about not using release-drafter releases to developer instructions (#718) @tsalo
- [FIX] Bumps (down) sklearn and scipy (#723) @emdupre
- [MAINT] Drop 3.5 support and begin 3.8 and 3.9 support (#721) @tsalo
- [FIX] Calculate Kappa and Rho on full F-statistic maps (#714) @tsalo
- [FIX] Adds f_max to right place (#712) @jbteves
- [DOC] Added MAPCA to list of dependencies (#709) @handwerkerd
- [DOC] Add references to HTML report (#695) @tsalo
- [FIX] Enable normalization in mapca call (#705) @notZaki
- [REF] Replace MAPCA code with mapca library (#641) @tsalo
- [REF] Normalize over time in MAPCA (#702) @tsalo
- [ENH] Match BokehJS with BokehPy version (#703) @notZaki
- [MAINT] Update Kirstie affiliation in zenodo file (#694) @KirstieJane
- [MAINT] Add Javier Gonzalez-Castillo to Zenodo file (#682) @javiergcas
- [DOC] Harmonizes Governance Documents (#678) @jbteves
0.0.9
Release Notes
The 0.0.9 release of tedana includes a large number of changes over the previous stable release.
This release contains a number of breaking, fixing, and useful changes. As always, we encourage users to review our documentation (at tedana.readthedocs.io) which now includes more information theoretical background for multi-echo, acquisition-related guidance, and documentation for our ✨ new interactive reports. ✨
The complete changelog since the last alpha release is included below. Here, we briefly summarize the significant changes since our last stable release.
🔧 Breaking changes
- We have updated our adaptive mask calculation between the t2smap and tedana workflows. t2smap will now use all voxels that have signal in at least one echo in the optimal combination, while tedana will use those voxels that have signal in at least three echos and so can be used in echo-dependent denoising. This change will facilitate integration into larger processing workflows such as fMRIPrep.
- We have added an internal check for whether any BOLD components are identified and--if not--set the ICA to automatically re-run for a limited number of iterations.
- Log files are now by datetime, allowing multiple runs to have systematic naming.
- Filenames for decomposition and metric maps are now BIDS derivative-compatible. Please see documentation for the full list of new filenames.
- Component tables are now in .json format.
- Changed tab-separated files from .txt to .tsv file extension.
- The --sourceTEs option has been removed.
- T2* maps are now in seconds rather than milliseconds.
- The --tedpca mle option has been removed.
- The --gscontrol option "T1c" is now "mir" for minimum image regression.
- For the "--manacc" option, you should supply a list of integers instead of a comma-separated string.
✨ Enhancements
- We have introduced interactive reports for better accessing and understanding component classification. A guide to interpreting the new reports is available here: https://tedana.readthedocs.io/en/latest/reporting.html
- A previously collected quantitative T2* map (in seconds) can now optionally be supplied directly. If provided, this information will be used to guide the optimal combination, rather than estimating the T2* map directly from the echo data.
- Files are now gzipped by default to save disk space.
- Adds the --out_dir argument to t2smap workflow to choose what directory files are written to.
- The t2smap workflow is now fmriprep compatible.
🐛 Bug fixes
- The default PCA method has been updated to follow Calhoun et al. (2001, Hum. Brain Map.). This avoids a known error where too many PCA components would be selected.
- We have added a flooring procedure for T2* map calculations to prevent divide-by-zero errors during optimal combination.
- Environments are not coerced to single-threaded computation after calling tedana.
- Fixed variance-explained outlier detection problem where first value was always NaN and variance explained was always negative.
- Fixed component table loading bug that resulted from unexpected pandas behavior.
- Fixed bug where the wrong number of echoes would be allocated in-program.
- Fixed bug where only selecting one component would cause an error.
- Correctly incorporate user-supplied masks in T2* workflow.
- Fixed bug in PAID combination where mean of data would be used instead of SNR.
Changes since last alpha release
- [MAINT] Support Windows' paths; Update zenodo & contributor count (#672) @notZaki
- [FIX] Normalize data to zero mean and unit variance before dimension estimation (#636) @notZaki
- Move long description logic from info.py to setup.py (#670) @notZaki
- [MAINT] Add new contributors to Zenodo file (#671) @tsalo
- [DOC] Starts contribution page (#624) @jbteves
- [REF] Replaces master with main where possible (#667) @jbteves
- [ENH] Allow tedpca argument to be a float inside a string (#665) @notZaki
- [ENH] Add ability to re-run ICA when no BOLD components are found (#663) @tsalo
- [ENH] Add threshold argument to make_adaptive_mask (#635) @tsalo
- [REF] Replace deprecated get_data with get_fdata (#664) @notZaki
- docs: add notZaki as a contributor (#661) @allcontributors
- [DOC] Clarify role of components in docs (#660) @notZaki
- [ENH] Implement variance explained threshold-based PCA option (#658) @tsalo
- [DOC] Log count of floored voxels in T2* estimation (#656) @tsalo
- [DOC] Add NeuroStars question link (#651) @tsalo
- [FIX] Eliminate duplicate lines in logs (#645) @tsalo
- [DOC] Add docstring to fit_loglinear (#646) @tsalo
- [FIX] Show logs in re-runs (#637) @notZaki
- [DOC] Governance update (#615) @handwerkerd
- docs: add notZaki as a contributor (#630) @allcontributors
- [TST] Allow CI for all-contributors (#627) @jbteves
- [ENH] Add diagonal reference line to kappa/rho plot (#625) @notZaki
- [MAINT] Add all contributors to Zenodo file (#614) @tsalo
- docs: add smoia as a contributor (#616) @allcontributors
- [REF] Rename T1c to "minimum image regression" (#609) @tsalo
- [DOC] Reporting documentation (#465) @javiergcas
- [DOC] Rewrite new PCA section (#613) @eurunuela
- docs: add aykhojandi as a contributor (#610) @allcontributors
- [DOC] Added link for tedana NeuroStars tag. (#608) @aykhojandi
- [DOC] Miscellaneous improvements to documentation (#575) @tsalo
- [ENH] Use list of ints for manacc instead of comma-separated string (#598) @tsalo
- [DOC] Use README as long_desc (#595) @emdupre
- [MAINT] Add workflow to autodeploy to PyPi (#568) @tsalo
- [TST] Show logging output during integration tests (#588) @tsalo
- [FIX] Add non-zero floor to T2* values (#585) @tsalo
- docs: add mvaziri as a contributor (#587) @allcontributors
- [DOC] Include [all] in developer setup install guidelines (#572) @tsalo
- [DOC] multi-echo reports (#457) @emdupre
- docs: add mjversluis as a contributor (#580) @allcontributors
- Update acquisition.rst to include information for Philips scanners (#579) @mjversluis
0.0.9a1
0.0.9a
This release contains a number of breaking, fixing, and useful changes.
We encourage users to review our heavily expanded documentation at
tedana.readthedocs.io
Bug Fixes:
- PCA has been overhauled to a new and more reliable method, averting a known
bug where too many PCA components would be selected. - Environments are not coerced to single-threaded computation after calling
tedana. - Fixed variance-explained outlier detection problem where first value was
always NaN and variance explained was always negative. - Fixed component table loading bug that resulted from unexpected pandas
behavior. - Fixed bug where the wrong number of echoes would be allocated in-program.
- Fixed bug where only selecting one component would cause an error.
- Correctly incorporate user-supplied masks in T2* workflow.
- Fixed bug in PAID combination where mean of data would be used instead of SNR.
Breaking Changes:
- Log files are now by datetime, allowing multiple runs to have systematic
naming. - Filenames for decomposition and metric maps are now BIDS
derivative-compatible. Please see documentation for the full list of new
filenames. - Component tables are now in .json format
- Changed tab-separated files from .txt to .tsv file extension.
- Removed the --sourceTEs option.
- T2* maps are now in seconds rather than milliseconds.
- --mle option is now deprecated.
Changes in Defaults:
- New PCA algorithm is default, please see documentation for more information.
- Clustering is now bi-sided rather than two sided (positive and negative
clusters are now grouped separately). - Static png images are now the default; use --nopng to avoid this.
- Files are now gzipped by default.
New Features:
- Massively expanded documentation, please see tedana.readthedocs.io to view
the updated usage help, multi-echo background, developer guidelines, and
API documentation. - New PCA decomposition algorithm (default).
- Adds the --out_dir argument to t2smap workflow to choose what directory files are written
to. - t2smap workflow is now fmriprep compatible
- Added --t2smap argument to allow you to supply a precalculated T2* map.
Thanks to Logan Dowdle, Elizabeth DuPre, Cesar Caballero Gaudes, Dan
Handwerker, Ross Markello, Isla, Joshua Teves, Eneko Urunuela,
Kirstie Whitaker, and to the NIH Section on Functional Imaging Methods
for supporting the tedana hackathon and the NIH for supporting the AFNI Code Convergence, where much of the work in this release was done.
0.0.8
Release Notes
This long overdue release concentrates on adding testing, and improving documentation. Major changes include:
- Generating workflow descriptions for each run
- Streamline circleCI workflow
- Reducing memory usage
Thanks to all listed contributors, as well as to many not listed here !
Changes
- [ENH] Adding monoexponential curve fit (#409) @dowdlelt
- Fit to each subset of echoes and fit to all data (not mean). (#8) @tsalo
- [ENH] Stop writing __meica_mix.1D (#406) @frodeaa
- docs: add benoitberanger as a contributor (#398) @allcontributors
- [ENH] --debug flag appear now in the help & documentation (#385) @benoitberanger
- MAINT: Update numpy and Python requirements (#397) @effigies
- [FIX][ENH][TST] Adds datetime logfile and removes it from outputs, fixes stream handling (#391) @jbteves
- [FIX][TST] Adds curl installation where needed (#390) @jbteves
- docs: add monicayao as a contributor (#389) @allcontributors
- [TST] Add smoke tests to io.py and viz.py (#380) @monicayao
- [TST] Additional smoke tests for stats.py (#386) @monicayao
- [TST] Additional smoke tests for utils.py (#377) @monicayao
- Update to sync (#4) @monicayao
- [DOC] Allows small doc patches (#374) @jbteves
- [DOC] Update CONTRIBUTING and README with developer installation, contributing and testing instructions (#375) @jsheunis
- docs: add jsheunis as a contributor (#381) @allcontributors
- Sync new changes (#6) @dowdlelt
- [TST] New smoke tests for functions in decay.py (#367) @monicayao
- Update #3 (#3) @monicayao
- [FIX, TST] Fix CodeCov report upload (#371) @tsalo
- [TST] Streamline CircleCI workflow (#368) @tsalo
- [DOC] Fix links and sizes in approach documentation (#369) @tsalo
- [DOC] Update to automatically update copyright year (#366) @monicayao
- Update (#2) @monicayao
- [FIX] Use PCA-based variance explained in PCA decision tree (#364) @tsalo
- [DOC, ENH] Generate workflow description for each run (#349) @tsalo
- [DOC] Walk through TE-dependence in more detail (#354) @tsalo
- [ENH, REF] Reduce memory requirements for metric calculation and PCA (#345) @tsalo
- [doc] Add poster from OHBM 2019 meeting, fix RTD (#340) @emdupre
- Multi-echo background documentation edits (#351) @handwerkerd
- [DOC] Fix small typos in multi-echo.rst documentation (#348) @jsheunis
- update (#1) @monicayao
- [DOC] Add newsletter to README file & RTD homepage (#342) @KirstieJane
- [FIX] Add TR checking and user option (#333) @jbteves
- [DOC] Adding recommendations into multi-echo.rst (#341) @handwerkerd
- [DOC] Clean up approach page (#337) @tsalo
- [DOC] Corrects doc after refactor (#324) @jbteves
- [REF] Gets rid of mask argument in tedana.fit.dependence_metrics (#326) @jbteves
- [FIX] Modifies three-echo dataset url to new location (#329) @jbteves
- [REF] Changes model module -> metrics module (#325) @jbteves
- docs: add tsalo as a contributor (#323) @allcontributors
- docs: add tsalo as a contributor (#322) @allcontributors
- [DOC] Updates CONTRIBUTING to reflect contribution spec and bot (#309) @jbteves
- docs: add tsalo as a contributor (#321) @allcontributors
- docs: add monicayao as a contributor (#319) @allcontributors
- [DOC] Addition to the multi-echo fMRI section to include more background (#314) @monicayao
- [DOC] Update homepage > "about tedana" to redirect readers to relevant page (#313) @monicayao
- [DOC] Adds 'quick start' guidelines for new contributors (#293) @jbteves
- [DOC] Requests no Draft PRs in CONTRIBUTING (#296) @jbteves
- [DOC] Update Visual Reports Documentation (#311) @dowdlelt
- [FIX] Add early escape from TEDICA decision tree (#298) @tsalo
- update fork (#5) @dowdlelt
- docs: add emdupre as a contributor (#307) @allcontributors
- docs: add javiergcas as a contributor (#306) @allcontributors
- docs: add prantikk as a contributor (#305) @allcontributors
- docs: add rmarkello as a contributor (#304) @allcontributors
- docs: add dowdlelt as a contributor (#303) @allcontributors
- docs: add handwerkerd as a contributor (#302) @allcontributors
- docs: add tsalo as a contributor (#301) @allcontributors
- docs: add KirstieJane as a contributor (#300) @allcontributors
- docs: add jbteves as a contributor (#299) @allcontributors
- [REF] Create new stats module (#273) @tsalo
- [FIX] Sort comptable by varex before identifying outlier components (#295) @tsalo
- [REF] Reorganize selcomps and fitmodels_direct (#266) @tsalo
- [DOC] Updates copyright year (#291) @jbteves
- [ENH] Adds static logging filename (#280) @jbteves
- [DOC] Add Paused label description to CONTRIBUTING (#278) @jbteves
- [DOC] Adds information on why we use multi-echo (#288) @emdupre
- [DOC] Changes source->conda for env (de)activate (#286) @jbteves
- [DOC] Add stale issue policy to CONTRIBUTING (#279) @jbteves
- Update multi-echo.rst (#284) @handwerkerd
- [DOC] Fixes Random Seed Help Text (#281) @jbteves
- [REF, DOC] Document and refactor selcomps (#262) @tsalo
- [ENH] Improve manual component selection (#263) @tsalo
- [REF] Split eigendecomp into ICA and PCA files (#265) @tsalo
0.0.7
Release Notes
This release concentrates on improving performance and interpretability of tedana processing. Major changes include:
- Add options to control ICA attempts
- Implement automatric masking when no explicit masking provided
- Initial visual reports
- Speed up cluster-extent thresholding
Thanks to all listed contributors, as well as to many not listed here (@jbteves @handwerkerd @javiergcas) !
Changes
- [STY] Consolidate linter settings and ignore some style warnings (#216) @tsalo
- [ENH] Limit tedana to one core (#215) @tsalo
- [ENH] Add options to control ICA attempts (#224) @tsalo
- [REF] Clean up outdated/unused functions (#227) @tsalo
- [ENH] Automatically use Nilearn's EPI mask when no explicit mask is provided (#226) @tsalo
- [ENH] Adding simple figure output (#208) @dowdlelt
- [FIX] Normalize PCA mixing matrix over time, not component (#228) @tsalo
- [FIX] Remove WVPCA support (#233) @tsalo
- [FIX] scatter plot labeling issue. (#235) @dowdlelt
- [ENH] Update Figure Generation Code (#236) @dowdlelt
- [FIX, DOC] Use countnoise in decision table within selcomps (#238) @tsalo
- [REF] Add gscontrol module (#240) @tsalo
- [FIX] center component map at zero (#241) @dowdlelt
- [FIX] Make figures using un-orthogonalized mixing matrix (#246) @tsalo
- [REF] Clean up comptable handling in tedana.io (#242) @tsalo
- [ENH] Speed up cluster-extent thresholding function (#239) @tsalo
- [FIX] Fix use of d_table_score (#260) @tsalo
- [REF, DOC] Document PAID combination method (#264) @tsalo
- [DOC] Add dev calls to contributing guidelines (#271) @KirstieJane
0.0.6
Release Notes
We had several major changes this release, including:
- Changes PCA default component selection to
MLE
, with previous decision tree accessible throughkundu_pca
argument - Adds verbose outputs for visualization and debugging
- Addition of
tedort
argument - Bug fix for user-defined mask with poor signal
Improved documentation, logging, and issue templates also added.
With thanks to @dowdlelt, @jbteves, @katrinleinweber, @KirstieJane, and @tsalo !
Changes
- Hyperlink DOIs to preferred resolver (#165) @katrinleinweber
- [REF] Replace hard-coded F-statistic thresholds with scipy.stats function call (#156) @tsalo
- [FIX] Include ignored components in ME-DN T1c time series (#125) @tsalo
- [REF] Remove unused arguments and simplify CLI (#163) @tsalo
- [DOC] Add FAQ and link to ME papers spreadsheet (#160) @tsalo
- [DOC] Improve logging (#167) @tsalo
- [FIX] Reduce user-defined mask when there is no good signal (#172) @tsalo
- [ENH] Add tedort argument to tedana workflow (#155) @tsalo
- [ENH] Split automatic dimensionality detection from decision tree in TEDPCA (#164) @tsalo
- [ENH] Add verbose outputs for pipeline walkthrough (#174) @tsalo
- [fix] update python version support in README (#182) @emdupre
- [DOC] Fix eimask logging, ste definitions in eigendecomp (#184) @dowdlelt
- [DOC] Fix arg parser (#195) @dowdlelt
- Fix broken link to code of conduct (#198) @KirstieJane
- [DOC] Add tedana development setup instructions (#197) @jbteves
- Corrects README.md to show correct conda and pip instructions (#205) @jbteves
- [FIX] Propagate TR to ref_image header (#207) @dowdlelt
- [FIX] Do not use minimum mask for OC data in tedpca (#204) @tsalo
- [ENH] Adds issue templates for bugs and discussions (#189) @jbteves
- [ENH] Normalize all the line endings (#191) @jbteves
0.0.5
Release Notes
Major changes: This release reverts to the 2.5 version selection criteria, and it also switches the ICA implementation from mdp
to sklearn
. It is also includes a major overhaul of the documentation.
With thanks to @frodeaa, @RupeshGoud, and @jbteves for contributrions !
Changes
- [DOC] Rearrange badges in README (#118) @tsalo
- [ENH] Linting, update imports (#4) @emdupre
- [FIX] Add quiet and debug options to t2smap (#123) @emdupre
- [DOC] Add Python version info (#126) @tsalo
- [FIX] Accept non-NIFTI files without complaining (#128) @rmarkello
- [FIX] Remove nifti requirement in
selcomps()
(#130) @rmarkello - Inital commit of tedana package (#1) @emdupre
- [DOC] Update multi-echo.rst (#138) @RupeshGoud
- [FIX] Logging in tedana and t2smap (#143) @frodeaa
- [ENH] Track PCA and ICA component selection decisions (#122) @tsalo
- [DOC] Improve documentation for pipeline (#133) @tsalo
- Documentation update for installation and environments in miniconda (#142) @jbteves
- [DOC] Add Support page (#150) @tsalo
- [ENH] Rename modules (#136) @frodeaa
- [DOC] Update documentation for interacting with other pipelines (#134) @emdupre
- Merge in @rmarkello PR (#19) @emdupre
- [TST] Support Python 3.5 (#154) @tsalo
- [DOC] Request for Comments: Roadmap and Contributing (#151) @emdupre
- [ENH] update ICA to sklearn from mdp (#44) @emdupre
- [DOC] RST formatting fixes for roadmap, contributing (#157) @emdupre
- [ENH] Switch to Selcomps 2.5 (#119) @emdupre
- [FIX] Loop through volumes in FIT method (#158) @tsalo