swarm-contrastive-decomposition
Decomposition of Neurophysiological Time Series Signals with a Particle Swarm Optimised Independence Estimator
Science Score: 57.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.6%) to scientific vocabulary
Repository
Decomposition of Neurophysiological Time Series Signals with a Particle Swarm Optimised Independence Estimator
Basic Info
- Host: GitHub
- Owner: AgneGris
- License: other
- Language: Python
- Default Branch: main
- Size: 836 KB
Statistics
- Stars: 14
- Watchers: 4
- Forks: 1
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Swarm-Contrastive Decomposition 🧠
Overview 📝
Welcome to the Swarm-Contrastive Decomposition project! This repository contains the code of our research paper on decomposition of Neurophysiological Time Series signals. The primary goal of this project is to provide an open-source implementation for fostering further research in this area.
Table of Contents 📚
Installation 🛠️
Prerequisites
Make sure you have the following software and libraries installed: - Python 3.10 🐍 - NumPy 📦 - PyTorch 🔥
Steps
Follow these steps to set up the project locally:
- Clone the repository:
sh git clone https://github.com/AgneGris/swarm-contrastive-decomposition - Navigate to the project directory:
sh cd swarm-contrastive-decomposition - Create the conda environment from the
decomposition.ymlfile:sh conda env create -f decomposition.yml - Activate the environment:
sh conda activate decomposition
How to use this repository 🚀
Upload Your Input Data:
- Place your input data files in the
data/inputfolder.
- Place your input data files in the
Modify Data Loading:
- Depending on your data structure, you may need to adjust the data loading logic in
main.py(lines 41-53).
- Depending on your data structure, you may need to adjust the data loading logic in
Configure the Parameters:
- Customize the configuration settings in
main.pyaccording to your needs:device: Set to"cuda"for GPU or"cpu"for CPU.acceptance_silhouette: Define the acceptance threshold for source quality.extension_factor: This factor typically equals1000 / number of channels. A higher value may improve results.low_pass_cutoff: Define the cutoff frequency for the low-pass filter.high_pass_cutoff: Define the cutoff frequency for the high-pass filter.start_time: Set the start time for signal trimming. Use0to include the entire signal from the beginning.end_time: Set the end time for signal trimming. Use-1to include the entire signal until the end.max_iterations: Specify the maximum number of iterations for the decomposition process.sampling_frequency: Indicate the sampling frequency of your signal.peel_off_window_size: Define the size of the window (in ms) for the spike-triggered average of the source.output_final_source_plot: Set toTrueto generate a plot of the final source, orFalseto skip plotting.use_coeff_var_fitness: Set toTrueif consistent activity is expected in discharge times (recommended for most EMGs); set toFalsefor other types of data (e.g., intracortical).remove_bad_fr: Set toTrueto filter out sources with firing rates below 2 Hz or above 100 Hz. You can adjust these thresholds inmodels\scd.pyif needed.
- Other configuration parameters are found in
config\structures.
- Customize the configuration settings in
Run the Decomposition:
- Once your data is properly loaded and configured, run the following command to start the decomposition process:
bash python main.py - Once the decomposition process has terminated, the output data will be saved in the
data/outputfolder.
- Once your data is properly loaded and configured, run the following command to start the decomposition process:
Contributing 🤝
We welcome contributions! Here’s how you can contribute:
- Fork the repository.
- Create a feature branch (git checkout -b feature/newfeature).
- Commit your changes (git commit -m 'Add some newfeature').
- Push to the branch (git push origin feature/newfeature).
- Open a pull request.
License 📜
This project is licensed under the CC BY-NC 4.0 License.
Citation
If you use this code in your research, please cite our paper:
```sh @article{10643350, author={Grison, Agnese and Clarke, Alexander Kenneth and Muceli, Silvia and Ibáñez, Jaime and Kundu, Aritra and Farina, Dario}, journal={IEEE Transactions on Biomedical Engineering}, title={A Particle Swarm Optimised Independence Estimator for Blind Source Separation of Neurophysiological Time Series}, year={2024}, volume={}, number={}, pages={1-11}, keywords={Recording;Time series analysis;Sorting;Vectors;Measurement;Electrodes;Probes;Independent component analysis;particle swarm optimisation;blind source separation;intramuscular electromyography;intracortical recording}, doi={10.1109/TBME.2024.3446806}}
```
Contact
For any questions or inquiries, please contact us at:
sh
Agnese Grison
agnese.grison16@imperial.ac.uk
Owner
- Name: Agnese Grison
- Login: AgneGris
- Kind: user
- Repositories: 1
- Profile: https://github.com/AgneGris
Citation (CITATION.cff)
# Content: Citation File Format (CFF) file for the software
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Agnese"
given-names: "Grison"
orcid: "https://orcid.org/0009-0001-5981-3589"
email: agnese.grison@outlook.it
affiliation: Imperial College London
- family-names: "Alexander Kenneth"
given-names: "Clarke"
- family-names: "Silvia"
given-names: "Muceli"
- family-names: "Jaime"
given-names: "Ibanez"
- family-names: "Aritra"
given-names: "Kundu"
- family-names: "Dario"
given-names: "Farina"
title: "A Particle Swarm Optimised Independence Estimator for
Blind Source Separation of Neurophysiological Time Series"
version:
doi: 10.1109/TBME.2024.3446806
date-released:
url: "https://github.com/AgneGris/swarm-contrastive-decomposition"
preferred-citation:
type: article
authors:
- family-names: "Agnese"
given-names: "Grison"
orcid: "https://orcid.org/0009-0001-5981-3589"
email: agnese.grison@outlook.it
affiliation: Imperial College London
- family-names: "Alexander Kenneth"
given-names: "Clarke"
- family-names: "Silvia"
given-names: "Muceli"
- family-names: "Jaime"
given-names: "Ibanez"
- family-names: "Aritra"
given-names: "Kundu"
- family-names: "Dario"
given-names: "Farina"
doi: 10.1109/TBME.2024.3446806
journal: "IEEE Transactions on Biomedical Engineering"
month:
start:
end:
title: "A Particle Swarm Optimised Independence Estimator for
Blind Source Separation of Neurophysiological Time Series"
issue:
volume:
year: 2024
GitHub Events
Total
- Issues event: 2
- Watch event: 12
- Issue comment event: 1
- Push event: 5
- Pull request review event: 1
- Pull request event: 2
- Fork event: 2
Last Year
- Issues event: 2
- Watch event: 12
- Issue comment event: 1
- Push event: 5
- Pull request review event: 1
- Pull request event: 2
- Fork event: 2
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 0
- Total pull requests: 1
- Average time to close issues: N/A
- Average time to close pull requests: about 1 hour
- Total issue authors: 0
- Total pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 1
- Average time to close issues: N/A
- Average time to close pull requests: about 1 hour
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- haripen (1)
Pull Request Authors
- imendezguerra (1)
- innavoig23 (1)