Outils pour utilisateurs

Outils du site


documentation_mne

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
documentation_mne [20/01/2022 09:59]
dylan.jacquot Construction globale de la page avec les parties les plus importantes
documentation_mne [13/06/2022 13:33] (Version actuelle)
aristide.bourry
Ligne 1: Ligne 1:
-Documentation de la librairie MNE+====== Documentation de la librairie MNE ======
  
-Introduction+===== Introduction =====
  
-MNE est une librairie python open-source offrant des fonctionnalités spécialisées pour toutes sortes de traitements de données MEG, EEG, sEEG, ECoG ou encore NIRS. +MNE est une librairie python open-source offrant des fonctionnalités spécialisées pour toute sorte de traitements de données MEG, EEG, sEEG, ECoG ou encore NIRS. 
  
 Dans le cadre de notre projet, elle peut servir à traiter le signal EEG, le visualiser sous différentes formes, extraire des graphiques complexes et intéressants pour analyser le signal et classifier des essais. Dans le cadre de notre projet, elle peut servir à traiter le signal EEG, le visualiser sous différentes formes, extraire des graphiques complexes et intéressants pour analyser le signal et classifier des essais.
Ligne 9: Ligne 9:
 Dans cette documentation, nous avons utilisé le [[http://www.bbci.de/competition/iv/desc_2a.pdf|dataset BCI Competition 2a]] dont le fichier .gdf (contenant les données du signal et les annotations concernant les signaux EEG récoltés lors de la constitution du dataset) et le fichier .mat (contenant les labels) sont téléchargeables sur la [[http://www.bbci.de/competition/iv/|page web de BCI Competiton]]. Dans cette documentation, nous avons utilisé le [[http://www.bbci.de/competition/iv/desc_2a.pdf|dataset BCI Competition 2a]] dont le fichier .gdf (contenant les données du signal et les annotations concernant les signaux EEG récoltés lors de la constitution du dataset) et le fichier .mat (contenant les labels) sont téléchargeables sur la [[http://www.bbci.de/competition/iv/|page web de BCI Competiton]].
  
-Importation des données du dataset+===== Importation des données du dataset =====
  
 Les données du dataset peuvent être importées du fichier gdf en utilisant la fonction mne.io.read_raw_gdf(pathname, eog=None, misc=None, preload=True). Le paramètre pathname décrit le chemin d'accès au fichier gdf. Le paramètre preload = True est particulièrement important : il permet d'activer le chargement en mémoire des données lors de l'importation. Les données du dataset peuvent être importées du fichier gdf en utilisant la fonction mne.io.read_raw_gdf(pathname, eog=None, misc=None, preload=True). Le paramètre pathname décrit le chemin d'accès au fichier gdf. Le paramètre preload = True est particulièrement important : il permet d'activer le chargement en mémoire des données lors de l'importation.
Ligne 17: Ligne 17:
 En ce qui concerne les labels, ils peuvent être chargés dans le programme à l'aide de la fonction scipy.io.loadmat(mat_fname) où mat_fname est le chemin d'accès vers le fichier .mat fourni par BCI Competition 2008. En ce qui concerne les labels, ils peuvent être chargés dans le programme à l'aide de la fonction scipy.io.loadmat(mat_fname) où mat_fname est le chemin d'accès vers le fichier .mat fourni par BCI Competition 2008.
  
-Paramétrage de l'objet Raw+===== Paramétrage de l'objet Raw =====
  
 L'instance de Raw récupérée précédemment doit être configurée avant d'être utilisée convenablement.  L'instance de Raw récupérée précédemment doit être configurée avant d'être utilisée convenablement. 
Ligne 33: Ligne 33:
 Le montage est alors prêt à être associé au fichier raw avec la fonction raw.set_montage(montage,match_case = False). Le montage est alors prêt à être associé au fichier raw avec la fonction raw.set_montage(montage,match_case = False).
  
-Exploitation et formatage des données du fichier Raw+===== Exploitation et formatage des données du fichier Raw =====
  
 La classe Raw contient une méthode permettant de réaliser directement le filtrage numérique fréquentiel du signal via un filtre passe-bande. Ainsi, la fonction raw.filter(7.,30.,fir_design='firwin',skip_by_annotation='edge') permet de filtrer le signal EEG dans la bande de fréquence 7-30 Hz. La classe Raw contient une méthode permettant de réaliser directement le filtrage numérique fréquentiel du signal via un filtre passe-bande. Ainsi, la fonction raw.filter(7.,30.,fir_design='firwin',skip_by_annotation='edge') permet de filtrer le signal EEG dans la bande de fréquence 7-30 Hz.
Ligne 45: Ligne 45:
 Les Epochs de l'objet Raw peuvent être extraits via la fonction mne.Epochs(raw, events[0], event_id, tmin, tmax, picks=picks,baseline=(0, 0), preload=True). events[0] est le dictionnaire des événements récupéré précédemment. event_id décrit l'identifiant de l'événement servant à distinguer les Epochs (ici l'événément 768). tmin et tmax sont les bornes inférieures et supérieures de temps de chaque Epoch. Enfin, preload = True est important car il permettra de réaliser des traitements sur les données (par exemple copie ou réalisation d'un sous-ensemble du dataset) mais il nécessite le chargement complet des données en mémoire et consomme dont d'importantes ressources. Les Epochs de l'objet Raw peuvent être extraits via la fonction mne.Epochs(raw, events[0], event_id, tmin, tmax, picks=picks,baseline=(0, 0), preload=True). events[0] est le dictionnaire des événements récupéré précédemment. event_id décrit l'identifiant de l'événement servant à distinguer les Epochs (ici l'événément 768). tmin et tmax sont les bornes inférieures et supérieures de temps de chaque Epoch. Enfin, preload = True est important car il permettra de réaliser des traitements sur les données (par exemple copie ou réalisation d'un sous-ensemble du dataset) mais il nécessite le chargement complet des données en mémoire et consomme dont d'importantes ressources.
  
-Affichage graphique de l'activité cérébrale+Les données EEG d'un objet Epochs peuvent être récupérées en utilisant la fonction epochs.get_data(). 
 + 
 +===== Affichage graphique de l'activité cérébrale =====
  
 Il est possible grâce à MNE de représenter graphiquement l'activité cérébrale d'un sujet. Pour cela, nous devons utiliser la notion d'evoked. Il s'agit du moyennage temporel des Epochs pour un sujet donné. Il est possible grâce à MNE de représenter graphiquement l'activité cérébrale d'un sujet. Pour cela, nous devons utiliser la notion d'evoked. Il s'agit du moyennage temporel des Epochs pour un sujet donné.
Ligne 60: Ligne 62:
 {{:cerveau_durant_experience.png?400|}} {{:cerveau_durant_experience.png?400|}}
  
 +===== Mise en place d'un filtre CSP =====
 +
 +Le filtre CSP (pour Common Spatial Patterns) est un filtre dit adaptatif, c'est-à-dire qu'il va chercher à personnaliser le filtrage spatial pour chaque personne en sélectionnant les électrodes qui semblent les plus adaptées pour une personne données. En effet, bien que les activités cérébrales soient souvent concentrées dans certaines zones (par exemple le cortex moteur pour un mouvement), les électrodes pertinentes peuvent varier fortement selon les individus : il peut alors être très intéressant de sélectionner les canaux pertinents pour chaque personne.
 +
 +Ce type de filtre nécessite un entraînement basé sur des données. MNE permet la mise en place d'un tel filtre grâce aux Epochs.
 +
 +L'initialisation d'un filtre CSP se fait grâce à la fonction CSP(n_components=4, reg=None, log=True, norm_trace=False) retournant une instance de la classe CSP. Il est alors possible d'entraîner le CSP avec la fonction csp.fit_transform(epochs_data, labels) où epochs_data est la matrice de données issues d'un objet de la classe Epochs et labels et la matrice contenant les labels pour chaque essai.
 +
 +Il peut alors être intéressant d'afficher les patternes CSP calculées après cet entraînement grâce à la fonction csp.plot_patterns(epochs.info, ch_type='eeg', units='Patterns (AU)', size=1.5).
 +
 +Les graphiques ci-dessous montrent les patternes CSP calculés respectivement pour les sujets A01 et A02.
  
 +{{:patternes_csp_bci.png?400|}}
  
 +{{:patterne_csp_sujet2.png?400|}}
  
documentation_mne.1642672753.txt.gz · Dernière modification: 20/01/2022 09:59 de dylan.jacquot