Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c7d044beed | |||
| 76df19f332 | |||
| 22695a2281 | |||
| f1dd9bd184 | |||
| dd2ac058af | |||
| 98c749477c | |||
| 92973da658 | |||
| f82978e2e8 | |||
| 7007478c3b | |||
| fb728d5033 | |||
| 1b78f1904d | |||
| 9779a63a9c | |||
| 2ecd357aca | |||
| fe4e8904b4 | |||
| 473c945563 | |||
| 64ed6d2e87 | |||
| 1aa2402d09 | |||
| 45c6176dba | |||
| a4bbdb90c8 | |||
| 953ea90c67 | |||
| 20b255321b | |||
| b5afcec37d | |||
| 5361f6ea21 | |||
| ee023c26c1 | |||
| 06c9ff0ecf | |||
| 542dd85a78 |
5
.gitignore
vendored
5
.gitignore
vendored
@@ -174,3 +174,8 @@ cython_debug/
|
|||||||
# PyPI configuration file
|
# PyPI configuration file
|
||||||
.pypirc
|
.pypirc
|
||||||
|
|
||||||
|
/individual_images
|
||||||
|
*.xlsx
|
||||||
|
*.csv
|
||||||
|
*.snirf
|
||||||
|
*.json
|
||||||
109
changelog.md
109
changelog.md
@@ -1,3 +1,109 @@
|
|||||||
|
# Version 1.2.1
|
||||||
|
|
||||||
|
- Added a requirements.txt file to ensure compatibility
|
||||||
|
- Added new options 'Missing Events Bypass' and 'Analysis Clearing Bypass' to the Preferences Menu
|
||||||
|
- Missing Events Bypass allows comparing events in the Group Viewers even if not all participants in the group have the event present. Fixes [Issue 28](https://git.research.dezeeuw.ca/tyler/flares/issues/28)
|
||||||
|
- Clicking Process after an analysis has been performed will now clear the existing analysis by default with a popup warning that the analysis will be cleared
|
||||||
|
- Analysis Clearing Bypass will prevent the popup and will not clear the existing analysis data. Fixes [Issue 41](https://git.research.dezeeuw.ca/tyler/flares/issues/41)
|
||||||
|
- Clicking 'Clear' should now actually properly clear all data. Hopefully fixes [Issue 9](https://git.research.dezeeuw.ca/tyler/flares/issues/9) for good
|
||||||
|
- Setting SHORT_CHANNEL to False will now grey out SHORT_CHANNEL_REGRESSION, as it is impossible to regress what does not exist. Sets SHORT_CHANNEL_REGRESSION to False under the hood when it is greyed out regardless of what is displayed. Fixes [Issue 47](https://git.research.dezeeuw.ca/tyler/flares/issues/47)
|
||||||
|
- Projects can now be saves if files have different parent folders. Fixes [Issue 48](https://git.research.dezeeuw.ca/tyler/flares/issues/48)
|
||||||
|
- It is no longer possible to attempt a save before any data has been processed. A popup will now display if a save is attempted with nothing to save
|
||||||
|
- Fixed a bug where LONG_CHANNEL_THRESH was not being applied in the processing steps
|
||||||
|
- Added a new option in the Analysis window for Group Functional Connectivity. Implements [Issue 50](https://git.research.dezeeuw.ca/tyler/flares/issues/50)
|
||||||
|
- Group Functional connectivity is still in development and the results should currently be taken with a grain of salt
|
||||||
|
- A warning is displayed when entering the Group Functional Connectivity Viewer disclosing this
|
||||||
|
- Fixed a bug when updating optode positions that would prevent .txt files from being selected. Fixes [Issue 54](https://git.research.dezeeuw.ca/tyler/flares/issues/54)
|
||||||
|
- Fixed a bug where the secondary download server would never get contacted if the primary failed
|
||||||
|
- Automatic downloads will now ignore prerelease versions. Fixes [Issue 52](https://git.research.dezeeuw.ca/tyler/flares/issues/52)
|
||||||
|
|
||||||
|
|
||||||
|
# Version 1.2.0
|
||||||
|
|
||||||
|
- This is a save-breaking release due to a new save file format. Please update your project files to ensure compatibility. Fixes [Issue 30](https://git.research.dezeeuw.ca/tyler/flares/issues/30)
|
||||||
|
- Added new parameters to the right side of the screen
|
||||||
|
- These parameters include SHOW_OPTODE_NAMES, SECONDS_TO_STRIP_HR, MAX_LOW_HR, MAX_HIGH_HR, SMOOTHING_WINDOW_HR, HEART_RATE_WINDOW, BAD_CHANNELS_HANDLING, MAX_DIST, MIN_NEIGHBORS, L_TRANS_BANDWIDTH, H_TRANS_BANDWIDTH, RESAMPLE, RESAMPLE_FREQ, STIM_DUR, HRF_MODEL, HIGH_PASS, DRIFT_ORDER, FIR_DELAYS, MIN_ONSET, OVERSAMPLING, SHORT_CHANNEL_REGRESSION, NOISE_MODEL, BINS, and VERBOSITY.
|
||||||
|
- Certain parameters now have dependencies on other parameters and will now grey out if they are not used
|
||||||
|
- All the new parameters have default values matching the underlying values in version 1.1.7
|
||||||
|
- The order of the parameters have changed to match the order that the code runs when the Process button is clicked
|
||||||
|
- Moved TIME_WINDOW_START and TIME_WINDOW_END to the 'Other' category
|
||||||
|
- Fixed a bug causing SCI to not work when HEART_RATE was set to False
|
||||||
|
- Bad channels can now be dealt with by taking no action, removing them completely, or interpolating them based on their neighbours. Interpolation remains the default option
|
||||||
|
- Fixed an underlying deprecation warning
|
||||||
|
- Fixed an issue causing some overlay elements to not render on the brain for certain devices
|
||||||
|
- Fixed a crash when rendering some Inter-Group images with only one participant in a group
|
||||||
|
- Fixed a crash when attempting to fOLD channels without the fOLD dataset installed
|
||||||
|
- Lowered the number of rectangles in the progress bar to 24 after combining some actions
|
||||||
|
- Fixed the User Guide window to properly display information about the 24 stages and added a link to the Git wiki page
|
||||||
|
- MAX_WORKERS should now properly repect the value set
|
||||||
|
- Added a new CSV export option to be used by other applications
|
||||||
|
- Added support for updating optode positions directly from an .xlsx file from a Polhemius system
|
||||||
|
- Fixed an issue where the dropdowns in the Viewer windows would immediately open and close when using a trackpad
|
||||||
|
- glover and spm hrf models now function as intended without crashing. Currently, group analysis is still only supported by fir. Fixes [Issue 8](https://git.research.dezeeuw.ca/tyler/flares/issues/8)
|
||||||
|
- Clicking 'Clear' should now properly clear all data. Fixes [Issue 9](https://git.research.dezeeuw.ca/tyler/flares/issues/9)
|
||||||
|
- Revamped the fold channels viewer to not hang the application and to better process multiple participants at once. Fixes [Issue 34](https://git.research.dezeeuw.ca/tyler/flares/issues/34), [Issue 31](https://git.research.dezeeuw.ca/tyler/flares/issues/31)
|
||||||
|
- Added a Preferences menu to the navigation bar
|
||||||
|
- Two preferences have been added allowing to bypass the warning of 2D data detected and save files being from previous, potentially breaking versions
|
||||||
|
- Fixed a typo when saving a CSV that stated a SNIRF was being saved
|
||||||
|
- Loading a save file now properly restores AGE, GENDER, and GROUP. Fixes [Issue 40](https://git.research.dezeeuw.ca/tyler/flares/issues/40)
|
||||||
|
- Saving a project now no longer makes the main window go not responding. Fixes [Issue 43](https://git.research.dezeeuw.ca/tyler/flares/issues/43)
|
||||||
|
- Memory usage should no longer grow when generating lots of images multiple times. Fixes [Issue 36](https://git.research.dezeeuw.ca/tyler/flares/issues/36)
|
||||||
|
- Added a new option in the Analysis window for Functional Connectivity
|
||||||
|
- Functional connectivity is still in development and the results should currently be taken with a grain of salt
|
||||||
|
- A warning is displayed when entering the Functional Connectivity Viewer disclosing this
|
||||||
|
|
||||||
|
|
||||||
|
# Version 1.1.7
|
||||||
|
|
||||||
|
- Fixed a bug where having both a L_FREQ and H_FREQ would cause only the L_FREQ to be used
|
||||||
|
- Changed the default H_FREQ from 0.7 to 0.3
|
||||||
|
- Added a PSD graph, along with 2 heart rate images to the individual participant viewer
|
||||||
|
- The PSD graph is used to help calculate the heart rate, whereas the other 2 are currently just for show
|
||||||
|
- SCI is now done using a .6hz window around the calculated heart rate compared to a window around an average heart rate
|
||||||
|
- Fixed an issue with some epochs figures not showing under the participant analysis
|
||||||
|
- Removed SECONDS_TO_STRIP from the preprocessing options
|
||||||
|
- Added new parameters to the right side of the screen
|
||||||
|
- These parameters include TRIM, SECONDS_TO_KEEP, OPTODE_PLACEMENT, HEART_RATE, WAVELET, IQR, WAVELET_TYPE, WAVELET_LEVEL, ENHANCE_NEGATIVE_CORRELATION, SHORT_CHANNEL_THRESH, LONG_CHANNEL_THRESH, and DRIFT_MODEL
|
||||||
|
- Changed number of rectangles in the progress bar to 25 to account for the new options
|
||||||
|
|
||||||
|
|
||||||
|
# Version 1.1.6
|
||||||
|
|
||||||
|
- Fixed Process button from appearing when no files are selected
|
||||||
|
- Fixed a bug that would cause an instant child process crash on Windows
|
||||||
|
- Added L_FREQ and H_FREQ parameters for more user control over low and high pass filtering
|
||||||
|
|
||||||
|
|
||||||
|
# Version 1.1.5
|
||||||
|
|
||||||
|
- Fixed Windows saves not being able to be opened by a Mac (hopefully the other way too!)
|
||||||
|
- Added the option to right click loaded snirf files to reveal them in a file browser or delete them if they are no longer desired
|
||||||
|
- Changed the way folders are opened to store the files seperately rather than the folder as a whole to allow for the removal of files
|
||||||
|
- Fixed issues with dropdowns and bubbles not populating correctly when opening a single file and temporarily removed the option to open multiple folders
|
||||||
|
- Improved crash handling and the message that is displayed to the user if the application crashes
|
||||||
|
- Progress bar will now colour the stage that fails as red if a file fails during processing
|
||||||
|
- A warning message will be displayed when a file fails to process with information on what went wrong. This message does not halt the rest of the processing of the other files
|
||||||
|
- Fixed the number of rectangles in the progress bar to 20 (was incorrect in v1.1.1)
|
||||||
|
- Added validation to ensure loaded files do not have 2 dimensional data when clicking process to prevent inaccurate results from being generated
|
||||||
|
- Added more metadata information to the top left information panel
|
||||||
|
- Changed the Status Bar message when processing is complete to state how many were successful and how many were not
|
||||||
|
- Added a clickable link below the selected file's metadata explaining the independent parameters and why they are useful
|
||||||
|
- Updated some tooltips to provide better, more accurate information
|
||||||
|
- Added details about the processing steps and their order into the user guide
|
||||||
|
- Changed the default bandpass filtering parameters
|
||||||
|
|
||||||
|
|
||||||
|
# Version 1.1.4
|
||||||
|
|
||||||
|
- Fixed some display text to now display the correct information
|
||||||
|
- A new option under Analysis has been added to export the data from a specified participant as a csv file. Fixes [Issue 19](https://git.research.dezeeuw.ca/tyler/flares/issues/19), [Issue 27](https://git.research.dezeeuw.ca/tyler/flares/issues/27)
|
||||||
|
- Added 2 new parameters - TIME_WINDOW_START and TIME_WINDOW_END. Fixes [Issue 29](https://git.research.dezeeuw.ca/tyler/flares/issues/29)
|
||||||
|
- These parameters affect the visualization of the significance and contrast images but do not change the total time modeled underneath
|
||||||
|
- Fixed the duration of annotations edited from a BORIS file from 0 seconds to their proper duration
|
||||||
|
- Added the annotation information to each participant under their "File information" window
|
||||||
|
- Fixed Macs not being able to save snirfs attempting to be updated from BORIS files, and in general the updated files not respecting the path chosen by the user
|
||||||
|
|
||||||
|
|
||||||
# Version 1.1.3
|
# Version 1.1.3
|
||||||
|
|
||||||
- Added back the ability to use the fOLD dataset. Fixes [Issue 23](https://git.research.dezeeuw.ca/tyler/flares/issues/23)
|
- Added back the ability to use the fOLD dataset. Fixes [Issue 23](https://git.research.dezeeuw.ca/tyler/flares/issues/23)
|
||||||
@@ -9,6 +115,7 @@
|
|||||||
- Added a terminal to interact with the app in a more command-like form
|
- Added a terminal to interact with the app in a more command-like form
|
||||||
- Currently the terminal has no functionality but some features for batch operations will be coming soon!
|
- Currently the terminal has no functionality but some features for batch operations will be coming soon!
|
||||||
- Inter-Group viewer now has the option to visualize the average response on the brain of all participants in the group. Fixes [Issue 26](https://git.research.dezeeuw.ca/tyler/flares/issues/24)
|
- Inter-Group viewer now has the option to visualize the average response on the brain of all participants in the group. Fixes [Issue 26](https://git.research.dezeeuw.ca/tyler/flares/issues/24)
|
||||||
|
- Fixed the description under "Update events in snirf file..."
|
||||||
|
|
||||||
|
|
||||||
# Version 1.1.2
|
# Version 1.1.2
|
||||||
@@ -34,7 +141,7 @@
|
|||||||
- Added a group option when clicking on a participant's file
|
- Added a group option when clicking on a participant's file
|
||||||
- If no group is specified, the participant will be added to the "Default" group
|
- If no group is specified, the participant will be added to the "Default" group
|
||||||
- Added option to update the optode positions in a snirf file from the Options menu (F6)
|
- Added option to update the optode positions in a snirf file from the Options menu (F6)
|
||||||
- Fixed [Issue 3](https://git.research.dezeeuw.ca/tyler/flares/issues/3), [Issue 4](https://git.research.dezeeuw.ca/tyler/flares/issues/4), [Issue 17](https://git.research.dezeeuw.ca/tyler/flares/issues/17), [Issue 21](https://git.research.dezeeuw.ca/tyler/flares/issues/21), [Issue 22](https://git.research.dezeeuw.ca/tyler/flares/issues/22)
|
- Fixed [Issue 3](https://git.research.dezeeuw.ca/tyler/flares/issues/3), [Issue 5](https://git.research.dezeeuw.ca/tyler/flares/issues/5), [Issue 17](https://git.research.dezeeuw.ca/tyler/flares/issues/17), [Issue 21](https://git.research.dezeeuw.ca/tyler/flares/issues/21), [Issue 22](https://git.research.dezeeuw.ca/tyler/flares/issues/22)
|
||||||
|
|
||||||
|
|
||||||
# Version 1.0.1
|
# Version 1.0.1
|
||||||
|
|||||||
1
icons/folder_eye_24dp_1F1F1F.svg
Normal file
1
icons/folder_eye_24dp_1F1F1F.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h240l80 80h320q33 0 56.5 23.5T880-640v242q-18-14-38-23t-42-19v-200H447l-80-80H160v480h120v80H160ZM640-40q-91 0-168-48T360-220q35-84 112-132t168-48q91 0 168 48t112 132q-35 84-112 132T640-40Zm0-80q57 0 107.5-26t82.5-74q-32-48-82.5-74T640-320q-57 0-107.5 26T450-220q32 48 82.5 74T640-120Zm0-40q-25 0-42.5-17.5T580-220q0-25 17.5-42.5T640-280q25 0 42.5 17.5T700-220q0 25-17.5 42.5T640-160Zm-480-80v-480 277-37 240Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 593 B |
1
icons/remove_24dp_1F1F1F.svg
Normal file
1
icons/remove_24dp_1F1F1F.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M200-440v-80h560v80H200Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 149 B |
@@ -12,7 +12,7 @@ from pathlib import Path
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
from scipy import linalg
|
from scipy import linalg
|
||||||
from scipy.spatial.distance import cdist
|
from scipy.spatial.distance import cdist
|
||||||
from scipy.special import sph_harm
|
from scipy.special import sph_harm_y
|
||||||
|
|
||||||
from ._fiff.constants import FIFF
|
from ._fiff.constants import FIFF
|
||||||
from ._fiff.open import fiff_open
|
from ._fiff.open import fiff_open
|
||||||
|
|||||||
@@ -1025,7 +1025,7 @@ def _handle_sensor_types(meg, eeg, fnirs):
|
|||||||
fnirs=dict(channels="fnirs", pairs="fnirs_pairs"),
|
fnirs=dict(channels="fnirs", pairs="fnirs_pairs"),
|
||||||
)
|
)
|
||||||
sensor_alpha = {
|
sensor_alpha = {
|
||||||
key: dict(meg_helmet=0.25, meg=0.25).get(key, 0.8)
|
key: dict(meg_helmet=0.25, meg=0.25).get(key, 1.0)
|
||||||
for ch_dict in alpha_map.values()
|
for ch_dict in alpha_map.values()
|
||||||
for key in ch_dict.values()
|
for key in ch_dict.values()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -586,7 +586,7 @@ class _PyVistaRenderer(_AbstractRenderer):
|
|||||||
color = None
|
color = None
|
||||||
else:
|
else:
|
||||||
scalars = None
|
scalars = None
|
||||||
tube = line.tube(radius, n_sides=self.tube_n_sides)
|
tube = line.tube(radius=radius, n_sides=self.tube_n_sides)
|
||||||
actor = _add_mesh(
|
actor = _add_mesh(
|
||||||
plotter=self.plotter,
|
plotter=self.plotter,
|
||||||
mesh=tube,
|
mesh=tube,
|
||||||
|
|||||||
BIN
requirements.txt
Normal file
BIN
requirements.txt
Normal file
Binary file not shown.
@@ -18,7 +18,7 @@ VSVersionInfo(
|
|||||||
StringStruct('FileDescription', 'FLARES main application'),
|
StringStruct('FileDescription', 'FLARES main application'),
|
||||||
StringStruct('FileVersion', '1.0.0.0'),
|
StringStruct('FileVersion', '1.0.0.0'),
|
||||||
StringStruct('InternalName', 'flares.exe'),
|
StringStruct('InternalName', 'flares.exe'),
|
||||||
StringStruct('LegalCopyright', '© 2025 Tyler de Zeeuw'),
|
StringStruct('LegalCopyright', '© 2025-2026 Tyler de Zeeuw'),
|
||||||
StringStruct('OriginalFilename', 'flares.exe'),
|
StringStruct('OriginalFilename', 'flares.exe'),
|
||||||
StringStruct('ProductName', 'FLARES'),
|
StringStruct('ProductName', 'FLARES'),
|
||||||
StringStruct('ProductVersion', '1.0.0.0')])
|
StringStruct('ProductVersion', '1.0.0.0')])
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ VSVersionInfo(
|
|||||||
StringStruct('FileDescription', 'FLARES updater application'),
|
StringStruct('FileDescription', 'FLARES updater application'),
|
||||||
StringStruct('FileVersion', '1.0.0.0'),
|
StringStruct('FileVersion', '1.0.0.0'),
|
||||||
StringStruct('InternalName', 'main.exe'),
|
StringStruct('InternalName', 'main.exe'),
|
||||||
StringStruct('LegalCopyright', '© 2025 Tyler de Zeeuw'),
|
StringStruct('LegalCopyright', '© 2025-2026 Tyler de Zeeuw'),
|
||||||
StringStruct('OriginalFilename', 'flares_updater.exe'),
|
StringStruct('OriginalFilename', 'flares_updater.exe'),
|
||||||
StringStruct('ProductName', 'FLARES Updater'),
|
StringStruct('ProductName', 'FLARES Updater'),
|
||||||
StringStruct('ProductVersion', '1.0.0.0')])
|
StringStruct('ProductVersion', '1.0.0.0')])
|
||||||
|
|||||||
Reference in New Issue
Block a user