404
+ +Page not found
+ + +diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..d0f450d1 --- /dev/null +++ b/404.html @@ -0,0 +1,130 @@ + + +
+ + + + +Page not found
+ + +Developed at the Jyväskylä Centre for Interdisciplinary Brain Research (CIBR), Meggie is the result of a project that started in 2013, with the mission to make sophisticated M/EEG analysis accessible to all researchers. Meggie builds upon the MNE-Python library to deliver a robust set of features through an intuitive interface.
+Meggie focuses on:
+Compared to other tools like FieldTrip, MNE-Python, EEGLAB, Brainstorm, and mnelab, Meggie is unique because it's built with Python, it's easy for anyone to use, and it's designed for handling multiple subjects' data efficiently.
+Meggie can be changed and added to with plugins. If you know Python, you can create new features. This helps Meggie grow and helps everyone who uses it.
+To learn more, see our Developer Documentation.
+ +This document outlines the core structure of Meggie, offering insights into its construction and how developers can leverage its architecture.
+Meggie is structured around three fundamental classes:
+MainWindow is the central hub of the user interface, built using PyQt5. Key components include:
+The Experiment class serves as the top-level container for all data, handling the saving and loading of experiments, and maintaining a collection of subjects.
+Subject instances are nested within experiments and are tasked with managing subject-specific data. Their primary roles are to handle the saving and loading of raw data and to hold instances of various datatypes.
+Meggie's analytical capabilities are structured into actions, pipelines, and datatypes.
+Datatypes are templates for summarizing raw data into meaningful structures for analysis, such as epochs, evokeds, spectrums, and TFRs. These templates are defined within the datatypes folder and instantiated as needed to store within subjects.
+Actions represent fundamental analysis steps, like "filter" or "create epochs." Each action, located in its respective folder within the actions directory, comprises metadata in configuration.json and Python code. Actions inherit from the Action class in mainwindow/dynamic.py and can be integrated into pipelines and are automatically logged.
+Pipelines organize actions into a sequence represented as buttons within the GUI tabs. They guide the user through a complete analysis workflow, such as "Sensor-level continuous data analysis." Pipelines are specified in the main configuration.json and rely on actions for implementation, thus containing no Python code themselves.
+Creating plugins for Meggie is designed to be straightforward. The system dynamically locates pipelines, datatypes, and actions at runtime, allowing them to be loaded from external Python packages within the Meggie namespace. To create a plugin, one simply needs to develop a Python package named within the Meggie namespace that introduces new pipelines, actions, and/or datatypes.
+The core of Meggie, excluding the actions, is intended to be stable and reusable. Plugin developers are encouraged to utilize the API provided by the MainWindow, Subject, and Experiment classes. Additionally, developers have access to the four datatypes in the datatypes folder and various utilities, including functions, dialogs, and widgets, found in the utilities folder.
+ +For an example of a basic plugin template, please visit Meggie Simple Plugin on GitHub.
+Actions, pipelines, and datatypes function identically, regardless of whether they originate from a plugin or from the core of Meggie. Therefore, examining the implementations within the Meggie repository is advisable for understanding their integration and usage.
+ +Meggie is an open-source software designed for intuitive MEG and EEG analysis. With its user-friendly graphical interface, Meggie brings the powerful analysis methods of MNE-Python to researchers without requiring programming skills.
+Get started with Meggie and explore its features to simplify your MEG/EEG analysis.
+ + +' + escapeHtml(summary) +'
' + noResultsText + '
'); + } +} + +function doSearch () { + var query = document.getElementById('mkdocs-search-query').value; + if (query.length > min_search_length) { + if (!window.Worker) { + displayResults(search(query)); + } else { + searchWorker.postMessage({query: query}); + } + } else { + // Clear results for short queries + displayResults([]); + } +} + +function initSearch () { + var search_input = document.getElementById('mkdocs-search-query'); + if (search_input) { + search_input.addEventListener("keyup", doSearch); + } + var term = getSearchTermFromLocation(); + if (term) { + search_input.value = term; + doSearch(); + } +} + +function onWorkerMessage (e) { + if (e.data.allowSearch) { + initSearch(); + } else if (e.data.results) { + var results = e.data.results; + displayResults(results); + } else if (e.data.config) { + min_search_length = e.data.config.min_search_length-1; + } +} + +if (!window.Worker) { + console.log('Web Worker API not supported'); + // load index in main thread + $.getScript(joinUrl(base_url, "search/worker.js")).done(function () { + console.log('Loaded worker'); + init(); + window.postMessage = function (msg) { + onWorkerMessage({data: msg}); + }; + }).fail(function (jqxhr, settings, exception) { + console.error('Could not load worker.js'); + }); +} else { + // Wrap search in a web worker + var searchWorker = new Worker(joinUrl(base_url, "search/worker.js")); + searchWorker.postMessage({init: true}); + searchWorker.onmessage = onWorkerMessage; +} diff --git a/search/search_index.json b/search/search_index.json new file mode 100644 index 00000000..923ca09e --- /dev/null +++ b/search/search_index.json @@ -0,0 +1 @@ +{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Welcome to Meggie \u00b6 Meggie is an open-source software designed for intuitive MEG and EEG analysis. With its user-friendly graphical interface, Meggie brings the powerful analysis methods of MNE-Python to researchers without requiring programming skills. Key Features \u00b6 Cross-Platform : Runs on Linux, macOS, and Windows. User-Friendly : Simple graphical user interface for ease of use. Efficient Workflows : Supports multi-subject experiments and pipeline processing for streamlined analysis. Get started with Meggie and explore its features to simplify your MEG/EEG analysis. Getting Started","title":"Home"},{"location":"#welcome-to-meggie","text":"Meggie is an open-source software designed for intuitive MEG and EEG analysis. With its user-friendly graphical interface, Meggie brings the powerful analysis methods of MNE-Python to researchers without requiring programming skills.","title":"Welcome to Meggie"},{"location":"#key-features","text":"Cross-Platform : Runs on Linux, macOS, and Windows. User-Friendly : Simple graphical user interface for ease of use. Efficient Workflows : Supports multi-subject experiments and pipeline processing for streamlined analysis. Get started with Meggie and explore its features to simplify your MEG/EEG analysis. Getting Started","title":"Key Features"},{"location":"about/","text":"About Meggie \u00b6 Developed at the Jyv\u00e4skyl\u00e4 Centre for Interdisciplinary Brain Research (CIBR), Meggie is the result of a project that started in 2013, with the mission to make sophisticated M/EEG analysis accessible to all researchers. Meggie builds upon the MNE-Python library to deliver a robust set of features through an intuitive interface. Design Philosophy \u00b6 Meggie focuses on: Multi-Subject Management : It makes it easy to work with many subjects' data at once. Clear Analysis Steps : It helps users go step by step from starting data to results. Compared to other tools like FieldTrip, MNE-Python, EEGLAB, Brainstorm, and mnelab, Meggie is unique because it's built with Python, it's easy for anyone to use, and it's designed for handling multiple subjects' data efficiently. Plugins \u00b6 Meggie can be changed and added to with plugins. If you know Python, you can create new features. This helps Meggie grow and helps everyone who uses it. To learn more, see our Developer Documentation .","title":"About"},{"location":"about/#about-meggie","text":"Developed at the Jyv\u00e4skyl\u00e4 Centre for Interdisciplinary Brain Research (CIBR), Meggie is the result of a project that started in 2013, with the mission to make sophisticated M/EEG analysis accessible to all researchers. Meggie builds upon the MNE-Python library to deliver a robust set of features through an intuitive interface.","title":"About Meggie"},{"location":"about/#design-philosophy","text":"Meggie focuses on: Multi-Subject Management : It makes it easy to work with many subjects' data at once. Clear Analysis Steps : It helps users go step by step from starting data to results. Compared to other tools like FieldTrip, MNE-Python, EEGLAB, Brainstorm, and mnelab, Meggie is unique because it's built with Python, it's easy for anyone to use, and it's designed for handling multiple subjects' data efficiently.","title":"Design Philosophy"},{"location":"about/#plugins","text":"Meggie can be changed and added to with plugins. If you know Python, you can create new features. This helps Meggie grow and helps everyone who uses it. To learn more, see our Developer Documentation .","title":"Plugins"},{"location":"developer-guide/architecture/","text":"Architecture Overview \u00b6 This document outlines the core structure of Meggie, offering insights into its construction and how developers can leverage its architecture. Main Classes \u00b6 Meggie is structured around three fundamental classes: MainWindow \u00b6 MainWindow is the central hub of the user interface, built using PyQt5. Key components include: Left Panel: Displays experiment-specific details. Bottom Console: Logs user actions and system messages. Right Panel: Hosts tabs for data transformation actions. Experiment \u00b6 The Experiment class serves as the top-level container for all data, handling the saving and loading of experiments, and maintaining a collection of subjects. Subject \u00b6 Subject instances are nested within experiments and are tasked with managing subject-specific data. Their primary roles are to handle the saving and loading of raw data and to hold instances of various datatypes. Actions, Pipelines, and Datatypes \u00b6 Meggie's analytical capabilities are structured into actions, pipelines, and datatypes. Datatypes \u00b6 Datatypes are templates for summarizing raw data into meaningful structures for analysis, such as epochs, evokeds, spectrums, and TFRs. These templates are defined within the datatypes folder and instantiated as needed to store within subjects. Actions \u00b6 Actions represent fundamental analysis steps, like \"filter\" or \"create epochs.\" Each action, located in its respective folder within the actions directory, comprises metadata in configuration.json and Python code. Actions inherit from the Action class in mainwindow/dynamic.py and can be integrated into pipelines and are automatically logged. Pipelines \u00b6 Pipelines organize actions into a sequence represented as buttons within the GUI tabs. They guide the user through a complete analysis workflow, such as \"Sensor-level continuous data analysis.\" Pipelines are specified in the main configuration.json and rely on actions for implementation, thus containing no Python code themselves. Plugins \u00b6 Creating plugins for Meggie is designed to be straightforward. The system dynamically locates pipelines, datatypes, and actions at runtime, allowing them to be loaded from external Python packages within the Meggie namespace. To create a plugin, one simply needs to develop a Python package named within the Meggie namespace that introduces new pipelines, actions, and/or datatypes. API \u00b6 The core of Meggie, excluding the actions, is intended to be stable and reusable. Plugin developers are encouraged to utilize the API provided by the MainWindow, Subject, and Experiment classes. Additionally, developers have access to the four datatypes in the datatypes folder and various utilities, including functions, dialogs, and widgets, found in the utilities folder.","title":"Architecture"},{"location":"developer-guide/architecture/#architecture-overview","text":"This document outlines the core structure of Meggie, offering insights into its construction and how developers can leverage its architecture.","title":"Architecture Overview"},{"location":"developer-guide/architecture/#main-classes","text":"Meggie is structured around three fundamental classes:","title":"Main Classes"},{"location":"developer-guide/architecture/#mainwindow","text":"MainWindow is the central hub of the user interface, built using PyQt5. Key components include: Left Panel: Displays experiment-specific details. Bottom Console: Logs user actions and system messages. Right Panel: Hosts tabs for data transformation actions.","title":"MainWindow"},{"location":"developer-guide/architecture/#experiment","text":"The Experiment class serves as the top-level container for all data, handling the saving and loading of experiments, and maintaining a collection of subjects.","title":"Experiment"},{"location":"developer-guide/architecture/#subject","text":"Subject instances are nested within experiments and are tasked with managing subject-specific data. Their primary roles are to handle the saving and loading of raw data and to hold instances of various datatypes.","title":"Subject"},{"location":"developer-guide/architecture/#actions-pipelines-and-datatypes","text":"Meggie's analytical capabilities are structured into actions, pipelines, and datatypes.","title":"Actions, Pipelines, and Datatypes"},{"location":"developer-guide/architecture/#datatypes","text":"Datatypes are templates for summarizing raw data into meaningful structures for analysis, such as epochs, evokeds, spectrums, and TFRs. These templates are defined within the datatypes folder and instantiated as needed to store within subjects.","title":"Datatypes"},{"location":"developer-guide/architecture/#actions","text":"Actions represent fundamental analysis steps, like \"filter\" or \"create epochs.\" Each action, located in its respective folder within the actions directory, comprises metadata in configuration.json and Python code. Actions inherit from the Action class in mainwindow/dynamic.py and can be integrated into pipelines and are automatically logged.","title":"Actions"},{"location":"developer-guide/architecture/#pipelines","text":"Pipelines organize actions into a sequence represented as buttons within the GUI tabs. They guide the user through a complete analysis workflow, such as \"Sensor-level continuous data analysis.\" Pipelines are specified in the main configuration.json and rely on actions for implementation, thus containing no Python code themselves.","title":"Pipelines"},{"location":"developer-guide/architecture/#plugins","text":"Creating plugins for Meggie is designed to be straightforward. The system dynamically locates pipelines, datatypes, and actions at runtime, allowing them to be loaded from external Python packages within the Meggie namespace. To create a plugin, one simply needs to develop a Python package named within the Meggie namespace that introduces new pipelines, actions, and/or datatypes.","title":"Plugins"},{"location":"developer-guide/architecture/#api","text":"The core of Meggie, excluding the actions, is intended to be stable and reusable. Plugin developers are encouraged to utilize the API provided by the MainWindow, Subject, and Experiment classes. Additionally, developers have access to the four datatypes in the datatypes folder and various utilities, including functions, dialogs, and widgets, found in the utilities folder.","title":"API"},{"location":"developer-guide/development/","text":"Development \u00b6 Setting up \u00b6 For an example of a basic plugin template, please visit Meggie Simple Plugin on GitHub. Actions, pipelines, and datatypes function identically, regardless of whether they originate from a plugin or from the core of Meggie. Therefore, examining the implementations within the Meggie repository is advisable for understanding their integration and usage.","title":"Development"},{"location":"developer-guide/development/#development","text":"","title":"Development"},{"location":"developer-guide/development/#setting-up","text":"For an example of a basic plugin template, please visit Meggie Simple Plugin on GitHub. Actions, pipelines, and datatypes function identically, regardless of whether they originate from a plugin or from the core of Meggie. Therefore, examining the implementations within the Meggie repository is advisable for understanding their integration and usage.","title":"Setting up"},{"location":"user-guide/actions/","text":"Actions \u00b6 Actions serve as the primary analytical tools within Meggie. Upon establishing an experiment and incorporating the raw data files for each subject, these actions are systematically employed to progressively convert the raw magnetic or electric signals into meaningful behavioral outcomes. Below is a catalog of the available actions along with their respective descriptions. Preprocessing \u00b6 Events from annotations (raw_events_from_annotations) \u00b6 Create events from annotations for further analysis. Filter (raw_filter) \u00b6 Apply low-pass, high-pass, band-pass, and band-stop filters to raw data to isolate specific frequency ranges or remove unwanted frequencies. Artifact removal (raw_ica) \u00b6 Apply Independent Component Analysis (ICA) to raw data to identify and remove artifacts such as heartbeats and eye blinks. Montage (raw_montage) \u00b6 Apply a montage to the EEG dataset, enabling the creation of topographical plots. Plot raw (raw_plot) \u00b6 Produce a time series plot of the raw data. Plot projections (raw_plot_projections) \u00b6 Generate a plot to visualize the projection vectors contained within the raw data. Rereference (raw_rereference) \u00b6 Re-reference the raw data to an average reference, which can be computed from one or more selected channels or all channels. Resample (raw_resample) \u00b6 Adjust the dataset by resampling it to a different sampling frequency. Continuous data \u00b6 Create spectrum (spectrum_create) \u00b6 Calculate the spectral data at specified time intervals for the current subject. Delete (spectrum_delete) \u00b6 Permanently remove the selected spectrum object from the current subject. Delete from all (spectrum_delete_from_all) \u00b6 Permanently remove the selected spectrum object from all matching subjects. Average over subjects (spectrum_group_average) \u00b6 Calculate the average of the selected spectrum object across subjects, with options to group subjects before averaging. Plot (spectrum_plot) \u00b6 Generate a plot for the selected spectrum object. The spectrum object may be visualized for all channels individually or as an average across specified channel groups. Save to csv (spectrum_save) \u00b6 Export the numerical data from the spectrum object for all matching subjects into a CSV file. Epochs \u00b6 Create epochs (epochs_create) \u00b6 Create a new epoch collection for the current subject. Delete (epochs_delete) \u00b6 Permanently remove the selected epoch collection from the current subject. Delete from all (epochs_delete_from_all) \u00b6 Permanently remove the selected epoch collection from all matching subjects. Plot (epochs_plot) \u00b6 Generate a simple plot for the selected epoch collection. Plot image (epochs_plot_image) \u00b6 Generate an image plot for the selected epoch collection. Evoked responses \u00b6 Create evoked (evoked_create) \u00b6 Compute the average of selected epoch collections independently. Each collection is averaged separately, resulting in a distinct average curve for each. Delete (evoked_delete) \u00b6 Permanently remove the selected evoked response object from the current subject. Delete from all (evoked_delete_from_all) \u00b6 Permanently remove the selected evoked response object from all matching subjects. Average over subjects (evoked_group_average) \u00b6 Calculate the average of the selected evoked response object across subjects, with options to group subjects before averaging. Plot (evoked_plot) \u00b6 Generate a plot for the selected evoked response object. The response may be visualized for all channels individually or as an average across specified channel groups. Plot topomaps (evoked_plot_topomap) \u00b6 Produce a series of topographical maps at specified time intervals for the selected evoked response object. Save to csv (evoked_save) \u00b6 Export the numerical data from the evoked response object for all matching subjects into a CSV file. Induced responses (TFR) \u00b6 Create TFR (tfr_create) \u00b6 Calculate time-frequency representations (TFRs) for selected epoch collections independently, with each collection yielding a unique TFR. Delete (tfr_delete) \u00b6 Permanently remove the selected TFR object from the current subject. Delete from all (tfr_delete_from_all) \u00b6 Permanently remove the selected TFR object from all matching subjects. Average over subjects (tfr_group_average) \u00b6 Calculate the average of the selected TFR object across subjects, with options to group subjects before averaging. Plot TFR (tfr_plot) \u00b6 Visualize the selected TFR object as a heatmap, with options for individual channel visualization or averaging across channel groups. Plot TSE (tfr_plot_tse) \u00b6 Visualize the Temporal Spectral Evolution (TSE) of the selected TFR object, collapsing the frequency dimension over a specified interval, for individual channels or averaged across channel groups. Save TFR to csv (tfr_save) \u00b6 Export the numerical data from the TFR object for all matching subjects into a CSV file. Save TSE to csv (tfr_save_tse) \u00b6 Export the TSE data from the TFR object, collapsing the frequency dimension over a specified interval, into a CSV file for all matching subjects.","title":"Actions"},{"location":"user-guide/actions/#actions","text":"Actions serve as the primary analytical tools within Meggie. Upon establishing an experiment and incorporating the raw data files for each subject, these actions are systematically employed to progressively convert the raw magnetic or electric signals into meaningful behavioral outcomes. Below is a catalog of the available actions along with their respective descriptions.","title":"Actions"},{"location":"user-guide/actions/#preprocessing","text":"","title":"Preprocessing"},{"location":"user-guide/actions/#events-from-annotations-raw_events_from_annotations","text":"Create events from annotations for further analysis.","title":"Events from annotations (raw_events_from_annotations)"},{"location":"user-guide/actions/#filter-raw_filter","text":"Apply low-pass, high-pass, band-pass, and band-stop filters to raw data to isolate specific frequency ranges or remove unwanted frequencies.","title":"Filter (raw_filter)"},{"location":"user-guide/actions/#artifact-removal-raw_ica","text":"Apply Independent Component Analysis (ICA) to raw data to identify and remove artifacts such as heartbeats and eye blinks.","title":"Artifact removal (raw_ica)"},{"location":"user-guide/actions/#montage-raw_montage","text":"Apply a montage to the EEG dataset, enabling the creation of topographical plots.","title":"Montage (raw_montage)"},{"location":"user-guide/actions/#plot-raw-raw_plot","text":"Produce a time series plot of the raw data.","title":"Plot raw (raw_plot)"},{"location":"user-guide/actions/#plot-projections-raw_plot_projections","text":"Generate a plot to visualize the projection vectors contained within the raw data.","title":"Plot projections (raw_plot_projections)"},{"location":"user-guide/actions/#rereference-raw_rereference","text":"Re-reference the raw data to an average reference, which can be computed from one or more selected channels or all channels.","title":"Rereference (raw_rereference)"},{"location":"user-guide/actions/#resample-raw_resample","text":"Adjust the dataset by resampling it to a different sampling frequency.","title":"Resample (raw_resample)"},{"location":"user-guide/actions/#continuous-data","text":"","title":"Continuous data"},{"location":"user-guide/actions/#create-spectrum-spectrum_create","text":"Calculate the spectral data at specified time intervals for the current subject.","title":"Create spectrum (spectrum_create)"},{"location":"user-guide/actions/#delete-spectrum_delete","text":"Permanently remove the selected spectrum object from the current subject.","title":"Delete (spectrum_delete)"},{"location":"user-guide/actions/#delete-from-all-spectrum_delete_from_all","text":"Permanently remove the selected spectrum object from all matching subjects.","title":"Delete from all (spectrum_delete_from_all)"},{"location":"user-guide/actions/#average-over-subjects-spectrum_group_average","text":"Calculate the average of the selected spectrum object across subjects, with options to group subjects before averaging.","title":"Average over subjects (spectrum_group_average)"},{"location":"user-guide/actions/#plot-spectrum_plot","text":"Generate a plot for the selected spectrum object. The spectrum object may be visualized for all channels individually or as an average across specified channel groups.","title":"Plot (spectrum_plot)"},{"location":"user-guide/actions/#save-to-csv-spectrum_save","text":"Export the numerical data from the spectrum object for all matching subjects into a CSV file.","title":"Save to csv (spectrum_save)"},{"location":"user-guide/actions/#epochs","text":"","title":"Epochs"},{"location":"user-guide/actions/#create-epochs-epochs_create","text":"Create a new epoch collection for the current subject.","title":"Create epochs (epochs_create)"},{"location":"user-guide/actions/#delete-epochs_delete","text":"Permanently remove the selected epoch collection from the current subject.","title":"Delete (epochs_delete)"},{"location":"user-guide/actions/#delete-from-all-epochs_delete_from_all","text":"Permanently remove the selected epoch collection from all matching subjects.","title":"Delete from all (epochs_delete_from_all)"},{"location":"user-guide/actions/#plot-epochs_plot","text":"Generate a simple plot for the selected epoch collection.","title":"Plot (epochs_plot)"},{"location":"user-guide/actions/#plot-image-epochs_plot_image","text":"Generate an image plot for the selected epoch collection.","title":"Plot image (epochs_plot_image)"},{"location":"user-guide/actions/#evoked-responses","text":"","title":"Evoked responses"},{"location":"user-guide/actions/#create-evoked-evoked_create","text":"Compute the average of selected epoch collections independently. Each collection is averaged separately, resulting in a distinct average curve for each.","title":"Create evoked (evoked_create)"},{"location":"user-guide/actions/#delete-evoked_delete","text":"Permanently remove the selected evoked response object from the current subject.","title":"Delete (evoked_delete)"},{"location":"user-guide/actions/#delete-from-all-evoked_delete_from_all","text":"Permanently remove the selected evoked response object from all matching subjects.","title":"Delete from all (evoked_delete_from_all)"},{"location":"user-guide/actions/#average-over-subjects-evoked_group_average","text":"Calculate the average of the selected evoked response object across subjects, with options to group subjects before averaging.","title":"Average over subjects (evoked_group_average)"},{"location":"user-guide/actions/#plot-evoked_plot","text":"Generate a plot for the selected evoked response object. The response may be visualized for all channels individually or as an average across specified channel groups.","title":"Plot (evoked_plot)"},{"location":"user-guide/actions/#plot-topomaps-evoked_plot_topomap","text":"Produce a series of topographical maps at specified time intervals for the selected evoked response object.","title":"Plot topomaps (evoked_plot_topomap)"},{"location":"user-guide/actions/#save-to-csv-evoked_save","text":"Export the numerical data from the evoked response object for all matching subjects into a CSV file.","title":"Save to csv (evoked_save)"},{"location":"user-guide/actions/#induced-responses-tfr","text":"","title":"Induced responses (TFR)"},{"location":"user-guide/actions/#create-tfr-tfr_create","text":"Calculate time-frequency representations (TFRs) for selected epoch collections independently, with each collection yielding a unique TFR.","title":"Create TFR (tfr_create)"},{"location":"user-guide/actions/#delete-tfr_delete","text":"Permanently remove the selected TFR object from the current subject.","title":"Delete (tfr_delete)"},{"location":"user-guide/actions/#delete-from-all-tfr_delete_from_all","text":"Permanently remove the selected TFR object from all matching subjects.","title":"Delete from all (tfr_delete_from_all)"},{"location":"user-guide/actions/#average-over-subjects-tfr_group_average","text":"Calculate the average of the selected TFR object across subjects, with options to group subjects before averaging.","title":"Average over subjects (tfr_group_average)"},{"location":"user-guide/actions/#plot-tfr-tfr_plot","text":"Visualize the selected TFR object as a heatmap, with options for individual channel visualization or averaging across channel groups.","title":"Plot TFR (tfr_plot)"},{"location":"user-guide/actions/#plot-tse-tfr_plot_tse","text":"Visualize the Temporal Spectral Evolution (TSE) of the selected TFR object, collapsing the frequency dimension over a specified interval, for individual channels or averaged across channel groups.","title":"Plot TSE (tfr_plot_tse)"},{"location":"user-guide/actions/#save-tfr-to-csv-tfr_save","text":"Export the numerical data from the TFR object for all matching subjects into a CSV file.","title":"Save TFR to csv (tfr_save)"},{"location":"user-guide/actions/#save-tse-to-csv-tfr_save_tse","text":"Export the TSE data from the TFR object, collapsing the frequency dimension over a specified interval, into a CSV file for all matching subjects.","title":"Save TSE to csv (tfr_save_tse)"},{"location":"user-guide/experiments/","text":"Experiments in Meggie \u00b6 This section provides a straightforward overview of Meggie's layout and the steps for starting and managing experiments with subjects. Layout Overview \u00b6 Meggie's interface is organized into two main columns: Left Column: This area is your control panel for the experiment. Here, you add new subjects to your experiment and adjust settings like channel groups. It's the organizational hub for your data. Right Column: This column contains the analysis tools, referred to as actions, which you'll apply to your data. These tools are arranged in tabs and are used to process the data step by step. Starting an Experiment \u00b6 Begin by creating an experiment where you'll enter basic information such as the experiment's name and the person conducting it. You'll also choose a pipeline that fits your research needs. This helps keep the interface focused and guides you through the necessary steps. A folder for the experiment will be created to store all related files. Adding Subjects \u00b6 After setting up your experiment, you can add subjects, which are your individual recordings, using the \"Add new...\" option in the left column. Applying Actions \u00b6 In the right column, you'll find the actions you can apply to your data. These actions are designed to be used on all your subjects at once, making it efficient to process multiple datasets. Preprocessing \u00b6 Meggie includes basic preprocessing features to improve the quality of your data. You can remove unwanted noise and apply filters to clean up the signals before further analysis. Working with EEG and MEG Data \u00b6 Meggie is equipped to handle both EEG and MEG data. For EEG, it offers tools to add sensor locations and adjust channel references when necessary. Managing Events \u00b6 Events, which are significant points in your recordings, can be managed within Meggie. This ensures you have control over important data points for analysis. Progressing Through Analysis \u00b6 The goal is to transform raw recordings into data that can inform your research. You'll use actions to move through analysis stages, each tailored to bring out specific features of your data.","title":"Experiments"},{"location":"user-guide/experiments/#experiments-in-meggie","text":"This section provides a straightforward overview of Meggie's layout and the steps for starting and managing experiments with subjects.","title":"Experiments in Meggie"},{"location":"user-guide/experiments/#layout-overview","text":"Meggie's interface is organized into two main columns: Left Column: This area is your control panel for the experiment. Here, you add new subjects to your experiment and adjust settings like channel groups. It's the organizational hub for your data. Right Column: This column contains the analysis tools, referred to as actions, which you'll apply to your data. These tools are arranged in tabs and are used to process the data step by step.","title":"Layout Overview"},{"location":"user-guide/experiments/#starting-an-experiment","text":"Begin by creating an experiment where you'll enter basic information such as the experiment's name and the person conducting it. You'll also choose a pipeline that fits your research needs. This helps keep the interface focused and guides you through the necessary steps. A folder for the experiment will be created to store all related files.","title":"Starting an Experiment"},{"location":"user-guide/experiments/#adding-subjects","text":"After setting up your experiment, you can add subjects, which are your individual recordings, using the \"Add new...\" option in the left column.","title":"Adding Subjects"},{"location":"user-guide/experiments/#applying-actions","text":"In the right column, you'll find the actions you can apply to your data. These actions are designed to be used on all your subjects at once, making it efficient to process multiple datasets.","title":"Applying Actions"},{"location":"user-guide/experiments/#preprocessing","text":"Meggie includes basic preprocessing features to improve the quality of your data. You can remove unwanted noise and apply filters to clean up the signals before further analysis.","title":"Preprocessing"},{"location":"user-guide/experiments/#working-with-eeg-and-meg-data","text":"Meggie is equipped to handle both EEG and MEG data. For EEG, it offers tools to add sensor locations and adjust channel references when necessary.","title":"Working with EEG and MEG Data"},{"location":"user-guide/experiments/#managing-events","text":"Events, which are significant points in your recordings, can be managed within Meggie. This ensures you have control over important data points for analysis.","title":"Managing Events"},{"location":"user-guide/experiments/#progressing-through-analysis","text":"The goal is to transform raw recordings into data that can inform your research. You'll use actions to move through analysis stages, each tailored to bring out specific features of your data.","title":"Progressing Through Analysis"},{"location":"user-guide/getting-started/","text":"Installation \u00b6 Meggie does not have standalone installers, but it can be easily installed on Windows, macOS, or Linux systems with Python 3.9 or higher using either of the following methods: Using conda \u00b6 Install meggie to a conda environment: $ conda create -n meggie-env -c conda-forge meggie==1.6.3 Using pip: \u00b6 Create a virtual environment folder: $ python -m venv meggie-env Activate the environment: $ source meggie-env/bin/activate Install dependencies: $ pip install -r https://raw.githubusercontent.com/cibr-jyu/meggie/v1.6.3/requirements.txt Install meggie: pip install meggie==1.6.3 Starting meggie for the first time \u00b6 Activate the environment in which Meggie was installed. For conda: conda activate meggie-env Or, for pip: source meggie-env/bin/activate Then run Meggie: $ meggie","title":"Getting Started"},{"location":"user-guide/getting-started/#installation","text":"Meggie does not have standalone installers, but it can be easily installed on Windows, macOS, or Linux systems with Python 3.9 or higher using either of the following methods:","title":"Installation"},{"location":"user-guide/getting-started/#using-conda","text":"Install meggie to a conda environment: $ conda create -n meggie-env -c conda-forge meggie==1.6.3","title":"Using conda"},{"location":"user-guide/getting-started/#using-pip","text":"Create a virtual environment folder: $ python -m venv meggie-env Activate the environment: $ source meggie-env/bin/activate Install dependencies: $ pip install -r https://raw.githubusercontent.com/cibr-jyu/meggie/v1.6.3/requirements.txt Install meggie: pip install meggie==1.6.3","title":"Using pip:"},{"location":"user-guide/getting-started/#starting-meggie-for-the-first-time","text":"Activate the environment in which Meggie was installed. For conda: conda activate meggie-env Or, for pip: source meggie-env/bin/activate Then run Meggie: $ meggie","title":"Starting meggie for the first time"}]} \ No newline at end of file diff --git a/search/worker.js b/search/worker.js new file mode 100644 index 00000000..8628dbce --- /dev/null +++ b/search/worker.js @@ -0,0 +1,133 @@ +var base_path = 'function' === typeof importScripts ? '.' : '/search/'; +var allowSearch = false; +var index; +var documents = {}; +var lang = ['en']; +var data; + +function getScript(script, callback) { + console.log('Loading script: ' + script); + $.getScript(base_path + script).done(function () { + callback(); + }).fail(function (jqxhr, settings, exception) { + console.log('Error: ' + exception); + }); +} + +function getScriptsInOrder(scripts, callback) { + if (scripts.length === 0) { + callback(); + return; + } + getScript(scripts[0], function() { + getScriptsInOrder(scripts.slice(1), callback); + }); +} + +function loadScripts(urls, callback) { + if( 'function' === typeof importScripts ) { + importScripts.apply(null, urls); + callback(); + } else { + getScriptsInOrder(urls, callback); + } +} + +function onJSONLoaded () { + data = JSON.parse(this.responseText); + var scriptsToLoad = ['lunr.js']; + if (data.config && data.config.lang && data.config.lang.length) { + lang = data.config.lang; + } + if (lang.length > 1 || lang[0] !== "en") { + scriptsToLoad.push('lunr.stemmer.support.js'); + if (lang.length > 1) { + scriptsToLoad.push('lunr.multi.js'); + } + if (lang.includes("ja") || lang.includes("jp")) { + scriptsToLoad.push('tinyseg.js'); + } + for (var i=0; i < lang.length; i++) { + if (lang[i] != 'en') { + scriptsToLoad.push(['lunr', lang[i], 'js'].join('.')); + } + } + } + loadScripts(scriptsToLoad, onScriptsLoaded); +} + +function onScriptsLoaded () { + console.log('All search scripts loaded, building Lunr index...'); + if (data.config && data.config.separator && data.config.separator.length) { + lunr.tokenizer.separator = new RegExp(data.config.separator); + } + + if (data.index) { + index = lunr.Index.load(data.index); + data.docs.forEach(function (doc) { + documents[doc.location] = doc; + }); + console.log('Lunr pre-built index loaded, search ready'); + } else { + index = lunr(function () { + if (lang.length === 1 && lang[0] !== "en" && lunr[lang[0]]) { + this.use(lunr[lang[0]]); + } else if (lang.length > 1) { + this.use(lunr.multiLanguage.apply(null, lang)); // spread operator not supported in all browsers: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator#Browser_compatibility + } + this.field('title'); + this.field('text'); + this.ref('location'); + + for (var i=0; i < data.docs.length; i++) { + var doc = data.docs[i]; + this.add(doc); + documents[doc.location] = doc; + } + }); + console.log('Lunr index built, search ready'); + } + allowSearch = true; + postMessage({config: data.config}); + postMessage({allowSearch: allowSearch}); +} + +function init () { + var oReq = new XMLHttpRequest(); + oReq.addEventListener("load", onJSONLoaded); + var index_path = base_path + '/search_index.json'; + if( 'function' === typeof importScripts ){ + index_path = 'search_index.json'; + } + oReq.open("GET", index_path); + oReq.send(); +} + +function search (query) { + if (!allowSearch) { + console.error('Assets for search still loading'); + return; + } + + var resultDocuments = []; + var results = index.search(query); + for (var i=0; i < results.length; i++){ + var result = results[i]; + doc = documents[result.ref]; + doc.summary = doc.text.substring(0, 200); + resultDocuments.push(doc); + } + return resultDocuments; +} + +if( 'function' === typeof importScripts ) { + onmessage = function (e) { + if (e.data.init) { + init(); + } else if (e.data.query) { + postMessage({ results: search(e.data.query) }); + } else { + console.error("Worker - Unrecognized message: " + e); + } + }; +} diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..d7ecda5a --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,38 @@ + +Actions serve as the primary analytical tools within Meggie. Upon establishing an experiment and incorporating the raw data files for each subject, these actions are systematically employed to progressively convert the raw magnetic or electric signals into meaningful behavioral outcomes. Below is a catalog of the available actions along with their respective descriptions.
+Create events from annotations for further analysis.
+Apply low-pass, high-pass, band-pass, and band-stop filters to raw data to isolate specific frequency ranges or remove unwanted frequencies.
+Apply Independent Component Analysis (ICA) to raw data to identify and remove artifacts such as heartbeats and eye blinks.
+Apply a montage to the EEG dataset, enabling the creation of topographical plots.
+Produce a time series plot of the raw data.
+Generate a plot to visualize the projection vectors contained within the raw data.
+Re-reference the raw data to an average reference, which can be computed from one or more selected channels or all channels.
+Adjust the dataset by resampling it to a different sampling frequency.
+Calculate the spectral data at specified time intervals for the current subject.
+Permanently remove the selected spectrum object from the current subject.
+Permanently remove the selected spectrum object from all matching subjects.
+Calculate the average of the selected spectrum object across subjects, with options to group subjects before averaging.
+Generate a plot for the selected spectrum object. The spectrum object may be visualized for all channels individually or as an average across specified channel groups.
+Export the numerical data from the spectrum object for all matching subjects into a CSV file.
+Create a new epoch collection for the current subject.
+Permanently remove the selected epoch collection from the current subject.
+Permanently remove the selected epoch collection from all matching subjects.
+Generate a simple plot for the selected epoch collection.
+Generate an image plot for the selected epoch collection.
+Compute the average of selected epoch collections independently. Each collection is averaged separately, resulting in a distinct average curve for each.
+Permanently remove the selected evoked response object from the current subject.
+Permanently remove the selected evoked response object from all matching subjects.
+Calculate the average of the selected evoked response object across subjects, with options to group subjects before averaging.
+Generate a plot for the selected evoked response object. The response may be visualized for all channels individually or as an average across specified channel groups.
+Produce a series of topographical maps at specified time intervals for the selected evoked response object.
+Export the numerical data from the evoked response object for all matching subjects into a CSV file.
+Calculate time-frequency representations (TFRs) for selected epoch collections independently, with each collection yielding a unique TFR.
+Permanently remove the selected TFR object from the current subject.
+Permanently remove the selected TFR object from all matching subjects.
+Calculate the average of the selected TFR object across subjects, with options to group subjects before averaging.
+Visualize the selected TFR object as a heatmap, with options for individual channel visualization or averaging across channel groups.
+Visualize the Temporal Spectral Evolution (TSE) of the selected TFR object, collapsing the frequency dimension over a specified interval, for individual channels or averaged across channel groups.
+Export the numerical data from the TFR object for all matching subjects into a CSV file.
+Export the TSE data from the TFR object, collapsing the frequency dimension over a specified interval, into a CSV file for all matching subjects.
+ +This section provides a straightforward overview of Meggie's layout and the steps for starting and managing experiments with subjects.
+Meggie's interface is organized into two main columns:
+Left Column: This area is your control panel for the experiment. Here, you add new subjects to your experiment and adjust settings like channel groups. It's the organizational hub for your data.
+Right Column: This column contains the analysis tools, referred to as actions, which you'll apply to your data. These tools are arranged in tabs and are used to process the data step by step.
+Begin by creating an experiment where you'll enter basic information such as the experiment's name and the person conducting it. You'll also choose a pipeline that fits your research needs. This helps keep the interface focused and guides you through the necessary steps. A folder for the experiment will be created to store all related files.
+After setting up your experiment, you can add subjects, which are your individual recordings, using the "Add new..." option in the left column.
+In the right column, you'll find the actions you can apply to your data. These actions are designed to be used on all your subjects at once, making it efficient to process multiple datasets.
+Meggie includes basic preprocessing features to improve the quality of your data. You can remove unwanted noise and apply filters to clean up the signals before further analysis.
+Meggie is equipped to handle both EEG and MEG data. For EEG, it offers tools to add sensor locations and adjust channel references when necessary.
+Events, which are significant points in your recordings, can be managed within Meggie. This ensures you have control over important data points for analysis.
+The goal is to transform raw recordings into data that can inform your research. You'll use actions to move through analysis stages, each tailored to bring out specific features of your data.
+ +Meggie does not have standalone installers, but it can be easily installed on Windows, macOS, or Linux systems with Python 3.9 or higher using either of the following methods:
+Install meggie to a conda environment:
+$ conda create -n meggie-env -c conda-forge meggie==1.6.3
+
+
+Create a virtual environment folder:
+$ python -m venv meggie-env
+
+
+Activate the environment:
+$ source meggie-env/bin/activate
+
+
+Install dependencies:
+$ pip install -r https://raw.githubusercontent.com/cibr-jyu/meggie/v1.6.3/requirements.txt
+
+
+Install meggie:
+pip install meggie==1.6.3
+
+
+Activate the environment in which Meggie was installed. For conda:
+conda activate meggie-env
+
+
+Or, for pip:
+source meggie-env/bin/activate
+
+
+Then run Meggie:
+$ meggie
+
+
+